player not spawning after death problem
#1

hello, my gamemode is not allowing the player to spawn AFTER death.
when i login i can spawn normally.
but when i die this is what happens:


my onplayerspawn:
Код:
public OnPlayerSpawn(playerid)
{
    SetRealMoney(playerid, ScriptMoney[playerid]);
	new pName[MAX_PLAYER_NAME];
	new string[128];
	InitLockDoors(playerid);
 	if(IsPlayerNPC(playerid)) return 1;
	STDPlayer[playerid] = 0;
 	gTeam[playerid] = PlayerInfo[playerid][pTeam]; //Set the Team
	if (gTeam[playerid] == 4) //medic / criminal reset team
	{
		gTeam[playerid] = 3;
	}
	if(gPlayerLogged[playerid] == 0)
	{
    	SendClientMessage(playerid, COLOR_LIGHTRED, " This server requires a Login BEFORE spawn (Kicked) **");
        Kick(playerid);
 	}
 	if(!gPlayerAnimLibsPreloaded[playerid])
	 {
   		PreloadAnimLib(playerid,"BOMBER");
   		PreloadAnimLib(playerid,"RAPPING");
    	PreloadAnimLib(playerid,"SHOP");
   		PreloadAnimLib(playerid,"BEACH");
   		PreloadAnimLib(playerid,"SMOKING");
    	PreloadAnimLib(playerid,"FOOD");
    	PreloadAnimLib(playerid,"ON_LOOKERS");
    	PreloadAnimLib(playerid,"DEALER");
		PreloadAnimLib(playerid,"CRACK");
		PreloadAnimLib(playerid,"CARRY");
		PreloadAnimLib(playerid,"COP_AMBIENT");
		PreloadAnimLib(playerid,"PARK");
		PreloadAnimLib(playerid,"INT_HOUSE");
		PreloadAnimLib(playerid,"FOOD");
		PreloadAnimLib(playerid,"PED");
		PreloadAnimLib(playerid,"MISC");
		PreloadAnimLib(playerid,"BLOWJOBZ");
		PreloadAnimLib(playerid,"RIFLE");
		PreloadAnimLib(playerid,"UZI");
		PreloadAnimLib(playerid,"SHOTGUN");
		PreloadAnimLib(playerid,"COLT45");
		PreloadAnimLib(playerid,"SILENCED");
		PreloadAnimLib(playerid,"GYMNASIUM");
		PreloadAnimLib(playerid,"PARK");
		PreloadAnimLib(playerid,"BSKTBALL");
		PreloadAnimLib(playerid,"GANGS");
		PreloadAnimLib(playerid,"FIGHT_D");
		PreloadAnimLib(playerid,"PAULNMAC");
		gPlayerAnimLibsPreloaded[playerid] = 1;
	}
	TextDrawHideForPlayer(playerid, Textdraw39[playerid]);
	TextDrawHideForPlayer(playerid, Textdraw40[playerid]);
	if(gTeam[playerid] == 11 && PlayerInfo[playerid][pLeader] < 1)
	{
	    MedicBill[playerid] = 0;
	    new rand = random(sizeof(CIV));
		SendClientMessage(playerid, COLOR_LIGHTRED, "You are not an Approved Leader, you are now a Civilian !");
		PlayerInfo[playerid][pTeam] = 3;
		gTeam[playerid] = 3;
		SetSpawnInfo(playerid, gTeam[playerid], CIV[rand],0.0,0.0,0.0,0,0,0,0,0,0,0);
		PlayerInfo[playerid][pModel] = CIV[rand];
		SpawnPlayer(playerid);
	}
	if(gTeam[playerid] == 5)
	{
	    if(PlayerInfo[playerid][pMember] < 1)
	    {
	        MedicBill[playerid] = 0;
	        new rand = random(sizeof(CIV));
			SendClientMessage(playerid, COLOR_LIGHTRED, "You are not a Family Member, you are now a Civilian !");
			PlayerInfo[playerid][pTeam] = 3;
			gTeam[playerid] = 3;
            SetSpawnInfo(playerid, gTeam[playerid], CIV[rand],0.0,0.0,0.0,0,0,0,0,0,0,0);
			PlayerInfo[playerid][pModel] = CIV[rand];
			SpawnPlayer(playerid);
		}
	}
	if(gTeam[playerid] == 10)
	{
	    if(PlayerInfo[playerid][pMember] != 8)
	    {
	        MedicBill[playerid] = 0;
	        new rand = random(sizeof(CIV));
			SendClientMessage(playerid, COLOR_LIGHTRED, "You are not a Member of this Agency, you are now a Civilian !");
			PlayerInfo[playerid][pTeam] = 3;
			gTeam[playerid] = 3;
            SetSpawnInfo(playerid, gTeam[playerid], CIV[rand],0.0,0.0,0.0,0,0,0,0,0,0,0);
			PlayerInfo[playerid][pModel] = CIV[rand];
			SpawnPlayer(playerid);
		}
	}
	if(gTeam[playerid] == 2 && PlayerInfo[playerid][pMember] > 3)
	{
	    MedicBill[playerid] = 0;
		new rand = random(sizeof(CIV));
		SendClientMessage(playerid, COLOR_LIGHTRED, "You haven't applied for being an Officer / FBI /  you are now a Civilian !");
		PlayerInfo[playerid][pTeam] = 3;
		gTeam[playerid] = 3;
		SetSpawnInfo(playerid, gTeam[playerid], CIV[rand],0.0,0.0,0.0,0,0,0,0,0,0,0);
		PlayerInfo[playerid][pModel] = CIV[rand];
		SpawnPlayer(playerid);
	}
	if(PlayerInfo[playerid][pRegularCount] <= 72000 && PlayerInfo[playerid][pRegularRank] == 0)
	{
	    PlayerInfo[playerid][pRegularRank] = 1;
	    GetPlayerName(playerid, pName, sizeof(pName));
	    format(string, sizeof(string), "%s was promoted to Regular.", pName);
	    SendClientMessageToAll(COLOR_LIGHTBLUEGREEN, string);
	    if (PlayerInfo[playerid][pHelper] == 0)
	    {
	        PlayerInfo[playerid][pHelper] = 1;
	        SendClientMessage(playerid, COLOR_GROVE, "You became a helper!");
		}
	}
	if(PlayerInfo[playerid][pRegularCount] <= 36000 && PlayerInfo[playerid][pRegularRank] == 1)
	{
	    PlayerInfo[playerid][pRegularRank] = 2;
	    GetPlayerName(playerid, pName, sizeof(pName));
	    format(string, sizeof(string), "%s was promoted to Veteran", pName);
	    SendClientMessageToAll(COLOR_LIGHTBLUEGREEN, string);
	}
	if(PlayerInfo[playerid][pRegularCount] == 0 && PlayerInfo[playerid][pRegularRank] == 2)
	{
	    PlayerInfo[playerid][pRegularRank] = 3;
	    GetPlayerName(playerid, pName, sizeof(pName));
	    format(string, sizeof(string), "%s was promoted to 1337. [Elite]", pName);
	    SendClientMessageToAll(COLOR_LIGHTBLUEGREEN, string);
	    if (PlayerInfo[playerid][pHelper] == 1 || PlayerInfo[playerid][pHelper] == 0)
	    {
	        PlayerInfo[playerid][pHelper] = 2;
	        SendClientMessage(playerid, COLOR_GROVE, "You came a master helper!");
		}
	}
	if(gTeam[playerid] == 3)
	{
	    if(PlayerInfo[playerid][pMember] > 0 || PlayerInfo[playerid][pLeader] > 0)
	    {
			SendClientMessage(playerid, COLOR_LIGHTRED, "You are part of a Family/Force, you've been forced to the right Class + Char !");
			MedicBill[playerid] = 0;
			new model = PlayerInfo[playerid][pChar];
			if(PlayerInfo[playerid][pMember] == 1) { SetSpawnInfo(playerid, 2, model,0.0,0.0,0.0,0,0,0,0,0,0,0); PlayerInfo[playerid][pTeam] = 2; gTeam[playerid] = 2; }
			else if(PlayerInfo[playerid][pMember] == 2) { SetSpawnInfo(playerid, 2, model,0.0,0.0,0.0,0,0,0,0,0,0,0); PlayerInfo[playerid][pTeam] = 2; gTeam[playerid] = 2; }
			else if(PlayerInfo[playerid][pMember] == 4) { SetSpawnInfo(playerid, 1, model,0.0,0.0,0.0,0,0,0,0,0,0,0); PlayerInfo[playerid][pTeam] = 1; gTeam[playerid] = 1; }
			else if(PlayerInfo[playerid][pMember] == 5) { SetSpawnInfo(playerid, 5, model,0.0,0.0,0.0,0,0,0,0,0,0,0); PlayerInfo[playerid][pTeam] = 5; gTeam[playerid] = 5; }
			else if(PlayerInfo[playerid][pMember] == 6) { SetSpawnInfo(playerid, 5, model,0.0,0.0,0.0,0,0,0,0,0,0,0); PlayerInfo[playerid][pTeam] = 5; gTeam[playerid] = 5; }
			else if(PlayerInfo[playerid][pMember] == 7) { SetSpawnInfo(playerid, 11, model,0.0,0.0,0.0,0,0,0,0,0,0,0); PlayerInfo[playerid][pTeam] = 11; gTeam[playerid] = 11; }
			else if(PlayerInfo[playerid][pMember] == 8) { SetSpawnInfo(playerid, 10, model,0.0,0.0,0.0,0,0,0,0,0,0,0); PlayerInfo[playerid][pTeam] = 10; gTeam[playerid] = 10; }
			else if(PlayerInfo[playerid][pMember] == 9) { SetSpawnInfo(playerid, 12, model,0.0,0.0,0.0,0,0,0,0,0,0,0); PlayerInfo[playerid][pTeam] = 12; gTeam[playerid] = 12; }
			else if(PlayerInfo[playerid][pMember] == 10) { SetSpawnInfo(playerid, 12, model,0.0,0.0,0.0,0,0,0,0,0,0,0); PlayerInfo[playerid][pTeam] = 12; gTeam[playerid] = 12; }
			else if(PlayerInfo[playerid][pMember] == 11) { SetSpawnInfo(playerid, 12, model,0.0,0.0,0.0,0,0,0,0,0,0,0); PlayerInfo[playerid][pTeam] = 12; gTeam[playerid] = 12; }
			else if(PlayerInfo[playerid][pMember] == 12) { SetSpawnInfo(playerid, 1, model,0.0,0.0,0.0,0,0,0,0,0,0,0); PlayerInfo[playerid][pTeam] = 1; gTeam[playerid] = 1; }
            else if(PlayerInfo[playerid][pMember] == 13) { SetSpawnInfo(playerid, 11, model,0.0,0.0,0.0,0,0,0,0,0,0,0); PlayerInfo[playerid][pTeam] = 11; gTeam[playerid] = 11; }
			else if(PlayerInfo[playerid][pMember] == 14) { SetSpawnInfo(playerid, 5, model,0.0,0.0,0.0,0,0,0,0,0,0,0); PlayerInfo[playerid][pTeam] = 5; gTeam[playerid] = 5; }
			else if(PlayerInfo[playerid][pMember] == 15) { SetSpawnInfo(playerid, 5, model,0.0,0.0,0.0,0,0,0,0,0,0,0); PlayerInfo[playerid][pTeam] = 5; gTeam[playerid] = 5; }
			else if(PlayerInfo[playerid][pMember] == 16) { SetSpawnInfo(playerid, 5, model,0.0,0.0,0.0,0,0,0,0,0,0,0); PlayerInfo[playerid][pTeam] = 5; gTeam[playerid] = 5; }
			else if(PlayerInfo[playerid][pLeader] == 1) { SetSpawnInfo(playerid, 11, model,0.0,0.0,0.0,0,0,0,0,0,0,0); PlayerInfo[playerid][pTeam] = 11; gTeam[playerid] = 11; }
			else if(PlayerInfo[playerid][pLeader] == 2) { SetSpawnInfo(playerid, 11, model,0.0,0.0,0.0,0,0,0,0,0,0,0); PlayerInfo[playerid][pTeam] = 11; gTeam[playerid] = 11; }
			else if(PlayerInfo[playerid][pLeader] == 4) { SetSpawnInfo(playerid, 11, model,0.0,0.0,0.0,0,0,0,0,0,0,0); PlayerInfo[playerid][pTeam] = 11; gTeam[playerid] = 11; }
			else if(PlayerInfo[playerid][pLeader] == 5) { SetSpawnInfo(playerid, 11, model,0.0,0.0,0.0,0,0,0,0,0,0,0); PlayerInfo[playerid][pTeam] = 11; gTeam[playerid] = 11; }
			else if(PlayerInfo[playerid][pLeader] == 6) { SetSpawnInfo(playerid, 11, model,0.0,0.0,0.0,0,0,0,0,0,0,0); PlayerInfo[playerid][pTeam] = 11; gTeam[playerid] = 11; }
			else if(PlayerInfo[playerid][pLeader] == 7) { SetSpawnInfo(playerid, 11, model,0.0,0.0,0.0,0,0,0,0,0,0,0); PlayerInfo[playerid][pTeam] = 11; gTeam[playerid] = 11; }
			else if(PlayerInfo[playerid][pLeader] == 8) { SetSpawnInfo(playerid, 11, model,0.0,0.0,0.0,0,0,0,0,0,0,0); PlayerInfo[playerid][pTeam] = 11; gTeam[playerid] = 11; }
			else if(PlayerInfo[playerid][pLeader] == 9) { SetSpawnInfo(playerid, 11, model,0.0,0.0,0.0,0,0,0,0,0,0,0); PlayerInfo[playerid][pTeam] = 11; gTeam[playerid] = 11; }
			else if(PlayerInfo[playerid][pLeader] == 10) { SetSpawnInfo(playerid, 11, model,0.0,0.0,0.0,0,0,0,0,0,0,0); PlayerInfo[playerid][pTeam] = 11; gTeam[playerid] = 11; }
			else if(PlayerInfo[playerid][pLeader] == 11) { SetSpawnInfo(playerid, 11, model,0.0,0.0,0.0,0,0,0,0,0,0,0); PlayerInfo[playerid][pTeam] = 11; gTeam[playerid] = 11; }
            else if(PlayerInfo[playerid][pLeader] == 12) { SetSpawnInfo(playerid, 1, model,0.0,0.0,0.0,0,0,0,0,0,0,0); PlayerInfo[playerid][pTeam] = 1; gTeam[playerid] = 1; }
			else if(PlayerInfo[playerid][pLeader] == 13) { SetSpawnInfo(playerid, 11, model,0.0,0.0,0.0,0,0,0,0,0,0,0); PlayerInfo[playerid][pTeam] = 11; gTeam[playerid] = 11; }
			else if(PlayerInfo[playerid][pLeader] == 14) { SetSpawnInfo(playerid, 11, model,0.0,0.0,0.0,0,0,0,0,0,0,0); PlayerInfo[playerid][pTeam] = 11; gTeam[playerid] = 11; }
			else if(PlayerInfo[playerid][pLeader] == 15) { SetSpawnInfo(playerid, 11, model,0.0,0.0,0.0,0,0,0,0,0,0,0); PlayerInfo[playerid][pTeam] = 11; gTeam[playerid] = 11; }
			else if(PlayerInfo[playerid][pLeader] == 16) { SetSpawnInfo(playerid, 11, model,0.0,0.0,0.0,0,0,0,0,0,0,0); PlayerInfo[playerid][pTeam] = 11; gTeam[playerid] = 11; }
			//SetSpawnInfo(playerid, team, model,0.0,0.0,0.0,0,0,0,0,0,0,0);
			SpawnPlayer(playerid);
		}
	}
	if(PlayerInfo[playerid][pChar] > 0) { SetPlayerSkin(playerid, PlayerInfo[playerid][pChar]); }
	else { SetPlayerSkin(playerid, PlayerInfo[playerid][pModel]); }
	SetPlayerWeapons(playerid);
	SetPlayerSpawn(playerid);
	SetPlayerToTeamColor(playerid);
	PlayerFixRadio(playerid);
	IsCopBanned(playerid);
	return 1;
}
my onplayerdeath
Код:
public OnPlayerDeath(playerid, killerid, reason)
{
    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));
        SetPlayerVirtualWorld(playerid, 0);
	SetPlayerInterior(playerid, 0);
        SetPlayerPos(playerid, [LOCATION CHANGED IN THE SCREENSHOT]);
	PlayerInfo[playerid][pVirWorld] = 0;
	SendClientMessage(playerid, COLOR_CREAM, "You have paid $200 for medical pills.");
	SafeGivePlayerMoney(playerid, -200);
	if(killerid != INVALID_PLAYER_ID)
	{
		if(GetPlayerWeapon(killerid) != reason)
		{
		    if(AntiFakeKill == 1)
		    {
		        if(reason !=  51 || reason != 50 || reason != 18 || reason == 36 || reason == 35 || reason == 40 || reason == 16)
	        	{
	        	    FakeKillWarns[playerid] ++;
					if(FakeKillWarns[playerid] == 4)
					{
						format(string, sizeof(string), "%s (%d), Has been kicked by The Anticheat Peter Griffin for Possible Fake Death Hacks.", name, playerid);
						SendClientMessageToAll(COLOR_NICERED, string);
						SendClientMessage(playerid,COLOR_LIGHTBLUE, "You have Been Kicked by The Anticheat For Possible Fake Death Hacks.");
						format(string,sizeof(string), "(%d/%d/%d)[%d:%d:%d] Anticheat Has Kicked %s for: Fake Death hacks.",d,m,y,h,mi,s,name);
						KickLog(string);
						format(string,sizeof(string), "(%d/%d/%d)[%d:%d:%d] Kicked by the Anticheat - Fake Death Hacks.",d,m,y,h,mi,s,name);
						AddPunishment(playerid, string);
						Kick(playerid);
					}
					else
					{
						format(string, sizeof(string), "[PETER]: %s(%d) is possibly using fake death hacking. ", name, playerid);
						SendAdminMessage(COLOR_YELLOW, string);
						PlayerSuspicious[playerid] = 1;
						PlayerFakeDeathHacking[playerid] = 1;
						PlayerGotSpottedRecently[playerid] = 1;
						SetTimerEx("ResetAcWarn", 300000, 0, "i", playerid);
					}
				}
			}
		}
	}
	if(GetPlayerState(killerid) == PLAYER_STATE_DRIVER)
	{
	    if(AntiDriveBy == 1)
	    {
	        new model = GetVehicleModel(GetPlayerVehicleID(killerid));
	        if(model != 520 || model != 425 || model != 432)
	        {
		        PlayerInfo[killerid][pWarns] ++;
			    if(PlayerInfo[playerid][pWarns] == 3)
				{
			        format(string, sizeof(string), "%s (%d), Has been Kicked by The Anticheat Peter Griffin for Excessive Drive by Killing.", name2, killerid);
					SendClientMessageToAll(COLOR_NICERED, string);
					SendClientMessage(killerid,COLOR_LIGHTBLUE, "You have Been Kicked by The Anticheat For Excessive Drive By Killing");
					format(string,sizeof(string), "(%d/%d/%d)[%d:%d:%d] Anticheat Has Kicked %s for: Excessive Drive By Killing",d,m,y,h,mi,s,name2);
					KickLog(string);
					Kick(killerid);
				}
				else
				{
				    format(string, sizeof(string), "%s (%d), Has been Warned by The Anticheat Peter Griffin for Drive by Killing.", name2, killerid);
					SendClientMessageToAll(COLOR_NICERED, string);
					SendClientMessage(killerid,COLOR_LIGHTBLUE, "You have Been Warned by The Anticheat For Excessive Drive By Killing");
					format(string, sizeof(string), "[PETER]: %s was warned by the anticheat for DB as driver.", name2);
					SendAdminMessage(COLOR_YELLOW, string);
					format(string,sizeof(string), "(%d/%d/%d)[%d:%d:%d] Warned by Anticheat - Reason: Driver drive-by kill.",d,m,y,h,mi,s);
					AddPunishment(killerid, string);
				}
			}
		}
	}
	if(killerid != INVALID_PLAYER_ID)
	{
	    if(reason == 0) { deathreason = "Melee"; }
	    else if(reason == 36 || reason == 35 || reason == 40 || reason == 16) { deathreason = "Explosion"; }
	    else if(reason == 18 || reason == 37) { deathreason = "Fire"; }
	    else if(reason == 51) { deathreason = "Explosion"; }
	    else if(reason == 50) { deathreason = "Heli-Kill"; }
	    else { GetWeaponName(reason, deathreason, sizeof(deathreason)); }
	    format(string, sizeof(string),"[INFO]: %s(%d) was killed by %s(%d) with %s", name,playerid,name2,killerid,deathreason);
	    SendAdminMessage(COLOR_GREEN, string);
	}
	else
	{
	    new text[30];
	    if(reason == 51) { text = "Explosion"; }
	    else if(reason == 53) { text = "Drowned"; }
	    else if(reason == 54) { text = "Collision"; }
	    else { text = "Death"; }
	    format(string, sizeof(string),"[INFO]: %s(%d) was killed by the server. (%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];
	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);

    MedicBill[playerid] = 1;

	if(gPlayerUsingLoopingAnim[playerid])
	{
        gPlayerUsingLoopingAnim[playerid] = 0;
	}
	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), "You lost $%d for dieing with %d Wanted Points.", diecash, wanted);
	    SendClientMessage(playerid, COLOR_YELLOW, dstring);
	    SafeGivePlayerMoney(playerid, - diecash);
	    PlayerInfo[playerid][pWantedDeaths] += 1;
	}
	WantedPoints[playerid] = 0;
	WantedLevel[playerid] = 0;
	if(PlayerInfo[playerid][pRegularRank] > 0) { SetPlayerHealth(playerid, 100.0); }
	else { SetPlayerHealth(playerid, 50.0+PlayerInfo[playerid][pSHealth]); }
	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, "That was a drive-by kill. Don't abuse it.");
						return 1;
					}
					SetPlayerCriminal(killerid,255,"Manslaughter");
					return 1;
				}
			}
		}
	}
i press spawn but nothing happens

Any help would be appreciated
Reply
#2

well try to add
pawn Код:
SpawnPlayer(playerid);
at OnPlayerDeath
Reply
#3

What about OnPlayerRequestSpawn?
Reply
#4

pawn Код:
public OnPlayerDeath(playerid, killerid, reason)
{
   Spawn(playerid);
   return 1;
}
Reply
#5

Quote:
Originally Posted by [xB]Lordz
Посмотреть сообщение
pawn Код:
public OnPlayerDeath(playerid, killerid, reason)
{
   Spawn(playerid);
   return 1;
}
Fail again .. :P
its SpawnPlayer(playerid);
Not Spawn(playerid);
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)