GMCP na Arkadii - pomysły

Forum techniczne Arkadii.
Awatar użytkownika
Adremen
Posty: 235
Rejestracja: 31 gru 2009 11:13

Re: GMCP na Arkadii - pomysły

Post autor: Adremen » 17 kwie 2016 20:05

Czy jest szansa, że w gmcp.objects.data, klucz defense_target będzie resetowany po jakimś czasie? Przykład:
Podczas walki, oznaczam jakiegoś członka drużyny jako cel obrony, w GMCP przychodzi defense_target obiektu tego członka z wartością "true". Aktualizacja na "false" nigdy nie nadchodzi, wynikiem czego na przykład, kiedy bijemy inną grupę za kilka minut i ponownie oznaczam tego wroga jako cel obrony to nie nadchodzi żaden komunikat GMCP. Czy jest szansa, że będzie to w przyszłości rozwiązane w jakiś sposób? Na przykład reset defense_target kiedy ktoś tego członka zasłoni lub po jakimś czasie?

Awatar użytkownika
Rafgart
Posty: 952
Rejestracja: 09 lut 2009 10:10

Re: GMCP na Arkadii - pomysły

Post autor: Rafgart » 21 kwie 2016 01:02

Cel ataku/obrony jest zwiazany z dowodca druzyny. Poki jest on na lokacji i nie wyznaczy nowego celu to stary jest aktywny. Czemu mialby sie resetowac? Sprobuj jakos dokladniej rozpisac ten przypadek.
Mozliwosc wskazywania kogos wielokrotnie nie jest zablokowana, by komenda mogla byc uzywana jako emot.

Ottson
Posty: 14
Rejestracja: 24 kwie 2016 01:34

Re: GMCP na Arkadii - pomysły

Post autor: Ottson » 25 kwie 2016 16:13

Messages
Komunikat jednostronny, Arkadia nie wysyla tekstu okreslonego typu poprzez czysty telnet, lecz
poprzez GMCP, tak by klient mogl go odpowiednio przekierowac (na przyklad do innego okna).
Z tekstu usuwany jest znak konca linii, wiec nalezy go dodac po kazdym z nich (o ile klient
tego potrzebuje).
Dane maja postac obiektu JSON i zawieraja parametry:
text - STRING, komunikat
type - STRING, typ komunikatu, mozliwe wartosci:
combat - komunikaty walki postaci gracza
combat.team - komunikaty walki druzyny postaci gracza
combat.others - komunikaty walki innych osob
emotes - emocje skierowane do postaci gracza
comm - komunikaty zwiazane z mowieniem/szeptaniem/krzyczeniem
jesli to combat dodac pole isHit: boolean, wydaje mi sie ze wiekszosc i tak gaguje missy/blocki/dodge/zbroje

Awatar użytkownika
Adremen
Posty: 235
Rejestracja: 31 gru 2009 11:13

Re: GMCP na Arkadii - pomysły

Post autor: Adremen » 25 kwie 2016 18:09

Rafgart pisze:Cel ataku/obrony jest zwiazany z dowodca druzyny. Poki jest on na lokacji i nie wyznaczy nowego celu to stary jest aktywny. Czemu mialby sie resetowac? Sprobuj jakos dokladniej rozpisac ten przypadek.
Mozliwosc wskazywania kogos wielokrotnie nie jest zablokowana, by komenda mogla byc uzywana jako emot.
Chodziło mi jedynie o przypadek, kiedy ktoś z drużyny został oznaczony jako cel obrony i tak pozostaje przez powiedzmy jakiś czas. Po tym czasie, kolejne wskazanie go jako cel obrony (powiedzmy, po 10 minutach i zakładając, że w tych 10 minutach nikt inny nie został wskazany jako cel obrony) nie sprawia, że przychodzi komunikat GMCP. Miałem to tak rozwiązane, że ustawiałem przy celu obrony zielony ">" i po pewnym czasie go zdejmowałem (~45 sekund). Ale wtedy, gdy po pewnym czasie ktoś ponownie oznaczył ten sam cel obrony, aktualizacja GMCP nie przychodzi (bo `true' już jest na tym obiekcie), więc nie mam jak wykryć tego działania.

Jeśli ze strony Arkadii nic się nie zmieni to po prostu usunę zdejmowanie symbolu celu obrony.

Ottson
Posty: 14
Rejestracja: 24 kwie 2016 01:34

Re: GMCP na Arkadii - pomysły

Post autor: Ottson » 11 maja 2016 16:35

dodanie dla lazika:

Kod: Zaznacz cały

Messages
Komunikat jednostronny, Arkadia nie wysyla tekstu okreslonego typu poprzez czysty telnet, lecz
poprzez GMCP, tak by klient mogl go odpowiednio przekierowac (na przyklad do innego okna).
Z tekstu usuwany jest znak konca linii, wiec nalezy go dodac po kazdym z nich (o ile klient
tego potrzebuje).
Dane maja postac obiektu JSON i zawieraja parametry:
text - STRING, komunikat
type - STRING, typ komunikatu, mozliwe wartosci:
combat - komunikaty walki postaci gracza
combat.team - komunikaty walki druzyny postaci gracza
combat.others - komunikaty walki innych osob
emotes - emocje skierowane do postaci gracza
comm - komunikaty zwiazane z mowieniem/szeptaniem/krzyczeniem
>>> movement - kierunek w ktorym poszedl lazik <<<

Ingwar
Posty: 12
Rejestracja: 12 mar 2009 23:52

Re: GMCP na Arkadii - pomysły

Post autor: Ingwar » 30 gru 2016 14:50

Rafgart pisze:Arkadia przesyla dane w momencie ich zmiany. Odpytywanie nie powinno byc potrzebne i jest zbednym obciazaniem muda. Zostawilem taka mozliwosc dla sytuacji wyjatkowych, ale pewnie wiekszosc to bedzie 'nie umiem zakodowac, to bede non stop pobieral dane z muda'. Jesli sie myle, to przedstaw mi przypadek, gdzie taka mozliwosc naprawde cos wnosi.
Migr: juz powinno byc dobrze.

Rafgarcie zaczolem sie bawic gmcp i mam jeden drobny problem apropo tego c napisales powyzej.

Jako ze wszystkie komunikaty o zmianach dochodza z opoznieniem to jak wchodze na nowa lokacje i uzyje danych z gmcp (np jako kondycja wszystkich) to mi pokaze dane ze starej lokacji.
Zeby to ominac to musze odpytac o nowe dane przed wyswietleniem :(

Jakies pomysly jak to ominac?

Jeden to taki zeby usunac opoznienie po stronie arkadii...
Drugi to pytanie :( co faktycznie jest slabe..

Awatar użytkownika
Rafgart
Posty: 952
Rejestracja: 09 lut 2009 10:10

Re: GMCP na Arkadii - pomysły

Post autor: Rafgart » 30 gru 2016 15:40

Opoznienie jest specjalnie, by dane byly buforowane. Dlatego tez odpytujac i tak dostaniesz stare dane. Nie chce, by bylo to naduzywane, by nie generowac niepotrzebnego transferu w sytuacji, gdy nic sie nie zmienilo.
Dla czlowieka opoznienie nie powinno miec znaczenia, dla skryptu moze i tak, ale to nie jest wada. Musisz po prostu spojrzec na to inaczej - zmiana lokacji oraz odswiezenie danych o postaciach to dwa zupelnie niezalezne zdarzenia.

Ingwar
Posty: 12
Rejestracja: 12 mar 2009 23:52

Re: GMCP na Arkadii - pomysły

Post autor: Ingwar » 31 gru 2016 01:52

Wlasciwie to nigdy nie dostalem starych danych... (po zmienie lokacli i odpytaniu zawsze widzialem wszystkie osoby)

Dla wiekszosci skryptow to wlasnie nie zmienia nic.. ale ja chche kondycje na tej podstawie wypisywac.. zeby wlasnie nie musiec co chwila pytac o kondycje wszystkich..

Moze dalo by sie po zmienia lokacji wywolac flusha?? :)
To by mysle zalatwilo wiekoszosc problemow.

Butma
Posty: 11
Rejestracja: 15 sie 2016 22:51

Re: GMCP na Arkadii - pomysły

Post autor: Butma » 31 gru 2016 05:33

Moze to wina klienta lub jakiegos plugina. Na tintinie wystarczy wykorzystac object.nums(ktore mi przychodzi szybciej) do kontroli kogo mamy na lokacji. W tabeli z object.data zostawiam tylko wartosci dla keyow, ktore sa wartosciami w object.nums(numery postaci), reszte usuwam i wszystko sie ladnie aktualizuje.
Ug!

Awatar użytkownika
Rafgart
Posty: 952
Rejestracja: 09 lut 2009 10:10

Re: GMCP na Arkadii - pomysły

Post autor: Rafgart » 31 gru 2016 12:15

Ingwar pisze:Wlasciwie to nigdy nie dostalem starych danych... (po zmienie lokacli i odpytaniu zawsze widzialem wszystkie osoby)

Dla wiekszosci skryptow to wlasnie nie zmienia nic.. ale ja chche kondycje na tej podstawie wypisywac.. zeby wlasnie nie musiec co chwila pytac o kondycje wszystkich..

Moze dalo by sie po zmienia lokacji wywolac flusha?? :)
To by mysle zalatwilo wiekoszosc problemow.
Arkadia wysyla dane, ktore akurat sie zmienily. Nie ma potrzeby zrzucac wszystkiego, jesli je aktualizujesz od momentu zalogowania. Zmiana lokacji moze byc zdarzeniem, ktore wywola zmiane danych, ale nie musi - jesli na lokacjach, po ktorych sie poruszasz, nie ma nikogo innego, to nic sie nie zmienia, wiec nie ma potrzeby wysylania danych.

ODPOWIEDZ