Whenever i try to restart my server in game using a cmd to restart and save stats of the server, all the dynamic doors are deleted, and i can't restart it from RCON because if i did, All the gates and other stuff are deleted..
Код:
forward Maintenance();
public Maintenance()
{
new string[128];
ABroadCast(COLOR_YELLOW, "{AA3333}Maintenance{FFFF00}: Freezing Accounts...", 1);
foreach(new i: Player)
{
TogglePlayerControllable(i, false);
}
ABroadCast(COLOR_YELLOW, "{AA3333}Maintenance{FFFF00}: Locking Paintball Arenas...", 1);
for(new i = 0; i < MAX_ARENAS; i++)
{
foreach(new p: Player)
{
new arenaid = GetPVarInt(p, "IsInArena");
if(arenaid == i)
{
if(PaintBallArena[arenaid][pbBidMoney] > 0)
{
GivePlayerCash(p,PaintBallArena[GetPVarInt(p, "IsInArena")][pbBidMoney]);
format(string,sizeof(string),"You have been refunded a total of $%d because of premature closure.",PaintBallArena[GetPVarInt(p, "IsInArena")][pbBidMoney]);
SendClientMessageEx(p, COLOR_WHITE, string);
}
if(arenaid == GetPVarInt(p, "ArenaNumber"))
{
switch(PaintBallArena[arenaid][pbGameType])
{
case 1:
{
if(PlayerInfo[p][pDonateRank] < 3)
{
PlayerInfo[p][pPaintTokens] += 3;
format(string,sizeof(string),"You have been refunded a total of %d Paintball Tokens because of premature closure.",3);
SendClientMessageEx(p, COLOR_WHITE, string);
}
}
case 2:
{
if(PlayerInfo[p][pDonateRank] < 3)
{
PlayerInfo[p][pPaintTokens] += 4;
format(string,sizeof(string),"You have been refunded a total of %d Paintball Tokens because of premature closure.",4);
SendClientMessageEx(p, COLOR_WHITE, string);
}
}
case 3:
{
if(PlayerInfo[p][pDonateRank] < 3)
{
PlayerInfo[p][pPaintTokens] += 5;
format(string,sizeof(string),"You have been refunded a total of %d Paintball Tokens because of premature closure.",5);
SendClientMessageEx(p, COLOR_WHITE, string);
}
}
case 4:
{
if(PlayerInfo[p][pDonateRank] < 3)
{
PlayerInfo[p][pPaintTokens] += 5;
format(string,sizeof(string),"You have been refunded a total of %d Paintball Tokens because of premature closure.",5);
SendClientMessageEx(p, COLOR_WHITE, string);
}
}
case 5:
{
if(PlayerInfo[p][pDonateRank] < 3)
{
PlayerInfo[p][pPaintTokens] += 6;
format(string,sizeof(string),"You have been refunded a total of %d Paintball Tokens because of premature closure.",6);
SendClientMessageEx(p, COLOR_WHITE, string);
}
}
}
}
LeavePaintballArena(p, arenaid);
}
}
ResetPaintballArena(i);
PaintBallArena[i][pbLocked] = 2;
}
foreach(new i: Player)
{
GameTextForPlayer(i, "Scheduled Maintenance..", 5000, 5);
}
ABroadCast(COLOR_YELLOW, "{AA3333}Maintenance{FFFF00}: Force Saving Accounts...", 1);
ABroadCast(COLOR_YELLOW, "{AA3333}Maintenance{FFFF00}: Force Saving Houses...", 1);
SaveHouses();
ABroadCast(COLOR_YELLOW, "{AA3333}Maintenance{FFFF00}: Force Saving Dynamic Doors...", 1);
SaveDynamicDoors();
ABroadCast(COLOR_YELLOW, "{AA3333}Maintenance{FFFF00}: Force Saving Map Icons...", 1);
SaveDynamicMapIcons();
ABroadCast(COLOR_YELLOW, "{AA3333}Maintenance{FFFF00}: Force Saving Gates...", 1);
SaveGates();
ABroadCast(COLOR_YELLOW, "{AA3333}Maintenance{FFFF00}: Force Saving Event Points...", 1);
SaveEventPoints();
ABroadCast(COLOR_YELLOW, "{AA3333}Maintenance{FFFF00}: Force Saving Paintball Arenas...", 1);
SavePaintballArenas();
ABroadCast(COLOR_YELLOW, "{AA3333}Maintenance{FFFF00}: Force Saving Server Configuration", 1);
Misc_Save();
ABroadCast(COLOR_YELLOW, "{AA3333}Maintenance{FFFF00}: Force Saving Office Elevator...", 1);
SaveElevatorStuff();
ABroadCast(COLOR_YELLOW, "{AA3333}Maintenance{FFFF00}: Force Saving Mail Boxes...", 1);
SaveMailboxes();
ABroadCast(COLOR_YELLOW, "{AA3333}Maintenance{FFFF00}: Force Saving Plants...", 1);
SavePlants();
ABroadCast(COLOR_YELLOW, "{AA3333}Maintenance{FFFF00}: Force Saving Credits Shops...", 1);
SaveCSHOPs();
ABroadCast(COLOR_YELLOW, "{AA3333}Maintenance{FFFF00}: Force Saving PAYPHONES...", 1);
SavePAYPHONES();
ABroadCast(COLOR_YELLOW, "{AA3333}Maintenance{FFFF00}: Force Saving Speed Cameras...", 1);
SaveSpeedCameras();
if(rflstatus > 0)
{
ABroadCast(COLOR_YELLOW, "{AA3333}Maintenance{FFFF00}: Force Saving RFL Teams...", 1);
SaveRelayForLifeTeams();
}
ABroadCast(COLOR_YELLOW, "{AA3333}Maintenance{FFFF00}: Streamer Plugin Shutting Down...", 1);
DestroyAllDynamicObjects();
DestroyAllDynamic3DTextLabels();
DestroyAllDynamicCPs();
DestroyAllDynamicMapIcons();
DestroyAllDynamicRaceCPs();
DestroyAllDynamicAreas();
SendRconCommand("password asdatasdhwda");
SendRconCommand("hostname Nyakos City Roleplay [Restarting for Maintenance]");
foreach(new i: Player)
{
if(gPlayerLogged{i}) {
SetPVarInt(i, "RestartKick", 1);
// g_mysql_SaveAccount(i);
OnPlayerStatsUpdate(i);
Kick(i);
break; // We only need to save one person at a time.
}
}
SetTimer("FinishMaintenance", 60000, false);
//g_mysql_DumpAccounts();
return 1;
}
Код:
forward FinishMaintenance();
public FinishMaintenance()
{
//ABroadCast(COLOR_YELLOW, "{AA3333}Maintenance{FFFF00}: Force Saving Carrier...", 1);
//SaveCarrier();
ABroadCast(COLOR_YELLOW, "{AA3333}Maintenance{FFFF00}: Force Saving Houses...", 1);
SaveHouses();
ABroadCast(COLOR_YELLOW, "{AA3333}Maintenance{FFFF00}: Force Saving Dynamic Doors...", 1);
SaveDynamicDoors();
ABroadCast(COLOR_YELLOW, "{AA3333}Maintenance{FFFF00}: Force Saving Map Icons...", 1);
SaveDynamicMapIcons();
ABroadCast(COLOR_YELLOW, "{AA3333}Maintenance{FFFF00}: Force Saving Gates...", 1);
SaveGates();
ABroadCast(COLOR_YELLOW, "{AA3333}Maintenance{FFFF00}: Force Saving Event Points...", 1);
SaveEventPoints();
ABroadCast(COLOR_YELLOW, "{AA3333}Maintenance{FFFF00}: Force Saving Paintball Arenas...", 1);
SavePaintballArenas();
ABroadCast(COLOR_YELLOW, "{AA3333}Maintenance{FFFF00}: Force Saving Server Configuration", 1);
Misc_Save();
ABroadCast(COLOR_YELLOW, "{AA3333}Maintenance{FFFF00}: Force Saving Office Elevator...", 1);
SaveElevatorStuff();
ABroadCast(COLOR_YELLOW, "{AA3333}Maintenance{FFFF00}: Force Saving Mail Boxes...", 1);
SaveMailboxes();
ABroadCast(COLOR_YELLOW, "{AA3333}Maintenance{FFFF00}: Force Saving Plants...", 1);
SavePlants();
ABroadCast(COLOR_YELLOW, "{AA3333}Maintenance{FFFF00}: Force Saving Credits Shops...", 1);
SaveCSHOPs();
ABroadCast(COLOR_YELLOW, "{AA3333}Maintenance{FFFF00}: Force Saving PAYPHONES...", 1);
SavePAYPHONES();
ABroadCast(COLOR_YELLOW, "{AA3333}Maintenance{FFFF00}: Force Saving Speed Cameras...", 1);
SaveSpeedCameras();
if(rflstatus > 0) {
ABroadCast(COLOR_YELLOW, "{AA3333}Maintenance{FFFF00}: Force Saving RFL Teams...", 1);
SaveRelayForLifeTeams();
}
ABroadCast(COLOR_YELLOW, "{AA3333}Maintenance{FFFF00}: Streamer Plugin Shutting Down...", 1);
DestroyAllDynamicObjects();
DestroyAllDynamic3DTextLabels();
DestroyAllDynamicCPs();
DestroyAllDynamicMapIcons();
DestroyAllDynamicRaceCPs();
DestroyAllDynamicAreas();
SetTimer("ShutDown", 5000, false);
return 1;
}
forward ShutDown();
public ShutDown()
{
return SendRconCommand("exit");
}
and this is the function to finish the maintenance and turn off the server.