Skocz do zawartości
Tasa

case

Rekomendowane odpowiedzi

Siema, robie taki ''panel gracza'' no i gdy zrobiłem coś takiego to mam od ... errorów. Ktoś wie o co chodzi? Robiłem dialogi według poradnika Sim00na i tak wyszło huh.

http://pastebin.com/KBRD7Zap

Hehe.pwn(528) : error 002: only a single statement (or expression) can follow each "case"
Hehe.pwn(528) : error 017: undefined symbol "nazwa"
Hehe.pwn(528) : warning 215: expression has no effect
Hehe.pwn(528) : error 001: expected token: ";", but found "]"
Hehe.pwn(528) : fatal error 107: too many error messages on one line

Edytowane przez Tasa

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
	if(dialogid == panel_dialog)
	{
		new nazwa[MAX_PLAYER_NAME]; //Nazwa gracza 
		new string[256]; //Wiadomosc
		new dane[256];
		GetPlayerName(playerid, nazwa, sizeof(nazwa));
		format(dane,sizeof(dane),"Twoj AdminLevel: %d", AdminLevel);
		format(string,sizeof(string),"Panel gracza {0048FF}%s", nazwa);
		switch(listitem)
		{
			case 0: ShowPlayerDialog(playerid, panel_konto_dialog, DIALOG_STYLE_LIST, string, dane, "Wybierz", "Anuluj");
		}   
	}

Zrób to tak.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Okej dobra, jest już dobrze. No ale mam kolejne pytanko, bo nie ma sensu zakładać nowego tematu.

Jak zrobić, aby dialog nie włączał sie cały czas jak sie wejdzie w pickup? Bo zrobiłem coś takiego, że jak sie wejdzie w pickup to sie wyswietla dialog, ale on sie wyswietla caly czas co jest irytujące.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

To może zmień typ pickup'a, bo dialog wyskakuje tylko jak gracz podniesie pickup. Zmień na taki typ, aby po podniesieniu on znikał (wtedy dialog włączy się raz) i wszystko będzie działać. Oczywiście pickup się zrespawnuje jak gracz by się oddalił na 30m.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
1 minutę temu, MrKacu13 napisał:

To może zmień typ pickup'a, bo dialog wyskakuje tylko jak gracz podniesie pickup. Zmień na taki typ, aby po podniesieniu on znikał (wtedy dialog włączy się raz) i wszystko będzie działać. Oczywiście pickup się zrespawnuje jak gracz by się oddalił na 30m.

ale właśnie ja tak nie chce, bo te pickupy są w dość ciasnym pomieszczeniu i nie będą mogły sie respawnować.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
5 minut temu, Tasa napisał:

ale właśnie ja tak nie chce, bo te pickupy są w dość ciasnym pomieszczeniu i nie będą mogły sie respawnować.

To może ustawić tak aby pickup się respawnował co 20 sekund?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Teraz, MrKacu13 napisał:

To może ustawić tak aby pickup się respawnował co 20 sekund?

no nie wiem, nie da sie jakoś inaczej tego załatwić? Bo nie chce aby ten pickup znikał.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
1 minutę temu, Tasa napisał:

no nie wiem, nie da sie jakoś inaczej tego załatwić? Bo nie chce aby ten pickup znikał.

Jaki masz obecnie ustawiony typ pickup'a?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Tak się dzieje z wszystkimi pickupami, których typ ustawisz na stały (aby nigdy nie zniknęły). Musisz kombinować bardziej, sposobów jest kilka:

 

1. W callbacku OnPlayerPickUpPickup możesz sprawdzać prędkość gracza, jeśli jest ona większa niż np. 0.15, to znaczy, że gracz się porusza i wtedy pokazujesz dialog. Jeśli prędkość nie jest większa, gracz zapewne stoi w miejscu i nie trzeba pokazywać mu dialogu po raz kolejny,

2. Wykorzystać streamer od Incognito i tworzyć pickupy + dynamiczne obszary. Pickupy będą tylko stać, a kod będzie w callbacku OnPlayerEnterDynamicArea. Jest to o tyle dobre, że callback ten wykona się tylko raz jak się do niego wejdzie. Jeśli gracz wejdzie w pickup, wejdzie też w strefę, wtedy wykonasz kod, który aktualnie masz w callbacku OnPlayerPickUpPickup. Jeśli jesteś początkującym, wykorzystaj sposób #1, gdyż tego zapewne nie rozumiesz.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
3 minuty temu, BaLL napisał:

Tak się dzieje z wszystkimi pickupami, których typ ustawisz na stały (aby nigdy nie zniknęły). Musisz kombinować bardziej, sposobów jest kilka:

 

1. W callbacku OnPlayerPickUpPickup możesz sprawdzać prędkość gracza, jeśli jest ona większa niż np. 0.15, to znaczy, że gracz się porusza i wtedy pokazujesz dialog. Jeśli prędkość nie jest większa, gracz zapewne stoi w miejscu i nie trzeba pokazywać mu dialogu po raz kolejny,

2. Wykorzystać streamer od Incognito i tworzyć pickupy + dynamiczne obszary. Pickupy będą tylko stać, a kod będzie w callbacku OnPlayerEnterDynamicArea. Jest to o tyle dobre, że callback ten wykona się tylko raz jak się do niego wejdzie. Jeśli gracz wejdzie w pickup, wejdzie też w strefę, wtedy wykonasz kod, który aktualnie masz w callbacku OnPlayerPickUpPickup. Jeśli jesteś początkującym, wykorzystaj sposób #1, gdyż tego zapewne nie rozumiesz.

ja tego streamera czy co to jest to w ogóle nie rozumiem, także spróbuje to pierwsze wykonac.

A tak w ogóle to jak pobrac szybkość gracza? GetPlayerVelocity czy jak?

Edytowane przez Tasa

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Tak, GetPlayerVelocity. Dodatkowym sposobem jest zrobienie np. Timera na minutę, aby się nie wyświetlało. Z tym, że dialog się nie wyświetli przez najbliższą minutę jeśli ktoś popełni jakiś błąd w formularzu. Jeszcze innym wyjściem jest zrobienie tego na przycisk. Wchodzisz w Pickup i naciskasz np. spację i dopiero wyskakuje Dialog.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×