Здравствуйте форумчане samp-ru.org!
Сейчас я хочу показать вам что такое оптимизация кода!
Я скачивал множество GM и FS с данного сайта, и понял, что далеко не все умеют оптимизировать код!
# 1 с чего я хочу начать, это - массивы
Массивы не когда не должны содержать латинских символов и первый их символ не должен быть числом!
Одномерные массивы:
Код
new massive1[MAX_PLAYERS];
Так как MAX_PLAYERS по умолчанию = 500 это далеко не хороший вариант использовать такой большой массив!
Двумерные массивы:
Код
new massive1[MAX_PLAYERS][47];
Допустим мы храним информацию об оружии игрока. Число weap у нас будет = 47
Тогда получается MAX_PLAYERS = 500 и число оружия = 47 (500*47=23500) Щекотливая цифра правда?
Решение таково:
У многих... а что там говорить? У всех, на сервере не играет 500 игроков, поэтому:
Код
#undef MAX_PLAYERS
const MAX_PLAYERS = 50;// Количество слотов вашего сервера!
Данный код нужно вставить после include <a_samp>
Тем самым мы уменьшаем количество ячеек в массивах!
# 2 это булевые массивы (и все о true и false)
Начну с того о том, что такое булевый массив!
Булевый массив это массив который может быть равным только или 1 или 0
Если у вас есть такие массивы в коде то желательно перед ними добисать такой префикс bool:
Код
new bool:spawnPL[MAX_PLAYERS];
Например у нас есть проверка на спавн!
Код
public OnPlayerSpawn(playerid)
{
spawnPL [playerid]= true;
//тут все остальное...
return 1;
}
В булевых массивах нужно использовать исключительно true и false
И проверки должны быть такими:Код
if(spawnPL [playerid]!= true) return ...
if(spawnPL [playerid]>= false) return ... и тд!
Как вы заметили приводя пример со спавном я в конце паблика написал return 1;
Я заметил, что многие "программисты" утверждают: "Лучше использовать return true; и return false;"
Не слушайте их! Это пустая трата времени, т.к что 1 что true при компиляции в .amx занимают одинаковое кол-во памяти, и в этом нет никакой оптимизации!
Чтобы тема не получилась слишком большой! Сделаю остальное в другой теме! =)