SA-MP Forums Archive
Spawn player problem.. - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: Spawn player problem.. (/showthread.php?tid=566990)



Spawn player problem.. - dundolina - 09.03.2015

I have problem with spawn for players. When player die or spectate it's give him to choose skin again and every time when he die it need to select skin. How to fix that?


Re: Spawn player problem.. - Ritzy2K - 09.03.2015

Kindly Show your public OnPlayerDeath.


Re: Spawn player problem.. - CalvinC - 09.03.2015

Search for any ForceClassSelection code, as that will force the player to select his class again the next time he dies.


Re: Spawn player problem.. - dundolina - 09.03.2015

I dont have forceclass selection and here's the code OnPlayerDeath:

Код:
public OnPlayerDeath(playerid, killerid, reason)
{
    if(GetPVarInt(playerid, "Headshotted") == 1)
    {
        SetPVarInt(playerid, "Headshotted", 0);
        GameTextForPlayer(playerid, "~r~Headshotted", 3000, 3);
        GameTextForPlayer(killerid, "~r~Headshottttt", 3000, 3);
    }
    
            #pragma unused reason
        if(killerid != INVALID_PLAYER_ID)
        {
                SetPlayerScore (killerid, GetPlayerScore (killerid) + 1);
                SetPlayerStarRang(playerid);
        }

     joined[playerid] = 0;
                        leavefunction(playerid);

                        new szString[128];
                    kills2[killerid]++;
                    format(szString,sizeof(szString),"Kills :%d",kills2[killerid]);
                    TextDrawSetString(Kill_Streak[killerid],szString);

                        SetPlayerScore(killerid,GetPlayerScore(killerid) +1);
                        SetPlayerScore(playerid,0);
                        if(GetPlayerScore(killerid) == 2)
                        {
                                SetPlayerHealth(killerid,100);
                                SetPlayerArmour(killerid,100);
                                GivePlayerWeapon(killerid, 23, 500);
                                GameTextForPlayer(killerid, "~r~LEVEL UP", 3500, 5);
                                SetPlayerArmedWeapon(playerid, 23);
                                return 1;
                        }
                        if(GetPlayerScore(killerid) == 3)
                        {
                                SetPlayerHealth(killerid,150);
                            SetPlayerArmour(killerid,150);
                            GivePlayerWeapon(killerid,24,200);
                                GameTextForPlayer(killerid, "~r~LEVEL UP", 3500, 5);
                            return 1;
                        }
                        if(GetPlayerScore(killerid) == 4)
                        {
                            SetPlayerHealth(killerid,150);
                            SetPlayerArmour(killerid,150);
                            GivePlayerWeapon(killerid, 27, 500);
                                GameTextForPlayer(killerid, "~r~LEVEL UP", 3500, 5);
                            return 1;
                        }
                        if(GetPlayerScore(killerid) == 5)
                        {
                                SetPlayerHealth(killerid,150);
                            SetPlayerArmour(killerid,150);
                                GivePlayerWeapon(killerid,28,500);
                                GameTextForPlayer(killerid, "~r~LEVEL UP", 3500, 5);
                                SetPlayerArmedWeapon(playerid, 28);
                                return 1;
                        }
                        if(GetPlayerScore(killerid) == 6)
                        {
                                GivePlayerWeapon(killerid, 32, 500);
                                SetPlayerHealth(killerid, 100);
                                SetPlayerArmour(killerid, 100);
                                GameTextForPlayer(killerid, "~r~LEVEL UP", 3500, 5);
                                SetPlayerArmedWeapon(playerid, 32);
                            return 1;
                        }
    new string[256];
    new Float: X, Float: Y, Float: Z;
	GivePlayerCash(playerid, -2000);
	HitID[playerid] = killerid;
    PlayerInfo[playerid][pDeaths] += 1;
	Kills[playerid] = 0;
	GetPlayerPos(playerid, X, Y, Z);
	PlayerKilled[playerid] = 1;
	SendDeathMessage(killerid, playerid, reason);
	if(Bounty[playerid] > 0)
	{
        Bounty[playerid] = 0;
        format(string, sizeof(string), "Този играч има награда за главата си: %d$", Bounty[playerid]);
	    SendClientMessage(killerid, COLOR_YELLOW2, string);
	    GivePlayerCash(killerid, Bounty[playerid]);
	}

	Kills[killerid]++;
	
	if(killerid != 255)
	{
	    if(PlayerInfo[killerid][pMember] != TEAM_SPECIALFORCE)
	    {
			if(GetPlayerState(killerid) == 2)
			{
			    new kickname[MAX_PLAYER_NAME];
				GetPlayerName(killerid, kickname, sizeof(kickname));
				format(string, 256, "BGW SERVER: %s[%d]уби %s[%d] със Drive-By и убиеца беше SLAY-ed." ,kickname,killerid,PlayerName(playerid),playerid);
				ABroadCast(COLOR_YELLOW, string, 1);
				SetPlayerHealth(killerid,0);
				return 1;
			}
		}
	}
    if(reason == 50)
	{
		new kickname[MAX_PLAYER_NAME];
		if(IsPlayerConnected(killerid))
		{
			BladeKill[killerid] += 1;
			if(BladeKill[killerid] >= 1)
			{
			    GetPlayerName(killerid, kickname, sizeof(kickname));
			    format(string, 256, "BGW SERVER: %s was kicked, reason: Excesive Blade Killing." ,kickname);
			    SendClientMessageToAll(COLOR_LIGHTRED, string);
			    SetPlayerHealth(killerid,0);
			}
		}
	}
	PlayerInfo[killerid][pKills] += 1;
	SetPlayerScore(killerid, PlayerInfo[killerid][pKills]);
	Kills[killerid]++;
	if(Kills[killerid] > 3) Bounty[killerid] += 1000 * Kills[killerid];
	new bonus = 500 * Kills[killerid];
	GivePlayerCash(killerid, bonus);
	if(Kills[killerid] == 3) format(string,sizeof(string),"~W~%s IS DOMINATING!", PlayerName(killerid));
    if(Kills[killerid] == 10) format(string,sizeof(string),"~W~%s IS ON A KILLING SPREE!", PlayerName(killerid));
    if(Kills[killerid] == 15) format(string,sizeof(string),"~W~%s HAS A MONSTER KILL!!!", PlayerName(killerid));
    if(Kills[killerid] == 21) format(string,sizeof(string),"~W~%s IS ~r~GODLIKE!", PlayerName(killerid));
    if(Kills[killerid] == 27) format(string,sizeof(string),"~W~%s IS ~R~WICKED SICK!", PlayerName(killerid));
    if(Kills[killerid] >= 40) format(string,sizeof(string),"~R~%s HOLY SHIT WITH %d KILLS!",PlayerName(killerid), Kills[killerid]);
    GameTextForAll(string, 5000, 4);
	SetPlayerWantedLevel(killerid, GetPlayerWantedLevel(killerid));
	if(Kills[killerid] > PlayerInfo[killerid][pSpree]) PlayerInfo[killerid][pSpree] = Kills[killerid];
    if (gTeam[killerid] != gTeam[playerid])
	{
	    new Float:x, Float:y, Float:z;
        TeamInfo[gTeam[killerid]][RivalsKilled]++;
        TeamInfo[gTeam[playerid]][HomiesDied]++;
        TeamInfo[gTeam[killerid]][TeamScore]++;
        TeamInfo[gTeam[playerid]][TeamScore]--;
		GetPlayerPos(playerid, x, y, z);
		GetPlayerPos(killerid, x, y, z);
	    for (new i = 0; i < MAX_TURFS; i++)
	    {
	        if (IsPlayerInTurf(playerid, turfs[i][zMinX], turfs[i][zMinY], turfs[i][zMaxX], turfs[i][zMaxY]) &&
			IsPlayerInTurf(killerid, turfs[i][zMinX], turfs[i][zMinY], turfs[i][zMaxX], turfs[i][zMaxY])  )
	        {
                if (turfs[i][TurfWarStarted] != 1 && !IsPlayerInAnyVehicle(killerid))
                {
                    TurfInfo[i][gTeam[killerid]][TurfKills]++;
                    if (TurfInfo[i][gTeam[killerid]][TurfKills] == ATTACK_KILLS)
                    {
                        if (turfs[i][TurfOwner] == gTeam[killerid])
						{
                            for (new a = 0; a < MAX_TEAMS; a++) TurfInfo[i][a][TurfKills] = 0;
							return 1;
                        }
                        turfs[ i ][ TurfAttacker ] = gTeam[killerid];
                        for (new b = 0; b < 500; b++)
	                    {
                            if (gTeam[b] == turfs[i][TurfAttacker])
							{
                                new msg1[256];
	                            format(msg1,sizeof(msg1), "~w~We have provoked a turfwar ~w~in ~y~%s ( %s ) ~w~against the ~r~%s",
								turfs[i][turfName], turfs[i][cityName], TeamInfo[turfs[i][TurfOwner]][TeamName]);
                                new Text:txt1 = TextDrawCreate(139.0, 350.0, msg1 );
                                TextDrawFont(txt1, 1);
                                TextDrawLetterSize(txt1, 0.29, 1.0);
                                TextDrawSetShadow(txt1, 0);
                                TextDrawSetOutline(txt1, 1);
                                TextDrawColor(txt1, COLOR_WHITE);
                                TimeTextForPlayer(b, txt1, 6000);
                                GangZoneFlashForPlayer(b, turfs[i][turfID], COLOR_FLASH );
                            }
                            else if (gTeam[b] == turfs[ i ][ TurfOwner ])
							{
                                new msg2[256];
	                            format(msg2,sizeof(msg2), "~r~The ~y~%s ~r~have attacked our turf in ~y~%s ( %s )!",
                                TeamInfo[turfs[i][TurfAttacker]][TeamName], turfs[i][turfName], turfs[i][cityName]);
                                new Text:txt2 = TextDrawCreate(139.0, 364.0, msg2);
                                TextDrawFont(txt2, 1);
                                TextDrawLetterSize(txt2, 0.29, 1.0);
                                TextDrawSetShadow(txt2, 0);
                                TextDrawSetOutline(txt2, 1);
                                TextDrawColor(txt2, COLOR_RED);
                                TimeTextForPlayer(b, txt2, 6000);
                                GangZoneFlashForPlayer(b, turfs[i][turfID], COLOR_FLASH);
                            }
                            else GangZoneFlashForPlayer(b, turfs[i][turfID], COLOR_FLASH2);
	                    }
	                    SetTimerEx("EndWar", ATTACK_TIME, false ,"iii", i, turfs[i][TurfAttacker], turfs[i][TurfOwner] );
	                    turfs[i][TurfWarStarted] = 1;
	                    for(new c = 0; c < MAX_TEAMS; c++) { TurfInfo[i][c][TurfKills] = 0; TurfInfo[i][c][TurfAttackKills] = 0; }
                        return 1;
                    }
                }
                else if (turfs[i][TurfWarStarted] == 1 && !IsPlayerInAnyVehicle(killerid) &&
                (turfs[i][TurfAttacker] == gTeam[killerid]) || turfs[i][TurfOwner] == gTeam[killerid])
                {
                    TurfInfo[i][gTeam[killerid]][TurfAttackKills]++;
                    return 1;
                }
	        }
	    }
	}
	if(PlayerInfo[killerid][pAdmin] < 1)
	{
	    for (new weap = 1; weap < 2; weap++)
        {
            if(GetPlayerWeapon(killerid) == weap && HaveWeapon(killerid, weap) != weap)
            {
                new weapname[32];
                GetWeaponName(weap, weapname, sizeof(weapname));
                format(string, sizeof(string), "BGW SERVER: %s was banned, reason: Weapon Hacking (%s).", PlayerName(killerid), weapname);
			    SendClientMessageToAll(COLOR_LIGHTRED, string);
			    PlayerInfo[killerid][pBanned] = 1;
			    format(string, sizeof(string), "Weapon Hacking (%s).", weapname);
			    BanEx(killerid, string);
            }
        }
	}
	return 1;
}
I find Forceclass in two places but when i remove both its bugging and dont spawn me. When i delete one again give me to choose skin..

Код:
public ShowIntro(playerid)
 {
   SetPVarInt(playerid, "Intro", GetPVarInt(playerid, "Intro") + 1);
   new iteration = GetPVarInt(playerid, "Intro");
   switch(iteration)
   {
    case 1:
    {
        for(new i; i < 11; i++)
        {
                SendClientMessage(playerid, -1, "");
        }
        TextDrawShowForPlayer(playerid, Intro[0]);
    }
    case 2:
    {
        TextDrawShowForPlayer(playerid, Intro[1]);
    }
    case 3:
    {
              TextDrawShowForPlayer(playerid, Intro[2]);
    }
    case 4:
    {
        TextDrawHideForPlayer(playerid, Intro[2]);
        TextDrawShowForPlayer(playerid, Intro[3]);
    }
    case 5:
    {
        TextDrawHideForPlayer(playerid, Intro[3]);
        TextDrawShowForPlayer(playerid, Intro[4]);
    }
    case 6:
    {
        TextDrawHideForPlayer(playerid, Intro[4]);
        TextDrawShowForPlayer(playerid, Intro[5]);
    }
    case 7:
    {
        TextDrawHideForPlayer(playerid, Intro[5]);
        TextDrawShowForPlayer(playerid, Intro[6]);
    }
    case 8:
    {
        TextDrawHideForPlayer(playerid, Intro[6]);
        TextDrawShowForPlayer(playerid, Intro[7]);
    }
    case 9:
    {
        TextDrawHideForPlayer(playerid, Intro[7]);
        TextDrawShowForPlayer(playerid, Intro[8]);
    }
    case 10:
    {
        TextDrawShowForPlayer(playerid, Intro[9]);
    }
    case 11:
    {
        TextDrawShowForPlayer(playerid, Intro[10]);
    }
    case 12:
    {
        TextDrawShowForPlayer(playerid, Intro[11]);
    }
   }
   if(GetPVarInt(playerid, "Intro") < 10)
   {
    SetTimerEx("ShowIntro", 300, 0, "d", playerid);
   }
   else if(9 < GetPVarInt(playerid, "Intro") < 13)
   {
          SetTimerEx("ShowIntro", 2000, 0, "d", playerid);
   }
   else
   {
        for(new i; i < sizeof(Intro); i++)
        {
        TextDrawHideForPlayer(playerid, Intro[i]);
    }
    TogglePlayerSpectating(playerid, false);
    ForceClassSelection(playerid);
   }
   return 1;
 }
Код:
	TogglePlayerSpectating(playerid, true);
    ForceClassSelection(playerid);
    SetPVarInt(playerid, "Intro", 0);
    SetTimerEx("ShowIntro", 1000, 0, "d", playerid);



Re: Spawn player problem.. - dundolina - 10.03.2015

Help please?


Respuesta: Spawn player problem.. - JuanStone - 10.03.2015

Not only could be "Forceclass", you might have a function declared in your script in a different way that equal the force to select another skin, this is the only thing that i see here, it could be, try removing this line and try.

PHP код:
leavefunction(playerid



Re: Spawn player problem.. - dundolina - 10.03.2015

I delete it but still have the problem.


Re: Spawn player problem.. - dundolina - 10.03.2015

Help?