SA-MP Forums Archive
Last bit of help - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: Last bit of help (/showthread.php?tid=399342)



Last bit of help - MichaelWharton101 - 14.12.2012

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.


Re: Last bit of help - maramizo - 14.12.2012

Remove all DestroyVehicle under OnPlayerDisconnect callback.
edit:
if you have notepad++, you can copy paste the OnPlayerDisconnect callback into it, then use the following regular expression:

Search for:
(DestroyVehicle.*)
Replace with:
(\2)

Notepad++ is my favorite when it comes to manual work.


Re: Last bit of help - MichaelWharton101 - 14.12.2012

It is not in 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;
}



Re: Last bit of help - maramizo - 14.12.2012

Then you're out of luck, you'd have to search every single DestroyVehicle in the script, then look for the ones that check if the owner of the vehicle is not online.


Re: Last bit of help - MichaelWharton101 - 14.12.2012

I think I got it, I just got no one to test it with atm


Re: Last bit of help - StopFondlinMe - 14.12.2012

I can test it with ya.

Im in your server now.