CMUD

Forum techniczne Arkadii.
Gleanevall
Posty: 258
Rejestracja: 13 sie 2011 21:08

Re: CMUD

Post autor: Gleanevall »

Żeby suby typu jeden[ok] dwa[ok] dzialaly, jak chcesz, zaznacz w opcjach triggera Repeat within line. Niestety, jak wspomniał mój kolega gnom Haern, nadal należy się spodziewać błędów z rozjeżdżaniem literek i kolorów przy wielu subach w jednej linii.

Co do gmcp:
To co w klejasz jest zwracane poprawnie - tak to w cmudzie zostało zaprojektowane, żeby zmienna %gmcp zawierała wszystkie dotychczasowe dane.
Json jest używany między arką a klientem, a wyświetlając %gmcp.Objects.Data używasz danych już sparsowanych w zmiennej cmuda, więc w tym formacie się pojawiają.
Efekt, którego szukasz, osiągniesz czytając w triggerze gmcp ze zmiennej %gmcp.data, która zawiera dane z własnie otrzymanej paczki, które trigger odpaliły. Wartość Json przed parsowaniem znajdziesz w %0 i możesz je konwertować ręcznie przez %json(%0).
Dina
Posty: 8
Rejestracja: 11 sty 2016 17:05

Re: CMUD

Post autor: Dina »

Gleanevall Dziękuje bardzo za szczegółowe wytłumaczenie! Takich wiadomości szukałem. Pozdrawiam.
Zurwen
Posty: 756
Rejestracja: 13 lut 2009 09:37

Re: CMUD

Post autor: Zurwen »

Tak, objects.data i objects.nums jest aktualizowane a nie dostarczane w całości.

Czytaj, patrz jak jest w mojej paczce, bo tam już to klejenie jest zrobione i nie trzeba się tym przejmować. Z tego co pamiętam, aktualne wartości GMCP triggery gmcp zapisywały w jakcihś zmiennych, które sa automatycznie odświeżane i można z nich spokojnie do skrytpowania korzystać.
Do kontaktów z czarodziejami służy komenda ‚zglos’ (błąd/pomysl/mg).
Amirez
Posty: 68
Rejestracja: 25 lut 2011 21:32

Re: CMUD

Post autor: Amirez »

Jak usunac komende wysylana do muda zeby sie nie wyswietlala??
#gag niestety nie dziala
Zurwen
Posty: 756
Rejestracja: 13 lut 2009 09:37

Re: CMUD

Post autor: Zurwen »

W opcjach możesz wyłączyć echo czy coś takiego, z tego co pamietam
Do kontaktów z czarodziejami służy komenda ‚zglos’ (błąd/pomysl/mg).
Awatar użytkownika
Thorffin
Posty: 62
Rejestracja: 05 lis 2012 20:08

Re: CMUD

Post autor: Thorffin »

@Amirez:

Chyba, że chcesz, aby nie pokazywało tylko jednej, konkretnej komendy?

Gagujemy komendę, która pokazuje poziom Twoich umiejętności, czyli <um>.

Trigger o patternie ^{> |}um$
Value #gag
I niżej, wybieramy z listy Type: Comand Input. Listę trzeba przewinąć bo przynajmniej u mnie nie pokazuje jej od początku, a jest to pozycja druga od góry.

Tym razem sprawdziłem, zanim napisałem - u mnie działa.
Awatar użytkownika
Aiathel
Posty: 41
Rejestracja: 08 maja 2015 01:56

Re: CMUD

Post autor: Aiathel »

Mam pewien problem. Chce widziec co wpisuje w listach, a mam wylaczone echo commands. Dlatego zrobilem cos takiego:

Kod: Zaznacz cały

<?xml version="1.0" encoding="ISO-8859-1" ?>
<cmud>
  <trigger type="Command Input" priority="31560" copy="yes">
    <pattern>napisz list</pattern>
    <value>#class listy 1</value>
  </trigger>
</cmud>

Kod: Zaznacz cały

<class name="listy" enabled="false" id="1526">
  <trigger type="Command Input" priority="31590" id="3159">
    <pattern>^(*)$</pattern>
    <value>#print %1</value>
  </trigger>
</class>
Problem tylko taki, ze gdy tylko folder sie otwiera to od razu sie zamyka. To przez ten trigger, tylko nie wiem jak to wylaczyc, a jakos inny sposob na zrobienie tego mi nie przyszedl do glowy. Ktos ma jakis pomysl?
Awatar użytkownika
Jardir
Posty: 13
Rejestracja: 21 lut 2016 20:58

Re: CMUD

Post autor: Jardir »

W pierwszym wklejonym kodzie, zamiast #class itd. zrób #t+ listy.
Zrób inny trigger na komunikat kończący pisanie listu i w nim wrzuć #t- listy.
Awatar użytkownika
Jardir
Posty: 13
Rejestracja: 21 lut 2016 20:58

Re: CMUD

Post autor: Jardir »

Mam problem, nad którym siedzę od wczoraj... Wklejam część większego kodu:

Kod: Zaznacz cały

     //moj unik
      #if (%match($msg.text,"%e[0m%e[%d;%dm%e[0m%e[%d;%dm(*)%e[0m%e[%d;%dm probuje cie trafic (*), lecz tobie udaje sie uniknac tego ciosu.",$atk,$bron)) {
        $zlapane=1
        $ukryj=1
        #if (@sopcje.miss) {} {
          #if (@sopcje.short) {
            #switch (@sopcje.mini)
              (1) {$atk=@skrot_short($atk)}
              (2) {
                $atk=@skrot_short($atk)
                $bron=@skrot_short($bron)
              }
            #say %repeat(" ",17)%ansi(8)"TY -->         UNIK         --> "$atk" ("$bron")"
          } {
            #say %ansi(7)$msg.text
          }
        }
      }
I kod funkcji @skrot_short, która w okienku CMUDA, na dole pod kodem w polu Param: nic nie ma wpisanego.

Kod: Zaznacz cały

#if (1<%numwords(%param)) {
    $a=0
    $b=%null
    $rep=%null
    #if (4<%numwords(%param)) {$rep=4} {$rep=%numwords(%param)}
    #repeat $rep {
      $a=%eval($a+1)
      #if ($a=1) {$b=%left(%word(%param,$a),4)} {$b=$b" "%left(%word(%param,$a),4)}
    }
    #return $b
} {#return %param}
Problem polega na tym, że sprawdzanie @skrot_short na sucho, czyli:

Kod: Zaznacz cały

#sh @skrot_short(qwertyuiop asdfghjkl zxcvbnm)
działa i ładnie skraca do 4 pierwszych literek. Natomiast w większym kodzie nie pokazuje nic, tam gdzie powinna być treść $atk, nie ma żadnego tekstu.

Wpisałem #sh %param w @skrot_short przed całym ifem i %param wyglądało tam dobrze, pełny short npc. Kiedy w drugie { } tego samego ifa wpisałem to, co widać, pokazało mi się takie coś...

Kod: Zaznacz cały

                 TY -->         UNIK         --> {"type":"combat","text":"Brzydki beczkowaty gremlin probuje cie trafic dlugimi szponiastymi pazurami, lecz tobie udaje sie uniknac tego ciosu."} (dlugimi szponiastymi pazurami)
Co jest dla mnie totalną zagadką, bo przecież w $atk nie ma jak wrzucić całości linijki z GMCP Messages...

Myślałem już, żeby w Param: funkcji @skrot_short wpisać $atk i $bron, ale one nigdy nie będą wrzucane na raz do tej funkcji. Nie uśmiecha mi się też rezygnowanie z funkcji, bo będę musiał ten sam kod pisać X razy.

Będę wdzięczny za jakąkolwiek pomoc.
Awatar użytkownika
Sadriviel
Posty: 79
Rejestracja: 23 mar 2016 07:37

Re: CMUD

Post autor: Sadriviel »

Od jakiegoś czasu męczę się z licznikiem zabić, takim uber-prox. W drużynie jestem ja, xxx i yyy.

Chciałem to ugryźć tak, żeby zrobić bazę @killers_db, tam w KEY byłyby imiona, w VALUE np. potwora=3|goblina=2|orka=1
I potem wyświetlać:

Kod: Zaznacz cały

         JA|xx|yy|
 potwora 1 |4 |6 |
 goblina 1 |4 |6 |
ALBO tak, żeby każdy członek drużyny miał swoją własną zmienną, a w niej jako KEY potwora/goblina/orka, VALUE liczbę zabić.

Grzęznę w #var, zmiennych lokalnych i innych rzeczach... wywoływanie z bazy na zasadzie @variable.key.potwora też nie działa tak jak chcę i w ogóle mam problem z jej tworzeniem.

O jakiejś komendzie/funkcji nie pomyślałem? Może ktoś ma coś gotowego? Dawno temu był taki licznik na ZMUDa. Przygarnę cokolwiek.
Cierpliwość i spokój nie są moimi cnotami.
ODPOWIEDZ