26.01.2013, 18:27
Hola!amigos tengo una duda,guardar las cuentas en onplayerupdate o en con un timer de 4 o 5 segundos daria lag?desde ya muchas gracias por sus respuestas
|
OnPlayerDisconnect, їpara quй guardar los datos todo el tiempo? Es completamente innecesario, guarda los datos en OnPlayerDisconnect. En caso de que tu GM estй ligado a una base de datos en MySQL y que tenga una web, puedes actualizar los datos una vez que estos cambien y no todo el tiempo innecesariamente, por ejemplo, cuando necesites actualizar muertes y bajas, utiliza OnPlayerDeath, que es cuando esos datos cambian, у, cuando deposita cierto dinero en la cuenta bancaria, actualizas el campo de la tabla cuando el jugador deposite o haga una extracciуn.
|
|
Y si el servidor se cae, їNo se perderнan los datos? Yo creo que sн.
|
public OnGameModeExit()
{
#if defined _foreach_included
foreach(Player, i)
#else
for(new i = 0; i < MAX_PLAYERS; ++i)
if(IsPlayerConnected(i))
#endif
/*aca guardo la cuenta*/
GuardarCuentas(i);//con esto!
KillTimer(TSuciedadVEH);
KillTimer(TSuciedadPJ);
KillTimer(TOrinaPJ);
KillTimer(maintimer);
KillTimer(speedotimer);
KillTimer(savetimer);
KillTimer(burgertimer);
KillTimer(chickentimer);
//TextDrawDestroy(SpeedoBox);
for(new i=0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
OnPlayerDisconnect(i, 1);
}
}
for(new i=1; i < MAX_DVEHICLES; i++)
{
if(VehicleCreated[i])
{
DestroyVehicle(VehicleID[i]);
if(VehicleCreated[i] == VEHICLE_DEALERSHIP)
{
Delete3DTextLabel(VehicleLabel[i]);
}
}
}
for(new i=1; i < MAX_DEALERSHIPS; i++)
{
if(DealershipCreated[i])
{
Delete3DTextLabel(DealershipLabel[i]);
}
}
for(new i=1; i < MAX_FUEL_STATIONS; i++)
{
if(FuelStationCreated[i])
{
Delete3DTextLabel(FuelStationLabel[i]);
}
}
Seifader_OnExit();
TextDrawHideForAll(Textdraw0);
TextDrawDestroy(Textdraw0);
for(new i=0; i<MAX_PLAYERS; i++)
{
TextDrawHideForAll(GPS[i]);
TextDrawDestroy(GPS[i]);
TextDrawHideForAll(iSKmh[i]);
TextDrawDestroy(iSKmh[i]);
TextDrawHideForAll(iSVName[i]);
TextDrawDestroy(iSVName[i]);
}
return 1;
}
|
SetTimer claramente, si lo pones en OnPlayerUpdate, serб como un ataque DDOS.
el SetTimer en OnGameModeInit, cada 10 minutos, o algo asн. Lуgicamente, si cierras el servidor antes de esos 10 minutos, no se guardan. Pero si el servidor estarб hosteado, no habrб ningъn problema. |