Posts: 194
Threads: 22
Joined: Feb 2016
Reputation:
225
07.12.2017, 18:56
(This post was last modified: 07.12.2017, 19:45 by Patrix.)
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 addEventHandler("onCommand",function(cmd, params) { if (cmd == "pn") { setLearnPoints(20) Chat.print(255,255,255,getLearnPoints()) } })
@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)
Posts: 23
Threads: 2
Joined: Nov 2017
Reputation:
0
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ć
Posts: 44
Threads: 2
Joined: Feb 2016
Reputation:
14
07.12.2017, 22:31
(This post was last modified: 07.12.2017, 22:32 by Toworish.)
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.
Posts: 194
Threads: 22
Joined: Feb 2016
Reputation:
225
07.12.2017, 22:45
(This post was last modified: 07.12.2017, 22:46 by Patrix.)
Squirrel Script //setPlayerTalent(int id_gracza, int id_talentu, int tak_lub_nie); //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ć") addEventHandler("onPlayerJoin",function(pid) { setPlayerTalent(pid, TALENT_SNEAK, 1) })
@Edit: @Ozaru jeśli dobrze rozumiem, chcesz z poziomu serwera ustawić ilość punktów nauki, zgadza się?
Posts: 23
Threads: 2
Joined: Nov 2017
Reputation:
0
07.12.2017, 22:49
(This post was last modified: 07.12.2017, 22:50 by Ozaru.)
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!
Posts: 44
Threads: 2
Joined: Feb 2016
Reputation:
14
07.12.2017, 22:51
(This post was last modified: 07.12.2017, 22:57 by Toworish.)
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
Posts: 194
Threads: 22
Joined: Feb 2016
Reputation:
225
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.
Posts: 23
Threads: 2
Joined: Nov 2017
Reputation:
0
Więc i tak muszę stworzyć funkcję onInit po stronie klienta bo zostanie tam wysłany pakiet,czy tak?
Posts: 44
Threads: 2
Joined: Feb 2016
Reputation:
14
07.12.2017, 23:01
(This post was last modified: 07.12.2017, 23:02 by Toworish.)
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?
Posts: 194
Threads: 22
Joined: Feb 2016
Reputation:
225
07.12.2017, 23:02
(This post was last modified: 07.12.2017, 23:03 by Patrix.)
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
|