Тебя не за****о равняться на Y_Less?
Тебя не за****о равняться на Y_Less?
“When you have insomnia, you're never really asleep. And you're really awake.”
“Никогда не указывайте на ошибки, если не знаете, как их исправить.” - Бернард Шоу.
“Если ты способен выдумать что-то, ты можешь и сделать это.” - Уолт Дисней.
“Великие умы обсуждают идеи; средние умы обсуждают события; мелкие умы обсуждают людей.” - Элеонор Рузвельт.
Я тут чуть-чуть не понял, можешь мне пояснить почему
а неPHP код:
#undef MAX_PLAYERS // Раздефайним макрос MAX_PLAYERS
const MAX_PLAYERS = 100; //Объявим константу, равную 100
PHP код:
#undef MAX_PLAYERS // Раздефайним макрос MAX_PLAYERS
#define MAX_PLAYERS 100
Большое количество это сколько?В большинстве случаев оператор switch выигрывает в скорости.
Switch работает быстрее в тех случаях, когда нужно перебрать большое кол-во значений.
Практически половина решений не даст никакой оптимизации ...
Будет работать дольше, чем с MAX_PLAYERS т.к придется вызывать функцию GetMaxPlayers много раз.PHP код:
new Float:health;
for (new i = 0; i < GetMaxPlayers(); i++)
{
if(!IsPlayerConnected(i)) continue; //Если игрок не подключен, то цикл пропустит итерацию
if (GetPlayerHealth(i, health)) SetPlayerHealth(i, health + 10.0);
}
Вот оптимизированный код:
А вообще здесь лучше создать переменную, а при старте сервера читать строку maxplayers из server.cfg.PHP код:
new Float:health;
for (new i, p = GetMaxPlayers(); i != p; i ++)
{
if(!IsPlayerConnected(i)) continue;
GetPlayerHealth(i, health);
SetPlayerHealth(i, health + 10.0);
}
Зачем 2 раза вызывать функцию GetPlayerVehicleID ?PHP код:
if (GetPlayerVehicleID(playerid)) SetVehiclePos(GetPlayerVehicleID(playerid), 0.0, 0.0, 10.0);
PHP код:
new vehicleid = GetPlayerVehicleID(playerid);
if(vehicleid) SetVehiclePos(vehicleid, 0.0, 0.0, 10.0);
Часто сталкивался с таким кодом как:Такой код даже не прокомпилируется без ошибок, да и пример вообще неудачный.PHP код:
new Player[MAX_PLAYERS];
public OnPlayerConnect(playerid)
{
Player[MAX_PLAYERS] += 1;
}
Мои работы:
- [PAWN] [FS] Fix SA-MP bugs
- [PAWN] [FS] Puzzle / Пазл
- [PAWN] [FS] ScreenSaver / Заставка
- [PHP] [Script] Определение статуса Skype
Платное:
Skype: K.amox
Я скажем так, сомневался, что присваивание значении переменной быстрее, чем вызов напрямую. Теперь всё ок, подкорректировал.Зачем 2 раза вызывать функцию GetPlayerVehicleID ?
Простите, писал в браузере, а там легче Copy + Paste чем по 100 раз писать одно и тоже.Player[MAX_PLAYERS] += 1;
Нужно непременно сообщить ОКСувызывать функцию GetMaxPlayers много раз.
Переменная "p" не объявлена.for (new i, p = GetMaxPlayers(); i != p; i ++)
Ну циклы исправлю позже.
Спасибо большое, если будут ещё ошибки - сообщайте.
“When you have insomnia, you're never really asleep. And you're really awake.”
“Никогда не указывайте на ошибки, если не знаете, как их исправить.” - Бернард Шоу.
“Если ты способен выдумать что-то, ты можешь и сделать это.” - Уолт Дисней.
“Великие умы обсуждают идеи; средние умы обсуждают события; мелкие умы обсуждают людей.” - Элеонор Рузвельт.
Вот как-то такСледующая конструкция:
быстрее, чемPHP код:
switch(var)
{
case 40,80,150,160,230,420: return 1;
}
Следующая конструкция:PHP код:
if ( var == 40 || var == 80 || var == 150 || var == 160 || var == 230 || var == 420 ) return 1;
медленнее чемPHP код:
switch(var)
{
case 40..80,150..160,230..420: return 1;
}
Следующая конструкция:PHP код:
if ( var >= 40 && var <= 80 || var >= 150 && var <= 160 || var >= 230 && var <= 420 ) return 1;
одинакова как иPHP код:
switch(var)
{
case 40: return 1;
}
Следующая конструкция:PHP код:
if ( var == 40 ) return 1;
быстрее чемPHP код:
switch(var)
{
case 40..50: return 1;
}
PHP код:
if ( var >= 40 && var <= 50 ) return 1;
“When you have insomnia, you're never really asleep. And you're really awake.”
“Никогда не указывайте на ошибки, если не знаете, как их исправить.” - Бернард Шоу.
“Если ты способен выдумать что-то, ты можешь и сделать это.” - Уолт Дисней.
“Великие умы обсуждают идеи; средние умы обсуждают события; мелкие умы обсуждают людей.” - Элеонор Рузвельт.
Вот он то как раз знает об этом, у него эта функция вызывается 1 раз.Нужно непременно сообщить ОКСу
:facespa:Переменная "p" не объявлена.
Ничто не ограничивает полет мысли программиста так, как компилятор, сцуко!
Если в предложении собеседника различного рода смайлов больше чем слов - однозначно, что этот индивид страдает критической, неизлечимой и при этом прогрессирующей формой долбоебизма © лурка
PAWN Compiler делает то, что вы приказали ему сделать, а не то, что вы хотели, чтобы он сделал..