Написал мини-плагин, изредка лупит ошибку в логи. PHP: #include <sourcemod> #include <zombiereloaded> public OnPluginStart() { HookEvent("player_hurt", Event_OnPlayerHurt); } public Event_OnPlayerHurt(Handle:event, const String:name[], bool:silent) { new attacker = GetClientOfUserId(GetEventInt(event, "attacker")); if (ZR_IsClientHuman(attacker) && attacker > 0) { PrintHintText(attacker, "Осталось хп: %d", GetEventInt(event, "health")); } } Ошибка PHP: L 10/12/2014 - 13:59:47: [SM] Native "ZR_IsClientHuman" reported: Invalid client index. (0) L 10/12/2014 - 13:59:47: [SM] Displaying call stack trace for plugin "showdamage.smx": L 10/12/2014 - 13:59:47: [SM] [0] Line 13, D:\scripting\showdamage.sp::Event_OnPlayerHurt() Как исправить?
Оффтоп AlmazON, :-D pokypka20, в первую очередь нужно проверять валидность индекса, затем уже клиента. И сначала ставь проверки на которых выше вероятность возврата false.
AlmazON, ты меня не так понял, имел ввиду что проверки где больше вероятность того, что проверка не будет пройдена (возврат false) нужно ставить первыми.
Понял, поэтому в кавычках false, а спрашиваю о своём. Есть на этот счёт соображения? Если &&, а в случае || - наоборот!
Я думаю это одно и то же. Вот смотри: PHP: if (!peremennaya) // Если (peremennaya == 0) { //Выполняется код. } // Иначе выполнение переходит сразу на конец тела. if (peremennaya) return; // Если (peremennaya != 0) переходим на конец ф-и //Код. Вот только я не знаю что быстрее == или !=