CMUD

Forum techniczne Arkadii.
Awatar użytkownika
Talisa
Posty: 144
Rejestracja: 21 kwie 2015 23:40
Lokalizacja: Skellige IRL

Re: CMUD

Post autor: Talisa » 02 sty 2017 17:23

Ale z tego co wiem, parsuje sie czysty text, a nie suby? Czy po to jest "trigger on trigger" opcja i "priority"?
Everyone is fighting their own battle to be free from their past, to live in the present, and create a meaningful future for themselves. Don't judge, have a heart.

Awatar użytkownika
Sadriviel
Posty: 79
Rejestracja: 23 mar 2016 07:37

Re: CMUD

Post autor: Sadriviel » 02 sty 2017 17:48

Parsuje, czyli nakłada pattern?

Jeśli masz linijkę:
Ty ---> lekko ranisz ---> goblina (mieczem)
I masz trigger, który ma pattern z ">" jak post wyżej, to złapie Ci tę linijkę. Tylko złapie Ci ją tak jak widzisz. I do tego jest "trigger on trigger".

"Priority" jest chyba od czegoś innego. Nie pamiętam, które triggery odpalają się jako pierwsze (na pewno jest w helpie napisane), ale priority wchodzi w combo ze "stop further processing".

Masz trigger o najwyzszym priorytecie (sprawdzamy w helpie, czy to 1, czy 9999), jeśli on się odpali i ma zaznaczone "stop further processing" to ta linijka nie przechodzi już przez żaden inny trigger, co przyspiesza ogólny proces.

Tak mi się przynajmniej wydaje i tak to rozumiem. :)
Cierpliwość i spokój nie są moimi cnotami.

Awatar użytkownika
Sadriviel
Posty: 79
Rejestracja: 23 mar 2016 07:37

Re: CMUD

Post autor: Sadriviel » 02 lut 2017 19:39

Mam następujący problem. Na pakiet Messages mam trigger o takim patternie:

Kod: Zaznacz cały

#if (%len($msg.text)>4) {
    #if ($msg.type="comm") {
      #if (%match($msg.text,"^(Mowisz:*)$",$catch)) {@proba($catch);#exit} 
    }
}
Funkcja @proba wygląda tak:

Kod: Zaznacz cały

#say $a
#exit
Co daje efekt:

Kod: Zaznacz cały

Mowisz: Proba

>
>
Kiedy zamiast @proba($catch) robie tam po prostu #say $catch, nie wrzuca mi tych dwóch pustych linii. Stąd wniosek, że funkcja je w jakiś sposób dodaje.

Jak się ich pozbyć? Skąd się biorą?

EDIT (15 minut później...):

Zmieniłem trochę %match, ale całość naprawiło #return w funkcji. Tak to wygląda teraz.

Pakiet Messages.

Kod: Zaznacz cały

#if (%len($msg.text)>4) {
    #if ($msg.type="comm") {
      #if (%match($msg.text,"Mowisz:*")) {#say @proba($msg.text);#exit} 
    }
}
Funkcja @proba.

Kod: Zaznacz cały

#return $a
Pozostaje pytanie - skąd się te brały te puste linie? Zurwenowa funkcja @uaktualnij_kondycje nie wysyła żadnych pustych linii...
Cierpliwość i spokój nie są moimi cnotami.

Miril
Posty: 54
Rejestracja: 09 lut 2017 23:09

Re: CMUD

Post autor: Miril » 19 mar 2017 17:30

Poratujcie mnie, proszę.

Mam paczkę skryptów od Zuwrena i wszystko działa pięknie. Chcę jednak zmodyfikować komunikaty które trafiają do okna "walka", na przykład zmienić:

Kod: Zaznacz cały

XXXtrafia cie dlugim szerokim mieczem w korpus, lecz caly impet uderzenia zostaje wyparowany przez polyskliwa trojkatna tarcze.
na:

Kod: Zaznacz cały

TARCZA
Zakładam triga na pattern:

Kod: Zaznacz cały

^* zostaje wyparowany * tarcze.$
ale niestety bez żadnego efektu.
Sprawdziłem testowo kilka innych trigów na komunikaty, które trafiają do okienka "walka" i żaden z nich nie działa. W tym samym czasie wszystkie trigi na komunikaty pojawiające się w głównym oknie działają bez zarzutu.

Macie jakiś pomysł jak założyć działające trigi na komunikaty w "walce"?

Awatar użytkownika
Artak
Posty: 246
Rejestracja: 15 kwie 2015 16:40
Kontakt:

Re: CMUD

Post autor: Artak » 19 mar 2017 18:02

Miril pisze: Zakładam triga na pattern:

Kod: Zaznacz cały

^* zostaje wyparowany * tarcze.$
ale niestety bez żadnego efektu.
Sprawdziłem testowo kilka innych trigów na komunikaty, które trafiają do okienka "walka" i żaden z nich nie działa. W tym samym czasie wszystkie trigi na komunikaty pojawiające się w głównym oknie działają bez zarzutu.

Macie jakiś pomysł jak założyć działające trigi na komunikaty w "walce"?
Jeśli to ma być regexp to musisz mieć .* zamiast *

Miril
Posty: 54
Rejestracja: 09 lut 2017 23:09

Re: CMUD

Post autor: Miril » 19 mar 2017 20:23

1) Regexp? A po naszemu to co to jest?
2) Mam trigi porobione na podświetlenia tekstu w stylu:

Kod: Zaznacz cały

Masz przy sobie *.
i działają normalnie, bez kropki przed gwiazdką.

Nie rozwiązuje to problemu, w którym trigi na podświetlenia lub zmianę tekstu działają tylko w głównym oknie, a nie mają wpływu na okno z opisami walki.

Awatar użytkownika
Werbat
Posty: 1351
Rejestracja: 12 lut 2009 21:25
Lokalizacja: Poznań
Kontakt:

Re: CMUD

Post autor: Werbat » 19 mar 2017 22:07

Miril pisze:1) Regexp? A po naszemu to co to jest?
Masz bana w Google?
https://en.wikipedia.org/wiki/Regular_expression

Skoro używasz ^ i $, to to wygląda na regexp, więc _musisz_ mieć .*.
I aim to misbehave.
Systematycznie dążę do wyrugowania hejtu z arsenału swoich środków wyrazu.

Miril
Posty: 54
Rejestracja: 09 lut 2017 23:09

Re: CMUD

Post autor: Miril » 19 mar 2017 22:34

Edit: Już wszystko działa. Dziękuję.

Werbat: Działa bez kropki przed gwiazdką, więc_nie_muszę_mieć .*.

Awatar użytkownika
Werbat
Posty: 1351
Rejestracja: 12 lut 2009 21:25
Lokalizacja: Poznań
Kontakt:

Re: CMUD

Post autor: Werbat » 20 mar 2017 15:41

No to strasznie pojebany klient, skoro część znaków ma zgodnych z (perl) regexp, a potem nagle globy. Ale spoko, jak się używa Windowsa, to i soft musi być gówniany ;-)
I aim to misbehave.
Systematycznie dążę do wyrugowania hejtu z arsenału swoich środków wyrazu.

Awatar użytkownika
Talisa
Posty: 144
Rejestracja: 21 kwie 2015 23:40
Lokalizacja: Skellige IRL

Re: CMUD

Post autor: Talisa » 20 mar 2017 20:02

Werbat pisze:No to strasznie pojebany klient, skoro część znaków ma zgodnych z (perl) regexp, a potem nagle globy. Ale spoko, jak się używa Windowsa, to i soft musi być gówniany ;-)
Uh, ale zawiesniaczyl tym razem.

Skladnia patternow w zscript jest intuicyjna, ale oczywiscie mniej elastyczna niz RegExp.
Oczywiscie triggery lokujemy w drzewku tego okna, ktore maja lapac. Czyli w zurwenowskich pod "Walka".
Everyone is fighting their own battle to be free from their past, to live in the present, and create a meaningful future for themselves. Don't judge, have a heart.

ODPOWIEDZ