Привет, ребята! Как отключить ударный вертолёт пока на сервере не будет больше 10-16 человек ? Набирается 16 человек - можно летать на ударнике. Если меньше 16 и человек - ударник взять нельзя. Каким плагином и с каким скриптом это сделать ?
А вы его вообще проверяли? Он развер работает?Есть такой вот код еще, но как его сделать что бы он работал от 1 до 16 человек. А с 16 человек на сервере - отключался ?
Procon Script for server admins
Just change the numbers to the max of kills per player in a round
This script kills the player after 10 kills in a chopper and warns them but after 13 kills it will kick them :
-----heli autokick.txt---------------------------------------------------------------------
####################################################
Heli autokick
####################################################
On Kill; Damage VehicleAir; Incr %viperkill%
On Kill; Damage VehicleAir; If %viperkill% == 1; PlayerSay %p%, you are limited to 10 attack heli kills per game!
On Kill; Damage VehicleAir; If %viperkill% == 5; PlayerSay %p%, you have 5 attack heli kills left for this game!
On Kill; Damage VehicleAir; If %viperkill% == 10; Say %p% has reached his attack heli kill limit of 10 for this round!
On Kill; Damage VehicleAir; If %viperkill% == 11; Kill; PlayerSay %p%, you've reached your attack heli kill limit, go on the ground or leave!
On Kill; Damage VehicleAir; If %viperkill% == 13; Kick You've reached your attack heli kill limit of 10 per round!
Found this on a live server some admin was using. Not good. Lets say I left this server and never played on it again.
Да, только что проверял, работает. Но написан он для ProconRulzА вы его вообще проверяли? Он развер работает?
На сколько знаю технику в БФ4 таким образом запретить нельзя, так как код оружия приходит как Missing, вот комментарий одного из разработчиков плагинов
Not Working:
- ClanTag coz the server don't deliver it to PRoCon thx EA/DICE!!!.
- Stats for tanks and other vehicles. thx EA/DICE!!!.
Он рубит всю авиацию, а не конкретно ударник.Да, только что проверял, работает. Но написан он для ProconRulz
Да проверял только что. Работает, но он написан для ProconRulzДа, только что проверял, работает. Но написан он для ProconRulz
Надо наверное просто попробовать, взять стандартный скрипт, на запрещение грен от сюда: Примеры Insane Limits - автоматические правила для сервера BF3, BF4, BFHА вы его вообще проверяли? Он развер работает?
На сколько знаю технику в БФ4 таким образом запретить нельзя, так как код оружия приходит как Missing, вот комментарий одного из разработчиков плагинов
Not Working:
- ClanTag coz the server don't deliver it to PRoCon thx EA/DICE!!!.
- Stats for tanks and other vehicles. thx EA/DICE!!!.
Вы проверьте, если вот так будет работать, то я добавлю туда проверку кол-ва игроков.Надо наверное просто попробовать, взять стандартный скрипт, на запрещение грен от сюда: Примеры Insane Limits - автоматические правила для сервера BF3, BF4, BFH
И для начала переписать его на запрет вертолётов вообще:
EXPRESSION BF4
Regex.Match(kill.Weapon, @"(Gameplay/Vehicles/AH1Z/AH1Z)", RegexOptions.IgnoreCase) - В BF4.def в \ProCon\Configs код вертолёта же есть. Значит плагин должен понимать такой лимит.
Limit_second_check
String kCounter = killer.Name + "_TreatAsOne_Count";
TimeSpan time = TimeSpan.FromSeconds(5); // Activations within 5 seconds count as 1
int warnings = 0;
if (server.RoundData.issetInt(kCounter)) warnings = server.RoundData.getInt(kCounter);
String msg = "none";
if (warnings == 0) {
msg = plugin.R("[ПРЕДУПРЕЖДЕНИЕ] %k_n% это оружие запрещено! Not use not allowed weapon"); // First warning message
plugin.SendGlobalMessage(msg);
plugin.SendPlayerYell(killer.Name, "ПРЕДУПРЕЖДЕНИЕ: Не используйте это оружие! Следующий раз Вы будете исключены с сервера! \nWARNING: Do not use explosive ! Next time you will kicked!", 15);
plugin.PRoConChat("ADMIN > " + msg);
plugin.PRoConEvent(msg, "Insane Limits");
plugin.KillPlayer(killer.Name, 2);
server.RoundData.setInt(kCounter, warnings+1);
return false;
}
if (limit.Activations(killer.Name, time) > 1) return false;
if (warnings >= 1) {
msg = plugin.R("[AUTO-ADMIN] %k_n% исключён с сервера. Причина: взрывчатку");
plugin.SendGlobalMessage(msg);
plugin.PRoConChat("ADMIN > " + msg);
plugin.PRoConEvent(msg, "Insane Limits");
plugin.KickPlayerWithMessage(killer.Name, msg);
}
server.RoundData.setInt(kCounter, warnings+1);
return false;
Работает все. Создаем новый лимит:Вы проверьте, если вот так будет работать, то я добавлю туда проверку кол-ва игроков.
Просто на сколько знаю на технику так не работает. Вот в чем дело.
String kCounter = killer.Name + "_TreatAsOne_Count";
TimeSpan time = TimeSpan.FromSeconds(5); // Activations within 5 seconds count as 1
int warnings = 0;
if (server.RoundData.issetInt(kCounter)) warnings = server.RoundData.getInt(kCounter);
String msg = "none";
if ((warnings == 0) && (server.PlayerCount < 16)) {
msg = plugin.R("[ПРЕДУПРЕЖДЕНИЕ] %k_n% вертолёт запрещен! Пока на сервере не будет 16 игроков! Don`t use attack helicopter if players on server less than 16"); // First warning message
plugin.SendGlobalMessage(msg);
plugin.SendPlayerYell(killer.Name, "ПРЕДУПРЕЖДЕНИЕ: Не используйте вертолёт! Следующий раз Вы будете исключены с сервера! \nWARNING: Do not use attack helicopter ! Next time you will kicked!", 15);
plugin.PRoConChat("ADMIN > " + msg);
plugin.PRoConEvent(msg, "Insane Limits");
plugin.KillPlayer(killer.Name, 2);
server.RoundData.setInt(kCounter, warnings+1);
return false;
}
if (limit.Activations(killer.Name, time) > 1) return false;
if ((warnings >= 1) && (server.PlayerCount < 16)) {
msg = plugin.R("[AUTO-ADMIN] %k_n% исключён с сервера. Причина: лимит на ударный вертолёт");
plugin.SendGlobalMessage(msg);
plugin.PRoConChat("ADMIN > " + msg);
plugin.PRoConEvent(msg, "Insane Limits");
plugin.KickPlayerWithMessage(killer.Name, msg);
}
server.RoundData.setInt(kCounter, warnings+1);
return false;
Попробуйте этот CODE
Код:String kCounter = killer.Name + "_TreatAsOne_Count"; TimeSpan time = TimeSpan.FromSeconds(5); // Activations within 5 seconds count as 1 int warnings = 0; if (server.RoundData.issetInt(kCounter)) warnings = server.RoundData.getInt(kCounter); String msg = "none"; if ((warnings == 0) && (server.PlayerCount < 16)) { msg = plugin.R("[ПРЕДУПРЕЖДЕНИЕ] %k_n% вертолёт запрещен! Пока на сервере не будет 16 игроков! Don`t use attack helicopter if players on server less than 16"); // First warning message plugin.SendGlobalMessage(msg); plugin.SendPlayerYell(killer.Name, "ПРЕДУПРЕЖДЕНИЕ: Не используйте вертолёт! Следующий раз Вы будете исключены с сервера! \nWARNING: Do not use attack helicopter ! Next time you will kicked!", 15); plugin.PRoConChat("ADMIN > " + msg); plugin.PRoConEvent(msg, "Insane Limits"); plugin.KillPlayer(killer.Name, 2); server.RoundData.setInt(kCounter, warnings+1); return false; } if (limit.Activations(killer.Name, time) > 1) return false; if ((warnings >= 1) && (server.PlayerCount < 16)) { msg = plugin.R("[AUTO-ADMIN] %k_n% исключён с сервера. Причина: лимит на ударный вертолёт"); plugin.SendGlobalMessage(msg); plugin.PRoConChat("ADMIN > " + msg); plugin.PRoConEvent(msg, "Insane Limits"); plugin.KickPlayerWithMessage(killer.Name, msg); } server.RoundData.setInt(kCounter, warnings+1); return false;
Попробуйте этот CODE
Код:String kCounter = killer.Name + "_TreatAsOne_Count"; TimeSpan time = TimeSpan.FromSeconds(5); // Activations within 5 seconds count as 1 int warnings = 0; if (server.RoundData.issetInt(kCounter)) warnings = server.RoundData.getInt(kCounter); String msg = "none"; if ((warnings == 0) && (server.PlayerCount < 16)) { msg = plugin.R("[ПРЕДУПРЕЖДЕНИЕ] %k_n% вертолёт запрещен! Пока на сервере не будет 16 игроков! Don`t use attack helicopter if players on server less than 16"); // First warning message plugin.SendGlobalMessage(msg); plugin.SendPlayerYell(killer.Name, "ПРЕДУПРЕЖДЕНИЕ: Не используйте вертолёт! Следующий раз Вы будете исключены с сервера! \nWARNING: Do not use attack helicopter ! Next time you will kicked!", 15); plugin.PRoConChat("ADMIN > " + msg); plugin.PRoConEvent(msg, "Insane Limits"); plugin.KillPlayer(killer.Name, 2); server.RoundData.setInt(kCounter, warnings+1); return false; } if (limit.Activations(killer.Name, time) > 1) return false; if ((warnings >= 1) && (server.PlayerCount < 16)) { msg = plugin.R("[AUTO-ADMIN] %k_n% исключён с сервера. Причина: лимит на ударный вертолёт"); plugin.SendGlobalMessage(msg); plugin.PRoConChat("ADMIN > " + msg); plugin.PRoConEvent(msg, "Insane Limits"); plugin.KickPlayerWithMessage(killer.Name, msg); } server.RoundData.setInt(kCounter, warnings+1); return false;
Думаю можно. Посмотрим.Проверил все, все работает как надо. Убивает на первый раз, если используешь ударник, и на второй раз кикает. Если на сервере меньше 16 игроков. Как становится 16 - лимит на ударник отключается.
Тим, слушай а как сделать тоже самое, такой же лимит но не по игрокам а по тикитам ? К примеру что бы отключать ударник на 300 тикитах до окончания раунда ?
(Regex.Match(kill.Weapon, @"(Gameplay/Vehicles/AH1Z/AH1Z)", RegexOptions.IgnoreCase).Success && ((server.RemainTickets(0)<300) || (server.RemainTickets(1)<300) || (server.RemainTickets(2)<300)))
Попробуйте в В Limit_First_check в "Expression" вбить следующий код
Код:(Regex.Match(kill.Weapon, @"(Gameplay/Vehicles/AH1Z/AH1Z)", RegexOptions.IgnoreCase).Success && ((server.RemainTickets(0)<300) || (server.RemainTickets(1)<300) || (server.RemainTickets(2)<300)))