• Этот раздел переехал на новый ДОМЕН, чтобы комментировать перейдите по ссылке, для входа можете использовать текущий логин и пароль.

Как можно отследить jet ramming / таран в BF3 BF4?

Статус
В этой теме нельзя размещать новые ответы.

BlitzKrieg

Старший лейтенант
22 Янв 2018
86
4
599
29
Достали таранщики. Самое плохое то, что при такой смерти не понятно кто таранил. Единственный способ - можно после тарана посмотреть кто в общей таблице мертв, но таких там может быть несколько.
Допустим смерть при таране является самоубийством, соответственно можно просто вывести имя самоубийцы вряд ли в диапозоне 10 сек будет два самоубийцы. Или, возможно. такая смерть выглядит как-то особенно. В общем любой способ подойдет (предполагаю, что proconrulz).
 

Timm

XLGAMES.PRO
5 Сен 2014
21.236
2.944
3.549
Battlelog
[BL]
ВКонтакте
[ВК]
Facebook
[FB]
Отследить таран самолетом на уровне сервера нельзя
а с помощью самоубийств, попытайтесь, может получится, но не всегда же таранщик самоубивается
 

BlitzKrieg

Старший лейтенант
22 Янв 2018
86
4
599
29
Не всегда, но это хоть что-то. Видно по восторженным сообщениям в чатике, что эти инциденты не одного меня напрягают :)
 

BlitzKrieg

Старший лейтенант
22 Янв 2018
86
4
599
29
А не знаете как описать событие смерти "Soldier collision"?
Я всадил самолет в человечка, он помер. У меня как и ожидается suicide, а у него это событие. Т.е. по такой связочке, если еще можно время события зафиксировать как-то, то вполне можно автоматом кикать таких вот. Вероятность что суицид на джете совпадет случайно с вторым событием не высока.
 

BlitzKrieg

Старший лейтенант
22 Янв 2018
86
4
599
29
Weapon SoldierCollision вот такое условие должно быть.
 

BlitzKrieg

Старший лейтенант
22 Янв 2018
86
4
599
29
Должна ли работать такая конструкция?
On kill; TargetPlayer MYNICKNAME;TargetAction PlayerSay Player killed with %w%

Смысл в том, чтобы сообщения об убийстве всех падали только мне.
 

BlitzKrieg

Старший лейтенант
22 Янв 2018
86
4
599
29
Вот это тоже почему-то не работает.
On TeamKill;Kill;TargetPlayer %v%;TargetAction PlayerSay Admin slayed %p% that TK'd you
TargetPlayer и TargetAction как-то странно работают, в других правилах работают, а в таком нет.
 

Сурок

Старший лейтенант
Арендатор
MOH Admin
24 Фев 2017
120
5
639
44
мне народ говорил, что вроде бы
TargetPlayer ; TargetAction работают в связке только с on say;
может ошибался
 

BlitzKrieg

Старший лейтенант
22 Янв 2018
86
4
599
29
Вот я проверял, да работает в связке с On say, но то, что выше - пример из мануала на проконрулз. Т.е. как бы должно по идее работать.
 

BlitzKrieg

Старший лейтенант
22 Янв 2018
86
4
599
29
В общем-то можно сделать фильтр против раммеров условно рабочий. Конечно, он не будет покрывать 100% случаев, но хоть какие-то будет.
Посмотрел в логах сервера за небольшой период. Ситуации разные. Бывает, что после самоубийства на джете ровно в тоже время Soldier collision у другого игрока, это явный рамминг. Но бывает, что время отличается на 1 секунду, на 3 секунду, на 5 секунд. Что тоже вполне может указывать на рамминг.
Вот как-то так это должно выглядеть. С радостью приму комментарии :)

On Suicide; Weapon "Gameplay/Vehicles/F35/F35B";
Set %server_rammer_name% %p%
Set %server_ram_time% %hms%

On Suicide; Weapon SoldierCollision;
Set %server_killedwithram_time% %hms%
if %server_killedwithram_time% == %server_ram_time%;
TargetPlayer %server_rammer_name%; TargetAction kick JET RAMMING

Единственное я не уверен, что смерть soldier collision именно suicide в данном случае, нужно проверять.
 
Последнее редактирование:
  • Like
Реакции: Timm

Сурок

Старший лейтенант
Арендатор
MOH Admin
24 Фев 2017
120
5
639
44
ну..., тоже так хочу) одно и тоже самоубийство того же самого игрока. но 2 разные причины Weapon. хотя почему бы нет? Игрок может застрелится С4, упасть с моста и одновременно в него врежется вертолет))) ЛОЛ.
 

BlitzKrieg

Старший лейтенант
22 Янв 2018
86
4
599
29
Не. Первое самоубийство это тот кто таранит. Его имя сохраняется в переменную server_rammer_name. Вот тут надо узнать действительно ли когда тебя убивает самолет тараном для жертвы это самоубийство. А дальше все просто при самоубийстве нужно просто зафиксировать время и если оно тоже самое, что было при таране, то можно смело кикнуть раммера имя которого в переменной server_rammer_name.
Переменная нужна только одна, так как время постоянно прибавляется, возможно стоит при кике очищать эти переменные, чтобы, допустим в двух разных днях случайно время не совпало, но вероятность такого низкая. Тем более, что самоубийство на самолете достаточно частое событие.
А то, что в одну секунду помрут сразу два человека один убившись на самолете, а второй Sodlier collision не высокая. Вроде бы это падение с высоты еще.
В общем вариант рабочий, надо только проверить как выглядит смерть от тарана для жертвы. Но это дело техники. Только вот опять же TargetAction и TargetPlayer. Хотя у меня есть правила с этими словами и они работают.
 

BlitzKrieg

Старший лейтенант
22 Янв 2018
86
4
599
29
Фигня выходит.
Если врезаться в вертолет боевой, например, то они получаются самоубились от моего самолета, а я самоубился от вертолета
 

Сурок

Старший лейтенант
Арендатор
MOH Admin
24 Фев 2017
120
5
639
44
народ говорил мне
сколько бы команд не вставлял
весь список команд прогоняется целиком каждый раз для одного конкретного события
весь список команд именно целиком.
т.е. если
on kill; или иная идет 1-1-100 раз подряд, то будут все проверятся для данного события. а не половина или треть
в событии участвует убийца и погибшие.
если несколько погибших. то не одноврменно. понятие одноврмнености мне сказали нету.
и для каждого любого события этот программный лист прогоняется индивидуально. ЦЕЛИКОМ от начала до конца.
вроде так должно работать, хотя фиг знает что там накуролесили разработчики.
если это аксимома вдруг верна
то On Suicide; 2 раза подряд или более
будет проверятся конктерный 1 игрок столько раз сколько введена эта команда. от начала до конца.
когда сам себя убьет др игрок - то тоже самое.
тут не особо понимаю,надеюсь эта теория верна
 
  • Like
Реакции: Timm

BlitzKrieg

Старший лейтенант
22 Янв 2018
86
4
599
29
Все верно. Если в правилах есть два On Suicide то каждый из них будет обрабатываться при самоубийстве, но там есть conditions (условие). Если оно выполняется, то выполнится Action (действие). В данном случае условие это Weapon (оружие). Если орудие самоубийства F35, то выполнится одно, если Soldier collision, то другое.
Беда в том, что при ударе в вертолет орудие самоубийства меняется местами. Эту ситуацию можно обработать лишь частично фиксируя имена тех, кто летел в вертолете. А это можно сделать только если они кого-то успели убить :)
 

BlitzKrieg

Старший лейтенант
22 Янв 2018
86
4
599
29
Вот сейчас добился ситуации, которая обрабатывается правильно. Врезался в человечка вражеского и я получился раммер. Эта ситуация однозначно может быть обработана.
В случае с вертолетом возможно только заранее узнать, кто рулил вертолетом и если он был самоубит самолетом, то, вероятно, это был таран.
 

Сурок

Старший лейтенант
Арендатор
MOH Admin
24 Фев 2017
120
5
639
44
скорее всего багованно все это будет обрабатываться.
не помню вроде были баги типа таких. с бтр сбиваешь вертолет, вроде тебя убивают, он падает
и убивает другого и ты считаешься что убил с вертолета.
 

BlitzKrieg

Старший лейтенант
22 Янв 2018
86
4
599
29
Значит в общем так. После мучений придумал красивую конструкцию:
On Suicide;Weapon Gameplay/Vehicles/F35/F35B,Gameplay/Vehicles/A-10_THUNDERBOLT/A10_THUNDERBOLT,Gameplay/Vehicles/AH1Z/AH1Z,Gameplay/Vehicles/AH6/AH6_Littlebird,Gameplay/Vehicles/M1A2/M1Abrams,Gameplay/Vehicles/LAV25/LAV25,Gameplay/Vehicles/LAV25/LAV_AD,SoldierCollision
Set %server_ram_victim[%ptk%]% %p%; Set %server_ram_time[%ptk%]% %hms%; Set %server_ram_vehicle[%ptk%]% %w%
If %server_ram_time[1]% == %server_ram_time[2]%; AdminSay POSSIBLE RAM: vict1:%server_ram_victim[1]% time1:%server_ram_time[1]% veh1:%server_ram_vehicle[1]% vict2:%server_ram_victim[2]% time2:%server_ram_time[2]% veh2:%server_ram_vehicle[2]%;Log POSSIBLE RAM: vict1:%server_ram_victim[1]% time1:%server_ram_time[1]% veh1:%server_ram_vehicle[1]% vict2:%server_ram_victim[2]% time2:%server_ram_time[2]% veh2:%server_ram_vehicle[2]%

AdminSay сработает только если время самоубийств совпадает и игроки из разных комманд. В любом случае это правило будет работать только как предупреждение админам в онлайне. Автоматически наказывать не стоит.

Теперь возможные кейсы:
1. При таране оба погибают от техники, используемой для тарана.
2. При таране оба погибают от техники, которую таранят.
3. Каждый из погибших погибает от техники противника.
4. Один погибает от Soldier collision.

1 и 2 пункты. Тут можно ввести переменную для каждого игрока, которая обнуляется на каждом спауне и при каждом убийстве устанавливается в оружие убийства. Если при срабатывании правила оружие совпадает или не совпадает с ранее использованным, то таранщик известен.
3. Если техника у них разная, то тот, кто погиб от самолета - жертва тарана. Таранщик известен.
4. Тут все просто, кто умер от soldier collision тот и жертва.

Теперь вопрос: Как это обыграть красиво правилами. У меня никак в мозге не уложится иерархия условных операторов и как ветвить алгоритм :)
 

BlitzKrieg

Старший лейтенант
22 Янв 2018
86
4
599
29
Хрень какая-то. AdminSay в этом правеле работает раза два (если условие совпадения времени убрать), а потом просто перестает выводить это сообщение в чат. При этом Log точно такой же в этом правеле продолжает работать.
 

BlitzKrieg

Старший лейтенант
22 Янв 2018
86
4
599
29
Не постоянный вывод сообщения в чатик связан как-то с длинной строки. Т.е. если я одну переменную убираю, то выводится стабильно, а вот если не убираю. То пару раз работает, а потом перестает совсем. Причем тоже самое правило в лог попадает целиком и каждый раз.
 
Статус
В этой теме нельзя размещать новые ответы.