Witam.
Od czasu do czasu na serwerze PB zdarzają się crashe. Podejrzewam, że mają one związek z usuwaniem kulek.
W kodzie znalazlem pewną nieścisłość: kulki nie do końca są usuwane, jedynie ich rozmiar, miejsce i renderowanie jest zmieniane
public paint_reset(ent)
{
remove_task(ent);
ent -= TASK_PB_RESET;
new a, findpb = 1;
while (a++ <= g_pbcount && findpb)
if (g_paintballs[a] == ent)
findpb = g_pbstatus[a] = 0
set_pev(ent, pev_effects, pev(ent, pev_effects) | EF_NODRAW);
engfunc(EngFunc_SetSize, ent, Float:{0.0, 0.0, 0.0}, Float:{0.0, 0.0, 0.0});
set_pev(ent, pev_velocity, Float:{0.0, 0.0, 0.0});
engfunc(EngFunc_SetOrigin, ent, Float:{-2000.0, -2000.0, -2000.0});
if (pev(ent, pev_renderfx) != kRenderFxNone)
set_rendering(ent);
}
Ktoś doradził mi, aby zastosować coś takiego:
public paint_reset(ent)
{
remove_task(ent);
ent -= TASK_PB_RESET;
new a, findpb = 1;
while (a++ <= g_pbcount && findpb)
if (g_paintballs[a] == ent)
findpb = g_pbstatus[a] = 0;
engfunc(EngFunc_RemoveEntity, ent)
}
Niestety po tym, przy pełnym serwerze crashe występują co chwilę (co około 30 sec)
Ma ktoś jeszcze jakieś pomysły?


Dodatki SourceMod














