3D Text Above players head if hes under level 4 -
Artorias - 29.03.2015
Hello there!
I would like to have players who are under level 4 have a 3DTextLabel above their head with...
But Im having trouble creating it since im very new to this can anyone give me a little push in the right direction?
Re: 3D Text Above players head if hes under level 4 -
izeatfishz - 29.03.2015
What's your variable for levels?
or are you just using score?
AW: 3D Text Above players head if hes under level 4 -
Artorias - 29.03.2015
the variable should be pLevel
Re: 3D Text Above players head if hes under level 4 -
JaydenJason - 29.03.2015
Код:
public OnPlayerConnect
{
for(new i = 0; i < MAX_PLAYERS; i++);
if(pLevel[i] < 5);
{
new Text3D:label = Create3DTextLabel("I am a newbie. (Level: %s) ",pLevel[i] , 0x008080FF, 30.0, 40.0, 50.0, 40.0, 0);
Attach3DTextLabelToPlayer(label, i, 0.0, 0.0, 0.7);
return 1;
}
return 1;
}
https://sampwiki.blast.hk/wiki/Attach3DTextLabelToPlayer
Something like that (made on phone so expect mistakes)
Re: 3D Text Above players head if hes under level 4 -
CalvinC - 29.03.2015
There are some mistakes with that, use it like this:
pawn Код:
new Text3D:ScoreLabel[MAX_PLAYERS]; // It should be a global array, so we can destroy it again
public OnPlayerConnect(playerid) // You need the playerid-parameter
{
// Why use a loop? That would just create more and more labels when someone connects
if(pLevel[playerid] < 5) // If-statements cannot have semicolons
{
new string[24];
format(string, sizeof(string), "I am newbie. (Level: %i)", pLevel[playerid]); // You need to format the string, and you also need to use an integer, not string for the level
ScoreLabel[playerid] = CreateDynamic3DTextLabel(string, 0x008080FF, 30.0, 40.0, 50.0, 40.0, playerid);
// No need for 2 returns
}
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
DestroyDynamic3DTextLabel(ScoreLabel[playerid]); // Destroys the 3DTextLabel
}
With Streamer, it can easily bug out if you don't use dynamic labels.
But whenever you give some player score, you should check if his score goes over 4, and destroy the text label, like:
pawn Код:
if(pLevel[playerid] > 4) DestroyDynamic3DTextLabel(ScoreLabel[playerid]);
AW: 3D Text Above players head if hes under level 4 -
Artorias - 29.03.2015
First of all thank you very much for your help. But now im getting this reply when i want to Compile:
Код:
(24551) : error 028: invalid subscript (not an array or too many subscripts): "pLevel"
(24551) : warning 215: expression has no effect
(24551) : error 001: expected token: ";", but found "]"
(24551) : error 029: invalid expression, assumed zero
(24551) : fatal error 107: too many error messages on one line
Line 24551:
Код:
if(pLevel[playerid] < 5) // If-statements cannot have semicolons
Re: 3D Text Above players head if hes under level 4 -
CalvinC - 29.03.2015
Then you aren't using pLevel, show where you declare it, or use GetPlayerScore(playerid) instead.
AW: 3D Text Above players head if hes under level 4 -
Artorias - 29.03.2015
Doesnt seem to be pLevel then lol, cant find it now but I was sure i defined it as that... I will have to look into it later when Im back
AW: 3D Text Above players head if hes under level 4 -
Artorias - 29.03.2015
Checked it now, it is pLevel I am using it for the /levelup command....
Re: 3D Text Above players head if hes under level 4 -
CalvinC - 29.03.2015
Can you show your /levelup command then, or just where you use pLevel?