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))
|
|
| |
|