Запрет Дробовиков на сервере Battlefield 4

BigSkinnyPenguin

Customer
23 Июл 2018
49
3
Тим, подскажи, что в коде не так

On Kill;weapon U_XM25;PlayerCount 1;Say %p% Warning No Shotgun or Kick;PlayerYell * %p% * Warning No XM25 or Kick!;kill 200
On Kill;weapon U_XM25;PlayerCount 2;Say %p% killed for use XM25;Kill 100
On Kill;weapon U_XM25;PlayerCount 3;Say %p% kicked for XM25;Kick XM25 use
 

Slawter

Support team
5 Сен 2014
22.535
871
Вы скажите что хотите, лучше в Insane Limits сделать, я в проконрулзе особо не шарю.
 

Slawter

Support team
5 Сен 2014
22.535
871
Используйте следующий лимит для плагина Insane Limits

1) Создайте новый лимит
2) Затем включите его, в графе limit_hide указав Show
3) Дайте любое название созданному лимиту в графе limit_name
4) В графе limit_evaluation укажите OnKill
5) В графе limit_first_check укажите Expression
7) В созданном поле limit_firstcheck_expression добавьте следующий код:
Код:
Regex.Match(kill.Weapon, @"(U_SAIGA_20K|U_SPAS12|U_USAS-12|U_870|U_DAO12|U_DBV12|U_HAWK|U_M1014|U_M26Mass|U_QBS09|U_SerbuShorty)", RegexOptions.IgnoreCase).Success
(коды оружия если что берутся из файла BF4.def, который находится по \ProCon\Configs

8) В графе limit_second_check установите тригер на Code
и введите этот код в созданное поле limit_second_check_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) {
        msg = plugin.R("[ПРЕДУПРЕЖДЕНИЕ] %k_n% не используй дробовик! Not use Shotgun"); // First warning message
        plugin.SendGlobalMessage(msg);
        plugin.SendPlayerYell(killer.Name, "ПРЕДУПРЕЖДЕНИЕ: Не используйте ДРОБОВИКИ! Следующий раз Вы будете исключены с сервера! \nWARNING: Do not use Shotgun! 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;
 

BigSkinnyPenguin

Customer
23 Июл 2018
49
3
Используйте следующий лимит для плагина Insane Limits

1) Создайте новый лимит
2) Затем включите его, в графе limit_hide указав Show
3) Дайте любое название созданному лимиту в графе limit_name
4) В графе limit_evaluation укажите OnKill
5) В графе limit_first_check укажите Expression
7) В созданном поле limit_firstcheck_expression добавьте следующий код:
Код:
Regex.Match(kill.Weapon, @"(U_SAIGA_20K|U_SPAS12|U_USAS-12|U_870|U_DAO12|U_DBV12|U_HAWK|U_M1014|U_M26Mass|U_QBS09|U_SerbuShorty)", RegexOptions.IgnoreCase).Success
(коды оружия если что берутся из файла BF4.def, который находится по \ProCon\Configs

8) В графе limit_second_check установите тригер на Code
и введите этот код в созданное поле limit_second_check_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) {
        msg = plugin.R("[ПРЕДУПРЕЖДЕНИЕ] %k_n% не используй дробовик! Not use Shotgun"); // First warning message
        plugin.SendGlobalMessage(msg);
        plugin.SendPlayerYell(killer.Name, "ПРЕДУПРЕЖДЕНИЕ: Не используйте ДРОБОВИКИ! Следующий раз Вы будете исключены с сервера! \nWARNING: Do not use grenade Shotgun! 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;
Спасибо