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

Статистика игрока на killcam (killerstats)

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

Timm

XLGAMES.PRO
VIP
5 Сен 2014
21.230
2.941
3.549
Battlelog
[BL]
ВКонтакте
[ВК]
Facebook
[FB]
Этот скрипт будет полезен для админов, так как будет показывать статистику убившего игрока прямо в игре в центре экрана, во время камеры смерти, и поможет в выявлении читеров. Изначально этот скрипт создавался, для точго чтобы определить с чего убил игрок, т.к. были моменты во времена запуска Battlefield 4, когда киллкам не показывал с чего вас убили. Была добавлена некоторая дополнительная информация и переведена на Русский язык для удобства.

Вот так это выглядит в игре:

29978321081_10b975638a_o.jpg

АДРЕС НАШЕГО САЙТА ВЫРЕЗАН ИЗ СКРИПТА, вместо этого добавлено просто ИНФОРМАЦИЯ, вы можете заменить на любое другое слово или свой сайт.
Будет показана информация о стране игрока, оружии, общее кол-во убийств на этом оружии, точность этого оружия, процент от общего кол-ва убийств, так же информацию за раунд, У/С, убийств в голову, КД и убийств в минуту.

Скрипт добавляем в Insane Limits; (как добавлять лимиты, описано тут Insane limits)
создаем первый лимит, и в limit_evaluation выставляем OnAnyChat, затем добавляем следующий скрипт в limit_first_check Expression
Код:
player.LastChat.StartsWith("!killerstats")

в limit_second_check добавялем Code
Код:
if (!player.Data.issetBool("NoYell")) {
player.Data.setBool("NoYell", true);
plugin.SendPlayerYell(player.Name, plugin.R ("\nMessages on"),5);
return false;
}

if(player.Data.getBool("NoYell")) {
player.Data.setBool("NoYell", true);
plugin.SendPlayerYell(player.Name, plugin.R ("\nMessages on"),5);
}
else {
player.Data.setBool("NoYell", true);
plugin.SendPlayerYell(player.Name, plugin.R ("\nПодробная статистика: ОТКЛЮЧЕНА"),5);
}
return false;

Создаем второй лимит, limit_evaluation ставим на OnDeath и добавляем следующий скрипт в limit_first_check_code
Код:
if (!player.Data.issetBool("NoYell"))
    player.Data.setBool("NoYell", false);

if (player.Data.getBool("NoYell"))
    return false;
else {
    if (killer.Name != null) {
        BattlelogWeaponStatsInterface WeaponStats = killer.GetBattlelog(kill.Weapon);         
        if (WeaponStats != null) {
        double WeaponTotalKills = WeaponStats.Kills;
            if (WeaponTotalKills > 0) {
            double WeaponUsagePercentage = Convert.ToInt32(WeaponTotalKills/killer.Kills*100);
            double ServiceStars = Convert.ToInt32(WeaponTotalKills/100);
            plugin.SendPlayerYell(player.Name, plugin.R ("[ИНФОРМАЦИЯ]" + "\nКИЛЛЕР: " +killer.Name+ " из " +killer.CountryName+ " оружие: " + (plugin.FriendlyWeaponName(kill.Weapon).Name) + "\nУбийств: " + WeaponTotalKills + "   |   " + "Точ: " + Math.Round(killer.GetBattlelog(kill.Weapon).Accuracy, 2) + "%" + "   |   "  + WeaponUsagePercentage + "% из "  + killer.Kills + " убийств." + "\n" + "За раунд: " + "Убил: " + killer.KillsRound + " | " + "Умер: "  + killer.DeathsRound + " |" + " В хэд: " + killer.HeadshotsRound + " |" + " КД: " + Math.Round(killer.KdrRound, 2) + " | " + "Уб.М: " + Math.Round(killer.KillsRound/killer.TimeRound*60, 2)), 10);
            }
        }
    }             
}

return false;

Должно получиться вот так:
29434878433_3a90d3e859_o.jpg



После этого, в настройках InsaneLimits обязательно установите значения use_direct_fetch и use_slow_weapon_stats на True
29978474801_f39e7e577a_o.jpg



Эту информацию без проблем можно отключить командой в игровой чат !killerstats off
 
  • Like
Реакции: -XL-vrv377 и ZAW71

ZAW71

Старший лейтенант
Арендатор
2 Авг 2016
57
9
599
53
санкт-петербург
Супер!! Спасибо Тимур! Сначала правда были недовольные, но когда узнали, что каждый может отключить инфу для себя лично, все супер стало. мне лично очень понравилось, не нужно каждый раз Tab жать, что бы посмотреть кто такой меткий))
 

Timm

XLGAMES.PRO
VIP
5 Сен 2014
21.230
2.941
3.549
Battlelog
[BL]
ВКонтакте
[ВК]
Facebook
[FB]
ZAW71, можно сделать, чтобы по умолчанию она была отключена, и включалась только по запросу, если надо :)
 
  • Like
Реакции: ZAW71

ZAW71

Старший лейтенант
Арендатор
2 Авг 2016
57
9
599
53
санкт-петербург
ZAW71, можно сделать, чтобы по умолчанию она была отключена, и включалась только по запросу, если надо :)
Если есть возможность выложи плиз скрин, как это сделать и можно ли менять интервал времени для показа статы, если да, то тоже буду признателен за скрин. Еще раз спасибо!!!
 

Timm

XLGAMES.PRO
VIP
5 Сен 2014
21.230
2.941
3.549
Battlelog
[BL]
ВКонтакте
[ВК]
Facebook
[FB]
ZAW71,
это скрипт, чтобы сообщение отображалось только по запросу, каждый раз, после входа на сервер, команда - !killerstats on
чтобы выключить, соответственно нужно ввести !killerstats off
первый лимит
Код:
player.LastChat.StartsWith("!killerstats")

Код:
if (!player.Data.issetBool("NoYell")) {
player.Data.setBool("NoYell", false);
plugin.SendPlayerYell(player.Name, plugin.R ("\nСтатистика включена on"),5);
return false;
}

if(player.Data.getBool("NoYell")) {
player.Data.setBool("NoYell", false);
plugin.SendPlayerYell(player.Name, plugin.R ("\nСтатистика включена on"),5);
}
else {
player.Data.setBool("NoYell", true);
plugin.SendPlayerYell(player.Name, plugin.R ("\nСтатистика выключена off"),5);
}
return false;

КОД для второго лимита
Код:
if (!player.Data.issetBool("NoYell"))
player.Data.setBool("NoYell", true);

if (player.Data.getBool("NoYell"))
return false;
else {
if (killer.Name != null) {
BattlelogWeaponStatsInterface WeaponStats = killer.GetBattlelog(kill.Weapon);
if (WeaponStats != null) {
double WeaponTotalKills = WeaponStats.Kills;
if (WeaponTotalKills > 0) {
double WeaponUsagePercentage = Convert.ToInt32(WeaponTotalKills/killer.Kills*100);
double ServiceStars = Convert.ToInt32(WeaponTotalKills/100);
plugin.SendPlayerYell(player.Name, plugin.R ("[ИНФО]" + "\nКИЛЛЕР: " +killer.Name+ " из " +killer.CountryName+ " оружие: " + (plugin.FriendlyWeaponName(kill.Weapon).Name) + "\nУбийств: " + WeaponTotalKills + "   |   " + "Точ: " + Math.Round(killer.GetBattlelog(kill.Weapon).Accuracy, 2) + "%" + "   |   "  + WeaponUsagePercentage + "% из "  + killer.Kills + " убийств." + "\n" + "За раунд: " + "Убил: " + killer.KillsRound + " | " + "Умер: "  + killer.DeathsRound + " |" + " В хэд: " + killer.HeadshotsRound + " |" + " КД: " + Math.Round(killer.KdrRound, 2) + " | " + "Уб.М: " + Math.Round(killer.KillsRound/killer.TimeRound*60, 2)), 10);}
}
}
}

return false;


Интервал отображения сообщения настраивается тут (время в секундах)
d23ce457c63242f0ad02553f4ac70ac1.png
 
  • Like
Реакции: ZAW71

ZAW71

Старший лейтенант
Арендатор
2 Авг 2016
57
9
599
53
санкт-петербург
ZAW71,
это скрипт, чтобы сообщение отображалось только по запросу, каждый раз, после входа на сервер, команда - !killerstats on
чтобы выключить, соответственно нужно ввести !killerstats off
первый лимит
Код:
player.LastChat.StartsWith("!killerstats")

Код:
if (!player.Data.issetBool("NoYell")) {
player.Data.setBool("NoYell", false);
plugin.SendPlayerYell(player.Name, plugin.R ("\nСтатистика включена on"),5);
return false;
}

if(player.Data.getBool("NoYell")) {
player.Data.setBool("NoYell", false);
plugin.SendPlayerYell(player.Name, plugin.R ("\nСтатистика включена on"),5);
}
else {
player.Data.setBool("NoYell", true);
plugin.SendPlayerYell(player.Name, plugin.R ("\nСтатистика выключена off"),5);
}
return false;

КОД для второго лимита
Код:
if (!player.Data.issetBool("NoYell"))
player.Data.setBool("NoYell", true);

if (player.Data.getBool("NoYell"))
return false;
else {
if (killer.Name != null) {
BattlelogWeaponStatsInterface WeaponStats = killer.GetBattlelog(kill.Weapon);
if (WeaponStats != null) {
double WeaponTotalKills = WeaponStats.Kills;
if (WeaponTotalKills > 0) {
double WeaponUsagePercentage = Convert.ToInt32(WeaponTotalKills/killer.Kills*100);
double ServiceStars = Convert.ToInt32(WeaponTotalKills/100);
plugin.SendPlayerYell(player.Name, plugin.R ("[ИНФО]" + "\nКИЛЛЕР: " +killer.Name+ " из " +killer.CountryName+ " оружие: " + (plugin.FriendlyWeaponName(kill.Weapon).Name) + "\nУбийств: " + WeaponTotalKills + "   |   " + "Точ: " + Math.Round(killer.GetBattlelog(kill.Weapon).Accuracy, 2) + "%" + "   |   "  + WeaponUsagePercentage + "% из "  + killer.Kills + " убийств." + "\n" + "За раунд: " + "Убил: " + killer.KillsRound + " | " + "Умер: "  + killer.DeathsRound + " |" + " В хэд: " + killer.HeadshotsRound + " |" + " КД: " + Math.Round(killer.KdrRound, 2) + " | " + "Уб.М: " + Math.Round(killer.KillsRound/killer.TimeRound*60, 2)), 10);}
}
}
}

return false;


Интервал отображения сообщения настраивается тут (время в секундах)
d23ce457c63242f0ad02553f4ac70ac1.png
ZAW71,
это скрипт, чтобы сообщение отображалось только по запросу, каждый раз, после входа на сервер, команда - !killerstats on
чтобы выключить, соответственно нужно ввести !killerstats off
первый лимит
Код:
player.LastChat.StartsWith("!killerstats")

Код:
if (!player.Data.issetBool("NoYell")) {
player.Data.setBool("NoYell", false);
plugin.SendPlayerYell(player.Name, plugin.R ("\nСтатистика включена on"),5);
return false;
}

if(player.Data.getBool("NoYell")) {
player.Data.setBool("NoYell", false);
plugin.SendPlayerYell(player.Name, plugin.R ("\nСтатистика включена on"),5);
}
else {
player.Data.setBool("NoYell", true);
plugin.SendPlayerYell(player.Name, plugin.R ("\nСтатистика выключена off"),5);
}
return false;

КОД для второго лимита
Код:
if (!player.Data.issetBool("NoYell"))
player.Data.setBool("NoYell", true);

if (player.Data.getBool("NoYell"))
return false;
else {
if (killer.Name != null) {
BattlelogWeaponStatsInterface WeaponStats = killer.GetBattlelog(kill.Weapon);
if (WeaponStats != null) {
double WeaponTotalKills = WeaponStats.Kills;
if (WeaponTotalKills > 0) {
double WeaponUsagePercentage = Convert.ToInt32(WeaponTotalKills/killer.Kills*100);
double ServiceStars = Convert.ToInt32(WeaponTotalKills/100);
plugin.SendPlayerYell(player.Name, plugin.R ("[ИНФО]" + "\nКИЛЛЕР: " +killer.Name+ " из " +killer.CountryName+ " оружие: " + (plugin.FriendlyWeaponName(kill.Weapon).Name) + "\nУбийств: " + WeaponTotalKills + "   |   " + "Точ: " + Math.Round(killer.GetBattlelog(kill.Weapon).Accuracy, 2) + "%" + "   |   "  + WeaponUsagePercentage + "% из "  + killer.Kills + " убийств." + "\n" + "За раунд: " + "Убил: " + killer.KillsRound + " | " + "Умер: "  + killer.DeathsRound + " |" + " В хэд: " + killer.HeadshotsRound + " |" + " КД: " + Math.Round(killer.KdrRound, 2) + " | " + "Уб.М: " + Math.Round(killer.KillsRound/killer.TimeRound*60, 2)), 10);}
}
}
}

return false;


Интервал отображения сообщения настраивается тут (время в секундах)
d23ce457c63242f0ad02553f4ac70ac1.png
 

ZAW71

Старший лейтенант
Арендатор
2 Авг 2016
57
9
599
53
санкт-петербург
СПАСИБО!!! Но вроде, довольных этим нововведением оказалось гораздо больше:) По себе, скажу сразу нервы успокаивает, когда видишь, что ты у парня всего лишь вторая жертва в этом раунде, а погиб он уже раз 20-ть:), также очень толковая инфа по кд и стране игрока.
 

DeletedUser

Bots Service
27 Апр 2016
32
6
299
32
Moscow
Если ассист кил будет, то не засчитает в статку показываемого месседжа, что меня очень сильно бесило и бесит до сих пор! Так же если тебя убьет плагином (балансер\самописный), то так же и смерть засчитает на спавне, хотя в табе её не будет :oops::oops::oops::oops:
 

2Garin

Сержант
17 Фев 2017
9
0
39
47
подскажите как можно сделать что бы, информация была только за текущий раунд, а не вся статистика?
 

2Garin

Сержант
17 Фев 2017
9
0
39
47
я имел ввиду оставить все как есть кроме той информации что зачеркнута
27-03-2017-160911.jpg
 

Timm

XLGAMES.PRO
VIP
5 Сен 2014
21.230
2.941
3.549
Battlelog
[BL]
ВКонтакте
[ВК]
Facebook
[FB]
2Garin,
Вставьте этот CODE во второй лимит
Код:
if (!player.Data.issetBool("NoYell"))
    player.Data.setBool("NoYell", false);

if (player.Data.getBool("NoYell"))
    return false;
else {
    if (killer.Name != null) {
        BattlelogWeaponStatsInterface WeaponStats = killer.GetBattlelog(kill.Weapon);     
        if (WeaponStats != null) {
        double WeaponTotalKills = WeaponStats.Kills;
            if (WeaponTotalKills > 0) {
            double WeaponUsagePercentage = Convert.ToInt32(WeaponTotalKills/killer.Kills*100);
            double ServiceStars = Convert.ToInt32(WeaponTotalKills/100);
            plugin.SendPlayerYell(player.Name, plugin.R ("[ИНФОРМАЦИЯ]" + "\nКИЛЛЕР: " +killer.Name+ " из " +killer.CountryName+ " оружие: " + (plugin.FriendlyWeaponName(kill.Weapon).Name) + "\n" + "За раунд: " + "Убил: " + killer.KillsRound + " | " + "Умер: "  + killer.DeathsRound + " |" + " В хэд: " + killer.HeadshotsRound + " |" + " КД: " + Math.Round(killer.KdrRound, 2) + " | " + "Уб.М: " + Math.Round(killer.KillsRound/killer.TimeRound*60, 2)), 10);
            }
        }
    }         
}

return false;
 
  • Like
Реакции: 2Garin

2Garin

Сержант
17 Фев 2017
9
0
39
47
вот такая фигня выскакивает ( [22:23:12 42] [Insane Limits] Thread(fetch): DONE inserting 1 new players, 0 still in queue, took a total of 0 secs)
 

2Garin

Сержант
17 Фев 2017
9
0
39
47
а в чате после ввода команды !killerstats on пишет то что на картинке2017-03-27_225021.jpg
видимо что то делаю не так(, или пиратка играет свою роль:(
 
Последнее редактирование:

Timm

XLGAMES.PRO
VIP
5 Сен 2014
21.230
2.941
3.549
Battlelog
[BL]
ВКонтакте
[ВК]
Facebook
[FB]
а в чате после ввода команды !killerstats on пишет то что на картинкеПосмотреть вложение 623
видимо что то делаю не так(, или пиратка играет свою роль:(
а первоначальная версия работала да? до Вашего запроса убрать общую статистику по оружию
вот такая фигня выскакивает ( [22:23:12 42] [Insane Limits] Thread(fetch): DONE inserting 1 new players, 0 still in queue, took a total of 0 secs)
это нормально, он говорит вошёл один игрок и информация о нём была считана (загружена)

На самом деле, IL многое тянет из Battlelog, я даже не знаю как он устроен на пиратской версии игры, и как себя будет вести плагин, но если первоначальная версия работала, то и эта должна работать, так как в ней данные только по раунду, а данные по раунду тянутся из ProCon. А сам лимит скомпилировался после ввода?
 
  • Like
Реакции: 2Garin

2Garin

Сержант
17 Фев 2017
9
0
39
47
вот и я подумал что он инфу берет из Battlelog, на пиратке как раз с этим проблема, и первоначальная версия тоже не работала, думал что если будет только за текущий раунд, то не будет обращаться в Battlelog, но результат на скрине(.
А сам лимит скомпилировался после ввода?
да
А может нужно в проконе что либо включить, или должен еще какой нибудь плагин стоять adkats например?
 
Последнее редактирование:

Timm

XLGAMES.PRO
VIP
5 Сен 2014
21.230
2.941
3.549
Battlelog
[BL]
ВКонтакте
[ВК]
Facebook
[FB]
2Garin, включить нужно в самом плагине, то что описано в первом посте.
Ни каких других плагинов не нужно. Тем более половина плюшек или больше, в AdKats работают с помощью Battlelog.
 

Timm

XLGAMES.PRO
VIP
5 Сен 2014
21.230
2.941
3.549
Battlelog
[BL]
ВКонтакте
[ВК]
Facebook
[FB]
2Garin, к тому же то что на скрине ни о чем не говорит. Просто видимо у Вас плагин in-Game Admin команду воспринимает как !kill, можете заменить префикс, чтобы команды не пересекались
но IL в любом случае должен было ответить на действие в чат, не зависимо взял он с батлога инфу или нет, значит Вы что то не так делаете.
 

Timm

XLGAMES.PRO
VIP
5 Сен 2014
21.230
2.941
3.549
Battlelog
[BL]
ВКонтакте
[ВК]
Facebook
[FB]
вот это наверное, скорее всего. спасибо за разжевывание)
если не это, попробуйте принудительную первую версию, где отображение для всех включено по умолчанию :)
 
  • Like
Реакции: 2Garin
Статус
В этой теме нельзя размещать новые ответы.