Скрипт для плагина ProConRULZ
Который позволит наказывать игрока, за убийство своих.
После смерти от своего, игрок может простить или наказать следующими командами:
!p или !punish - чтобы наказать
!f или !forgive - чтобы простить
Информационное сообщение в чате на Русском:
Скопируйте и вставьте код, в поле Rules плагина ProConRULZ, как показано на скриншоте ниже:
Скрипт для INSANE LIMITS
1) создать новый лимит
2) установить evaluation на OnTeamKill
3) first chek установить Code и добавить этот скрипт
Создать ещё 1 лимит
1) установить evaluation на OnAnyChat
2) first chek установить Code и добавить этот скрипт
Который позволит наказывать игрока, за убийство своих.
После смерти от своего, игрок может простить или наказать следующими командами:
!p или !punish - чтобы наказать
!f или !forgive - чтобы простить
Информационное сообщение в чате на Русском:
# Team Kill Notification Rules
On TeamKill;PlayerSay %p%: СМОТРИ КУДА СТРЕЛЯЕШЬ! Предупреждение %c% из 5
On TeamKill;Say %v%: введите в чат !f (!Forgive) чтобы простить или !p (!Punish) чтобы наказать
# Tracking Notification
On TeamKill;If %server_lastteamkill[%v%]% == %p%;Say %p%: снова убил своего %v%.
On TeamKill;If %server_lastteamkill[%p%]% == %v%;Say %p%: убил своего %v% два раза подряд
# Team Kill Tracking Rules
On TeamKill;Set %server_lastteamkill[%p%]% %v%
On TeamKill;Set %server_lastteamkiller[%v%]% %p%
# Automatic Forget
On Kill;Set %server_lastteamkiller[%v%]% 0;Set %server_lastteamkill[%p%]% 0;Set %server_lastteamkiller[%p%]% 0
# Team Kill Punish Rule
On Say;Text !p;If %server_lastteamkiller[%p%]% == 0;PlayerSay %p%: не найдено последнее убийство от своего, чтобы наказать!
On Say;Text !p;If %server_lastteamkiller[%p%]% != 0;TargetPlayer %server_lastteamkiller[%p%]%;Say %server_lastteamkiller[%p%]% убит за УБИЙСТВО СВОИХ!;TargetAction Kill;TargetConfirm;Set %server_lastteamkiller[%p%]% 0; Kill 100
On Say;Text !punish;If %server_lastteamkiller[%p%]% == 0;PlayerSay %p%: не найдено последнее убийство от своего, чтобы наказать!
On Say;Text !punish;If %server_lastteamkiller[%p%]% != 0;TargetPlayer %server_lastteamkiller[%p%]%;Say %server_lastteamkiller[%p%]% убит за УБИЙСТВО СВОИХ!;TargetAction Kill;TargetConfirm;Set %server_lastteamkiller[%p%]% 0; Kill 100
On Say;Text !k;If %server_lastteamkiller[%p%]% == 0;PlayerSay %p%: could not find a recent team kill to punish.
On Say;Text !k;If %server_lastteamkiller[%p%]% != 0;TargetPlayer %server_lastteamkiller[%p%]%;Say %server_lastteamkiller[%p%]% killed for team killing.;TargetAction Kill;TargetConfirm;Set %server_lastteamkiller[%p%]% 0; Kill 100
On Say;Text !f;If %server_lastteamkiller[%p%]% == 0;PlayerSay %p%: не найдено последнее убийство от своего, чтобы простить!
On Say;Text !f;If %server_lastteamkiller[%p%]% != 0;Set %server_lastteamkill[%server_lastteamkiller[%p%]%]% 0;Say %server_lastteamkiller[%p%]% прощён за убийство своего %p%.;Set %server_lastteamkiller[%p%]% 0
On Say;Text !forgive;If %server_lastteamkiller[%p%]% == 0;PlayerSay %p%: не найдено последнее убийство от своего, чтобы простить!
On Say;Text !forgive;If %server_lastteamkiller[%p%]% != 0;Set %server_lastteamkill[%server_lastteamkiller[%p%]%]% 0;Say %server_lastteamkiller[%p%]% прощён за убийство своего %p%.;Set %server_lastteamkiller[%p%]% 0
On TeamKill;PlayerSay %p%: СМОТРИ КУДА СТРЕЛЯЕШЬ! Предупреждение %c% из 5
On TeamKill;Say %v%: введите в чат !f (!Forgive) чтобы простить или !p (!Punish) чтобы наказать
# Tracking Notification
On TeamKill;If %server_lastteamkill[%v%]% == %p%;Say %p%: снова убил своего %v%.
On TeamKill;If %server_lastteamkill[%p%]% == %v%;Say %p%: убил своего %v% два раза подряд
# Team Kill Tracking Rules
On TeamKill;Set %server_lastteamkill[%p%]% %v%
On TeamKill;Set %server_lastteamkiller[%v%]% %p%
# Automatic Forget
On Kill;Set %server_lastteamkiller[%v%]% 0;Set %server_lastteamkill[%p%]% 0;Set %server_lastteamkiller[%p%]% 0
# Team Kill Punish Rule
On Say;Text !p;If %server_lastteamkiller[%p%]% == 0;PlayerSay %p%: не найдено последнее убийство от своего, чтобы наказать!
On Say;Text !p;If %server_lastteamkiller[%p%]% != 0;TargetPlayer %server_lastteamkiller[%p%]%;Say %server_lastteamkiller[%p%]% убит за УБИЙСТВО СВОИХ!;TargetAction Kill;TargetConfirm;Set %server_lastteamkiller[%p%]% 0; Kill 100
On Say;Text !punish;If %server_lastteamkiller[%p%]% == 0;PlayerSay %p%: не найдено последнее убийство от своего, чтобы наказать!
On Say;Text !punish;If %server_lastteamkiller[%p%]% != 0;TargetPlayer %server_lastteamkiller[%p%]%;Say %server_lastteamkiller[%p%]% убит за УБИЙСТВО СВОИХ!;TargetAction Kill;TargetConfirm;Set %server_lastteamkiller[%p%]% 0; Kill 100
On Say;Text !k;If %server_lastteamkiller[%p%]% == 0;PlayerSay %p%: could not find a recent team kill to punish.
On Say;Text !k;If %server_lastteamkiller[%p%]% != 0;TargetPlayer %server_lastteamkiller[%p%]%;Say %server_lastteamkiller[%p%]% killed for team killing.;TargetAction Kill;TargetConfirm;Set %server_lastteamkiller[%p%]% 0; Kill 100
On Say;Text !f;If %server_lastteamkiller[%p%]% == 0;PlayerSay %p%: не найдено последнее убийство от своего, чтобы простить!
On Say;Text !f;If %server_lastteamkiller[%p%]% != 0;Set %server_lastteamkill[%server_lastteamkiller[%p%]%]% 0;Say %server_lastteamkiller[%p%]% прощён за убийство своего %p%.;Set %server_lastteamkiller[%p%]% 0
On Say;Text !forgive;If %server_lastteamkiller[%p%]% == 0;PlayerSay %p%: не найдено последнее убийство от своего, чтобы простить!
On Say;Text !forgive;If %server_lastteamkiller[%p%]% != 0;Set %server_lastteamkill[%server_lastteamkiller[%p%]%]% 0;Say %server_lastteamkiller[%p%]% прощён за убийство своего %p%.;Set %server_lastteamkiller[%p%]% 0
Скопируйте и вставьте код, в поле Rules плагина ProConRULZ, как показано на скриншоте ниже:
Скрипт для INSANE LIMITS
1) создать новый лимит
2) установить evaluation на OnTeamKill
3) first chek установить Code и добавить этот скрипт
Код:
List<String> ReservervedSlots = plugin.GetReservedSlotsList();
if (!ReservervedSlots.Contains(killer.Name))
{
String key = "Last_TK";
victim.RoundData.setString(key, killer.Name);
victim.RoundData.setObject(key, (Object)DateTime.Now);
String weapon = plugin.FriendlyWeaponName(kill.Weapon).Name;
plugin.ConsoleWrite("TK log: ^7^b" + victim.Name + "^n was TK by ^b" + killer.Name + " with " + weapon);
plugin.PRoConChat("TK log > " + victim.Name + " was TK by " + killer.Name + " with " + weapon);
plugin.SendPlayerMessage(killer.Name, "Убийство своего " + victim.Name + " СМОТРИ КУДА СТРЕЛЯЕШЬ!"); // CHANGE
plugin.SendPlayerYell(killer.Name, "УБИЙСТВО СВОЕГО " + victim.Name + " СМОТРИ КУДА СТРЕЛЯЕШЬ!", 10);
plugin.SendPlayerMessage(victim.Name, "Вы убиты своим " + killer.Name + ", введите !punish !p чтобы наказать!."); // CHANGE
return false;
}
Создать ещё 1 лимит
1) установить evaluation на OnAnyChat
2) first chek установить Code и добавить этот скрипт
Код:
double timeToPunishSeconds = 60; // victim has 60 seconds to punish team killer
String key = "Last_TK";
if ((Regex.Match(player.LastChat, @"^\s*[!@#]punish", RegexOptions.IgnoreCase).Success) || (Regex.Match(player.LastChat, @"^\s*[!@#]p", RegexOptions.IgnoreCase).Success) ) {
if (!player.RoundData.issetObject(key) || !player.RoundData.issetString(key)) {
plugin.SendPlayerMessage(player.Name, "Нет убийства от своего! Смерть на дороге и VIP игроки не будут наказаны!");
return false;
}
DateTime last = (DateTime)player.RoundData.getObject(key);
String tker = player.RoundData.getString(key);
if (DateTime.Now.Subtract(last).TotalSeconds > timeToPunishSeconds) {
plugin.SendPlayerMessage(player.Name, "Прошло больше " + timeToPunishSeconds + " секунд. Уже нельзя наказать за TK!");
player.RoundData.unsetString(key);
player.RoundData.unsetObject(key);
return false;
}
// Punishment
plugin.SendPlayerMessage(player.Name, tker + " будет наказан через 5 секунд!!");
plugin.ConsoleWrite("TK log: victim ^7^b" + player.Name + "^n punished ^b" + tker + " for team killing!");
String msg = player.FullName + " наказал Вас за убийство своих!"; // CHANGE
plugin.SendPlayerMessage(tker, msg);
plugin.SendPlayerYell(tker, "ВЫ БУДЕТЕ НАКАЗАНЫ ЗА УБИЙСТВО СВОЕГО " + player.FullName, 10); // CHANGE
plugin.PRoConChat("ADMIN to " + tker + " > " + msg);
plugin.KillPlayer(tker, 5);
player.RoundData.unsetString(key);
player.RoundData.unsetObject(key);
}
return false;
Последнее редактирование: