Palonez
бб братки
- Сообщения
- 3,035
- Реакции
- 1,839
Исправил, ошибка обновилась на:5/03/2023 - 13:26:01: [SM] Exception reported: Invalid timer handle 966066f (error 3)
L 05/03/2023 - 13:26:01: [SM] Blaming: Shop_Random_Number_1_1.smx
L 05/03/2023 - 13:26:01: [SM] Call stack trace:
L 05/03/2023 - 13:26:01: [SM] [0] KillTimer
L 05/03/2023 - 13:26:01: [SM] [1] Line 138, D:\Desktop\��� ����������\1.11 scripting\Shop_Random_Number_1_1.sp::KillTimerEx
L 05/03/2023 - 13:26:01: [SM] [2] Line 219, D:\Desktop\��� ����������\1.11 scripting\Shop_Random_Number_1_1.sp::SayСтроки с ошибкой выделилКод:Action KillTimerEx(Handle hTimer) { if(hTimer != INVALID_HANDLE) { KillTimer(hTimer); hTimer = INVALID_HANDLE; } } public void OnConfigsExecuted() { CreateTimer(g_Cvar_fInterval, Timer_Task, _, TIMER_FLAG_NO_MAPCHANGE); } public Action Timer_Task(Handle hTimer) { BuildPath(Path_SM, LogPath, sizeof(LogPath), "logs/SHOP_Number_Random.log"); int k = 0; for(int i = 1; i <= MaxClients; i++) if(IsClientInGame(i) && GetClientTeam(i) > 1) k++; if (k >= g_Cvar_iNumberPlayer) { g_iRandom = GetRandomInt(g_Cvar_iNumbersMin, g_Cvar_iNumbersMax); CPrintToChatAll("%t {red}Я загадал число от {green}%d {red}до {green}%d{red}, отгадай его и получи {green}%d кредитов", "Tag", g_Cvar_iNumbersMin, g_Cvar_iNumbersMax, g_Cvar_iCredits); KillTimerEx(g_hAnswerWaitTimer); g_hAnswerWaitTimer = CreateTimer(g_Cvar_fAnswerTime, Timer_Answer); g_iPosition = 0; } for(int i = 1; i <= MaxClients; ++i) { iLimitCount[i] = g_Cvar_iCountLimit; } CreateTimer(g_Cvar_fInterval, Timer_Task, _, TIMER_FLAG_NO_MAPCHANGE); return Plugin_Stop; } public Action Timer_Answer(Handle hTimer) { CPrintToChatAll("%t Ожидание ответа окончено", "Tag"); g_hAnswerWaitTimer = INVALID_HANDLE; return Plugin_Stop; } public Action Say(int iClient, const char[] command, int iArgs) { if(g_hAnswerWaitTimer != INVALID_HANDLE && iClient && iClient <= MaxClients) { char text[16], yourtext[16]; GetCmdArg(1, text, sizeof(text)); FormatEx(yourtext, sizeof(yourtext), "%d", g_iRandom); if(IsCharNumeric(text[0]) || text[0] == '-') { if(StrEqual(text, yourtext, true) && iLimitCount[iClient] > 0) { ++g_iPosition; Shop_GiveClientCredits(iClient, g_Cvar_iCredits); CPrintToChatAll("%t {green}%N {red} угадал число и получил {green}%d{red} кредитов{default}!", "Tag", iClient, g_Cvar_iCredits); if(g_iPosition >= g_Cvar_iNumberPrizes) { KillTimerEx(g_hAnswerWaitTimer); } } else { if(iLimitCount[iClient] > 0) { --iLimitCount[iClient]; CPrintToChat(iClient, "%t {red}К сожалению это неправильный ответ{default}!", "Tag"); if (iLimitCount[iClient] < g_Cvar_iCountLimit) { CPrintToChat(iClient, "%t {red}У тебя осталось попыток: {green}%d{default}", "Tag", iLimitCount[iClient]); } else { CPrintToChat(iClient, "%t {red}У тебя осталось попыток: {green}%d{default}", "Tag", iLimitCount[iClient]-1); } if (iLimitCount[iClient] == 0) { CPrintToChat(iClient, "%t {red}Попытки закончились{default} ({green}лимит: {red}%d попытки{default})", "Tag", g_Cvar_iCountLimit); } } } } } return Plugin_Continue; }
C-подобный:
if(hTimer != INVALID_HANDLE)
{
KillTimer(hTimer);
hTimer = INVALID_HANDLE;
}
C-подобный:
if(hTimer != null)
{
delete hTimer;
hTimer = null;
}