Zaloguj się by uzyskać pełen dostęp. Nie masz jeszcze konta? Założ je już teraz w kilka sekund.

Wysłany: 2012-05-06, 11:14


Kurio







Wiek: 35
Na forum: 5512 dni
Posty: 122

Piwa: 17

Respekt: 76,3

Witam mam problem dotycz?cy 3Dtext?w,
opisz? sytuacj?:

tworz? 3Dtext:
Kod:

new Text3D:newlabel[MAX_PLAYERS];

razem ze zmienn? w kt?rej b?dzie przetrzymywany nick:
Kod:

new nickdolabel[80];



og??em nie tylko o nick chodzi, ale tutaj opisz? na prostszym przyk?adzie, aby nie miesza? zbyt wiele,
chodzi o to, ?e jak gracz wchodzi do pojazdu - to nad tym pojazdem pojawia si? taki 3dtext, a jak wychodzi pojazdu to znika.


u?y?em do wsiadania funkcji:

Kod:

if(newstate == 5 && newstate == PLAYER_STATE_DRIVER)



a do wysiadania:

Kod:

if(newstate == 4 && newstate == PLAYER_STATE_ONFOOT)


zrobi?em tak dziwnie, poniewa? przy wysiadaniu 3dtext nie znika? i nadal s? takie problemy.

Najgorsze jest to, ?e jak kto? wsiad? do pojazdu, to ju? drugiej osobie
kt?ra wsiada do innego pojazdu si? 3dtext nie pojawia

Prosz? o pomoc, poniewa? nie wiem co jest grane.

Chodzi o to, aby ka?demu si? pojawia? sw?j w?asny 3dtext i ?e jak wysiada z pojazdu to usuwa tylko temu danemu graczowi jego w?asny 3dtext, a nie wszystkie...

Zimne browarki za pomoc :piwo: :piwo: :piwo: ;)

Postaw piwo autorowi tego posta
 

 
Wysłany: 2012-05-06, 11:20


Quis

Wszechwiedzący






Wiek: 31
Na forum: 5146 dni
Posty: 464
Nick w MP: Quis

Piwa: 1110

Respekt: 325
Respekt: 325Respekt: 325Respekt: 325

w OnPlayerStateChange:
Kod:

if(newstate == PLAYER_STATE_DRIVER)
{
//tworzysz label przyczepiony do gracza
}
if(oldstate == PLAYER_STATE_DRIVER)
{
//usuwasz label przyczepiony do gracza
}


Wiesz ?e tego typu kod nie ma sensu?
Kod:

if(newstate == 5 && newstate == PLAYER_STATE_DRIVER)

Po kompilacji kod przyjmuje tak? form?:
Kod:

if(newstate == 5 && newstate == 2)

Czyli na polski: Je?li nowyStan jest r?wny 5 I nowyStan jest r?wny 2
Kod w tym warunku si? nigdy nie wykona, bo jedna zmienna nie mo?e mie? naraz dw?ch warto?ci.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2012-05-06, 15:39


Kurio







Wiek: 35
Na forum: 5512 dni
Posty: 122

Piwa: 17

Respekt: 76,3

Hm, da?em tak jak kaza?e?, ale nadal po wyj?ciu z auta nie usuwa tego 3dtextu, ale na razie mniejsza z tym, moje pytanie dotyczy tej zmiennej kt?ra nick daje
do 3dtextu

Kod:

new nickdolabel[24];


a ten nick podaje tak:
Kod:

format(nickdolabel, sizeof(nickdolabel), "%s", Player(i));
newlabel[i] = Create3DTextLabel(nickdolabel,0x008080FF,X,Y, Z,7.0,0);


i jest problem, bo jak kto? drugi wejdzie do innego pojazdu, to dziej? si? dziwne rzeczy, jednemu pokazuje nick drugiego, a innemu wgl si? nic nie pokazuje, pr?bowa?em da? [MAX_PLAYERS] do tej zmiennej od nicku, ale potem w sizeof wywala b??d i nie wiem co zrobi?...
mo?e jak si? to naprawi to i zniknie problem z usuwaniem 3dtextu po wyjsciu z auta.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2012-05-06, 15:52


LogitechSC







Wiek: 31
Na forum: 6539 dni
Posty: 13

Piwa: 371

Respekt: 51

Ostrzeżeń: 20%
To problem z mieszaj?cymi si? ID 3d tekst?w. Tak samo jest z Textdrawami je?eli nie wczytasz ich wszystkich tylko b?dziesz manipulowa? nimi poprzez tworzenie i usuwanie. Polecam utworzenie wszystkich 3dtekst?w w ongamemodeinit i potem dalsz? ich manipulacj? lub skorzystanie z kodu Homie kt?ry niweluje mieszaj?ce si? labelid:

Kod:

// Dynamic label

new
Text3D:Label[1000] = {Text3D:(-1), ...};

Text3D:RemoveLabelByLabelId(Text3D:labelId);
Text3D:RemoveLabelByIndex(index);

stock AddLabel(Text3D:labelId)
{
for(new i; i < sizeof(Label); i++)
if(_:Label[i] == -1)
{
Label[i] = labelId;
return i;
}
return -1; // Labels are full
}

stock Text3D:RemoveLabelByIndex(index)
{
new
Text3D:_oldId;
_oldId = Label[index];
Label[index] = Text3D:(-1);
return _oldId;
}

stock Text3D:CheckLIDByIndex(index)
{
new
Text3D:_oldId;
_oldId = Label[index];
return _oldId;
}

stock Text3D:RemoveLabelByLabelId(Text3D:labelId)
{
for(new i; i < sizeof(Label); i++)
if(Label[i] == labelId)
{
Label[i] = Text3D:(-1);
return labelId;
}
return Text3D:(-1); // label not found
}

stock Text3D:CheckLID(Text3D:labelId)
{
for(new i; i < sizeof(Label); i++)
if(Label[i] == labelId)
{
return labelId;
}
return Text3D:(-1); // label not found
}


Wklej to na g?r? gamemodu i u?ywaj tych funkcji przyk?ad:

Kod:

newlabel[i] = AddLabel(Create3DTextLabel(nickdolabel,0x008080FF,X,Y, Z,7.0,0));


Tak samo z usuwaniem:

Kod:

RemoveLabelByLabelId(newlabel[playerid]);


Pozdro.

Podpis
Postaw piwo autorowi tego posta
 

 
Wysłany: 2012-06-13, 14:34


Kurio







Wiek: 35
Na forum: 5512 dni
Posty: 122

Piwa: 17

Respekt: 76,3

Niestety, co? nie dzia?a, poniewa? jak daje to:

Kod:

newlabel[i] = AddLabel(Create3DTextLabel(nickdolabel,0x008080FF,X,Y, Z,7.0,0));


to wyskakuje mi warning

Kod:

warning 213: tag mismatch



Nie wiem co jest nie tak.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2012-06-13, 14:36


hazeR







Wiek: 29
Na forum: 5467 dni
Posty: 41
Nick w MP: hazeR

Piwa: 19

Respekt: 47,4

Ostrzeżeń: 20%
"Kurio" napisał/a:

Niestety, co? nie dzia?a, poniewa? jak daje to:

Kod:

newlabel[i] = AddLabel(Create3DTextLabel(nickdolabel,0x008080FF,X,Y, Z,7.0,0));


to wyskakuje mi warning

Kod:

warning 213: tag mismatch



Nie wiem co jest nie tak.


To jest tylko warning, spokojnie mo?esz odpali? to ju? na serwerze.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2012-06-13, 14:53


Kurio







Wiek: 35
Na forum: 5512 dni
Posty: 122

Piwa: 17

Respekt: 76,3

no tak, tylko ze jak ustawiam limit zamiast 1000 to 50
i nad jednym graczem w?a?nie te 50 3d text?w sie pojawia. a nie tylko 1 nad jednym graczem.

mo?e to ma zwi?zek z tym ze w timmerze mam p?tle?


poza tym RemoveLabelByLabelId nie dzia?a, bo nie usuwa mi tych wszystkich 3dtext?w. juz nie wiem co zrobic.

Postaw piwo autorowi tego posta
 

 
Tagi: 3dtext :: dla :: każdego :: gracza :: usuwaja :: sie
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » PAWN Ten temat jest zablokowany bez możliwości zmiany postów lub pisania odpowiedzi

Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Dodaj temat do Ulubionych
Wersja do druku