![]() |
Pobieranie świata gracza o podanym id - Printable Version +- Gothic Online Forums (https://archive.gothic-online.com) +-- Forum: Community (https://archive.gothic-online.com/forum-18.html) +--- Forum: Polish (Polski) (https://archive.gothic-online.com/forum-19.html) +---- Forum: Pomoc (https://archive.gothic-online.com/forum-23.html) +---- Thread: Pobieranie świata gracza o podanym id (/thread-239.html) Pages:
1
2
|
Pobieranie świata gracza o podanym id - Buras - 26.12.2015 Witam. Próbuję stworzyć komendę teleportu do gracza o wybranym ID. Z poziomu serwera jestem w stanie pobrać pozycję gracza, ale nie widzę żadnej funkcji serwera, która pobierałaby świat. Gdyby dało się wywołać funkcję klienta u innego gracza i wyciągnąć od niego informacje, byłoby świetnie, ale nie jestem pewien, czy takie coś jest możliwe. Istnieje szansa na napisane takiej komendy na obecnym etapie rozwoju projektu, czy powinienem jeszcze poczekać? RE: Pobieranie świata gracza o podanym id - Sative - 26.12.2015 Da się, to jest bardzo proste. Poczytaj o callClientFunc i callServerFunc. Mianowicie client po wykrytej zmianie świata może użyć funkcji callServerFunc z id i nazwą świata jako parametrami. Serwer następnie może te nazwy światów trzymać w tablicy/klasie danego gracza. RE: Pobieranie świata gracza o podanym id - Buras - 26.12.2015 Rozumiem, że serwer może wykonać funkcję klienta i odwrotnie. Mimo to muszę przyznać, że o ile separacja serwera i klienta ma wyjść na dobre, to mi sprawia to straszną trudność z poziomu logiki kodu, a czasami realizacji. Mój tok myślenia wygląda tak, że parametr id, który gracz przekazuje za pomocą komendy, musi zostać wykorzystany przez serwer, który wykona funkcję klienta getWorld() na kliencie gracza o tym id i zwróci wynik, który zostanie wykorzystany przez gracza wykonującego komendę. Pisanie kodu sprawiało przyjemność, dopóki nie musiałem tworzyć korelacji pomiędzy klientem i serwerem, ale teraz jest to wręcz frustrujące. EDIT: Udało mi się wykonać coś takiego w ramach ćwiczeń: Code: callClientFunc(pid, "setPosition", x, y, z); Code: local test = callClientFunc(pid, "getWorld"); RE: Pobieranie świata gracza o podanym id - Quarchodron - 26.12.2015 Powiedzmy chcesz zwrócić ten WORLD : SS : function ... {callClientFunc(pid, "getWorldek");} function ...2(value) {print(value) /// WORLD} CS : function getWorldek() {local get = getWorld(); callServerFunc("...2", get);} Możesz to to też inaczej zrobić. Jak chcesz coś to pisz pw. RE: Pobieranie świata gracza o podanym id - Bimbol - 26.12.2015 EDIT. Użyj funkcji getPlayerWorld(pid) po stronie serwera ![]() RE: Pobieranie świata gracza o podanym id - Quarchodron - 26.12.2015 Heh..rzeczywiście taka jest ![]() RE: Pobieranie świata gracza o podanym id - Sative - 26.12.2015 (26.12.2015, 01:17)Buras Wrote: Rozumiem, że serwer może wykonać funkcję klienta i odwrotnie. Mimo to muszę przyznać, że o ile separacja serwera i klienta ma wyjść na dobre, to mi sprawia to straszną trudność z poziomu logiki kodu, a czasami realizacji. Mój tok myślenia wygląda tak, że parametr id, który gracz przekazuje za pomocą komendy, musi zostać wykorzystany przez serwer, który wykona funkcję klienta getWorld() na kliencie gracza o tym id i zwróci wynik, który zostanie wykorzystany przez gracza wykonującego komendę. To tak nie działa, trzeba po prostu po stronie clienta stworzyć timer który będzie sprawdzał czy świat się zmienił i jak świat się zmieni, pakiet ma być wysyłany do serwera. RE: Pobieranie świata gracza o podanym id - Bimbol - 26.12.2015 Spokojnie po ogarnięciu dev 6-1, dodam do dev 7 większość funkcji klienta od gracza na stronie serwera. Póki co musicie radzić sobie z wywoływaniem funkcji. RE: Pobieranie świata gracza o podanym id - Buras - 26.12.2015 To trochę dziwne, ale getPlayerWorld(pid) nie zwraca mi obecnego świata gracza, tylko defaultowy świat serwera (nawet po zmianie świata). Mimo to myślę, że wreszcie udało mi się napisać chyba działające rozwiązanie. RE: Pobieranie świata gracza o podanym id - Bimbol - 26.12.2015 Pewnie bug, bo były problemy ze światami w obecnej wersji. |