Решил создать тему и постить сюда крутые участки кодов. Начну, пожалуй, с такого:
Почему сервер лагает?
Код
public OnPlayerUpdate(playerid)
{
<...>
for(new i = GetMaxPlayers() - 1; i != -1; i--)
{
<...>
}
<...>
}
Как не надо делать
Код
public OnPlayerUpdate(playerid)
{
<...>
static SPEEDPLAYER[MAX_PLAYERS];
<...>
}
Для тех, кто не понял с первого раза
Код
public OnPlayerText(playerid, text[])
{
<...>
if(realchat)
{
if(gPlayerLogged[playerid] == 0) { return false; }
if(gPlayerLogged[playerid] == 0) { return false; }
<...>
}
<...>
}
Отключаем синхронизацию игрока
Код
public OnPlayerUpdate(playerid)
{
<...>
if(Works[playerid] == true && JobCP[playerid] == 2)
{
if(!GetPlayerAnimationIndex(playerid)) return 0;
<...>
}
<...>
}
Убер-огромное имя юзера
Код
new plname[255];
GetPlayerName(playerid, plname, sizeof(plname));
Расширяем границы возможного
Код
new string[128];
format(string, 256, <...>);
Потерянный аргумент
Код
format(string, 128, "Вы забрали оружие у %s", name, idd);
Ваш кэп
Код
case 2://Бампера
{
new listitems[] = "[0] Cултан\n[1] Элегия\n[2] Flash\n[3] Jester\n[4] Uranus\n[5] Remington\n[6] Бродвей\n[7] Саванна\n[8] Торнадо";
SPD(playerid, 6008, DIALOG_STYLE_LIST, "Спойлеры", listitems, "Выбрать", "<< Назад");
}
Гениальный античит
Код
forward CheckObjects();
public CheckObjects()
{
for(new i = 1; i < 3000; i++)
{
if(i > 2504)//тупо если превышает ваше количество объектов удалять их
{
DestroyDynamicObject(i);
printf("Object ID: %d", i);
}
}
return 1;
}
Загружаем спец.эффекты
Код
public OnPlayerSpawn(playerid)
{
<...>
SetTimer("InfectionLoad",0,0);
SetTimer("InfectionLoad",0,0);
SetTimer("InfectionLoad",0,0);
SetTimer("InfectionLoad",0,0);
SetTimer("InfectionLoad",0,0);
SetTimer("InfectionLoad",0,0);
SetTimer("InfectionLoad",0,0);
SetTimer("InfectionLoad",0,0);
<...>
return 1;
}
По стопам Windows
Код
<...>
if(caller != INVALID_PLAYER_ID)
{
if(caller != INVALID_PLAYER_ID)
{
if(caller != INVALID_PLAYER_ID)
{
<...>
}
<...>
}
<...>
}
<...>