Co do postu wyzej to nie zmienic na:
PHP:
if(exhausted && !player->hasFlag(PlayerFlag_HasNoExhaustion))
{
player->sendCancelMessage(RET_YOUAREEXHAUSTED);
if(isInstant())
player->sendCancelMessage(RET_YOUAREEXHAUSTED);
tylko na:
PHP:
if(exhausted && !player->hasFlag(PlayerFlag_HasNoExhaustion))
{
player->sendCancelMessage(RET_YOUAREEXHAUSTED);
if(isInstant())
return false;
Moze sie myle i kiedy sie tak ustawi to tez 'poffa', ale nie testowalem, a z skryptu co dales wynika, ze wysylasz 2 x do gracza wiadomosc o tresci, ze ma exhaust to jest bez sensu i tylko ram/cpu marnuje.
Co do samych crash to glownie problemem jest brak ram przez jakies bledy w outputmessage.cpp (tak wyniki z update Remere ktory mial usunac ten bug). Caly 'trick' z tymi crash polega na tym, ze jak gracz z jakis przyczyn nie moze odebrac danych od servera to server je jakos w ram zapisuje czy cos, przynajmniej uzycie ram leci baardzo szybko (w testach z 35 mc i 2 gosciami z bot na spam spell udalo mi sie osiagnac +2MB/s ram).
Jak juz pisalem w poscie:
http://otland.net/488592-post4.html
bardzo pomaga zmiana tej opcji (uptime na rl map przy noobkach probojacych crashowac skoczyl z 1-2 h na 50 h) w config (graczy ktorzy widza spam spell bedac offline [goscie wchodza na noob char i daja exit atakujac innego noob char, zeby kicka nie miec] kicka z gry po 500 pakietach czy jakos tak). Oprocz tego to na dedyku miec swap z 10GB i szybko tego nie zapchaja, a samo zapchanie takiego swap nawet na pare GB nie daje lag na ots co juz sprawdzalem (z 100-200 online na war ots).
Zmiana w spell tez jest przydatna, bo moze XX KB ram/gracz/na sekunde zaoszczedzic jak ktos z bot spamuje.
Ja mam uptime ots po 80-150 godzin (co tyle robie update/restart, zeby samo nie crashowalo - nie bylo cofki) majac 150-200 online codziennie wieczorem. Jest to warots, a nie jakis rpg gdzie polowa stoi i nic nie robi.