Multiple Player Bugged
#1

Hi.

When a player dies they are suppose to get to "ShowPlayerClass" and then spawn, but that only works for ID 0.
Let me try to explain.
When ID 1 dies this is what happens:
ID 1: /dies
ID 1: Gets into spectating mode but doesn't get the "ShowPlayerClass"
ID 0: Gets the "ShowPlayerClass" instead of ID 1... (And ID 0 is not in spectating mode)

The code looks something like this:
Код:
new PlayerText:TDC[MAX_PLAYERS]; // This is how the PlayerText are created
new Text:TD1; // This is how the other textdraw are created

// When OnPlayerConnect is called i create the player textdraws
public OnPlayerConnect(playerid)
{
    TDC[playerid] = CreatePlayerTextDraw(playerid...
	return 1;
}

public OnGameModeInit() // When OnGameModeInit is called i create them
{
    TDClassBG = TextDrawCreate(....
    return 1;
}

public OnPlayerRequestClass(playerid, classid) // When a player dies or just connected
{
	TogglePlayerSpectating(playerid, true);
	SetTimerEx("ShowPlayerClass", 100, false, "i", 1, playerid);
	return 1;
}

forward ShowPlayerClass(number,playerid);
public ShowPlayerClass(number,playerid) // This is the "ShowPlayerClass"
{
    if(number == 1)
	{
		TextDrawHideForPlayer(playerid,TD1);
		TextDrawHideForPlayer(playerid,TD2);
		TextDrawHideForPlayer(playerid,TD3);
		TextDrawHideForPlayer(playerid,TD4);
		TextDrawHideForPlayer(playerid,TD5);
		
		PlayerTextDrawHide(playerid, TDKills[playerid]);
		PlayerTextDrawHide(playerid, TDDeaths[playerid]);
		PlayerTextDrawHide(playerid, TDScore[playerid]);
		
		TextDrawShowForPlayer(playerid,Textdraw1);
	    TextDrawShowForPlayer(playerid,Textdraw2);
	    TextDrawShowForPlayer(playerid,TDClassBG);
	    TextDrawShowForPlayer(playerid,TDClassHeader);
		
		PlayerTextDrawShow(playerid, TDC[playerid]);
		PlayerTextDrawShow(playerid, TDD[playerid]);
		
		SelectTextDraw(playerid, 0xFFFFFFAA);
	}
	TextDrawHideForPlayer(playerid,TDLoc[playerid]);
	return 1;
}

public OnPlayerSpawn(playerid)
{
    ForceClassSelection(playerid); // Force class selection when we spawn to call OnPlayerRequestClass
    return 1;
}

public OnPlayerDeath(playerid, killerid, reason) // Nothing happens here
{
    return 1;
}
If there is something you don't understand please let me know, i really need some help on this one!
Reply
#2

Changed
Код:
SetTimerEx("ShowPlayerClass", 100, false, "i", 1, playerid);
To
Код:
SetTimerEx("ShowPlayerClass", 100, false, "id", 1, playerid);
And everything seems to be working fine now.
Reply
#3

And that was exactly the problem; not properly forwarding playerid caused it to be 0.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)