[Ajuda] Quando o player morre
#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


Messages In This Thread
[Ajuda] Quando o player morre - by felipe360 - 25.10.2011, 01:12
Re: [DUV] Quando o player morre - by Lуs - 25.10.2011, 01:27
Re: [DUV] Quando o player morre - by Shadoww5 - 25.10.2011, 01:34
Re: [DUV] Quando o player morre - by felipe360 - 25.10.2011, 01:35
Re: [DUV] Quando o player morre - by Macintosh - 25.10.2011, 02:56

Forum Jump:


Users browsing this thread: 1 Guest(s)