14.12.2012, 00:54
Okay, So when someone logs off my server their car disappears... How would I make it so it stays spawned IG and will not disappear till the player logs back in... other way so the car is ALWAYS there.
public OnPlayerDisconnect(playerid, reason) { // Bank Robbery if(BankRobber[playerid]) { new Rob = BankRobber[playerid]-1, string[128]; DisablePlayerCheckpoint(playerid); BankRobbersCount --; format(BankRobbers[Rob], MAX_PLAYER_NAME, ""); DeliverMoney[playerid] = 0; // foreach(Player, i) { if(BankRobber[i] || PlayerInfo[i][pFac] == 1) { if(Rob == 0) TextDrawHideForPlayer(i, Textdraw1); else if(Rob == 1) TextDrawHideForPlayer(i, Textdraw2); else if(Rob == 2) TextDrawHideForPlayer(i, Textdraw3); else if(Rob == 3) TextDrawHideForPlayer(i, Textdraw4); else if(Rob == 4) TextDrawHideForPlayer(i, Textdraw5); } } format(string, sizeof(string), "** %s has disconnected and has failed the robbery. **", RPN(playerid)); SendRobberyMessage(COLOR_LIGHTRED, string); SendCopMessage(COLOR_LIGHTRED, string); BankRobber[playerid] = 0; if(BankRobbersCount == 0) { TextDrawHideForAll(Textdraw0); TextDrawHideForAll(Textdraw1); TextDrawHideForAll(Textdraw2); TextDrawHideForAll(Textdraw3); TextDrawHideForAll(Textdraw4); TextDrawHideForAll(Textdraw5); BankRobbery = 0; RobberyStarted = 0; format(string, sizeof(string), "** The bank robbery has ended, $%d were stolen and $%d were saved. **", TotalStolen*10000, (TotalRobbers*10000-(TotalStolen*10000))); SendClientMessageToAll(COLOR_YELLOW, string); TotalRobbers = 0; new copsonline; foreach(Player, i) { if(IsACop(i)) copsonline++; } foreach(Player, i) { if(IsACop(i)) { new Saved = (TotalRobbers*10000-(TotalStolen*10000)); GiveZaiatMoney(i, Saved/copsonline); format(string, sizeof(string), "** You have received your cut from the saved money. ($%d)", Saved/copsonline); SendClientMessage(i, COLOR_LIME, string); } } } } // Boxing new string[128]; if(Boxing[playerid]) { // Getting other boxer's ID new playerb = -1; foreach(Player, i) { if(Boxing[i] && i != playerid) playerb = i; } if(playerb != -1) { format(string, sizeof(string), "Boxing Ring: The boxing match has ended, %s has won the match.", RPN(playerb)); SendGymMessage(COLOR_WHITE, string); // Putting them out of the ring SetPlayerPos(playerb, 760.9759,4.7187,1000.7084); SetPlayerFacingAngle(playerb, 268.9407); SetPlayerPos(playerid, 760.9759,6.1794,1000.7093); SetPlayerFacingAngle(playerid, 268.9407); // Giving the winner extra skill point new oldj = strval(RPJL(playerb, JOB_BOXER)); PlayerInfo[playerb][pJobSkill][JOB_BOXER] ++; new newj = strval(RPJL(playerb, JOB_BOXER)); if(oldj < newj) { format(string, sizeof(string), "** Your Boxer level is now %d, you can now cause %d more damage. **", newj, (newj*2)-2); SendClientMessage(playerb, COLOR_YELLOW, string); } // SendClientMessage(playerb, COLOR_LIME, " You have won the boxing match."); SendClientMessage(playerid, COLOR_LIGHTRED, " You have lost the boxing match."); // Giving Bids new winner = pBoxer[playerb]; foreach(Player, i) { if(BidBoxer[i] == winner) { new percent, profit; percent = (BidAmount[i]/BoxerBid[winner]) * 100; profit = (percent * BoxerBid[pBoxer[playerid]]) / 100; GiveZaiatMoney(i, BidAmount[i] + profit); format(string, sizeof(string), " You have won $%d from bidding in the match, the money you bid has been returned as well.", profit); SendClientMessage(i, COLOR_LIME, string); } BidAmount[i] = 0; BidBoxer[i] = 0; } for(new w = 0; w < 13; w++) { GiveZaiatWeapon(playerb, PlayerInfo[playerb][pWeapon][w], PlayerInfo[playerb][pWeaponAmmo][w]); } } for(new w = 0; w < 13; w++) { GiveZaiatWeapon(playerid, PlayerInfo[playerid][pWeapon][w], PlayerInfo[playerid][pWeaponAmmo][w]); } // Resetting Values BoxingMatch = 0; Boxer[1] = -1; pBoxer[playerb] = 0; Boxer[2] = -1; pBoxer[playerid] = 0; Boxing[playerb] = 0; Boxing[playerid] = 0; BoxerBid[1] = 0; BoxerBid[2] = 0; if(BoxTime) { TogglePlayerControllable(playerb, 1); KillTimer(BoxTimer); } } // The rest if(IsPlayerLoggedIn(playerid)) {SaveChar(playerid);} switch(reason) { case 0: format(string, sizeof(string), "* %s has left the server. (Timeout)", RPN(playerid)); case 1: format(string, sizeof(string), "* %s has left the server. (Leaving)", RPN(playerid)); case 2: format(string, sizeof(string), "* %s has left the server. (Kicked/Banned)", RPN(playerid)); } SendNearbyMessage(playerid, 10, string, COLOR_YELLOW, COLOR_YELLOW, COLOR_YELLOW, COLOR_YELLOW, COLOR_YELLOW); foreach(Player, i) { if(Specid[i] == playerid) { Spec[i] = 0; Specid[i] = -1; TogglePlayerSpectating(i, 0); SetPlayerVirtualWorld(i, PlayerInfo[playerid][pVW]); SetPlayerInterior(i, PlayerInfo[playerid][pInt]); SetPlayerPos(i, PlayerInfo[playerid][pX], PlayerInfo[playerid][pY], PlayerInfo[playerid][pZ]); SendClientMessage(i, COLOR_WHITE, " You have stopped spectating players."); } } // Clearing AD for(new i=0; i<MAX_ADS; i++) { if(strfind(AD[i], RPN(playerid)) != -1) { format(AD[i], 128, ""); } } // End of Clearing AD ClearChar(playerid); return 1; }