OnPlayerDeath stops [i'll give rep]
#1

Hi. My callback OnPlayerDeath stop execute, for example: when a hitman kills somebody he don't get money on contract; people who have wanted don't get in jail if die near cop etc.

Код:
public OnPlayerDeath(playerid, killerid, reason)
{
	if(killerid != INVALID_PLAYER_ID)
	{
	    TogglePlayerSpectating(playerid, 0);
	    if(InWar[playerid] == 0 && !IsACop(killerid))
	    {
	        Urgenta[playerid] = 1;
	        Infractor[playerid] = killerid;
	        SetTimerEx("DispareInculpat", 60000, 0, "i", playerid);
	    }
	    if(GetDistanceBetweenPlayers(killerid,playerid) > 90 && reason != 34)
	    {
	        new string[128],gunname[50];
		   	GetWeaponNameEx(reason,gunname,sizeof(gunname));
	        format(string,sizeof(string),"[AdmInfo]: %s killed %s form %.0f meters with %s.",GetName(killerid),GetName(playerid),GetDistanceBetweenPlayers(killerid,playerid),gunname);
			ABroadCast(0xf03337FF,string,1);
	    }
	    if(JoinedMotoCross[playerid] > 0)
		{
		    JoinedMotoCross[playerid] = 0;
		    InscrisiMotoCross--;
		    CP[playerid] = 999;
		    DisablePlayerRaceCheckpoint(playerid);
		}
		if(JoinedMaraton[playerid] > 0)
		{
		    JoinedMaraton[playerid] = 0;
		    InscrisiMaraton--;
		    CP[playerid] = 999;
		    DisablePlayerRaceCheckpoint(playerid);
		}
		new name[MAX_PLAYER_NAME];
		new string[500];
		new Float:px,Float:py,Float:pz;
		gPlayerUsingLoopingAnim[playerid] = 0;
		gPlayerSpawned[playerid] = 0;
		GetPlayerName(playerid, name, sizeof(name));
		PlayerInfo[playerid][pLocal] = 255;
		GetPlayerPos(playerid, px, py, pz);
 	   	new currentveh = GetPlayerVehicleID(playerid);
 	   	//new strring[128];
		//format(strring, sizeof(strring), "DEATH: %s was killed by %s with gun %d",name,GetName(killerid),reason);
		//SCM(killerid, -1, strring);
		curatj[playerid] = 0;
		if(JoinedDeathMatch[killerid] == 1 || JoinedDeathMatch[killerid] == 2)
		{
			return 1;
		}
		if(JoinedDeathMatch[playerid] > 0)
		{
			JoinedDeathMatch[playerid] = 0;
			SetPlayerSkin(playerid, PlayerInfo[playerid][pChar]);
			ResetPlayerWeapons(playerid);
		}
		if(CP[playerid] == 50)
		{
			CP[playerid] = 0;
			RemovePlayerAttachedObject(playerid,0);
			DisablePlayerCheckpoint(playerid);
			RemovePlayerAttachedObject(playerid,1);
		}
		if(CP[playerid] == 937)
		{
			CP[playerid] = 0;
			DisablePlayerCheckpoint(playerid);
		}
		if(GetPlayerState(killerid) == PLAYER_STATE_DRIVER && !IsAPlane(currentveh))
		{
		    GetPlayerName(playerid,name,sizeof(name));
		    new kill[25];
		    GetPlayerName(killerid,kill,sizeof(kill));
	        format(string, sizeof(string), "[AdmInfo]: %s (%d) a fost omorat de %s (%d) (Drive-By)", name,playerid,kill,killerid);
			ABroadCast(0xf03337FF,string,1);
		}
	    if(XDeaths[playerid] == 0)
	    {
	       LastDeath[playerid] = gettime();
	    }
	    XDeaths[playerid]++;
	    if(XDeaths[playerid] == 2)
	    {
	        if((gettime() - LastDeath[playerid]) <= 2)
	        {
	            Kick(playerid);
	            return 1;
	        }else
	        if((gettime() - LastDeath[playerid]) > 2)
	        {
	            XDeaths[playerid]=0;
	        }
	    }
 		if(killerid == playerid)
		{
            Kick(killerid);
            return 1;
		}
		if(PlayerCuffed2[playerid] == 1)
		{
		    PlayerCuffed2[playerid] = 0;
	    	SetPlayerSpecialAction(playerid,SPECIAL_ACTION_NONE);
	    	RemovePlayerAttachedObject(playerid,1);
		}
		if(PlayerInfo[killerid][pJailed] > 0)
		{
	        format(string, sizeof(string), "[AdmInfo]: %s (%d) a fost omorat de puscariasul %s (%d)", GetName(playerid),playerid,GetName(killerid),killerid);
			ABroadCast(0xf03337FF,string,1);
			PlayerInfo[killerid][pJailTime] += 100;
			format(string, sizeof(string), "Ai primit +100 de secunde sub arestul politiei, deoarece l-ai omorat pe %s!", GetName(playerid));
			SCM(killerid, -1, string);
			return 1;
		}
		if(reason == 38 && GetPlayerState(killerid) != PLAYER_STATE_DRIVER)
		{
			new kickname[25];
			if(IsPlayerConnected(killerid))
			{
				GetPlayerName(killerid, kickname, sizeof(kickname));
				format(string, 256, "[AdmInfo]: [%d] %s a utilizat un mini-gun, verifica-l pentru suspiciunea de fake-kill",killerid,kickname);
				ABroadCast(0xf03337FF,string,1);
			}
		}
  	  	if(TakingLesson[playerid] == 1)
   		{
        	TakingLesson[playerid] = 0;
	    	DisablePlayerCheckpoint(playerid);
        	SetVehicleToRespawn(currentveh);
    	}
		if(gPlayerUsingLoopingAnim[playerid])
		{
        	gPlayerUsingLoopingAnim[playerid] = 0;
		}
		if(PlayerInfo[playerid][pCarLicT] == 0 && PlayerInfo[playerid][pCarLic] == 1)
		{
            PlayerInfo[playerid][pCarLic] = 0;
			PlayerInfo[playerid][pCarLicT] = 0;
			new str[128];
			format(str,128,"UPDATE users SET `CarLic`='0',`CarLicT`='0' WHERE `name`='%s'",PlayerInfo[playerid][pNames]);
			mysql_query(SQL,str);
			SCM(playerid,COLOR_GRAD1,"Ti-a expirat permisul de conducere!");
		}
		if(PlayerInfo[playerid][pFlyLicT] == 0 && PlayerInfo[playerid][pFlyLic] == 1)
		{
		    PlayerInfo[playerid][pFlyLic] = 0;
		    PlayerInfo[playerid][pFlyLicT] = 0;
			new str[128];
			format(str,128,"UPDATE users SET `FlyLic`='0',`FlyLicT`='0' WHERE `name`='%s'",PlayerInfo[playerid][pNames]);
			mysql_query(SQL,str);
			SCM(playerid,COLOR_GRAD1,"Ti-a expirat licenta de pilotaj!");
		}
		if(PlayerInfo[playerid][pBoatLicT] == 0 && PlayerInfo[playerid][pBoatLic] == 1)
		{
		    PlayerInfo[playerid][pBoatLic] = 0;
		    PlayerInfo[playerid][pBoatLic] = 0;
			new str[128];
			format(str,128,"UPDATE users SET `BoatLic`='0',`BoatLicT`='0' WHERE `name`='%s'",PlayerInfo[playerid][pNames]);
			mysql_query(SQL,str);
			SCM(playerid,COLOR_GRAD1,"Ti-a expirat licenta de navigat!");
		}
		if(PlayerInfo[playerid][pFishLicT] == 0 && PlayerInfo[playerid][pFishLic] == 1)
		{
		    PlayerInfo[playerid][pFishLic] = 0;
		    PlayerInfo[playerid][pFishLicT] = 0;
			new str[128];
			format(str,128,"UPDATE users SET `FishLic`='0',`FishLicT`='0' WHERE `name`='%s'",PlayerInfo[playerid][pNames]);
			mysql_query(SQL,str);
			SCM(playerid,COLOR_GRAD1,"Ti-a expirat licenta de pescuit!");
		}
		if(PlayerInfo[playerid][pGunLicT] == 0 && PlayerInfo[playerid][pGunLic] == 1)
		{
		    PlayerInfo[playerid][pGunLic] = 0;
		    PlayerInfo[playerid][pGunLicT] = 0;
			new str[128];
			format(str,128,"UPDATE users SET `GunLic`='0',`GunLicT`='0' WHERE `name`='%s'",PlayerInfo[playerid][pNames]);
			mysql_query(SQL,str);
			SCM(playerid,COLOR_GRAD1,"Ti-a expirat licenta de port-arma!");
		}
	    new fpm,fkm;
    	fpm = PlayerInfo[playerid][pMember];
    	fkm = PlayerInfo[killerid][pMember];
    	for(new turf = 1; turf < sizeof(TurfInfo); turf++)
		{
         	if(IsPlayerInTurf(playerid, turf) && IsPlayerInTurf(killerid, turf))
         	{
                if(IsAMember(playerid) && IsAMember(killerid))
                {
	             	if(WarInfo[turf][wFaction] == fpm && WarInfo[turf][wAttacker] == fkm || WarInfo[turf][wFaction] == fkm && WarInfo[turf][wAttacker] == fpm)
	             	{
				     	if(fkm == WarInfo[turf][wAttacker] || fkm == WarInfo[turf][wFaction])
					 	{
					     	WarScoreF[fkm][turf] += 1.0;
					 	}
	                 	ucideri[killerid][turf] ++;
	                 	decese[playerid][turf] ++;
	                 	if(PlayerInfo[killerid][pMember] == WarInfo[turf][wAttacker])
	                 	{
		                 	if(ucideri[killerid][turf] > bestscoreat[turf])
		                 	{
		                     	bestscoreat[turf] = ucideri[killerid][turf];
		                     	bestmemberat[turf] = killerid;
		                 	}
	                 	}
	                 	if(PlayerInfo[killerid][pMember] == WarInfo[turf][wFaction])
	                 	{
		                 	if(ucideri[killerid][turf] > bestscoredf[turf])
		                 	{
		                     	bestscoredf[turf] = ucideri[killerid][turf];
		                     	bestmemberdf[turf] = killerid;
		                 	}
	                 	}
	                 	if(PlayerInfo[playerid][pMember] == WarInfo[turf][wAttacker])
	                 	{
	                 		if(decese[playerid][turf] > worstscoreat[turf])
							{
								worstscoreat[turf] = decese[playerid][turf];
								worstmemberat[turf] = playerid;
							}
						}
	                 	if(PlayerInfo[playerid][pMember] == WarInfo[turf][wFaction])
	                 	{
	                 		if(decese[playerid][turf] > worstscoredf[turf])
							{
								worstscoredf[turf] = decese[playerid][turf];
								worstmemberdf[turf] = playerid;
							}
						}
						foreach(Player, x)
						{
							if(PlayerInfo[x][pMember] == WarInfo[turf][wAttacker] || PlayerInfo[x][pMember] == WarInfo[turf][wFaction])
							{
								SendDeathMessageToPlayer(x, killerid, playerid, reason);
							}
						}
	                 	format(string, sizeof(string), "War: {FFFFFF}L-ai omorat pe %s si ai primit 1.000$! (Turf ID: %d)",GetName(playerid),turf);
	                 	SCM(killerid, 0x0080FFFF, string);
	                 	GivePlayerCash(killerid,1000);
                		Update(killerid,pCashx);
	                 	format(string, sizeof(string), "War: {FFFFFF}Ai fost omorat de %s! (Turf ID: %d)",GetName(killerid),turf);
	                 	SCM(playerid, 0x0080FFFF, string);
	                 	return 1;
					}
				}
			}
    	}
        if(IsACop(killerid) && OnDuty[killerid] == 1)
        {
			if(PlayerInfo[playerid][pWantedLevel] >= 1)
			{
		    	new price = PlayerInfo[playerid][pWantedLevel] * 2000;
				new count;
				new wantedlost2 = PlayerInfo[playerid][pWantedLevel];
				foreach(Player,i)
				{
			    	if(IsACop(i) && CrimInRange(30.0, playerid,i) && OnDuty[i] == 1)
			    	{
						count = 1;
						format(string, sizeof(string), "~w~Running Suspect ~r~Killed~n~~r~Bonus ~g~$%d", price);
						GameTextForPlayer(i, string, 5000, 1);
						ConsumingMoney[i] = 1;
						GivePlayerCash(i, price/2);
						Update(i, pCashx);
					}
				}
				if(count == 1)
				{
					GivePlayerCash(playerid, - price);
					PlayerInfo[playerid][pWantedDeaths] += 1;
					PlayerInfo[playerid][pJailed] = 1;
			    	PlayerInfo[playerid][pJailTime] = (PlayerInfo[playerid][pWantedLevel])*(150);
			    	new sendername[30];
			    	GetPlayerName(killerid,sendername,sizeof(sendername));
			    	format(string, sizeof(string), "* Ai fost arestat pentru %d secunde si ai pierdut %d$ pentru ca ai incercat sa fugi si ai fost omorat de agentul %s!", PlayerInfo[playerid][pJailTime], price,sendername);
			    	SendClientMessage(playerid, COLOR_YELLOW, string);
					TogglePlayerControllable(playerid, 0);
					SetTimerEx("UnFreezeStation", 1000, false, "i", playerid);
					WantedPoints[playerid] = 0;
					PlayerInfo[playerid][pWantedLevel] = 0;
					SetPlayerWantedLevel(playerid, 0);
					Update(playerid,pWantedLevelx);
					Update(playerid,pJailedx);
					Update(playerid,pJailTimex);
					ClearCrime(playerid);
					new deathname[25];
					GetPlayerName(playerid,deathname,sizeof(deathname));
					if(PlayerInfo[killerid][pMember] == 1 || PlayerInfo[killerid][pLeader] == 1)
					{
						format(string, sizeof(string), "HQ: All Units. Officer %s has completed assignment",sendername);
						SendTeamMessage(1, COLOR_DBLUE, string);
						SendTeamMessage(2, COLOR_DBLUE, string);
						SendTeamMessage(3, COLOR_DBLUE, string);
						format(string, sizeof(string), "HQ: %s has been processed, got killed having wanted %d",deathname,wantedlost2);
						SendTeamMessage(1, COLOR_DBLUE, string);
						SendTeamMessage(2, COLOR_DBLUE, string);
						SendTeamMessage(3, COLOR_DBLUE, string);
					}
					else if(PlayerInfo[killerid][pMember] == 2 || PlayerInfo[killerid][pLeader] == 2)
					{
						format(string, sizeof(string), "HQ: All Units. Agent %s has completed assignment",sendername);
						SendTeamMessage(1, COLOR_DBLUE, string);
						SendTeamMessage(2, COLOR_DBLUE, string);
						SendTeamMessage(3, COLOR_DBLUE, string);
						format(string, sizeof(string), "HQ: %s has been processed, got killed having wanted %d",deathname,wantedlost2);
						SendTeamMessage(1, COLOR_DBLUE, string);
						SendTeamMessage(2, COLOR_DBLUE, string);
						SendTeamMessage(3, COLOR_DBLUE, string);
					}
					else if(PlayerInfo[killerid][pMember] == 3 || PlayerInfo[killerid][pLeader] == 3)
					{
						format(string, sizeof(string), "HQ: All Units. Soldier %s has completed assignment",sendername);
						SendTeamMessage(1, COLOR_DBLUE, string);
						SendTeamMessage(2, COLOR_DBLUE, string);
						SendTeamMessage(3, COLOR_DBLUE, string);
						format(string, sizeof(string), "HQ: %s has been processed, got killed having wanted %d",deathname,wantedlost2);
						SendTeamMessage(1, COLOR_DBLUE, string);
						SendTeamMessage(2, COLOR_DBLUE, string);
						SendTeamMessage(3, COLOR_DBLUE, string);
					}
				}
			}
		}
		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, "The line just went dead....");
				CellTime[caller] = 0;
				CellTime[playerid] = 0;
				Mobile[caller] = 255;
			}
			Mobile[playerid] = 255;
			CellTime[playerid] = 0;
		}
		if(PlayerPaintballing[playerid] != 0)
		{
		    format(string, sizeof(string), "{0080FF}Paintball:{FFFFFF} L-ai omorat pe %s!",GetName(playerid));
			SendClientMessage(killerid, 0x0080FFFF, string);

		    format(string, sizeof(string), "{0080FF}Paintball:{FFFFFF} Ai fost omorat de %s!",GetName(killerid));
			SendClientMessage(playerid, 0x0080FFFF, string);

			new pinfo[128];
			KillP[killerid]++;
			format(pinfo,sizeof(pinfo),"Ai acumulat %d crime, %d decese.", KillP[killerid],DeathP[killerid]);
			PlayerTextDrawSetString(killerid, Paintball[2][killerid], pinfo);
	        PlayerTextDrawShow(killerid, Paintball[2][killerid]);

			DeathP[playerid]++;
			format(pinfo,sizeof(pinfo),"Ai acumulat %d crime, %d decese.", KillP[playerid],DeathP[playerid]);
			PlayerTextDrawSetString(playerid, Paintball[2][playerid], pinfo);
	        PlayerTextDrawShow(playerid, Paintball[2][playerid]);

	        PlayerPaintballScore[killerid] = KillP[killerid]-DeathP[killerid];
		    if(PlayerPaintballScore[killerid] > PaintballWinnerScore)
		    {
		        PaintballWinner = killerid;
	        	PaintballWinnerScore = PlayerPaintballScore[killerid];
	        	foreach(Player,i)
	    	    {
		            if(IsPlayerConnected(i))
		            {
		                if(PlayerPaintballing[i] != 0)
		                {
							format(pinfo,sizeof(pinfo),"%s este in frunte cu %d ucideri!",GetName(PaintballWinner),PaintballWinnerScore);
							PlayerTextDrawSetString(i, Paintball[1][i], pinfo);
					        PlayerTextDrawShow(i, Paintball[1][i]);
	   	    	        }
	    	        }
	       		}
	    	}
	    	return 1;
		}
		if (InCloth[playerid] != 0)
	    {
		   InCloth[playerid] = 0;
		   ChosenSkin[playerid] = 0;
		   TogglePlayerControllable(playerid, 1);
		   SetCameraBehindPlayer(playerid);
		   ShowShopTextdraw(playerid, false);
	    }
		if(PlayerInfo[playerid][pHeadValue] > 0)
		{
	    	if(IsPlayerConnected(killerid))
	    	{
		    	if(PlayerInfo[killerid][pMember] == 11)
		    	{
		        	if(GoChase[killerid] == playerid)
		        	{
						new killer[MAX_PLAYER_NAME];
						GetPlayerName(killerid, killer, sizeof(killer));
						GivePlayerCash(killerid, PlayerInfo[playerid][pHeadValue]);
						format(string,128,"Asasinul %s a finalizat contractul pe capul lui %s si a primit $%s!",killer,name,FormatNumber(PlayerInfo[playerid][pHeadValue]));
						SendFamilyMessage(11, COLOR_YELLOW, string);
						PlayerInfo[playerid][pHeadValue] = 0;
						GotHit[playerid] = 0;
						GetChased[playerid] = 999;
						GoChase[killerid] = 999;
						new str[256];
						format(str,sizeof(str),"UPDATE users SET `HeadValue`='0' WHERE `name`='%s'",PlayerInfo[killerid][pNames]);
						mysql_query(SQL,str);
						Update(killerid, pCashx);
						foreach(Player,i)
				        {
				            ShowPlayerNameTagForPlayer(i, killerid, 1);
				        }
				        togfind[killerid] = 0;
			            PlayerInfo[killerid][pHitT] = 0;
				        format(string, sizeof(string), "UPDATE users SET `HitT`='%d' WHERE `name`='%s'", PlayerInfo[killerid][pHitT], PlayerInfo[killerid][pNames]);
				        mysql_query(SQL,string);
			    		if(WantedPoints[killerid] > 6)
						{
							WantedPoints[killerid] = 6;
						}
						if(reason != 49)
						{
							SetPlayerCriminal(killerid,255, "Omor calificat");
						}
						else if(reason == 49)
						{
							SetPlayerCriminal(killerid,255, "Hit And Run");
						}
					}
				}
			}
			return 1;
		}
		if(gTeam[playerid] == 3) // Civil
		{
	    	if(IsPlayerConnected(killerid))
	    	{
	    	    if(gTeam[killerid] == 3 || gTeam[killerid] == 4 || gTeam[killerid] == 5 || (gTeam[killerid] == 11 && GoChase[killerid] == 999))
	    	    {
	    	        new namekill[25];
	    	        GetPlayerName(killerid,namekill,sizeof(namekill));
					format(string,sizeof(string),"Ai fost omorat de %s! Utilizeaza [/call 112] daca doresti sa fie sanctionat!",GetName(killerid));
					SCM(playerid,COLOR_LIGHTRED,string);

	    	    }
	    	}
	    	return 1;
		}
		if(gTeam[playerid] == 2) // PD
		{
	    	if(IsPlayerConnected(killerid))
	    	{
	    	    if(gTeam[killerid] == 3 || gTeam[killerid] == 4 || gTeam[killerid] == 5 || (gTeam[killerid] == 11 && GoChase[killerid] == 999))
	    	    {
		              PlayerInfo[killerid][pWantedLevel] += 1;
		              SetPlayerWantedLevel(killerid, pWantedLevel);
					  SetPlayerCriminal(killerid,255, "Omor calificat");
					  Update(killerid, pWantedLevelx);
	    	    }
	    	}
	    	return 1;
		}
		if(gTeam[playerid] == 4) // factiuni pasnice
		{
	    	if(IsPlayerConnected(killerid))
	    	{
	    	    if(gTeam[killerid] == 3 || gTeam[killerid] == 4 || gTeam[killerid] == 5 || (gTeam[killerid] == 11 && GoChase[killerid] == 999))
	    	    {
	    	        new namekill[25];
	    	        GetPlayerName(killerid,namekill,sizeof(namekill));
					format(string,sizeof(string),"Ai fost omorat de %s! Utilizeaza [/call 112] daca doresti sa fie sanctionat!",GetName(killerid));
					SCM(playerid,COLOR_LIGHTRED,string);
	    	    }
	    	}
	    	return 1;
		}
		if(gTeam[playerid] == 5) // Gangs
		{
	    	if(IsPlayerConnected(killerid))
	    	{
	    	    if(gTeam[killerid] == 3 || gTeam[killerid] == 4 || (gTeam[killerid] == 11 && GoChase[killerid] == 999))
	    	    {
	    	        new namekill[25];
	    	        GetPlayerName(killerid,namekill,sizeof(namekill));
					format(string,sizeof(string),"Ai fost omorat de %s! Utilizeaza [/call 112] daca doresti sa fie sanctionat!",GetName(killerid));
					SCM(playerid,COLOR_LIGHTRED,string);
	    	    }
	    	}
	    	return 1;
		}
		if(gTeam[playerid] == 11) // Hitman
		{
	    	if(IsPlayerConnected(killerid))
	    	{
	    	    if(gTeam[killerid] == 3 || gTeam[killerid] == 4 || gTeam[killerid] == 5)
	    	    {
	    	        new namekill[25];
	    	        GetPlayerName(killerid,namekill,sizeof(namekill));
					format(string,sizeof(string),"Ai fost omorat de %s! Utilizeaza [/call 112] daca doresti sa fie sanctionat!",GetName(killerid));
					SCM(playerid,COLOR_LIGHTRED,string);
	    	    }
	    	}
	    	return 1;
		}
		killerid = INVALID_PLAYER_ID;
	}
	return 1;
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)