When someone leaves the server - Problem
#1

When a player comes out from the server, player who is next to him see it.
That player when typing a command it comes out for 10 sec.

OnPlayerDisconnect - http://pastebin.com/cA7iY9XZ
or
Код:
public OnPlayerDisconnect(playerid, reason)
{
	new textreason[64];
	new plname[24];
	GetPlayerName(playerid, plname, sizeof(plname));
	new playersip[24];
	GetPlayerIp(playerid, playersip, sizeof(playersip));
	new string2[128];
	SetRealMoney(playerid, ScriptMoney[playerid]);
	if(PlayerInfo[playerid][pAdminDuty] == 1)
	{
		SafeResetPlayerWeapons(playerid);
	}
	if(IsPlayerInAnyVehicle(playerid))
	{
		new Float:health;
		GetVehicleHealth(GetPlayerVehicleID(playerid), health);
		if(health < 450)
		{
			VehicleHealth[GetPlayerVehicleID(playerid)] = 450;
			SetVehicleHealth(GetPlayerVehicleID(playerid), 450.0);
		}
	}
	if(Searching[playerid] == 1)
	{
		RemovePlayerMapIcon(playerid, 500 + playerid);
		Searching[playerid] = 0;
	}
	if(Ronned[playerid] >= 1)
	{
	    KillTimer(RonnTimer[playerid]);
	}

	if(playerid == beingvoted && reason != 2)
	{
	    KillTimer(votetimer1);
	    KillTimer(votetimer2);
	    format(string2,sizeof(string2),"[Glasanje]: %s (%d) se izlogovao, glasanje je zavrseno!",plname,playerid);
	    SendClientMessageToAll(TEAM_GROVE_COLOR,string2);
        votetimer1 = SetTimer("ResetVotation",300000,false);
	}

	if(Tazer[playerid] == 1) { SafeGivePlayerWeapon(playerid, 24, PreTazerAmmo[playerid]); }
	Delete3DTextLabel(DutyLabel[playerid]);
	TextDrawHideForPlayer(playerid, DutyTD);
	Delete3DTextLabel(NovajlijaLabel[playerid]);
	Delete3DTextLabel(AfkLabel[playerid]);
	gActivePlayers[playerid]--;
	numplayers--;
	RemovePlayerMapIcon(playerid, 37 + playerid);
	TextDrawDestroy(InternetTD[playerid]);
	TextDrawDestroy(Textdraw1[playerid]);
	TextDrawDestroy(Textdraw39[playerid]);
	TextDrawDestroy(Textdraw40[playerid]);
	TextDrawDestroy(Textdraw41[playerid]);
	TextDrawDestroy(Textdraw42[playerid]);
	TextDrawDestroy(Textdraw49[playerid]);
	TextDrawDestroy(Textdraw51[playerid]);
	TextDrawDestroy(Textdraw52[playerid]);
	TextDrawDestroy(Textdraw53[playerid]);
	TextDrawDestroy(Textdraw54[playerid]);
	TextDrawDestroy(Textdraw64[playerid]);
	TextDrawDestroy(Textdraw90[playerid]);
	TextDrawDestroy(Textdraw91[playerid]);
	TextDrawDestroy(Textdraw92[playerid]);
	TextDrawDestroy(Textdraw93[playerid]);
	TextDrawDestroy(Textdraw94[playerid]);
	TextDrawDestroy(Textdraw95[playerid]);
	TextDrawDestroy(Zlato[playerid]);
	TextDrawDestroy(Ukupno[playerid]);

	for(new td = 0; td < 17; td++)
	{
		TextDrawHideForPlayer(playerid, UvodTD[td]);
	}
	TextDrawHideForPlayer(playerid, Textdraw75);
	TextDrawHideForPlayer(playerid, Textdraw80);
	TextDrawHideForPlayer(playerid, Textdraw60);
	TextDrawHideForPlayer(playerid, Textdraw61);
	TextDrawHideForPlayer(playerid, Textdraw62);
	TextDrawHideForPlayer(playerid, Textdraw63);
	TextDrawHideForPlayer(playerid, lbt);
	TextDrawHideForPlayer(playerid, lbb);
	KillTimer(InternetTimer[playerid]);
	KillTimer(TrainTimer[playerid]);
	KillTimer(MoneyTimer[playerid]);
	KillTimer(ResetJumpTimer);
	KillTimer(ResetSpeeding[playerid]);
	KillTimer(stopactimer[playerid]);
	KillTimer(forbcartimer[playerid]);
	KillTimer(stopanticheat[playerid]);
	KillTimer(VuciTimer[playerid]);
	KillTimer(RobGymTimer[playerid]);
	KillTimer(RobBankTimer[playerid]);
	KillTimer(PljackaTrafikeTimer[playerid]);
	KillTimer(RobCityHallTimer[playerid]);
	KillTimer(RobDonutTimer[playerid]);
	KillTimer(RobAlhambraTimer[playerid]);
	KillTimer(RobBarTimer[playerid]);
	KillTimer(RobBurgerTimer[playerid]);
	KillTimer(RobCluckinTimer[playerid]);
	KillTimer(RobPizzaTimer[playerid]);
	if(IsPlayerInEVehicle[playerid] != 9999)
	{
	    new i = IsPlayerInEVehicle[playerid];
		Seats[i] --;
	}
	new string[24];
	new d,m,y,h,mi,s;
	getdate(y,m,d);
	gettime(h,mi,s);
	format(string, sizeof(string), "%d/%d/%d at %d:%d:%d",d,m,y,h,mi,s);
	strmid(PlayerInfo[playerid][pLastSeen], string, 0, strlen(string), 255);
	if(reason == 0)
	{
		textreason = "Crashed";
		strmid(PlayerInfo[playerid][pWhyLeft], "Crashed", 0, strlen("Crashed"), 255);
		format(string2, sizeof(string2),"[INFO]: %s je izasao sa Servera. [%s]",plname, textreason);
   		SendAdminMessage(COLOR_GREEN, string2);
	}
	else if(reason == 1)
	{
		textreason = "Leaving";
		strmid(PlayerInfo[playerid][pWhyLeft], "Leaving", 0, strlen("Leaving"), 255);
		format(string2, sizeof(string2),"[INFO]: %s je izasao sa Servera. [%s]",plname, textreason);
   		SendAdminMessage(COLOR_GREEN, string2);
	}
	else if(reason == 2)
	{
		strmid(PlayerInfo[playerid][pWhyLeft], "Kickovan/Banovan", 0, strlen("Kickovan/Banovan"), 255);
	}
	SaveGuns(playerid);
	OnPlayerUpdateEx(playerid);
	if(OfficerCourseStep[playerid] != 255)
	{
	    SafeGivePlayerMoney(playerid, -2500);
	}
	if(OnOfficerTest[playerid] != 0)
	{
	    SafeGivePlayerMoney(playerid, -5000);
	}
	if(ServerRestarted == 0)
	{
	    UpdatePlayerPosition(playerid)
	}
	KillTimer(ChangeNameTimer);

	foreach(Player, i)
	{
	    if(IsPlayerConnected(i))
	    {
	        if(TaxiAccepted[i] < 999)
	        {
		        if(TaxiAccepted[i] == playerid)
		        {
		            TaxiAccepted[i] = 999;
		            GameTextForPlayer(i, "~w~Pozivalac Taxija~n~~r~je napustio igru", 5000, 1);
		            TaxiCallTime[i] = 0;
		            DisablePlayerCheckpoint(i);
		        }
	        }
	        else if(BusAccepted[i] < 999)
	        {
		        if(BusAccepted[i] == playerid)
		        {
		            BusAccepted[i] = 999;
		            GameTextForPlayer(i, "~w~Pozivalac Autobusa~n~~r~je napustio igru", 5000, 1);
		            BusCallTime[i] = 0;
		            DisablePlayerCheckpoint(i);
		        }
	        }
	    }
	}
	if(PlayerInfo[playerid][Admin] >= 1)
	{
		admins --;
		if(AFK[playerid] == 1)
		{
		    afkadmins --;
		}
	}
	KillTimer(DildoTimerReset);
	if(TransportCost[playerid] > 0 && TransportDriver[playerid] < 999)
	{
	    if(IsPlayerConnected(TransportDriver[playerid]))
		{
		    new string5[64];
		    TransportMoney[TransportDriver[playerid]] += TransportCost[playerid];
		    TransportTime[TransportDriver[playerid]] = 0;
		    TransportCost[TransportDriver[playerid]] = 0;
		    format(string5, sizeof(string5), "~w~Passenger left~n~~g~Earned $%d",TransportCost[playerid]);
		    GameTextForPlayer(TransportDriver[playerid], string5, 5000, 1);
		}
	}
	if(GotHit[playerid] > 0)
	{
	    if(GetChased[playerid] < 999)
	    {
	        if(IsPlayerConnected(GetChased[playerid]))
	        {
	        	SCM(GetChased[playerid], COLOR_YELLOW, "Vasa meta je otisla sa servera.");
	            GoChase[GetChased[playerid]] = 999;
			}
	    }
	}
	if(PlayersChannel[playerid] < 999)
	{
		IRCInfo[PlayersChannel[playerid]][iPlayers] -= 1;
	}
	if(HireCar[playerid] != 9999)
	{
		//gLastDriver[HireCar[playerid]] = 300;
		//gCarLock[HireCar[playerid]] = 0;
		UnLockCar(HireCar[playerid]);
		if(reason != 0)
		{
			SetVehicleToRespawn(HireCar[playerid]);
		}
	}
	if(GangCar[playerid] != 512)
	{
		//gLastDriver[GangCar[playerid]] = 520;
		//gCarLock[GangCar[playerid]] = 0;
		UnLockCar(GangCar[playerid]);
	}
	if(gLastCar[playerid] > 0)
	{
		//gLastDriver[gLastCar[playerid]] = 300;
		if(PlayerInfo[playerid][pHouseKey] != gLastCar[playerid]-1)
		{
			//gCarLock[gLastCar[playerid]] = 0;
			UnLockCar(gLastCar[playerid]);
		}
	}
	if(PlayerBoxing[playerid] > 0)
	{
	    if(Bokser1 == playerid)
	    {
	        if(IsPlayerConnected(Bokser2))
	        {
	        	PlayerBoxing[Bokser2] = 0;
	        	SafeSetPlayerPos(Bokser2, 765.8433,3.2924,1000.7186);
	        	SafeSetPlayerInterior(Bokser2, 5);
	        	GameTextForPlayer(Bokser2, "~r~Mec je prekinut", 5000, 1);
			}
	    }
	    else if(Bokser2 == playerid)
	    {
	        if(IsPlayerConnected(Bokser1))
	        {
	        	PlayerBoxing[Bokser1] = 0;
	        	SafeSetPlayerPos(Bokser1, 765.8433,3.2924,1000.7186);
	        	SafeSetPlayerInterior(Bokser1, 5);
	        	GameTextForPlayer(Bokser1, "~r~Mec je prekinut", 5000, 1);
			}
	    }
	    InRing = 0;
     	RoundStarted = 0;
		Bokser1 = 255;
		Bokser2 = 255;
		TBokser = 255;
	}
    if(TransportDuty[playerid] == 1)
	{
		TaxiDrivers -= 1;
	}
    else if(TransportDuty[playerid] == 2)
	{
		BusDrivers -= 1;
	}
	else if(PlayerInfo[playerid][pJob] == 7)
	{
	    if(JobDuty[playerid] == 1) { Mechanics -= 1; }
	}
	else if(PlayerInfo[playerid][pJob] == 17)
	{
		if(JobDuty[playerid] == 1) { PizzaBoys -= 1; }
	}
	if(PlayerInfo[playerid][pRoadblock] != 0)
	{
		RemoveRoadblock(playerid);
	}
	BusrouteEast[playerid][0] = 0;
	BusrouteWest[playerid][0] = 0;
	IsInBus[playerid] = 0;
	KillTimer(SacuvajNalog[playerid]);
	KillTimer(ACTimer[playerid]);
	if(IsBeingSpeced[playerid] == 1)//If the player being spectated, disconnects, then turn off the spec mode for the spectator.
    {
        TogglePlayerSpectating(spectatorid[playerid],0);// This justifies what's above, if it's not off then you'll be either spectating your connect screen, or somewhere in blueberry (I don't know why)
    }
	if(usingcarwash == playerid)
	{
	    SetVehicleToRespawn(GetPlayerVehicleID(playerid));
	    usingcarwash = -1;
	    UpdateDynamic3DTextLabelText(entrancetext, 0x008B00FF, "Niko trenutno ne pere kola.\nCena: $150 (/carwash)");
	}
	if(IDVucenogIgraca[playerid] != 9999)
	{
		new sendername[MAX_PLAYER_NAME];
		GetPlayerName(playerid, sendername, sizeof(sendername));
		format(string2, sizeof(string2), "* %s je napustio server, pusteni ste.", sendername);
		SCM(IDVucenogIgraca[playerid], COLOR_WHITE, string2);
		TogglePlayerControllable(IDVucenogIgraca[playerid], 1);
		Vucen[playerid] = 9999;
	}
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)