Multiple Player Bugged - 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: Multiple Player Bugged (
/showthread.php?tid=438676)
Multiple Player Bugged -
Yuup - 21.05.2013
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!
Re: Multiple Player Bugged -
Yuup - 21.05.2013
Changed
Код:
SetTimerEx("ShowPlayerClass", 100, false, "i", 1, playerid);
To
Код:
SetTimerEx("ShowPlayerClass", 100, false, "id", 1, playerid);
And everything seems to be working fine now.
Re: Multiple Player Bugged -
Jochemd - 21.05.2013
And that was exactly the problem; not properly forwarding playerid caused it to be 0.