CMUD

Forum techniczne Arkadii.
Bargor
Posty: 24
Rejestracja: 23 kwie 2014 14:23

Re: CMUD

Post autor: Bargor » 15 lip 2014 02:45

Hej.

Siedzę i próbuje ogarnąć GMCP ale to dość ponad moje siły.
Czy ktoś jest w stanie mi wyjaśnić jak pobrać z tego GMCP stan kondycji/zmęczenia etc?! Z tego co rozumie klient wysyła to za każdym razem gdy wartość kondycji się zmieni - chciałbym podmienić w pasku kondycji by korzystał z tej informacji zamiast ze "stan" "kondycja" ect.

Awatar użytkownika
Enefghar
Posty: 202
Rejestracja: 12 lut 2009 21:42
Lokalizacja: Actiontown

Re: CMUD

Post autor: Enefghar » 15 lip 2014 09:38

Arkadia nie wysyła nic przez GMCP, wiec nie ma takiej możliwości.
Polelfka namysla sie nad czyms, cichutko szumiac.

Bargor
Posty: 24
Rejestracja: 23 kwie 2014 14:23

Re: CMUD

Post autor: Bargor » 15 lip 2014 09:44

Hmm... a room ID?! - mapa w kliencie www nie jest na GMCP?!

Tak samo myślałem, ze paski stanu z klienta www sa robione na GMCP - ale w sumie to może faktycznie wygagowali info "czujesz sie xx" "jestes xx" i wrzucili to do paska stanu a ja kminie.

Re down: O to jednak dobrze myślałem. Teraz potrzebuje kogoś kto mi naświetli jak to się robi - z programowania jestem totalne 0. Spędziłem nad nim dopiero dwie noce :).

Miałem jakiegoś debugera co miał pokazywać niby komunikaty GMCP ale fail to był.
Ostatnio zmieniony 15 lip 2014 10:21 przez Bargor, łącznie zmieniany 1 raz.

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

Re: CMUD

Post autor: Rafgart » 15 lip 2014 10:02

Jest GMCP i da sie z niego wyciagnac stan postaci.

Haern
Posty: 756
Rejestracja: 13 lut 2009 14:03

Re: CMUD

Post autor: Haern » 15 lip 2014 10:44

Należy włączyć GMCP emulation w zakładce Prefs->Session->Emulation.
Od tej pory pakiety GMCP są odbierane. Teraz użycie predefiniowanej zmiennej %gmcp wyrzuca nam cały dotychczasowy odebrany GMCP, łatwo to sprawdzić wpisując:
#SH %gmcp
Do konkretnych modułów/pakietów odnosić się można po kropce, a więc przykładowo %gmcp.room.info.exits wyświetli dostępne na lokacji wyjścia [widoczne dla postaci - nie ma tak łatwo ;) ], %gmcp.char.state wyświetli panel ze zmiennymi stanu postaci, a %gmcp.char.state.mana wyświetla wartość sił mentalnych postaci.

Można też stworzyć trigger typu GMCP reagujący na konkretny pakiet i update'ujący wtedy zmienne używane w cmudzie na podstawie pakietu GMCP - dynamicznie samoupdate'ujących się zmiennych nie udało mi się zrobić, ale też nie próbowałem zbyt długo, więc może jest to możliwe.

Bargor
Posty: 24
Rejestracja: 23 kwie 2014 14:23

Re: CMUD

Post autor: Bargor » 15 lip 2014 11:33

Nie mam jak tego przetestować ale o to właśnie mi chodziło!
Dzięki przeogromne!

Awatar użytkownika
Enefghar
Posty: 202
Rejestracja: 12 lut 2009 21:42
Lokalizacja: Actiontown

Re: CMUD

Post autor: Enefghar » 15 lip 2014 12:31

Heh.. Tak to jest jak nie jest sie na biezaco z tematem. ;)

Ostatni wpis jaki widzialem w sprawie GMCP to Rafgartowe:
Nic mi nie wiadomo o tym, by driver Arkadii obslugiwal GMCP, co niestety konczy temat.
z sierpnia 2013

Wybaczcie zamieszanie.

Pozdro^600
Polelfka namysla sie nad czyms, cichutko szumiac.

Bargor
Posty: 24
Rejestracja: 23 kwie 2014 14:23

Re: CMUD

Post autor: Bargor » 16 lip 2014 13:26

Mam problem ktory dla Was pewnie bedzie mega smieszny otoz - mecze sie z paternem bo * mi wszystko psuje. - mianowicie:

Kod: Zaznacz cały

%w wskazuje (*){jako cel ataku.|.}
Chciałbym by gdy pojawia się wiadomość:
XXX wskazuje trolla jako cel ataku.
XXX wskazuje trolla.

By zmienna trolla mi łapało na później bo ją wykorzystam.

Niestety pattern który zaprezentowałem jest wadliwy bo z listy zawsze najpierw wybiera . przez co jako cel ataku idzie pod * i wszystko sie krzaczy * %w nie mogę zamienić bo wiadomo określeń na wroga jest od 1 do 4.

Jakieś idee? Da się jakoś wykluczyć {^jako cel ataku} w *? (nie udało mi się tego poprawnie napisać) lub ustawić priorytet w {jako cel ataku.|.} By najpierw sprawdzał czy nie pasuje mu pierwsza część a później druga z listy?

Update:

Kod: Zaznacz cały

%w wskazuje (*{^ataku}){jako cel ataku.|.}
Poradziłem sobie - ale nie wiem czemu w wykluczeniu musiało być {^ataku} - zamiast {^jako cel ataku} czy jakaś mądra głowa jest w stanie mi wytłumaczyć ową zagadkę?

Awatar użytkownika
Ilane
Posty: 371
Rejestracja: 11 mar 2010 19:15
Lokalizacja: Z krainy jednoroszcuf

Re: CMUD

Post autor: Ilane » 29 sie 2014 16:33

Mam problem z wysubowaniem speca fanatyka :(

Próbuję zrobić to w następujący sposób:

Kod: Zaznacz cały

<trigger priority="2150" id="3535">
  <pattern>^{> |}(*) {dostrzegajac luke w obronie przeciwnika|krzywi wargi w pelnym satysfakcji usmiechu i dostrzegajac luke w obronie|krzywi wargi|usmiecha sie przebiegle|zaciska mocniej palce| wykonuje szybki,|wykrzywia twarz w grymasie|usmiecha sie czujac rozkosz}*trafia (*) w {cialo|pysk|korpus|prawa noge|lewa noge|lewa reke|prawa reke|lewe ramie|prawe ramie|glowe|tulow|nogi|kosmaty tulow|twarda glowe|prawa lape|lewa lape|kuper|noge|tulow} ({@fan_dmg}) {go|ja|je}*.$</pattern>
  <value>#if (%ismember(%1,@komando)) {
#su {
%ansi(8)[fanatyk: %ismember(%3, @fan_dmg)/7]%ansi(reset) %1 %ansi(2)"=="%ansi(3)"(uderza)"%ansi(2)"=="%ansi(reset) %2 %ansi(9)"||"%ansi(reset) %line}
}
{
#su {
%ansi(pink)[fanatyk: %ismember(%3, @fan_dmg)/7]%ansi(reset) %1 %ansi(2)"=="%ansi(3)"(uderza)"%ansi(2)"=="%ansi(reset) %2 %ansi(9)"||"%ansi(reset) %line}
}</value>
</trigger>
I nie do końca działa to jak powinno, np. tutaj ok:

Kod: Zaznacz cały

[fanatyk: 4/7] Ktośtam ==(uderza)== kudlatego zamyslonego mezczyzne || Ktośtam dostrzegajac luke w obronie przeciwnika rzuca sie do ataku. Sciskajac swoja bron z calej sily, wyprowadza zamaszysty cios i bezlitosnie wykorzystujac przewage pozycji, zdecydowanym ruchem trafia kudlatego zamyslonego mezczyzne w korpus powaznie raniac go gorejacym dlugim talwarem.

Ale już w innym przypadku:

Kod: Zaznacz cały

[fanatyk: 2/7] Ktośtam krzywi wargi w pelnym satysfakcji usmiechu i ==(uderza)== krzepkiego rozgarnietego mezczyzne || Ktośtam krzywi wargi w pelnym satysfakcji usmiechu i dostrzegajac luke w obronie przeciwnika rzuca sie do ataku. Wzmacniajac sile uderzenia gwaltownym skretem reki, wyprowadza zamaszysty cios i wykorzystujac przewage pozycji, zdecydowanym ruchem trafia krzepkiego rozgarnietego mezczyzne w nogi lekko raniac go gorejacym dlugim talwarem.
Chciałbym, po pierwsze, wyeliminować ten drugi przypadek ;) Po drugie, pozbyć się tej części skryptu:

Kod: Zaznacz cały

 {cialo|pysk|korpus|prawa noge|lewa noge|lewa reke|prawa reke|lewe ramie|prawe ramie|glowe|tulow|nogi|kosmaty tulow|twarda glowe|prawa lape|lewa lape|kuper|noge|tulow}
Ma ktoś może jakiś pomysł?
She dealt her pretty words like Blades —
How glittering they shone —
And every One unbared a Nerve
Or wantoned with a Bone —
Emily Dickinson 479

Hurio
Posty: 108
Rejestracja: 12 maja 2014 08:53

Re: CMUD

Post autor: Hurio » 11 wrz 2014 23:44

Mam problem z mapa pod cmuda jesli chodzi o niestandardowe przejscia miedzy lokacjami gdy podazam za kims. Niektore dodalem prosto do skrypta jako triggery, jednak problem sie pojawia gdy "opis" przejscia powtarza sie w innym miejscu.
Przykladem moze byc namiot orkow pod Kraina Zgromadzenia oraz namiot ogra w obozie banitow. W obu przypadkach opis to "podazasz za kims na zewnatrz".

Probowalem w mapie edytowac room scripta komenda #temp, jednak nie wiem czemu ta komenda dziala jak chce. W jednym miejscu generuje blad w innym dziala poprawnie. Jest na to jakis sposob?

Room scripta probowalem edytowac w nastepujacy sposob:

#temp {podazasz za * na zewnatrz.$} {#mo <kierunek>}

ODPOWIEDZ