| 
				
				Anti Resp Camper
				 |   |  
| 
Vadim0890
 | 
Дата: Суббота, 11.12.2021, 15:42:36 | Сообщение # 1 |  
  
  |  
Сообщений: 29
 
Репутация: 0 [ +/- ]
 |   
 | 
 Доброго времени суток, кто сможет переписать данный плагин под карту $2000$ ? Знаю, плагин старый и писал его wS, но вдруг кто то перепишет или подскаже где что изменить в исходнике. 
 
| 
Гости не могут скачивать файлы
 |   
 | 
 
|   | 
 |    |  
| 
_wS_
 | 
Дата: Суббота, 11.12.2021, 17:05:51 | Сообщение # 2 |  
  
 | 
Я подскажу, что нужно сделать, но и ты приложи усилия, чтобы сделать это, т.к. несложно =)
  Строка 51, делаем:
 Код g_DeDust2 = strcmp(map, "$2000$", false) == 0; 
  Строка 81, цифры 287.213989, 2379.562988, -62.471825 это центр кемпер-зоны CT. Тебе нужно встать в центр этой зоны и прописать в консоль getpos. Увидим что-то вроде:
 
 Код setpos 448.000000 2464.000000 -50.009918;setang 0.000000 -105.001831 0.000000 
  Нужные координаты это 448.0, 2464.0, -50.0 Так же и со строкой 87 (-438.841675, -825.200195, 179.639648), это центр кемпер-зоны T.
  Ну и компилируем (инструкций в сети хватает, например, здесь, в первом уроке). 
 | 
 
|   | 
 |    |  
| 
Vadim0890
 | 
Дата: Суббота, 11.12.2021, 17:26:23 | Сообщение # 3 |  
  
  |  
Сообщений: 29
 
Репутация: 0 [ +/- ]
 |   
 | 
Цитата _wS_ (  )   Я подскажу, что нужно сделать, но и ты приложи усилия, чтобы сделать это, т.к. несложно =)
  Строка 51, делаем: g_DeDust2 = strcmp(map, "$2000$", false) == 0;
  Строка 81, цифры 287.213989, 2379.562988, -62.471825 это центр кемпер-зоны CT. Тебе нужно встать в центр этой зоны и прописать в консоль getpos. Увидим что-то вроде:
  setpos 448.000000 2464.000000 -50.009918;setang 0.000000 -105.001831 0.000000
  Нужные координаты это 448.0, 2464.0, -50.0 Так же и со строкой 87 (-438.841675, -825.200195, 179.639648), это центр кемпер-зоны T.
  Ну и компилируем (инструкций в сети хватает, например, здесь, в первом уроке). 
  Спасибо, координаты настроил, всё работает, подскажи ещё как можно сделать проверку таймера, например: игрок вышел с респы и когда возвращается на неё снова, то отсчёт времени был заново 30 сек. А так всё работает. 
 | 
 
|   | 
 |    |  
| 
_wS_
 | 
Дата: Суббота, 11.12.2021, 17:55:59 | Сообщение # 4 |  
  
 | 
Цитата Vadim0890 (  )   игрок вышел с респы и когда возвращается на неё снова, то отсчёт времени был заново 30 сек 
 
 Код wS_TrySlap(client, const Float:client_pos[3], Float:dist, Float:radius, bool:ct) {     if (dist <= radius && !(ct && 90.0 < client_pos[2] < 100.0))     {         if (++g_InZoneSec[client] > g_Sec)         {             SlapPlayer(client, g_Hp, true);             PrintToChat(client, "\x04%N, покиньте респ", client);         }     }     else{         g_InZoneSec[client] = 0;     } } 
  Но тут проверка высоты есть "!(ct && 90.0 < client_pos[2] < 100.0)", не помню для чего делал, думаю тебе её удалить нужно, т.е. оставить только:
  
 | 
 
|   | 
 |    |  
| 
Vadim0890
 | 
Дата: Суббота, 11.12.2021, 18:04:44 | Сообщение # 5 |  
  
  |  
Сообщений: 29
 
Репутация: 0 [ +/- ]
 |   
 | 
Цитата _wS_ (  )   wS_TrySlap(client, const Float:client_pos[3], Float:dist, Float:radius, bool:ct) {     if (dist <= radius && !(ct && 90.0 < client_pos[2] < 100.0))     {         if (++g_InZoneSec[client] > g_Sec)         {             SlapPlayer(client, g_Hp, true);             PrintToChat(client, "\x04%N, покиньте респ", client);         }     }     else{         g_InZoneSec[client] = 0;     } }
  Но тут проверка высоты есть "!(ct && 90.0 < client_pos[2] < 100.0)", не помню для чего делал, думаю тебе её удалить нужно, т.е. оставить только: if (dist <= radius) 
  Спасибо огромное, всё работает.Добавлено (29.12.2021, 10:52:47) --------------------------------------------- _wS_, Можно ещё попросить помочь сделать проверку когда 1 игрок на сервере, плагин его не трогает, то есть начинает работать если на сервере более 1 игрока. И если раунд завершился, то наказание не применяется к игрокам которые на респе.  
 | 
 
|   | 
 |    |  
| 
_wS_
 | 
Дата: Суббота, 01.01.2022, 02:33:40 | Сообщение # 6 |  
  
 | 
Цитата Vadim0890 (  )   _wS_, Можно ещё попросить помочь сделать проверку когда 1 игрок на сервере, плагин его не трогает, то есть начинает работать если на сервере более 1 игрока. И если раунд завершился, то наказание не применяется к игрокам которые на респе. 
  1. Создать глобальную переменную:
 
 Код new bool:g_bRoundEnded = false; 
  2. В round_start добавить:
 
 Код g_bRoundEnded = false; 
  3. В OnPluginStart() добавить:
 
 Код HookEvent("round_end", Event_round_end, EventHookMode_PostNoCopy); 
  4. Добавить:
 
 Код public Event_round_end(Handle:event, const String:name[], bool:dontBroadcast) {     g_bRoundEnded = true; }
  bool:IsAlone(client) {     for (new i = 1; i <= MaxClients; i++) {         if (i != client && IsClientInGame(i) && IsPlayerAlive(i)) {             return false;         }     }     return true; } 
  5. Найти и заменить:
 
 Код // Это if (++g_InZoneSec[client] > g_Sec)
  // На это if (++g_InZoneSec[client] > g_Sec && !g_bRoundEnded && !IsAlone(client))  
 | 
 
|   | 
 |    |     
		
		
 
 |