Thread Rating:
  • 1 Vote(s) - 5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Lista parametrów
#11
Przykład, który podał Toworish najpewniej nie będzie działać na najnowszej wersji G2O, poniżej daję ci swoją wersję przykładu client-side'owej komendy.

Dodaj to po stronie clienta:
Squirrel Script
  1. addEventHandler("onCommand",function(cmd, params)
  2. {
  3. if (cmd == "pn")
  4. {
  5. setLearnPoints(20)
  6. Chat.print(255,255,255,getLearnPoints())
  7. }
  8. })



@Edit: Co dokładnie chcesz zrobić? Wczytać z pliku .txt ilość PN'ów, czy po prostu nadać graczowi jakąś ilość?
@Edit2: przykład został poprawiony (zawierał drobne błędy)
Reply
#12
Bardzo wam dziękuję Panowie,oba skrypty działają poprawnie ^^ Tak chodziło mi o nadanie ilości graczowi,chociaż to wcale temu nie służy ale mam punkt odniesienia i mogę Sobie jakoś powoli na piechotę działać Big Grin
Reply
#13
czyli pierwsze dwa posty w temacie odpowiedziały ci na pytanie mniej więcej używasz tego np tak:

setPlayerTalent(pid, TALENT_SNEAK, 20);

Jednak nie jestem pewien co robi 3 parametr "20"

Czy to nie powinno być tak że 1/0 czyli zielony/uczony jest to funkcja ze strony servera,

Widzę że w kliencie niema takiej funkcji, więc chcąc zrobić nauczyciela musisz użyć warunku który się wykona jeśli masz odpowiednią ilość pn.
Po czym odejmie ci pn i zadzwoni do serwera aby nadał ci ten talent.
Reply
#14
Squirrel Script
  1. //setPlayerTalent(int id_gracza, int id_talentu, int tak_lub_nie);
  2.  
  3. //przykład (wartość zmiennej typu int tak_lub_nie, to 0 lub 1, zależnie od tego, czy chcesz graczowi nadać umiejętność, czy "zabrać")
  4.  
  5. addEventHandler("onPlayerJoin",function(pid)
  6. {
  7. setPlayerTalent(pid, TALENT_SNEAK, 1)
  8. })



@Edit: @Ozaru jeśli dobrze rozumiem, chcesz z poziomu serwera ustawić ilość punktów nauki, zgadza się?
Reply
#15
Hmmmm a jak chcę żeby te Pn'y np dodało od razu przy zalogowaniu to od strony serwera działać,bo jest to bezpośrednie?

Edit: Oo,właśnie tak chciałem xd!
Reply
#16
PN'Y wystarczy że dodasz w kliencie w funkcji onInit()


wydaje mi się że funkcja setPlayerTalent(pid, TALENT_SNEAK, 1) jest zabugowana i daje wszystkim talentą że uczony. Albo zaś mi coś addony psują ale nie powinny.

EDIT: tak jest zabugowana, daje wszystko na uczony i niezależnie od 3 parametru. funkcja getPlayerTalent zwraca true
Reply
#17
onInit wywoła się, gdy gracz wejdzie na serwer, a nie zaloguje.

Jeśli chcesz, by po zalogowaniu nadało ci PN'y, to musisz w odpowiednim miejscu po stronie serwera przesłać pakiet do clienta, po czym jak pakiet dojdzie na stronę client'a, wywołać funkcje setLearnPoints. Przykład użycia pakietów znajdziesz w domyślnej paczce serwera, w folderze "examples", i później w obu podfolderach "client" oraz "server". Podpowiem tylko, że pakiet musi mieć id, żeby dało się go rozróżnić, od innych pakietów.
Reply
#18
Więc i tak muszę stworzyć funkcję onInit po stronie klienta bo zostanie tam wysłany pakiet,czy tak?
Reply
#19
Hmm, mamy tutaj coś takiego jak przesyłanie danych pomiędzy klientem a serwerem, słyszałeś już o tym?

EDIT: ty masz skrypt logowania? czy logowaniem nazywasz dołączenie zwyczajnie do gry, takie bez wpisywania haseł itd?
Reply
#20
Nie rozumiesz, załóżmy że po stronie serwera masz napisany skrypt logowania, np: prostą komendę /login (nick) (hasło).

Gdy gracz się zaloguje, (czyli poda prawidłowy nick i hasło dla danego konta) to wtedy powinieneś przesłać pakiet do client'a, który wywołałby fragment kodu w którym ustawi odpowiednią ilość PN'ów. Przesłanie pakietu, np: z client'a na serwer wywoła ten event:
http://gothic-online.com.pl/new_wiki/ind...t:onPacket
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  Lista zmian na 0.5 ThorusDagoth 2 2,790 17.10.2015, 19:39
Last Post: ThorusDagoth

Forum Jump:


Users browsing this thread: 1 Guest(s)