Soredmg8841
Участник
- Сообщения
- 6
- Реакции
- 0
Добрый час столкнулся с такой ошибкой!
Исходя из данных записей лога,я понял что нужно искать в файлах OnClientDisconnect.sp ,army_ranks_hud_info.sp. Но я немного не понимаю что нужно сделать,прошу Вашей помощи.
army_ranks_hud_info.sp:
OnClientDisconnect.sp:
PHP:
L 08/09/2018 - 09:36:40: [SM] Exception reported: Invalid timer handle 7d2a05a8 (error 1)
L 08/09/2018 - 09:36:40: [SM] Blaming: army_ranks_hud_info.smx
L 08/09/2018 - 09:36:40: [SM] Call stack trace:
L 08/09/2018 - 09:36:40: [SM] [0] KillTimer
L 08/09/2018 - 09:36:40: [SM] [1] Line 41, E:\WorkSpace\GitHub\ArmyRanks\scripting\army_ranks_hud_info.sp::ARMY_PlayerDisconnect
L 08/09/2018 - 09:36:40: [SM] [3] Call_Finish
L 08/09/2018 - 09:36:40: [SM] [4] Line 8, army/events/OnClientDisconnect.sp::OnClientDisconnect
Исходя из данных записей лога,я понял что нужно искать в файлах OnClientDisconnect.sp ,army_ranks_hud_info.sp. Но я немного не понимаю что нужно сделать,прошу Вашей помощи.
army_ranks_hud_info.sp:
PHP:
new Deaths[MAXPLAYERS+1] = -1;
new NextRankKills[MAXPLAYERS+1] = -1;
public Plugin:myinfo =
{
name = "[ ARMY ] Hud info",
author = "sahapro33",
description = "",
version = "1.1"
}
public OnPluginStart()
{
RegConsoleCmd("sm_hud", cmd);
}
new bool:b_e[66];
public Action:cmd(cl, argcc)
{
b_e[cl] = !b_e[cl];
return Plugin_Handled;
}
public ARMY_PlayerConnect(client, g_sRank[], g_iKills[], g_iDeaths[])
{
if (IsClientInGame(client) && !IsFakeClient(client))
{
if (Hud[client] == INVALID_HANDLE)
{
Hud[client] = CreateTimer(1.0, HudStart, client, TIMER_REPEAT);
}
}
}
public ARMY_PlayerDisconnect(client, g_sRank[], g_iKills[], g_iDeaths[])
{
if (Hud[client] != INVALID_HANDLE)
{
KillTimer(Hud[client]);
Hud[client] = INVALID_HANDLE;
}
sRank[client] = "";
Kills[client] = -1;
Deaths[client] = -1;
sNextRank[client] = "";
NextRankKills[client] = -1;
}
public Action:HudStart(Handle:timer, any:client)
{
if (b_e[client] && IsClientInGame(client) && !IsFakeClient(client))
{
if (IsPlayerAlive(client))
{
decl String:Message[256];
if (!Army_GetStringRank(client, sRank[client]))
{
return Plugin_Stop;
}
if ((Kills[client] = Army_GetClientKills(client)) == -1)return Plugin_Stop;
if ((Deaths[client] = Army_GetClientDeaths(client)) == -1)return Plugin_Stop;
NextRankKills[client] = Army_GetClientNextRankKills(client);
new Handle:hBuffer = StartMessageOne("KeyHintText", client);
BfWriteByte(hBuffer, 1);
if (Army_GetClientStringNextRank(client, sNextRank[client], sizeof(sNextRank[])))
{
Format(Message, sizeof(Message), "Ваше звание - %s\n\nУбийств - %d \nСмертей - %d \n\nСледующее звание - %s\nТребуется убийств - %d ",
sRank[client],
Kills[client],
Deaths[client],
sNextRank[client],
NextRankKills[client] - Kills[client]);
BfWriteString(hBuffer, Message);
EndMessage();
}
else
{
Format(Message, sizeof(Message), "Ваше звание - %s\n\nУбийств - %d\nСмертей - %d\n\nУбрать с экрана sm_hud",
sRank[client],
Kills[client],
Deaths[client]);
BfWriteString(hBuffer, Message);
EndMessage();
}
}
}
else return Plugin_Stop;
return Plugin_Continue;
}
OnClientDisconnect.sp:
PHP:
public OnClientDisconnect(iClient)
{
Call_StartForward(OnPlayerDisconnect);
Call_PushCell(iClient);
Call_PushString(g_sRank[iClient]);
Call_PushCell(g_iKills[iClient]);
Call_PushCell(g_iDeaths[iClient]);
Call_Finish();
if ( g_bLoaded[iClient] )
{
SaveClient(iClient);
g_bLoaded[iClient] = false;
}
}
SaveClient(iClient)
{
if ( g_bLoaded[iClient] )
{
decl String:sQuery[256], String:sName[MAX_NAME_LENGTH*2+1];
GetClientName(iClient, sQuery, sizeof(sQuery));
SQL_EscapeString(g_hSQLdb, sQuery, sName, sizeof(sName));
Format(sQuery, sizeof(sQuery), "UPDATE `army_ranks` SET `kills` = %d, `deaths` = %d, `name` = '%s', `irank` = '%d' WHERE `auth` = '%s'", g_iKills[iClient], g_iDeaths[iClient], sName, (g_iRank[iClient]< GetArraySize(g_hArray_iKills))?g_iRank[iClient]:g_iRank[iClient]-1, g_sAuth[iClient]);
SQL_TQuery(g_hSQLdb, SQLT_OnClientDisconnect, sQuery);
}
}
public SQLT_OnClientDisconnect(Handle:hOwner, Handle:hQuery, const String:sError[], any:iUserId)
{
if ( !hQuery )
{
LogError("SQLT_OnClientDisconnect: %s", sError);
}
}