update file localizations
update custom callbacks add server count to master add most played to token list
This commit is contained in:
parent
be68335f70
commit
36d493f05b
@ -66,9 +66,9 @@
|
||||
"COMMANDS_OWNER_SUCCESS": "Congratulations, you have claimed ownership of this server!",
|
||||
"COMMANDS_PASSWORD_FAIL": "Your password must be at least 5 characters long",
|
||||
"COMMANDS_PASSWORD_SUCCESS": "Your password has been set successfully",
|
||||
"COMMANDS_PING_DESC": "get client's ping",
|
||||
"COMMANDS_PING_SELF": "Your ping is",
|
||||
"COMMANDS_PING_TARGET": "ping is",
|
||||
"COMMANDS_PING_DESC": "get client's latency",
|
||||
"COMMANDS_PING_SELF": "Your latency is",
|
||||
"COMMANDS_PING_TARGET": "latency is",
|
||||
"COMMANDS_PLUGINS_DESC": "view all loaded plugins",
|
||||
"COMMANDS_PLUGINS_LOADED": "Loaded Plugins",
|
||||
"COMMANDS_PM_DESC": "send message to other client",
|
||||
@ -116,7 +116,6 @@
|
||||
"COMMANDS_WHO_DESC": "give information about yourself",
|
||||
"GLOBAL_DAYS": "days",
|
||||
"GLOBAL_ERROR": "Error",
|
||||
"GLOBAL_DEBUG": "Debug",
|
||||
"GLOBAL_HOURS": "hours",
|
||||
"GLOBAL_INFO": "Info",
|
||||
"GLOBAL_MINUTES": "minutes",
|
||||
@ -253,7 +252,18 @@
|
||||
"PLUGINS_LOGIN_AUTH": "not logged in",
|
||||
"PLUGINS_PROFANITY_SETUP_ENABLE": "Enable profanity deterring",
|
||||
"PLUGINS_PROFANITY_WARNMSG": "Please do not use profanity on this server",
|
||||
"PLUGINS_PROFANITY_KICKMSG": "Excessive use of profanity"
|
||||
"PLUGINS_PROFANITY_KICKMSG": "Excessive use of profanity",
|
||||
"GLOBAL_DEBUG": "Debug",
|
||||
"COMMANDS_UNFLAG_DESC": "Remove flag for client",
|
||||
"COMMANDS_UNFLAG_FAIL": "You cannot unflag",
|
||||
"COMMANDS_UNFLAG_NOTFLAGGED": "Client is not flagged",
|
||||
"COMMANDS_FLAG_ALREADYFLAGGED": "Client is already flagged",
|
||||
"PLUGINS_STATS_COMMANDS_MOSTPLAYED_TEXT": "Most Played",
|
||||
"PLUGINS_STATS_COMMANDS_MOSTPLAYED_DESC": "view the top 5 dedicated players on the server",
|
||||
"WEBFRONT_PROFILE_MESSAGES": "Messages",
|
||||
"WEBFRONT_CLIENT_META_CONNECTIONS": "Connections",
|
||||
"PLUGINS_STATS_COMMANDS_TOPSTATS_RATING": "Rating",
|
||||
"PLUGINS_STATS_COMMANDS_PERFORMANCE": "Performance"
|
||||
}
|
||||
}
|
||||
}
|
@ -252,7 +252,18 @@
|
||||
"PLUGINS_LOGIN_AUTH": "No registrado",
|
||||
"PLUGINS_PROFANITY_SETUP_ENABLE": "Habilitar la disuasión de blasfemias",
|
||||
"PLUGINS_PROFANITY_WARNMSG": "Por favor no uses blasfemias en este servidor",
|
||||
"PLUGINS_PROFANITY_KICKMSG": "Excesivo uso de blasfemias"
|
||||
"PLUGINS_PROFANITY_KICKMSG": "Excesivo uso de blasfemias",
|
||||
"GLOBAL_DEBUG": "Depurar",
|
||||
"COMMANDS_UNFLAG_DESC": "Remover marca del cliente",
|
||||
"COMMANDS_UNFLAG_FAIL": "Tu no puedes desmarcar",
|
||||
"COMMANDS_UNFLAG_NOTFLAGGED": "El cliente no está marcado",
|
||||
"COMMANDS_FLAG_ALREADYFLAGGED": "El cliente yá se encuentra marcado",
|
||||
"PLUGINS_STATS_COMMANDS_MOSTPLAYED_TEXT": "Más jugado",
|
||||
"PLUGINS_STATS_COMMANDS_MOSTPLAYED_DESC": "ver el Top 5 de jugadores dedicados en el servidor",
|
||||
"WEBFRONT_PROFILE_MESSAGES": "Mensajes",
|
||||
"WEBFRONT_CLIENT_META_CONNECTIONS": "Conexiones",
|
||||
"PLUGINS_STATS_COMMANDS_TOPSTATS_RATING": "Clasificación",
|
||||
"PLUGINS_STATS_COMMANDS_PERFORMANCE": "Desempeño"
|
||||
}
|
||||
}
|
||||
}
|
@ -82,7 +82,7 @@
|
||||
"COMMANDS_REPORT_FAIL": "Você não pode reportar",
|
||||
"COMMANDS_REPORT_FAIL_CAMP": "Você não pode denunciar o jogador por camperar",
|
||||
"COMMANDS_REPORT_FAIL_DUPLICATE": "Você já denunciou o jogador",
|
||||
"COMMANDS_REPORT_FAIL_SELF": "Você não pode se reportar",
|
||||
"COMMANDS_REPORT_FAIL_SELF": "Você não pode reportar a si mesmo",
|
||||
"COMMANDS_REPORT_SUCCESS": "Obrigado pela sua denúncia, um administrador foi notificado",
|
||||
"COMMANDS_REPORTS_CLEAR_SUCCESS": "Lista de denúncias limpa com sucesso",
|
||||
"COMMANDS_REPORTS_DESC": "obtém ou limpa as denúncias recentes",
|
||||
@ -109,7 +109,7 @@
|
||||
"COMMANDS_UPTIME_TEXT": "está online por",
|
||||
"COMMANDS_USAGE_DESC": "vê quanto o aplicativo está usando de memória RAM do seu computador",
|
||||
"COMMANDS_USAGE_TEXT": "está usando",
|
||||
"COMMANDS_WARN_DESC": "adverte o cliente por infringir regras",
|
||||
"COMMANDS_WARN_DESC": "adverte o cliente por infringir as regras",
|
||||
"COMMANDS_WARN_FAIL": "Você não tem os privilégios necessários para advertir",
|
||||
"COMMANDS_WARNCLEAR_DESC": "remove todos os avisos para um cliente",
|
||||
"COMMANDS_WARNCLEAR_SUCCESS": "Todos as advertências foram apagados para",
|
||||
@ -252,7 +252,18 @@
|
||||
"PLUGINS_LOGIN_AUTH": "não está registrado",
|
||||
"PLUGINS_PROFANITY_SETUP_ENABLE": "Habilitar o plugin de anti-palavrão",
|
||||
"PLUGINS_PROFANITY_WARNMSG": "Por favor, não use palavras ofensivas neste servidor",
|
||||
"PLUGINS_PROFANITY_KICKMSG": "Uso excessivo de palavrão, lave a boca da próxima vez"
|
||||
"PLUGINS_PROFANITY_KICKMSG": "Uso excessivo de palavrão, lave a boca da próxima vez",
|
||||
"GLOBAL_DEBUG": "Depuração",
|
||||
"COMMANDS_UNFLAG_DESC": "Remover a sinalização do jogador",
|
||||
"COMMANDS_UNFLAG_FAIL": "Você não pode retirar a sinalização do jogador",
|
||||
"COMMANDS_UNFLAG_NOTFLAGGED": "O jogador não está sinalizado",
|
||||
"COMMANDS_FLAG_ALREADYFLAGGED": "O jogador já está sinalizado",
|
||||
"PLUGINS_STATS_COMMANDS_MOSTPLAYED_TEXT": "Mais jogado",
|
||||
"PLUGINS_STATS_COMMANDS_MOSTPLAYED_DESC": "ver o top 5 de jogadores mais dedicados no servidor",
|
||||
"WEBFRONT_PROFILE_MESSAGES": "Mensagens",
|
||||
"WEBFRONT_CLIENT_META_CONNECTIONS": "Conexões",
|
||||
"PLUGINS_STATS_COMMANDS_TOPSTATS_RATING": "Classificação",
|
||||
"PLUGINS_STATS_COMMANDS_PERFORMANCE": "Desempenho"
|
||||
}
|
||||
}
|
||||
}
|
@ -5,7 +5,7 @@
|
||||
"BROADCAST_OFFLINE": "^5IW4MAdmin ^1ВЫКЛЮЧАЕТСЯ",
|
||||
"BROADCAST_ONLINE": "^5IW4MADMIN ^7сейчас В СЕТИ",
|
||||
"COMMAND_HELP_OPTIONAL": "опционально",
|
||||
"COMMAND_HELP_SYNTAX": "синтаксис:",
|
||||
"COMMAND_HELP_SYNTAX": "Проблема с выражением мысли ( пересмотри слова)",
|
||||
"COMMAND_MISSINGARGS": "Приведено недостаточно аргументов",
|
||||
"COMMAND_NOACCESS": "У вас нет доступа к этой команде",
|
||||
"COMMAND_NOTAUTHORIZED": "Вы не авторизованы для исполнения этой команды",
|
||||
@ -42,8 +42,8 @@
|
||||
"COMMANDS_FIND_MIN": "Пожалуйста, введите хотя бы 3 символа",
|
||||
"COMMANDS_FLAG_DESC": "отметить подозрительного игрока и сообщить администраторам, чтобы присоединились",
|
||||
"COMMANDS_FLAG_FAIL": "Вы не можете ставить отметки",
|
||||
"COMMANDS_FLAG_SUCCESS": "Вы были отмечены",
|
||||
"COMMANDS_FLAG_UNFLAG": "С вас сняли отметку",
|
||||
"COMMANDS_FLAG_SUCCESS": "Вы отметили",
|
||||
"COMMANDS_FLAG_UNFLAG": "Вы сняли отметку",
|
||||
"COMMANDS_HELP_DESC": "перечислить все доступные команды",
|
||||
"COMMANDS_HELP_MOREINFO": "Введите !help <имя команды>, чтобы узнать синтаксис для использования команды",
|
||||
"COMMANDS_HELP_NOTFOUND": "Не удалось найти эту команду",
|
||||
@ -207,7 +207,7 @@
|
||||
"WEBFRONT_CLIENT_META_FALSE": "не",
|
||||
"WEBFRONT_CLIENT_META_JOINED": "Присоединился с именем",
|
||||
"WEBFRONT_CLIENT_META_MASKED": "Замаскирован",
|
||||
"WEBFRONT_CLIENT_META_TRUE": "",
|
||||
"WEBFRONT_CLIENT_META_TRUE": "Это",
|
||||
"WEBFRONT_CLIENT_PRIVILEGED_TITLE": "Игроки с правами",
|
||||
"WEBFRONT_CLIENT_PROFILE_TITLE": "Профиль",
|
||||
"WEBFRONT_CLIENT_SEARCH_MATCHING": "Подходящие игроки",
|
||||
@ -219,8 +219,8 @@
|
||||
"WEBFRONT_ERROR_TITLE": "Ошибка!",
|
||||
"WEBFRONT_HOME_TITLE": "Обзор сервера",
|
||||
"WEBFRONT_NAV_CONSOLE": "Консоль",
|
||||
"WEBFRONT_NAV_DISCORD": "Discord",
|
||||
"WEBFRONT_NAV_HOME": "Домой",
|
||||
"WEBFRONT_NAV_DISCORD": "Дискорд ",
|
||||
"WEBFRONT_NAV_HOME": "Обзор Серверов ",
|
||||
"WEBFRONT_NAV_LOGOUT": "Выйти",
|
||||
"WEBFRONT_NAV_PENALTIES": "Наказания",
|
||||
"WEBFRONT_NAV_PRIVILEGED": "Админы",
|
||||
@ -244,15 +244,26 @@
|
||||
"PLUGIN_STATS_SETUP_ENABLEAC": "Включить серверный античит (только IW4)",
|
||||
"PLUGIN_STATS_ERROR_ADD": "Не удалось добавить сервер в статистику серверов",
|
||||
"PLUGIN_STATS_CHEAT_DETECTED": "Кажется, вы читерите",
|
||||
"PLUGINS_STATS_TEXT_KDR": "Соотношение У/C",
|
||||
"PLUGINS_STATS_TEXT_KDR": "Вот так ..",
|
||||
"PLUGINS_STATS_META_SPM": "Счёт за минуту",
|
||||
"PLUGINS_WELCOME_USERANNOUNCE": "^5{{ClientName}} ^7из ^5{{ClientLocation}}",
|
||||
"PLUGINS_WELCOME_USERWELCOME": "Добро пожаловать, ^5{{ClientName}}^7. Это ваше ^5{{TimesConnected}} ^7подключение по счёту!",
|
||||
"PLUGINS_WELCOME_PRIVANNOUNCE": "{{ClientLevel}} {{ClientName}} присоединился к серверу",
|
||||
"PLUGINS_LOGIN_AUTH": "не вошёл",
|
||||
"PLUGINS_LOGIN_AUTH": "Сперва Подключись",
|
||||
"PLUGINS_PROFANITY_SETUP_ENABLE": "Включить сдерживание ненормативной лексики",
|
||||
"PLUGINS_PROFANITY_WARNMSG": "Пожалуйта, не ругайтесь на этом сервере",
|
||||
"PLUGINS_PROFANITY_KICKMSG": "Чрезмерное употребление ненормативной лексики"
|
||||
"PLUGINS_PROFANITY_KICKMSG": "Чрезмерное употребление ненормативной лексики",
|
||||
"GLOBAL_DEBUG": "Отлаживание ",
|
||||
"COMMANDS_UNFLAG_DESC": "Снять все подозрение с игрока !",
|
||||
"COMMANDS_UNFLAG_FAIL": "Вы не можете снять подозрения..",
|
||||
"COMMANDS_UNFLAG_NOTFLAGGED": "Игрок без подозрения !",
|
||||
"COMMANDS_FLAG_ALREADYFLAGGED": "Игрок помечен ! ",
|
||||
"PLUGINS_STATS_COMMANDS_MOSTPLAYED_TEXT": "Самые популярные",
|
||||
"PLUGINS_STATS_COMMANDS_MOSTPLAYED_DESC": "просмотр 5 лучших игроков на сервере",
|
||||
"WEBFRONT_PROFILE_MESSAGES": "Сообщения",
|
||||
"WEBFRONT_CLIENT_META_CONNECTIONS": "Подключения",
|
||||
"PLUGINS_STATS_COMMANDS_TOPSTATS_RATING": "Рейтинг",
|
||||
"PLUGINS_STATS_COMMANDS_PERFORMANCE": "Эффективность"
|
||||
}
|
||||
}
|
||||
}
|
@ -37,6 +37,7 @@ class Base():
|
||||
client_num += server.clientnum
|
||||
self.history.add_client_history(client_num)
|
||||
self.history.add_instance_history(len(self.instance_list))
|
||||
self.history.add_server_history(len(servers))
|
||||
|
||||
def _remove_staleinstances(self):
|
||||
for key, value in list(self.instance_list.items()):
|
||||
|
@ -5,17 +5,26 @@ class History():
|
||||
def __init__(self):
|
||||
self.client_history = list()
|
||||
self.instance_history = list()
|
||||
self.server_history = list()
|
||||
|
||||
def add_client_history(self, client_num):
|
||||
if len(self.client_history) > 1440:
|
||||
if len(self.client_history) > 2880:
|
||||
self.client_history = self.client_history[1:]
|
||||
self.client_history.append({
|
||||
'count' : client_num,
|
||||
'time' : int(time.time())
|
||||
})
|
||||
|
||||
def add_server_history(self, server_num):
|
||||
if len(self.server_history) > 2880:
|
||||
self.server_history = self.server_history[1:]
|
||||
self.server_history.append({
|
||||
'count' : server_num,
|
||||
'time' : int(time.time())
|
||||
})
|
||||
|
||||
def add_instance_history(self, instance_num):
|
||||
if len(self.instance_history) > 1440:
|
||||
if len(self.instance_history) > 2880:
|
||||
self.instance_history = self.instance_history[1:]
|
||||
self.instance_history.append({
|
||||
'count' : instance_num,
|
||||
|
@ -35,13 +35,15 @@ class HistoryGraph(Resource):
|
||||
|
||||
instance_counts = [history['count'] for history in ctx.history.instance_history][-history_count:]
|
||||
client_counts = [history['count'] for history in ctx.history.client_history][-history_count:]
|
||||
server_counts = [history['count'] for history in ctx.history.server_history][-history_count:]
|
||||
|
||||
graph.add('Client Count', client_counts)
|
||||
graph.add('Instance Count', instance_counts)
|
||||
return { 'message' : graph.render().replace("<title>Pygal</title>", ""),
|
||||
'data_points' : len(instance_count),
|
||||
'instance_count' : 0 if len(instance_counts) is 0 else instance_counts[-1],
|
||||
'client_count' : 0 if len(client_counts) is 0 else client_counts[-1]
|
||||
'client_count' : 0 if len(client_counts) is 0 else client_counts[-1],
|
||||
'server_count' : 0 if len(server_counts) is 0 else server_counts[-1]
|
||||
}, 200
|
||||
except Exception as e:
|
||||
return { 'message' : str(e) }, 500
|
||||
|
@ -12,6 +12,7 @@
|
||||
<figcaption class="float-left">
|
||||
<span class="h4 text-muted">{{instance_count}} instances</span>
|
||||
<span class="h4 text-muted">— {{client_count}} clients</span>
|
||||
<span class="h4 text-muted">— {{server_count}} servers</span>
|
||||
</figcaption>
|
||||
</figure>
|
||||
|
||||
@ -26,7 +27,7 @@
|
||||
<script type="text/javascript" src="http://kozea.github.com/pygal.js/latest/pygal-tooltips.min.js"></script>
|
||||
<script>
|
||||
let dataPoints = {{data_points}};
|
||||
let maxPoints = {{ max_data_points }};
|
||||
let maxPoints = 2880;
|
||||
maxPoints = Math.min(maxPoints, dataPoints);
|
||||
let zoomLevel = Math.floor(maxPoints);
|
||||
let performingZoom = false;
|
||||
|
@ -9,7 +9,7 @@ from master.resources.history_graph import HistoryGraph
|
||||
|
||||
@app.route('/')
|
||||
def home():
|
||||
_history_graph = HistoryGraph().get(500)
|
||||
_history_graph = HistoryGraph().get(2880)
|
||||
return render_template(
|
||||
'index.html',
|
||||
title='API Overview',
|
||||
@ -17,5 +17,5 @@ def home():
|
||||
data_points = _history_graph[0]['data_points'],
|
||||
instance_count = _history_graph[0]['instance_count'],
|
||||
client_count = _history_graph[0]['client_count'],
|
||||
max_data_points = 1440
|
||||
server_count = _history_graph[0]['server_count']
|
||||
)
|
||||
|
@ -278,9 +278,15 @@ namespace IW4MAdmin.Plugins.Stats
|
||||
return String.Join(Environment.NewLine, Commands.TopStats.GetTopStats(s).Result);
|
||||
}
|
||||
|
||||
string mostPlayed(Server s)
|
||||
{
|
||||
return String.Join(Environment.NewLine, Commands.MostPlayed.GetMostPlayed(s).Result);
|
||||
}
|
||||
|
||||
manager.GetMessageTokens().Add(new MessageToken("TOTALKILLS", totalKills));
|
||||
manager.GetMessageTokens().Add(new MessageToken("TOTALPLAYTIME", totalPlayTime));
|
||||
manager.GetMessageTokens().Add(new MessageToken("TOPSTATS", topStats));
|
||||
manager.GetMessageTokens().Add(new MessageToken("MOSTPLAYED", mostPlayed));
|
||||
|
||||
ServerManager = manager;
|
||||
|
||||
|
@ -245,7 +245,7 @@ namespace SharedLibraryCore.RCon
|
||||
goto retrySend;
|
||||
else if (FailedReceives == 4)
|
||||
{
|
||||
Log.WriteError($"Failed to receive data from {socketConnection.RemoteEndPoint} after {FailedReceives} tries");
|
||||
// Log.WriteError($"Failed to receive data from {socketConnection.RemoteEndPoint} after {FailedReceives} tries");
|
||||
}
|
||||
|
||||
if (FailedReceives >= 4)
|
||||
@ -277,7 +277,7 @@ namespace SharedLibraryCore.RCon
|
||||
|
||||
else if (FailedReceives == 4)
|
||||
{
|
||||
Log.WriteError($"Failed to receive data from {socketConnection.RemoteEndPoint} after {FailedReceives} tries");
|
||||
// Log.WriteError($"Failed to receive data from {socketConnection.RemoteEndPoint} after {FailedReceives} tries");
|
||||
}
|
||||
|
||||
if (FailedReceives >= 4)
|
||||
|
@ -168,7 +168,7 @@ namespace SharedLibraryCore.Services
|
||||
.ToListAsync();
|
||||
|
||||
// update all related clients level
|
||||
matchingClients.ForEach(c => c.Level = (client.Level == Objects.Player.Permission.Banned) ?
|
||||
matchingClients.ForEach(c => c.Level = (client.Level == Player.Permission.Banned) ?
|
||||
client.Level : entity.Level);
|
||||
}
|
||||
|
||||
|
@ -5,8 +5,22 @@
|
||||
init()
|
||||
{
|
||||
SetDvarIfUninitialized("sv_customcallbacks", true);
|
||||
SetDvarIfUninitialized("sv_framewaittime", 0.05);
|
||||
SetDvarIfUninitialized("sv_additionalwaittime", 0.05);
|
||||
SetDvarIfUninitialized("sv_maxstoredframes", 3);
|
||||
level thread onPlayerConnect();
|
||||
level waittill("prematch_over");
|
||||
level.callbackPlayerKilled = ::Callback_PlayerKilled;
|
||||
level.callbackPlayerDamage = ::Callback_PlayerDamage;
|
||||
}
|
||||
|
||||
onPlayerConnect(player)
|
||||
{
|
||||
for(;;)
|
||||
{
|
||||
level waittill( "connected", player );
|
||||
player thread waitForFrameThread();
|
||||
}
|
||||
}
|
||||
|
||||
hitLocationToBone(hitloc)
|
||||
@ -52,15 +66,52 @@ hitLocationToBone(hitloc)
|
||||
}
|
||||
}
|
||||
|
||||
VectorScale(vector)
|
||||
waitForFrameThread()
|
||||
{
|
||||
vector[0] = vector[0]*100000;
|
||||
vector[1] = vector[1]*100000;
|
||||
vector[2] = vector[2]*100000;
|
||||
return vector;
|
||||
self endon("disconnect");
|
||||
|
||||
self.currentAnglePosition = 0;
|
||||
self.anglePositions = [];
|
||||
|
||||
for(;;)
|
||||
{
|
||||
self.anglePositions[self.currentAnglePosition] = self getPlayerAngles();
|
||||
wait(getDvarFloat("sv_framewaittime"));
|
||||
self.currentAnglePosition = (self.currentAnglePosition + 1) % getDvarInt("sv_maxstoredframes");
|
||||
}
|
||||
}
|
||||
|
||||
Callback_PlayerKilled( eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon, vDir, sHitLoc, psOffsetTime, deathAnimDuration )
|
||||
waitForAdditionalAngles(logString)
|
||||
{
|
||||
wait(getDvarFloat("sv_additionalwaittime"));
|
||||
|
||||
self.angleSnapshot = [];
|
||||
|
||||
for(i = 0; i < getDvarInt("sv_maxstoredframes"); i++)
|
||||
{
|
||||
self.angleSnapshot[i] = self.anglePositions[i];
|
||||
}
|
||||
|
||||
currentPos = self.currentAnglePosition;
|
||||
anglesStr = "";
|
||||
|
||||
i = 0;
|
||||
|
||||
if (currentPos < getDvarInt("sv_maxstoredframes") - 1)
|
||||
{
|
||||
i = currentPos + 1;
|
||||
}
|
||||
|
||||
while(i != currentPos)
|
||||
{
|
||||
anglesStr += self.angleSnapshot[i] + ":";
|
||||
i = (i + 1) % getDvarInt("sv_maxstoredframes");
|
||||
}
|
||||
|
||||
logPrint(logString + ";" + anglesStr + "\n");
|
||||
}
|
||||
|
||||
Process_Hit(type, attacker, sHitLoc, sMeansOfDeath, iDamage, sWeapon)
|
||||
{
|
||||
victim = self;
|
||||
_attacker = attacker;
|
||||
@ -69,11 +120,27 @@ Callback_PlayerKilled( eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon, vD
|
||||
else if(!isPlayer(attacker) && sMeansOfDeath == "MOD_FALLING")
|
||||
_attacker = victim;
|
||||
|
||||
|
||||
location = victim GetTagOrigin(hitLocationToBone(sHitLoc));
|
||||
isKillstreakKill = !isPlayer(attacker) || isKillstreakWeapon(sWeapon);
|
||||
|
||||
/*BulletTrace(_attacker GetTagOrigin("tag_eye"), VectorScale(anglesToForward(attacker getPlayerAngles())), true, attacker)["entity"]*/
|
||||
logPrint("ScriptKill;" + _attacker.guid + ";" + victim.guid + ";" + _attacker GetTagOrigin("tag_eye") + ";" + location + ";" + iDamage + ";" + sWeapon + ";" + sHitLoc + ";" + sMeansOfDeath + ";" + _attacker getPlayerAngles() + ";" + gettime() + ";" + isKillstreakKill + ";" + _attacker playerADS() + "\n");
|
||||
logLine = "Script" + type + ";" + _attacker.guid + ";" + victim.guid + ";" + _attacker GetTagOrigin("tag_eye") + ";" + location + ";" + iDamage + ";" + sWeapon + ";" + sHitLoc + ";" + sMeansOfDeath + ";" + _attacker getPlayerAngles() + ";" + gettime() + ";" + isKillstreakKill + ";" + _attacker playerADS();
|
||||
attacker thread waitForAdditionalAngles(logLine);
|
||||
}
|
||||
|
||||
Callback_PlayerDamage( eInflictor, attacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, psOffsetTime )
|
||||
{
|
||||
if (level.teamBased && isDefined( attacker ) && ( self != attacker ) && isDefined( attacker.team ) && ( self.pers[ "team" ] == attacker.team ))
|
||||
return;
|
||||
|
||||
if (self.health - iDamage > 0)
|
||||
{
|
||||
self Process_Hit("Damage", attacker, sHitLoc, sMeansOfDeath, iDamage, sWeapon);
|
||||
}
|
||||
self maps\mp\gametypes\_damage::Callback_PlayerDamage(eInflictor, attacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, psOffsetTime );
|
||||
}
|
||||
|
||||
Callback_PlayerKilled( eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon, vDir, sHitLoc, psOffsetTime, deathAnimDuration )
|
||||
{
|
||||
Process_Hit("Kill", attacker, sHitLoc, sMeansOfDeath, iDamage, sWeapon);
|
||||
self maps\mp\gametypes\_damage::Callback_PlayerKilled( eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon, vDir, sHitLoc, psOffsetTime, deathAnimDuration );
|
||||
}
|
@ -8,11 +8,11 @@ CHANGELOG:
|
||||
-added unflag command to more intuitively unflag a client
|
||||
-added multi-line tokens: {{TOPSTATS}} {{MOSTPLAYED}}
|
||||
-able to view linked accounts on webfront via dropdown (privileged only)
|
||||
-multiple privileged accouns are consolidated in the admin list
|
||||
-multiple privileged accounts are consolidated in the admin list
|
||||
-Added IW5m/Pluto IW5, T5m/V2, CoD4, and WaW support
|
||||
-changed event system to use a better pipeline
|
||||
-IW4x anti-cheat further refined
|
||||
-kick and temban required privileges adjusted
|
||||
-kick and tempban required privileges adjusted
|
||||
-fixed issues with RCon responding improperly
|
||||
-improved IW4x frequency of IW4x servers going offline
|
||||
-profanity plugin now kicks players with offensive names (if enabled)
|
||||
|
Loading…
Reference in New Issue
Block a user