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. |