Jump to content
  • 0

pomoc Zmizí label


Pavel Tuček

Dotaz

Popis problému:


Dobrý den,
mám udelanej script na to, že hráč si muže vytvorit vlastní label u sebe. Když se odpojí, tak label ma zmizet. Jenže mám tu problém, že když nekdo vytvorí label a odpojí se random hráč, tak ten label tomu hráči zmizí ( i když se neodpojil přímo on )


Chyby/varování kompilátoru a při běhu:
--

Kód:

 

na začátku:

new Text3D:label[MAX_PLAYERS];

tady se label vytváři

label[playerid] = Create3DTextLabel(labeltext, -1, 0, 0, 0, 70.0, 0);

public OnPlayerDisconnect(playerid, reason)
{

     Delete3DTextLabel(label[playerid]);
    return 1;
}

 




Dodatečné poznámky:
--

Edited by Pavel Tuček
Link to comment
Share on other sites

14 odpovědí na tuto otázku

Recommended Posts

  • 0
  • Globální moderátor

V tom případě musíš ošetřit jestli ten label existuje...

 

Nejlépe na začátku při connectu:

 

label[playerid] = Text3D:-1;

 

a v disconnectu:

if(label[playerid] != -1) Destroy...

Link to comment
Share on other sites

  • 0

Já a kámoš.

CMD:label(playerid, params[])
{
     new labeltext[128],text[128];
     if(sscanf(params, "s", text))
     if(label[playerid] != Text3D:-1)
     {
        Delete3DTextLabel(label[playerid]);
     }
	label[playerid] = Create3DTextLabel(labeltext, -1, 0, 0, 0, 50.0, 0);
	return 1;
}
Link to comment
Share on other sites

  • 0
  • Globální moderátor

ten prikaz je napsanej uplne blbe icon_e_biggrin.gif

 

napr se koukni na tuhle cast:

if(sscanf(params, "s", text))
if(label[playerid] != Text3D:-1)
{
Delete3DTextLabel(label[playerid]);
}

trochu ti tady bude blbnout podminka (hint: zavorky)

Link to comment
Share on other sites

  • 0


new
Text3D:label[MAX_PLAYERS] = {Text3D:INVALID_3DTEXT_ID, ...}
;

public OnPlayerDisconnect(playerid, reason)
{
if(label[playerid] != Text3D:INVALID_3DTEXT_ID)
{
Delete3DTextLabel(label[playerid]);
label[playerid] = Text3D:INVALID_3DTEXT_ID;
}
return 1;
}

CMD:label(playerid, params[])
{
if(params[0])
{//Podľa wiki môže okolitým hráčom spadnúť hra ak by bol text prázdny
if(label[playerid] != Text3D:INVALID_3DTEXT_ID)
{
Delete3DTextLabel(label[playerid]);
}
label[playerid] = Create3DTextLabel(params, -1, 0, 0, 0, 50.0, 0);
}
return 1;
}

 

Edited by Kubko
  • Líbí se mi to! (+1) 1
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...