[Ajuda] Quando o player morre
#1

Como faзo para que quando o player morrer, ele fique 3 minutos no chгo sem dar spawn, e depois destes 3 minutos ele da spawn
Reply
#2

Use SetTimerEx.
Reply
#3

Quando ele morrer, usa GetPlayerPos. Depois serб chamada a public OnPlayerSpawn, entгo vocк seta a posiзгo do jogador e poe o SetTimerEx.
Reply
#4

Como? Desculpe =/
Code:
public OnPlayerDeath(playerid, killerid, reason)
{
    PlayerInfo[killerid][pKills] += 1;
    new string[128];
	new name[MAX_PLAYER_NAME];
	new name2[MAX_PLAYER_NAME];
	new deathreason[20];
	new y, m, d;
	new h,mi,s;
	getdate(y,m,d);
	gettime(h,mi,s);
	GetPlayerName(playerid, name, sizeof(name));
	GetPlayerName(killerid, name2, sizeof(name2));
	if(ProvocoMorro[playerid] == 1)
	{
		GangZoneStopFlashForAll(GZMorro);
		GangZoneShowForAll(GZMorro, 0xFF66FFAA);
		GuerranoMorro = 0;
		ProvocoMorro[playerid] = 0;
		donomorro = 0;
		Dominando[playerid] = 0;
		KillTimer(TempoGuerraMorro);
	}
	if(ProvocoParque[playerid] == 1)
		{
			GangZoneStopFlashForAll(GZParque);
			GangZoneShowForAll(GZParque, 0xFF66FFAA);
			GuerranoParque = 0;
			ProvocoParque[playerid] = 0;
			donoparque = 0;
			Dominando[playerid] = 0;
			KillTimer(TempoGuerraParque);
 		}
    if(ProvocoShop[playerid] == 1)
		{
			GangZoneStopFlashForAll(GZShop);
			GangZoneShowForAll(GZShop, 0xFF66FFAA);
			GuerranoShop = 0;
			ProvocoShop[playerid] = 0;
			donoshop = 0;
			Dominando[playerid] = 0;
			KillTimer(TempoGuerraShop);
 		}
	if(killerid != INVALID_PLAYER_ID)
	{
		if(GetPlayerWeapon(killerid) != reason)
		{
		    if(AntiFakeKill == 1)
		    {
		        if(FakeKillWarns[playerid] == 4)
				{
					format(string, sizeof(string), "%s (%d), Foi kickado Pelo Anticheat Need_Ziinho Por Possivel Hack De Fake Death.", name, playerid);
					SendClientMessageToAll(COLOR_NICERED, string);
					SendClientMessage(playerid,COLOR_LIGHTBLUE, "Vocк Foi Kickado Pelo Anticheater Por Possнvel Fake Death.");
					format(string,sizeof(string), "(%d/%d/%d)[%d:%d:%d] Anticheat Kickou %s for: Fake Death hacks.",d,m,y,h,mi,s,name);
					KickLog(string);
					format(string,sizeof(string), "(%d/%d/%d)[%d:%d:%d] Kickado Pelo Anticheat - Hack De Fake Death.",d,m,y,h,mi,s,name);
					AddPunishment(playerid, string);
					Kick(playerid);
				}
				format(string, sizeof(string), "[Server]: %s (%d) Estб Possivelmente Usando Hack De Fake Death; Cheque Ele Imediatamente!!", name, playerid);
				SendAdminMessage(COLOR_YELLOW, string);
				PlayerSuspicious[playerid] = 1;
				PlayerFakeDeathHacking[playerid] = 1;
				PlayerGotSpottedRecently[playerid] = 1;
				FakeKillWarns[playerid] ++;
				SetTimerEx("ResetAcWarn", 300000, 0, "i", playerid);
			}
		}
	}
	if(GetPlayerState(killerid) == PLAYER_STATE_DRIVER)
	{
	    if(AntiDriveBy == 1)
	    {
	        PlayerInfo[killerid][pWarns] ++;
		    if(PlayerInfo[playerid][pWarns] == 3)
			{
		        format(string, sizeof(string), "%s (%d), Foi Kickado Pelo Anticheat Need_Ziinho Por Drive-By Excessivo.", name2, killerid);
				SendClientMessageToAll(COLOR_NICERED, string);
				SendClientMessage(killerid,COLOR_LIGHTBLUE, "Vocк Foi Kickado Pelo Anticheat Por Fazer Drive-By Excessivo");
				format(string,sizeof(string), "(%d/%d/%d)[%d:%d:%d] Anticheat Kickou %s Por: Drive-By Excessivo",d,m,y,h,mi,s,name2);
				KickLog(string);
				Kick(killerid);
			}
			else
			{
			    format(string, sizeof(string), "%s (%d), Cometeu Drive-By em %s.", name2, killerid, name);
				SendClientMessageToAll(COLOR_NICERED, string);
				SendClientMessage(killerid,COLOR_LIGHTBLUE, "Vocк Foi Avisado Pelo Anticheat Por Fazer Drive-By Excessivo");
				format(string, sizeof(string), "[Server]: %s Matou Alguйm Com Drive-By; O Jogador Foi Advertido.", name2);
				SendAdminMessage(COLOR_YELLOW, string);
				format(string,sizeof(string), "(%d/%d/%d)[%d:%d:%d] Advertido Pelo Anticheat - Motivo: Drive-By Excessivo.",d,m,y,h,mi,s);
				AddPunishment(killerid, string);
			}
		}
	}
	if(killerid != INVALID_PLAYER_ID)
	{
	    if(reason == 0) { deathreason = "Arma Branca"; }
	    else if(reason == 36 || reason == 35 || reason == 40 || reason == 16) { deathreason = "Explosгo"; }
	    else if(reason == 18 || reason == 37) { deathreason = "Fogo"; }
	    else if(reason == 51) { deathreason = "Explosгo"; }
	    else if(reason == 50) { deathreason = "Drive-By"; }
	    else { GetWeaponName(reason, deathreason, sizeof(deathreason)); }
	    format(string, sizeof(string),"[INFO]: %s (%d) Foi Morto Por %s (%d) - %s", name,playerid,name2,killerid,deathreason);
	    SendAdminMessage(COLOR_GREEN, string);
	}
	else
	{
	    new text[30];
	    if(reason == 51) { text = "Explosгo"; }
	    else if(reason == 53) { text = "Afogado"; }
	    else if(reason == 54) { text = "Colisгo"; }
	    else { text = "Morte"; }
	    format(string, sizeof(string),"[INFO]: %s (%d) Morreu. (%s)",name,playerid, text);
	    SendAdminMessage(COLOR_GREEN, string);
	}
	new playercash;
	new victimteam = gTeam[playerid];
	new Float:px,Float:py,Float:pz;
	new killerteam = gTeam[killerid];
	ScriptMoneyUpdated[playerid] = 1;
	TextDrawHideForPlayer(playerid, Textdraw39[playerid]);
	TextDrawHideForPlayer(playerid, Textdraw40[playerid]);
	gPlayerSpawned[playerid] = 0;
	if(PlayerInfo[playerid][pAdminDuty] >= 1) { PlayerInfo[playerid][pAdminDuty] = 0; }
	GetPlayerPos(playerid, px, py, pz);

	if(gPlayerUsingLoopingAnim[playerid])
	{
        gPlayerUsingLoopingAnim[playerid] = 0;
        TextDrawHideForPlayer(playerid,txtAnimHelper);
	}
	if(WantedPoints[playerid] > 0)
	{
	    new dstring[128];
		new wanted = WantedPoints[playerid];
		new diecash = 0;
    	while(WantedPoints[playerid] > 0)
	    {
	        diecash += 500;
	        WantedPoints[playerid] --;
	    }
	    format(dstring, sizeof(dstring), "Vocк Perdeu R$%d por morrer com %d Pontos De Procurado.", diecash, wanted);
	    SendClientMessage(playerid, COLOR_YELLOW, dstring);
	    SafeGivePlayerMoney(playerid, - diecash);
	    PlayerInfo[playerid][pWantedDeaths] += 1;
	}
	if(PlayerOnMission[playerid] > 0)
	{
		GameTextForPlayer(playerid, "~r~Missao Falhada", 5000, 3);
		PlayerOnMission[playerid] = 0;
	    PlayerInfo[playerid][pMissionNr] = 0;
	}
	WantedPoints[playerid] = 0;
	WantedLevel[playerid] = 0;
	if(PlayerInfo[playerid][pVIP] == 2) {SetPlayerHealth(playerid, 100.0); }
	else if(PlayerInfo[playerid][pVIP] == 3) {SetPlayerHealth(playerid, 100.0); SetPlayerArmour(playerid, 100.0); }
	else { SetPlayerHealth(playerid, 50.0+PlayerInfo[playerid][pSHealth]); }
	MedicBill[playerid] = 1;
	gPlayerSpawned[playerid] = 1;
	SafeTime[playerid] = 60;
	Checked[playerid] = 1;
	PlayerGotSpottedRecently[playerid] = 1;
	SetTimerEx("ResetAcWarn",20000,false, "i", playerid);
	if(killerid != 255)
	{
		if(GetPlayerState(killerid) == 2)
		{
		    if(ProxDetectorS(20, killerid, playerid))
		    {
		        if(!IsPlayerInAnyVehicle(playerid))
		        {
					if(PlayerInfo[killerid][pMember] == 1||PlayerInfo[killerid][pLeader] == 1||PlayerInfo[killerid][pMember] == 2||PlayerInfo[killerid][pLeader] ==2)
		    		{
		    		    SendClientMessage(killerid, COLOR_YELLOW, "Esta foi uma morte com Drive-By, nгo abuse!");
						return 1;
					}
					SetPlayerCriminal(killerid,255,"Homicнdio");
					return 1;
				}
			}
		}
	}
	if (reason == 22)
	{
		if (PlayerInfo[killerid][pPistSkill] >= 0 && PlayerInfo[killerid][pPistSkill] <= 1000)
		{
		    PlayerInfo[killerid][pPistSkill] += 2;
		    SetPlayerSkills(killerid);
		}
	}
	if (reason == 23)
	{
		if (PlayerInfo[killerid][pSilenSkill] >= 0 && PlayerInfo[killerid][pSilenSkill] <= 1000)
		{
		    PlayerInfo[killerid][pSilenSkill] += 2;
		    SetPlayerSkills(killerid);
		}
		if (PlayerInfo[killerid][pAchievement0] == 0)
		{
		    ShowPlayerDialog(killerid,500,DIALOG_STYLE_MSGBOX,"Conquistas:\n Morte Silenciosa (0)","Parabens, Vocк Completou a Conquista 'Morte Silenciosa' \n Vocк Ganhou 200R$ e 50+ de Skill!","Ok","Cancelar");
			PlayerInfo[killerid][pSilenSkill] += 50;
			SafeGivePlayerMoney(killerid,200);
			PlayerInfo[playerid][pAchievement0] = 0;
		}
	}
	if (reason == 24)
	{
		if (PlayerInfo[killerid][pDesertSkill] >= 0 && PlayerInfo[killerid][pDesertSkill] <= 1000)
		{
		    PlayerInfo[killerid][pDesertSkill] += 2;
		    SetPlayerSkills(killerid);
		}
	}

	if (reason == 25)
	{
		if (PlayerInfo[killerid][pShotgSkill] >= 0 && PlayerInfo[killerid][pShotgSkill] <= 1000)
		{
		    PlayerInfo[killerid][pShotgSkill] += 2;
		    SetPlayerSkills(killerid);
		}
	}
	if (reason == 26)
	{
		if (PlayerInfo[killerid][pSawnSkill] >= 0 && PlayerInfo[killerid][pSawnSkill] <= 800)
		{
		    PlayerInfo[killerid][pSawnSkill] += 2;
		    SetPlayerSkills(killerid);
		}
	}
	if (reason == 27)
	{
		if (PlayerInfo[killerid][pCombSkill] >= 0 && PlayerInfo[killerid][pCombSkill] <= 1000)
		{
		    PlayerInfo[killerid][pCombSkill] += 2;
		    SetPlayerSkills(killerid);
		}
	}

	if (reason == 28 || reason == 32)
	{
		if (PlayerInfo[killerid][pUziSkill] >= 0 && PlayerInfo[killerid][pUziSkill] <= 800)
		{
		    PlayerInfo[killerid][pUziSkill] += 2;
		    SetPlayerSkills(killerid);
		}
	}

	if (reason == 29)
	{
		if (PlayerInfo[killerid][pSmgSkill] >= 0 && PlayerInfo[killerid][pSmgSkill] <= 1000)
		{
		    PlayerInfo[killerid][pSmgSkill] += 2;
		    SetPlayerSkills(killerid);
		}
	}

	if (reason == 30)
	{
		if (PlayerInfo[killerid][pAkSkill] >= 0 && PlayerInfo[killerid][pAkSkill] <= 1000)
		{
		    PlayerInfo[killerid][pAkSkill] += 2;
		    SetPlayerSkills(killerid);
		}
	}

	if (reason == 31)
	{
		if (PlayerInfo[killerid][pM4Skill] >= 0 && PlayerInfo[killerid][pM4Skill] <= 1000)
		{
		    PlayerInfo[killerid][pM4Skill] += 2;
		    SetPlayerSkills(killerid);
		}
	}


	if (gPlayerCheckpointStatus[playerid] > 4 && gPlayerCheckpointStatus[playerid] < 11)
	{
		DisablePlayerCheckpoint(playerid);
		gPlayerCheckpointStatus[playerid] = CHECKPOINT_NONE;
	}
	new caller = Mobile[playerid];
	if(caller != 255)
	{
		if(caller < 255)
		{
			SendClientMessage(caller,  COLOR_GRAD2, "** A Ligaзгo Caiu....");
			CellTime[caller] = 0;
			CellTime[playerid] = 0;
			Mobile[caller] = 255;
		}
		Mobile[playerid] = 255;
		CellTime[playerid] = 0;
	}
	ClearCrime(playerid);
	if(GettingCK[playerid] < 999)
	{
	    if(IsPlayerConnected(killerid))
	    {
	        if(OnCK[killerid] < 999)
	        {
	            new killer[MAX_PLAYER_NAME];
	            new dier[MAX_PLAYER_NAME];
	            GetPlayerName(playerid, dier, sizeof(dier));
				GetPlayerName(killerid, killer, sizeof(killer));
	            format(string, sizeof(string), "* %s Executou um Character Kill em vocк, vocк nгo pode mais capaz de jogar com este personagem.",killer);
	            SendClientMessage(playerid, COLOR_LIGHTRED, string);
	            format(string, sizeof(string), "** %s Executou Character Killed Em %s **",killer,dier);
	            CKLog(string);
	            BroadCast(COLOR_LIGHTRED, string);
	            PlayerInfo[playerid][pCK] = 1;
	            if(GettingCK[playerid] < 999) { GettingCK[playerid] = 999; }
	            else if(OnCK[playerid] < 999) { OnCK[playerid] = 999; }
	            if(GettingCK[killerid] < 999) { GettingCK[killerid] = 999; }
	            else if(OnCK[killerid] < 999) { OnCK[killerid] = 999; }
	            KickPlayer[playerid] = 1;
	        }
	    }
	}
	if(PlayerInfo[playerid][pHeadValue] > 0)
	{
	    if(IsPlayerConnected(killerid))
	    {
		    if(gTeam[killerid] == 10 || PlayerInfo[killerid][pLeader] == 8)
		    {
		        if(GoChase[killerid] == playerid)
		        {
		            //ConsumingMoney[killerid] = 1;
					new killer[MAX_PLAYER_NAME];
					GetPlayerName(killerid, killer, sizeof(killer));
					SafeGivePlayerMoney(killerid, PlayerInfo[playerid][pHeadValue]);
					format(string,128,"<< Killer %s completou o contrato em %s e coletou R$%d >>",killer,name,PlayerInfo[playerid][pHeadValue]);
					SendFamilyMessage(8, COLOR_YELLOW, string);
					PlayerInfo[playerid][pHeadValue] = 0;
					GotHit[playerid] = 0;
					GetChased[playerid] = 999;
					GoChase[killerid] = 999;
				}
			}
		}
	}
	if(victimteam >= 4)
	{
	    if(IsPlayerConnected(killerid))
	    {
			//new killer[MAX_PLAYER_NAME];
			//GetPlayerName(killerid, killer, sizeof(killer));
			new slice = 100; //R$100
			playercash = GetPlayerMoney(playerid);
			if(gTeam[killerid] != 2) { WantedPoints[killerid] += 2; } //+ 2 wanted points
			if(SafeTime[playerid] <= 0)
			{
				if(gTeam[killerid] != gTeam[playerid])
				{
					if(GetPlayerState(killerid) == 1)
					{
						PlayerInfo[killerid][pKills] = PlayerInfo[killerid][pKills] + 2;
					}
					else
					{
						PlayerInfo[killerid][pKills]++;
					}
					PlayerInfo[playerid][pKills]--;
				}
			}
			/*if (strlen(deathreason) > 0)// patch
			{
				if (((gTeam[killerid]) == 1) || ((gTeam[killerid]) == 3 && civnokill) || gTeam[killerid] == gTeam[playerid])//med kill criminal
				{
					format(string, sizeof(string), ".: %s murdered %s. (%s) :.", killer, name, deathreason);
				}
				else
				{
					format(string, sizeof(string), ".: %s murdered %s. (%s) for R$%d :.", killer, name, deathreason, slice);
				}

			}
			else
			{
				if (((gTeam[killerid]) == 1) || ((gTeam[killerid]) == 3 && civnokill || gTeam[killerid] == gTeam[playerid]))
				{
					format(string, sizeof(string), ".: %s murdered %s :.", killer, name);
				}
				else
				{
					format(string, sizeof(string), ".: %s murdered %s for R$%d :.", killer, name, slice);
				}
			}*/
			if (((gTeam[killerid]) == 1) || ((gTeam[killerid]) == 3 && civnokill) || (gTeam[killerid] == gTeam[playerid] && gTeam[playerid] != 4))
			{
				slice = 0;
			}
			if (((gTeam[killerid]) != 4) && ((gTeam[killerid]) == gTeam[playerid]))//no team kill
			{
				slice = 0;
			}
			if (playercash > 0)
			{
				SafeGivePlayerMoney(playerid, -slice);
			}
			else
			{
				slice = slice+500;
			}
			//SafeGivePlayerMoney(killerid, slice);
			//GameTextForPlayer(playerid, dmessage, 5000, 2);
			PlayerPlaySound(killerid, 1083, 0.0, 0.0, 0.0);
			if (((gTeam[killerid]) == 3) && reason != 49)
			{
				SetPlayerCriminal(killerid,255, "Homicнdio De Primeiro Grau");
			}
			else if (((gTeam[killerid]) == 3) && reason == 49)
			{
				SetPlayerCriminal(killerid,255, "Atropelamento");
			}
		}
	}
	else if (victimteam == 2)
	{
	    if(IsPlayerConnected(killerid))
	    {
			//new killer[MAX_PLAYER_NAME];
			//GetPlayerName(killerid, killer, sizeof(killer));
			// Cop kill
			PlayerInfo[playerid][pKills]--;
			if (gTeam[killerid] == 2)//cops kill cop
			{
				//format(string,128,".: Officer %s murdered Officer %s (%s) and was sued for R$%d :.",killer,name,deathreason,suecost);
				PlayerPlaySound(killerid, 1084, 0.0, 0.0, 0.0);
				SafeGivePlayerMoney(killerid, -suecost);
				SafeGivePlayerMoney(playerid, suecost+100);//+100pays hospital bill
			}
			else
			{
				//format(string,128,".: %s murdered Officer %s (%s) :.",killer,name,deathreason);
		    }
			if (gTeam[killerid] >= 3)
			{
			    WantedPoints[killerid] += 2; //+ 2 wanted points
				if(reason != 49)
				{
					SetPlayerCriminal(killerid,255, "Homicнdio De Primeiro Grau");
				}
				else if (reason == 49)
				{
					SetPlayerCriminal(killerid,255, "Atropelamento");
				}
			}
			if(gTeam[killerid] >= 5 && SafeTime[playerid] <= 0)
			{
				if(GetPlayerState(killerid) == 1)
				{
					PlayerInfo[killerid][pKills] = PlayerInfo[killerid][pKills]+2;
				}
				else
				{
					PlayerInfo[killerid][pKills]++;
				}
				WantedPoints[killerid]+=2;
			}
			//BroadCast(COLOR_RED, string);
		}
	}
	else if (victimteam == 3)
	{
	    if(IsPlayerConnected(killerid))
	    {
			//new killer[MAX_PLAYER_NAME];
			//GetPlayerName(killerid, killer, sizeof(killer));
			// Civ kill
			if ((gTeam[killerid]) == 2)//cops kill civ
			{
			    if(WantedLevel[playerid] < 1)
			    {
					//format(string,128,".: Officer %s murdered %s (%s) and was sued for R$%d :.",killer,name,deathreason,suecost);
					PlayerPlaySound(killerid, 1084, 0.0, 0.0, 0.0);
					SafeGivePlayerMoney(killerid, -suecost);
					SafeGivePlayerMoney(playerid, suecost+10);//+100pays hospital bill
				}
			}
			else
			{
				//format(string,128,".: %s murdered %s (%s) :.",killer,name,deathreason);
				WantedPoints[killerid] += 2;
		    }
			if (((gTeam[killerid]) >= 3 || (gTeam[killerid]) == 1) && reason != 49)
			{
				SetPlayerCriminal(killerid,255, "Homicнdio De Primeiro Grau");
			}
			else if (((gTeam[killerid]) >= 3 || (gTeam[killerid]) == 1) && reason == 49)
			{
				SetPlayerCriminal(killerid,255, "Atropelamento");
			}
		    //BroadCast(COLOR_RED, string);
		}
	}
	else if (victimteam == 1)
	{
	    if(IsPlayerConnected(killerid))
	    {
			//new killer[MAX_PLAYER_NAME];
			//GetPlayerName(killerid, killer, sizeof(killer));
			// Civ kill
			if ((gTeam[killerid]) == 2)//cops kill civ
			{
				//format(string,128,".: Officer %s murdered Paramedic %s (%s) and was sued for R$%d :.",killer,name,deathreason,suecost);
				PlayerPlaySound(killerid, 1084, 0.0, 0.0, 0.0);
				SafeGivePlayerMoney(killerid, -suecost);
				SafeGivePlayerMoney(playerid, suecost+10);//+100pays hospital bill
			}
			else if ((gTeam[killerid]) == 1)//med kill civ
			{
				//format(string,128,".: Paramedic %s murdered %s (%s) and was sued for R$%d :.",killer,name,deathreason,suecost);
				PlayerPlaySound(killerid, 1084, 0.0, 0.0, 0.0);
				SafeGivePlayerMoney(killerid, -suecost);
				SafeGivePlayerMoney(playerid, suecost+10);//+100pays hospital bill
			}
			else
			{
				//format(string,128,".: %s murdered %s (%s) :.",killer,name,deathreason);
		    }
			if (((gTeam[killerid]) == 4) && reason != 49)
			{
				SetPlayerCriminal(killerid,255, "Homicнdio De Primeiro Grau");
			}
			else if (((gTeam[killerid]) == 3) && reason == 49)
			{
				SetPlayerCriminal(killerid,255, "Atropelamento");
			}
		    //BroadCast(COLOR_RED, string);
		}
	}
	if (victimteam >= 3 && WantedPoints[playerid] > 0 && killerteam == 2)
	{
	    SetPlayerFree(playerid,killerid, "Foi Morto");
	}
	if (BusrouteEast[playerid][0] != 0 || BusrouteWest[playerid][0] != 0)
	{
		if (BusrouteEast[playerid][0] != 0) BusrouteEnd(playerid, BusrouteEast[playerid][1]);
		else if (BusrouteWest[playerid][0] != 0) BusrouteEnd(playerid, BusrouteWest[playerid][1]);
		else BusrouteEnd(playerid, 0);
	}
	if(FarmerVar[playerid] != 0)
	{
	    FarmerVar[playerid] = 0;
	    DisablePlayerCheckpoint(playerid);
	}
	if(DrugFarmerVar[playerid] != 0)
	{
		DrugFarmerVar[playerid] = 0;
		DisablePlayerCheckpoint(playerid);
	}
	if(SmugglerWork[playerid] != 0)
	{
	    SmugglerWork[playerid] = 0;
	    DisablePlayerCheckpoint(playerid);
	}
	killerid = INVALID_PLAYER_ID;
	SetRealMoney(playerid, ScriptMoney[playerid]);
	SetPlayerColor(playerid,0xBBBBBB00);
    SafeResetPlayerWeapons(playerid);
	return 1;
}
Reply
#5

Coloque isso no topo do gm onde estгo as new's e forward's.

pawn Code:
new sP[4];
forward MerreuAbestado(playerid);
Copie e cole o contйudo desta public OnPlayerSpawn \/ na do seu gm (Cole no topo!)

pawn Code:
public OnPlayerSpawn(playerid) // Quando o player spawna
{
    SetTimerEx("MerreuAbestado", 60000*3, false, "i", playerid); // lanзa um timer de 3 min e...
    TogglePlayerControllable(playerid, 1); // Congela o player e ..
    SetPlayerPos(playerid, sP[0], sP[1], sP[2]); // Seta o player no local em que morreu
    SetPlayerFacingAngle(playerid, sP[3]); // e seta o angulo do rosto dele
    return 1;
}
Copie e cole no fim do gm

pawn Code:
public MerreuAbestado(playerid) // Quando o timer de 3 minutos acabar...
{
    TogglePlayerControllable(playerid, 0); // Descongela o player
    return 1;
}
pawn Code:
public OnPlayerDeath(playerid, killerid, reason)
{
    GetPlayerPos(playerid, sP[0], sP[1], sP[2]);
    GetPlayerFacingAngle(playerid, sP[3]);
    PlayerInfo[killerid][pKills] += 1;
    new string[128];
    new name[MAX_PLAYER_NAME];
    new name2[MAX_PLAYER_NAME];
    new deathreason[20];
    new y, m, d;
    new h,mi,s;
    getdate(y,m,d);
    gettime(h,mi,s);
    GetPlayerName(playerid, name, sizeof(name));
    GetPlayerName(killerid, name2, sizeof(name2));
    if(ProvocoMorro[playerid] == 1)
    {
        GangZoneStopFlashForAll(GZMorro);
        GangZoneShowForAll(GZMorro, 0xFF66FFAA);
        GuerranoMorro = 0;
        ProvocoMorro[playerid] = 0;
        donomorro = 0;
        Dominando[playerid] = 0;
        KillTimer(TempoGuerraMorro);
    }
    if(ProvocoParque[playerid] == 1)
        {
            GangZoneStopFlashForAll(GZParque);
            GangZoneShowForAll(GZParque, 0xFF66FFAA);
            GuerranoParque = 0;
            ProvocoParque[playerid] = 0;
            donoparque = 0;
            Dominando[playerid] = 0;
            KillTimer(TempoGuerraParque);
        }
    if(ProvocoShop[playerid] == 1)
        {
            GangZoneStopFlashForAll(GZShop);
            GangZoneShowForAll(GZShop, 0xFF66FFAA);
            GuerranoShop = 0;
            ProvocoShop[playerid] = 0;
            donoshop = 0;
            Dominando[playerid] = 0;
            KillTimer(TempoGuerraShop);
        }
    if(killerid != INVALID_PLAYER_ID)
    {
        if(GetPlayerWeapon(killerid) != reason)
        {
            if(AntiFakeKill == 1)
            {
                if(FakeKillWarns[playerid] == 4)
                {
                    format(string, sizeof(string), "%s (%d), Foi kickado Pelo Anticheat Need_Ziinho Por Possivel Hack De Fake Death.", name, playerid);
                    SendClientMessageToAll(COLOR_NICERED, string);
                    SendClientMessage(playerid,COLOR_LIGHTBLUE, "Vocк Foi Kickado Pelo Anticheater Por Possнvel Fake Death.");
                    format(string,sizeof(string), "(%d/%d/%d)[%d:%d:%d] Anticheat Kickou %s for: Fake Death hacks.",d,m,y,h,mi,s,name);
                    KickLog(string);
                    format(string,sizeof(string), "(%d/%d/%d)[%d:%d:%d] Kickado Pelo Anticheat - Hack De Fake Death.",d,m,y,h,mi,s,name);
                    AddPunishment(playerid, string);
                    Kick(playerid);
                }
                format(string, sizeof(string), "[Server]: %s (%d) Estб Possivelmente Usando Hack De Fake Death; Cheque Ele Imediatamente!!", name, playerid);
                SendAdminMessage(COLOR_YELLOW, string);
                PlayerSuspicious[playerid] = 1;
                PlayerFakeDeathHacking[playerid] = 1;
                PlayerGotSpottedRecently[playerid] = 1;
                FakeKillWarns[playerid] ++;
                SetTimerEx("ResetAcWarn", 300000, 0, "i", playerid);
            }
        }
    }
    if(GetPlayerState(killerid) == PLAYER_STATE_DRIVER)
    {
        if(AntiDriveBy == 1)
        {
            PlayerInfo[killerid][pWarns] ++;
            if(PlayerInfo[playerid][pWarns] == 3)
            {
                format(string, sizeof(string), "%s (%d), Foi Kickado Pelo Anticheat Need_Ziinho Por Drive-By Excessivo.", name2, killerid);
                SendClientMessageToAll(COLOR_NICERED, string);
                SendClientMessage(killerid,COLOR_LIGHTBLUE, "Vocк Foi Kickado Pelo Anticheat Por Fazer Drive-By Excessivo");
                format(string,sizeof(string), "(%d/%d/%d)[%d:%d:%d] Anticheat Kickou %s Por: Drive-By Excessivo",d,m,y,h,mi,s,name2);
                KickLog(string);
                Kick(killerid);
            }
            else
            {
                format(string, sizeof(string), "%s (%d), Cometeu Drive-By em %s.", name2, killerid, name);
                SendClientMessageToAll(COLOR_NICERED, string);
                SendClientMessage(killerid,COLOR_LIGHTBLUE, "Vocк Foi Avisado Pelo Anticheat Por Fazer Drive-By Excessivo");
                format(string, sizeof(string), "[Server]: %s Matou Alguйm Com Drive-By; O Jogador Foi Advertido.", name2);
                SendAdminMessage(COLOR_YELLOW, string);
                format(string,sizeof(string), "(%d/%d/%d)[%d:%d:%d] Advertido Pelo Anticheat - Motivo: Drive-By Excessivo.",d,m,y,h,mi,s);
                AddPunishment(killerid, string);
            }
        }
    }
    if(killerid != INVALID_PLAYER_ID)
    {
        if(reason == 0) { deathreason = "Arma Branca"; }
        else if(reason == 36 || reason == 35 || reason == 40 || reason == 16) { deathreason = "Explosгo"; }
        else if(reason == 18 || reason == 37) { deathreason = "Fogo"; }
        else if(reason == 51) { deathreason = "Explosгo"; }
        else if(reason == 50) { deathreason = "Drive-By"; }
        else { GetWeaponName(reason, deathreason, sizeof(deathreason)); }
        format(string, sizeof(string),"[INFO]: %s (%d) Foi Morto Por %s (%d) - %s", name,playerid,name2,killerid,deathreason);
        SendAdminMessage(COLOR_GREEN, string);
    }
    else
    {
        new text[30];
        if(reason == 51) { text = "Explosгo"; }
        else if(reason == 53) { text = "Afogado"; }
        else if(reason == 54) { text = "Colisгo"; }
        else { text = "Morte"; }
        format(string, sizeof(string),"[INFO]: %s (%d) Morreu. (%s)",name,playerid, text);
        SendAdminMessage(COLOR_GREEN, string);
    }
    new playercash;
    new victimteam = gTeam[playerid];
    new Float:px,Float:py,Float:pz;
    new killerteam = gTeam[killerid];
    ScriptMoneyUpdated[playerid] = 1;
    TextDrawHideForPlayer(playerid, Textdraw39[playerid]);
    TextDrawHideForPlayer(playerid, Textdraw40[playerid]);
    gPlayerSpawned[playerid] = 0;
    if(PlayerInfo[playerid][pAdminDuty] >= 1) { PlayerInfo[playerid][pAdminDuty] = 0; }
    GetPlayerPos(playerid, px, py, pz);

    if(gPlayerUsingLoopingAnim[playerid])
    {
        gPlayerUsingLoopingAnim[playerid] = 0;
        TextDrawHideForPlayer(playerid,txtAnimHelper);
    }
    if(WantedPoints[playerid] > 0)
    {
        new dstring[128];
        new wanted = WantedPoints[playerid];
        new diecash = 0;
        while(WantedPoints[playerid] > 0)
        {
            diecash += 500;
            WantedPoints[playerid] --;
        }
        format(dstring, sizeof(dstring), "Vocк Perdeu R$%d por morrer com %d Pontos De Procurado.", diecash, wanted);
        SendClientMessage(playerid, COLOR_YELLOW, dstring);
        SafeGivePlayerMoney(playerid, - diecash);
        PlayerInfo[playerid][pWantedDeaths] += 1;
    }
    if(PlayerOnMission[playerid] > 0)
    {
        GameTextForPlayer(playerid, "~r~Missao Falhada", 5000, 3);
        PlayerOnMission[playerid] = 0;
        PlayerInfo[playerid][pMissionNr] = 0;
    }
    WantedPoints[playerid] = 0;
    WantedLevel[playerid] = 0;
    if(PlayerInfo[playerid][pVIP] == 2) {SetPlayerHealth(playerid, 100.0); }
    else if(PlayerInfo[playerid][pVIP] == 3) {SetPlayerHealth(playerid, 100.0); SetPlayerArmour(playerid, 100.0); }
    else { SetPlayerHealth(playerid, 50.0+PlayerInfo[playerid][pSHealth]); }
    MedicBill[playerid] = 1;
    gPlayerSpawned[playerid] = 1;
    SafeTime[playerid] = 60;
    Checked[playerid] = 1;
    PlayerGotSpottedRecently[playerid] = 1;
    SetTimerEx("ResetAcWarn",20000,false, "i", playerid);
    if(killerid != 255)
    {
        if(GetPlayerState(killerid) == 2)
        {
            if(ProxDetectorS(20, killerid, playerid))
            {
                if(!IsPlayerInAnyVehicle(playerid))
                {
                    if(PlayerInfo[killerid][pMember] == 1||PlayerInfo[killerid][pLeader] == 1||PlayerInfo[killerid][pMember] == 2||PlayerInfo[killerid][pLeader] ==2)
                    {
                        SendClientMessage(killerid, COLOR_YELLOW, "Esta foi uma morte com Drive-By, nгo abuse!");
                        return 1;
                    }
                    SetPlayerCriminal(killerid,255,"Homicнdio");
                    return 1;
                }
            }
        }
    }
    if (reason == 22)
    {
        if (PlayerInfo[killerid][pPistSkill] >= 0 && PlayerInfo[killerid][pPistSkill] <= 1000)
        {
            PlayerInfo[killerid][pPistSkill] += 2;
            SetPlayerSkills(killerid);
        }
    }
    if (reason == 23)
    {
        if (PlayerInfo[killerid][pSilenSkill] >= 0 && PlayerInfo[killerid][pSilenSkill] <= 1000)
        {
            PlayerInfo[killerid][pSilenSkill] += 2;
            SetPlayerSkills(killerid);
        }
        if (PlayerInfo[killerid][pAchievement0] == 0)
        {
            ShowPlayerDialog(killerid,500,DIALOG_STYLE_MSGBOX,"Conquistas:\n Morte Silenciosa (0)","Parabens, Vocк Completou a Conquista 'Morte Silenciosa' \n Vocк Ganhou 200R$ e 50+ de Skill!","Ok","Cancelar");
            PlayerInfo[killerid][pSilenSkill] += 50;
            SafeGivePlayerMoney(killerid,200);
            PlayerInfo[playerid][pAchievement0] = 0;
        }
    }
    if (reason == 24)
    {
        if (PlayerInfo[killerid][pDesertSkill] >= 0 && PlayerInfo[killerid][pDesertSkill] <= 1000)
        {
            PlayerInfo[killerid][pDesertSkill] += 2;
            SetPlayerSkills(killerid);
        }
    }

    if (reason == 25)
    {
        if (PlayerInfo[killerid][pShotgSkill] >= 0 && PlayerInfo[killerid][pShotgSkill] <= 1000)
        {
            PlayerInfo[killerid][pShotgSkill] += 2;
            SetPlayerSkills(killerid);
        }
    }
    if (reason == 26)
    {
        if (PlayerInfo[killerid][pSawnSkill] >= 0 && PlayerInfo[killerid][pSawnSkill] <= 800)
        {
            PlayerInfo[killerid][pSawnSkill] += 2;
            SetPlayerSkills(killerid);
        }
    }
    if (reason == 27)
    {
        if (PlayerInfo[killerid][pCombSkill] >= 0 && PlayerInfo[killerid][pCombSkill] <= 1000)
        {
            PlayerInfo[killerid][pCombSkill] += 2;
            SetPlayerSkills(killerid);
        }
    }

    if (reason == 28 || reason == 32)
    {
        if (PlayerInfo[killerid][pUziSkill] >= 0 && PlayerInfo[killerid][pUziSkill] <= 800)
        {
            PlayerInfo[killerid][pUziSkill] += 2;
            SetPlayerSkills(killerid);
        }
    }

    if (reason == 29)
    {
        if (PlayerInfo[killerid][pSmgSkill] >= 0 && PlayerInfo[killerid][pSmgSkill] <= 1000)
        {
            PlayerInfo[killerid][pSmgSkill] += 2;
            SetPlayerSkills(killerid);
        }
    }

    if (reason == 30)
    {
        if (PlayerInfo[killerid][pAkSkill] >= 0 && PlayerInfo[killerid][pAkSkill] <= 1000)
        {
            PlayerInfo[killerid][pAkSkill] += 2;
            SetPlayerSkills(killerid);
        }
    }

    if (reason == 31)
    {
        if (PlayerInfo[killerid][pM4Skill] >= 0 && PlayerInfo[killerid][pM4Skill] <= 1000)
        {
            PlayerInfo[killerid][pM4Skill] += 2;
            SetPlayerSkills(killerid);
        }
    }


    if (gPlayerCheckpointStatus[playerid] > 4 && gPlayerCheckpointStatus[playerid] < 11)
    {
        DisablePlayerCheckpoint(playerid);
        gPlayerCheckpointStatus[playerid] = CHECKPOINT_NONE;
    }
    new caller = Mobile[playerid];
    if(caller != 255)
    {
        if(caller < 255)
        {
            SendClientMessage(caller,  COLOR_GRAD2, "** A Ligaзгo Caiu....");
            CellTime[caller] = 0;
            CellTime[playerid] = 0;
            Mobile[caller] = 255;
        }
        Mobile[playerid] = 255;
        CellTime[playerid] = 0;
    }
    ClearCrime(playerid);
    if(GettingCK[playerid] < 999)
    {
        if(IsPlayerConnected(killerid))
        {
            if(OnCK[killerid] < 999)
            {
                new killer[MAX_PLAYER_NAME];
                new dier[MAX_PLAYER_NAME];
                GetPlayerName(playerid, dier, sizeof(dier));
                GetPlayerName(killerid, killer, sizeof(killer));
                format(string, sizeof(string), "* %s Executou um Character Kill em vocк, vocк nгo pode mais capaz de jogar com este personagem.",killer);
                SendClientMessage(playerid, COLOR_LIGHTRED, string);
                format(string, sizeof(string), "** %s Executou Character Killed Em %s **",killer,dier);
                CKLog(string);
                BroadCast(COLOR_LIGHTRED, string);
                PlayerInfo[playerid][pCK] = 1;
                if(GettingCK[playerid] < 999) { GettingCK[playerid] = 999; }
                else if(OnCK[playerid] < 999) { OnCK[playerid] = 999; }
                if(GettingCK[killerid] < 999) { GettingCK[killerid] = 999; }
                else if(OnCK[killerid] < 999) { OnCK[killerid] = 999; }
                KickPlayer[playerid] = 1;
            }
        }
    }
    if(PlayerInfo[playerid][pHeadValue] > 0)
    {
        if(IsPlayerConnected(killerid))
        {
            if(gTeam[killerid] == 10 || PlayerInfo[killerid][pLeader] == 8)
            {
                if(GoChase[killerid] == playerid)
                {
                    //ConsumingMoney[killerid] = 1;
                    new killer[MAX_PLAYER_NAME];
                    GetPlayerName(killerid, killer, sizeof(killer));
                    SafeGivePlayerMoney(killerid, PlayerInfo[playerid][pHeadValue]);
                    format(string,128,"<< Killer %s completou o contrato em %s e coletou R$%d >>",killer,name,PlayerInfo[playerid][pHeadValue]);
                    SendFamilyMessage(8, COLOR_YELLOW, string);
                    PlayerInfo[playerid][pHeadValue] = 0;
                    GotHit[playerid] = 0;
                    GetChased[playerid] = 999;
                    GoChase[killerid] = 999;
                }
            }
        }
    }
    if(victimteam >= 4)
    {
        if(IsPlayerConnected(killerid))
        {
            //new killer[MAX_PLAYER_NAME];
            //GetPlayerName(killerid, killer, sizeof(killer));
            new slice = 100; //R$100
            playercash = GetPlayerMoney(playerid);
            if(gTeam[killerid] != 2) { WantedPoints[killerid] += 2; } //+ 2 wanted points
            if(SafeTime[playerid] <= 0)
            {
                if(gTeam[killerid] != gTeam[playerid])
                {
                    if(GetPlayerState(killerid) == 1)
                    {
                        PlayerInfo[killerid][pKills] = PlayerInfo[killerid][pKills] + 2;
                    }
                    else
                    {
                        PlayerInfo[killerid][pKills]++;
                    }
                    PlayerInfo[playerid][pKills]--;
                }
            }
            /*if (strlen(deathreason) > 0)// patch
            {
                if (((gTeam[killerid]) == 1) || ((gTeam[killerid]) == 3 && civnokill) || gTeam[killerid] == gTeam[playerid])//med kill criminal
                {
                    format(string, sizeof(string), ".: %s murdered %s. (%s) :.", killer, name, deathreason);
                }
                else
                {
                    format(string, sizeof(string), ".: %s murdered %s. (%s) for R$%d :.", killer, name, deathreason, slice);
                }

            }
            else
            {
                if (((gTeam[killerid]) == 1) || ((gTeam[killerid]) == 3 && civnokill || gTeam[killerid] == gTeam[playerid]))
                {
                    format(string, sizeof(string), ".: %s murdered %s :.", killer, name);
                }
                else
                {
                    format(string, sizeof(string), ".: %s murdered %s for R$%d :.", killer, name, slice);
                }
            }*/

            if (((gTeam[killerid]) == 1) || ((gTeam[killerid]) == 3 && civnokill) || (gTeam[killerid] == gTeam[playerid] && gTeam[playerid] != 4))
            {
                slice = 0;
            }
            if (((gTeam[killerid]) != 4) && ((gTeam[killerid]) == gTeam[playerid]))//no team kill
            {
                slice = 0;
            }
            if (playercash > 0)
            {
                SafeGivePlayerMoney(playerid, -slice);
            }
            else
            {
                slice = slice+500;
            }
            //SafeGivePlayerMoney(killerid, slice);
            //GameTextForPlayer(playerid, dmessage, 5000, 2);
            PlayerPlaySound(killerid, 1083, 0.0, 0.0, 0.0);
            if (((gTeam[killerid]) == 3) && reason != 49)
            {
                SetPlayerCriminal(killerid,255, "Homicнdio De Primeiro Grau");
            }
            else if (((gTeam[killerid]) == 3) && reason == 49)
            {
                SetPlayerCriminal(killerid,255, "Atropelamento");
            }
        }
    }
    else if (victimteam == 2)
    {
        if(IsPlayerConnected(killerid))
        {
            //new killer[MAX_PLAYER_NAME];
            //GetPlayerName(killerid, killer, sizeof(killer));
            // Cop kill
            PlayerInfo[playerid][pKills]--;
            if (gTeam[killerid] == 2)//cops kill cop
            {
                //format(string,128,".: Officer %s murdered Officer %s (%s) and was sued for R$%d :.",killer,name,deathreason,suecost);
                PlayerPlaySound(killerid, 1084, 0.0, 0.0, 0.0);
                SafeGivePlayerMoney(killerid, -suecost);
                SafeGivePlayerMoney(playerid, suecost+100);//+100pays hospital bill
            }
            else
            {
                //format(string,128,".: %s murdered Officer %s (%s) :.",killer,name,deathreason);
            }
            if (gTeam[killerid] >= 3)
            {
                WantedPoints[killerid] += 2; //+ 2 wanted points
                if(reason != 49)
                {
                    SetPlayerCriminal(killerid,255, "Homicнdio De Primeiro Grau");
                }
                else if (reason == 49)
                {
                    SetPlayerCriminal(killerid,255, "Atropelamento");
                }
            }
            if(gTeam[killerid] >= 5 && SafeTime[playerid] <= 0)
            {
                if(GetPlayerState(killerid) == 1)
                {
                    PlayerInfo[killerid][pKills] = PlayerInfo[killerid][pKills]+2;
                }
                else
                {
                    PlayerInfo[killerid][pKills]++;
                }
                WantedPoints[killerid]+=2;
            }
            //BroadCast(COLOR_RED, string);
        }
    }
    else if (victimteam == 3)
    {
        if(IsPlayerConnected(killerid))
        {
            //new killer[MAX_PLAYER_NAME];
            //GetPlayerName(killerid, killer, sizeof(killer));
            // Civ kill
            if ((gTeam[killerid]) == 2)//cops kill civ
            {
                if(WantedLevel[playerid] < 1)
                {
                    //format(string,128,".: Officer %s murdered %s (%s) and was sued for R$%d :.",killer,name,deathreason,suecost);
                    PlayerPlaySound(killerid, 1084, 0.0, 0.0, 0.0);
                    SafeGivePlayerMoney(killerid, -suecost);
                    SafeGivePlayerMoney(playerid, suecost+10);//+100pays hospital bill
                }
            }
            else
            {
                //format(string,128,".: %s murdered %s (%s) :.",killer,name,deathreason);
                WantedPoints[killerid] += 2;
            }
            if (((gTeam[killerid]) >= 3 || (gTeam[killerid]) == 1) && reason != 49)
            {
                SetPlayerCriminal(killerid,255, "Homicнdio De Primeiro Grau");
            }
            else if (((gTeam[killerid]) >= 3 || (gTeam[killerid]) == 1) && reason == 49)
            {
                SetPlayerCriminal(killerid,255, "Atropelamento");
            }
            //BroadCast(COLOR_RED, string);
        }
    }
    else if (victimteam == 1)
    {
        if(IsPlayerConnected(killerid))
        {
            //new killer[MAX_PLAYER_NAME];
            //GetPlayerName(killerid, killer, sizeof(killer));
            // Civ kill
            if ((gTeam[killerid]) == 2)//cops kill civ
            {
                //format(string,128,".: Officer %s murdered Paramedic %s (%s) and was sued for R$%d :.",killer,name,deathreason,suecost);
                PlayerPlaySound(killerid, 1084, 0.0, 0.0, 0.0);
                SafeGivePlayerMoney(killerid, -suecost);
                SafeGivePlayerMoney(playerid, suecost+10);//+100pays hospital bill
            }
            else if ((gTeam[killerid]) == 1)//med kill civ
            {
                //format(string,128,".: Paramedic %s murdered %s (%s) and was sued for R$%d :.",killer,name,deathreason,suecost);
                PlayerPlaySound(killerid, 1084, 0.0, 0.0, 0.0);
                SafeGivePlayerMoney(killerid, -suecost);
                SafeGivePlayerMoney(playerid, suecost+10);//+100pays hospital bill
            }
            else
            {
                //format(string,128,".: %s murdered %s (%s) :.",killer,name,deathreason);
            }
            if (((gTeam[killerid]) == 4) && reason != 49)
            {
                SetPlayerCriminal(killerid,255, "Homicнdio De Primeiro Grau");
            }
            else if (((gTeam[killerid]) == 3) && reason == 49)
            {
                SetPlayerCriminal(killerid,255, "Atropelamento");
            }
            //BroadCast(COLOR_RED, string);
        }
    }
    if (victimteam >= 3 && WantedPoints[playerid] > 0 && killerteam == 2)
    {
        SetPlayerFree(playerid,killerid, "Foi Morto");
    }
    if (BusrouteEast[playerid][0] != 0 || BusrouteWest[playerid][0] != 0)
    {
        if (BusrouteEast[playerid][0] != 0) BusrouteEnd(playerid, BusrouteEast[playerid][1]);
        else if (BusrouteWest[playerid][0] != 0) BusrouteEnd(playerid, BusrouteWest[playerid][1]);
        else BusrouteEnd(playerid, 0);
    }
    if(FarmerVar[playerid] != 0)
    {
        FarmerVar[playerid] = 0;
        DisablePlayerCheckpoint(playerid);
    }
    if(DrugFarmerVar[playerid] != 0)
    {
        DrugFarmerVar[playerid] = 0;
        DisablePlayerCheckpoint(playerid);
    }
    if(SmugglerWork[playerid] != 0)
    {
        SmugglerWork[playerid] = 0;
        DisablePlayerCheckpoint(playerid);
    }
    killerid = INVALID_PLAYER_ID;
    SetRealMoney(playerid, ScriptMoney[playerid]);
    SetPlayerColor(playerid,0xBBBBBB00);
    SafeResetPlayerWeapons(playerid);
    return 1;
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)