Здравствуйте, вот увидел, что многие просят, чтобы им показали " что есть оптимизация кода ". Я сам не такой уж "профессионал же", но всё-таки. Прошу строго не судить, ибо это мой первый урок. :-) Начнём.
Вот у нас есть команда: Code if (strcmp("/mycmd", cmdtext, true, 10) == 0) { SendClientMessage(playerid,-1," Бла-бла-бла "); return 1; } Либо бывают ещё команды такого строения: Code if(strcmp(cmd, "/mycmd2", true) == 0) // если игрок написал /mycmd2 то: { SendClientMessage(playerid,-1," Ыть "); // пишем ему сообщение в чат return 1; // возвращение } А вот ещё вариант этой же команды: Code if(strcmp(cmd, "/mycmd3", true) == 0) return SendClientMessage(playerid,-1," Ыть "); Что же изменилось? Теперь наш код "оптимизирован". Что это значит? Это значит то, что он должен работать чуть быстрее. Разберём подробно: Code if(strcmp(cmd, "/mycmd3", true) == 0) То же условие, оно так и осталось, но зато следующая часть: Code return SendClientMessage(playerid,-1," Ыть "); Что же тут изменилось? Я думаю вы догадались. Теперь она не возвращает "1", а возвращает функцию - SendClientMessage.
Вот ещё пример "не оптимизированной команды". Code if(strcmp(cmd,"/mycmd4",true) == 0) { if(PlayerInfo[playerid][pAdmin] < 4) // Проверка - если " информация о игроке, а именно " pAdmin " меньше 4, то выдаёт сообщение. { if(GetPlayerState(playerid) == 1) // берём состояние игрока, в данном случае " если игрок на ногах" { if(IsPlayerInRangeOfPoint(playerid,5.0,123,321,1822)); { SendClientMessage(playerid,-1,"*{48D1CC}Все условия верны, а именно:{FFFFFF} Вы админ уровнем больше 4."); SendClientMessage(playerid,-1,"Вы стоите на ногах ( О_О )"); SendClientMessage(playerid,-1,"Вы в радиусе зоны действия чего-то :D"); } else { SendClientMessage(playerid,-1,"Вы не админ, больше 4 уровня :("); } } } return 1; } А вот эта же, но "оптимизированная": Code if(strcmp(cmd,"/mycmd4",true) == 0) { if(PlayerInfo[playerid][pAdmin] < 4) return SendClientMessage(playerid,-1,"*Ты не Глав.Админ!"); if(GetPlayerState(playerid) != 1) return SendClientMessage(playerid,-1,"*Ты не пешком "); if(IsPlayerInRangeOfPoint(playerid,5.0,123,321,1822)); { SendClientMessage(playerid,-1,"*{48D1CC}Все условия верны, а именно:{FFFFFF} Вы админ уровнем больше 4."); SendClientMessage(playerid,-1,"Вы стоите на ногах ( О_О )"); SendClientMessage(playerid,-1,"Вы в радиусе зоны действия чего-то :D"); } return 1; }
|
hoalilitwotte