Strona 17 z 77
Re: CMUD
: 11 maja 2012 14:03
autor: Zurwen
#status
Re: CMUD
: 11 maja 2012 14:22
autor: Haern
Tworzysz stringa pustego, ktory wyswietli sie w docelowym miejscu. Moze to byc jakas zmienna po prostu.
Nastepne robisz petle FORALL na zmiennej @wyjscia, w ktorej sprawdzasz czy dane wyjscie pokrywa sie z @skadide, i zaleznie od tego dajesz kolor ansi, i tak powstaly string (np. %Ansi(red) n ) dodajesz do zmiennej docelowej. Tu chyba funkcja %concat sie przyda, albo mozna to tez zapewne zrobic recznie.
Nie mam dostepu do kompa teraz to nie przetestuje czy dziala. Ale powodzenia;)
Re: CMUD
: 11 maja 2012 18:03
autor: Amirez
niestety za cienki chyba jestem

Ale i tak fajnie sie skrypty pisze
Re: CMUD
: 11 maja 2012 19:29
autor: Haern
Twój kod, zmodyfikowany z leksza (tam gdzie czerwone to jakies poprawki, zielone to nowa czesc).
<window name="arkadia_testy_kolorowaniewyjsc" width="1016" height="452" id="1">
<uid>{F1317014-D219-4E17-9DC7-68DF2D3BE759}</uid>
<packages>English Directions|English Keypad|Clickable URLs|arkakolwyjsc</packages>
<class name="wyjscia_w_oknie" initdisable="true" id="2">
<trigger priority="4320" id="10">
<pattern>{Jest|Sa} tutaj * widoczn{e|ych} wyjsc{|ia|ie}: (*).$</pattern>
<value>#CLASS wyjscia_w_oknie
wyjscia = %1
wyjscia = %replace( @wyjscia, "-", "")
wyjscia = %replace( @wyjscia, " i " , |)
wyjscia = %replace( @wyjscia, " ", "")
wyjscia = %replace( @wyjscia, ",", |)
wyjscia = %replace( @wyjscia, " oraz " , |)
wyjscia = %replace( @wyjscia, polnoc, n)
wyjscia = %replace( @wyjscia, poludnie, s)
wyjscia = %replace( @wyjscia, poludniowy, s)
wyjscia = %replace( @wyjscia, polnocny, n)
wyjscia = %replace( @wyjscia, wschod, e)
wyjscia = %replace( @wyjscia, zachod, w)
wyjscia = %replace( @wyjscia, gora, g)
wyjscia = %replace( @wyjscia, gore, g)
wyjscia = %replace( @wyjscia, dol, d)
#VAR exits_show {}
#FORALL @wyjscia {#IF (%i = @skadide) {#VAR exits_show {%concat(@exits_show, %ansi(hi,red)%i)}} {#VAR exits_show {%concat(@exits_show, %ansi(yellow)%i)}}}
#CLASS 0
</value>
</trigger>
<alias name="klawisz_chodzenia_proba" autoappend="true" id="19">
<value>#CLASS wyjscia_w_oknie
skadide = %reversedir(%1)
#EXEC {%1}
#CLASS 0
</value>
</alias>
<var name="wyjscia" type="StringList" id="20">
<value>nw|sw|w|e</value>
<json>["nw","sw","w","e"]</json>
</var>
<var name="skadide" id="23"/>
<var name="exits_show" id="24"/>
</class>
</window>
Zmienna exits_show wrzuc sobie tam gdzie chcesz zeby sie wyswietlala. Alias podepnij pod klawisze kierunkowe. I voila.
(Nie testowalem tego skryptu!)
Re: CMUD
: 12 maja 2012 01:02
autor: Amirez
Mam rozwiazanie
Kod: Zaznacz cały
#VAR pozostalewyjscia %delItem( @skadide,@wyjscia)
pozostalewyjscia = %replace( @pozostalewyjscia, "|", ",")
#SHOW %ansi(yellow) "EXITS:" %ansi(11)@pozostalewyjscia%ansi(high,red)","%upper(@skadide)
Re: CMUD
: 12 maja 2012 09:45
autor: Haern
Też opcja, powodzenia z dalszymi skryptami.
Re: CMUD
: 21 maja 2012 11:55
autor: Virdill
Witam,
czy może mi ktoś pomóc i podarować skrypt pomagający przy dużych walkach drużynowych, konkretnie mam na myśli orientowanie się kto z kim walczy, oraz pomoc w zasłonach. Na chwilę obecną mam wyłączone opisy walk i na krótką metę to pomaga, ale przyznam że nadal mam problem ze zorientowaniem się co się dzieje przy walkach gdzie mam w drużynie kilka osób i walczymy z kilkoma mobkami (zanim uruchomię właściwą komendę walczący potrafią się już nieźle przetasować).
Z góry dziękuję.
Pozdrawiam.
Re: CMUD
: 21 maja 2012 12:59
autor: Haern
Jesli chodzi o wyswietlanie kto kogo leje, to tak po prawdzie nie ma na to dobrego sposobu. Jeden polega na wylapywaniu z ciosow kto kogo leje, lecz to wymaga wlaczonych opisow walki (chociaz mozna je wygagowac, zeby nie pojawialy sie w glownym oknie muda zeby nie zasmiecac). Drugi na wylapywaniu z koncentracji (czyli tych linijek po zerknij, kto walczy z kim i kto koncentruje sie na walce z kim), jest on jednak o tyle ulomny, o ile ulomne jest samo wyswietlanie koncentracji - nie zawsze widac wszystkich wrogow. Jednak od czasu wprowadzenia zmian w komendzie 'zaslon', czyli od kiedy w walce mozesz wpisac 'zaslon mietka' i zaslaniasz Mietka przed losowym wrogiem, nie jest to chyba tak istotne? Widzisz ze Mietek schodzi z kondycji, to go zaslaniasz, i tyle.
Skrypt, o ktory pytasz, jest dosyc skomplikowany, uwzglednia duzo odmieniania nazw i imion (co tez skryptowo nie jest proste, albo duuuzy skrypt odmieniajacy automatycznie po koncowkach, albo lapiacy z 'odmien', gdzie kazdego nowego wroga musisz odmieniac...), i nigdy nie jest perfekcyjny. Generalnie polecam raczej pokolorowanie sobie koncentracji i wylapywanie "wlasnoocznie" - da sie to ogarnac po jakims czasie

Re: CMUD
: 21 maja 2012 13:39
autor: Zurwen
Proste rozwiązanie:
(Takim mocno podstawowym sposobem jest wyłączenie opisywania walki i oskryptowanie (w celu zwiększenia czytelności) sobie komunikatów przy 'zerknij' (1) ('Wraz z X koncentrujesz sie na walce z Y, wspartym przez Z.') Proponuje przyjrzeć się na Arkadii, tekst ten daje całkiem sporą część informacji o walce, zaś cały skrypt będzie się składał z 2-3 triggerów. Na takiej podstawie (+kondycja) można już wyciągać wnioski kogo trzeba osłonić bo jest bity przez za dużą liczbę przeciwników.
Inne rozwiązania:
Głupim pomysłem jest oskryptowanie: opisu zadawanych ciosów (2), bądź oglądania wszystkich (3). W tych sytuacjach triggery będą odpalane zdecydowanie częściej niż zachodzi taka potrzeba, więc skrypt będzie nieefektywny i w rezultacie cały config będzie wolny.
Najlepszym (i najtrudniejszym) sposobem jest opisanie komunikatów zmieniających cele w walce (X atakuje Y; X zaslania Z przed ciosami Y; X wycofuje sie za Z przed ciosami Y; etc.). Dodatkowo można wtedy wspomóc się skryptami (1) i (3) (np. do sytuacji w której wchodzisz na lokację na której toczy się już walka). Tak jak napisał Haern, tego typu skrypt jest skomplikowany i do tego są sytacje, w których nie ma prawa działać (np. przy livingach które mają ten sam opis).
Re: CMUD
: 21 maja 2012 15:36
autor: Suvi
Haern pisze:Skrypt, o ktory pytasz, jest dosyc skomplikowany, uwzglednia duzo odmieniania nazw i imion (co tez skryptowo nie jest proste, albo duuuzy skrypt odmieniajacy automatycznie po koncowkach, albo lapiacy z 'odmien', gdzie kazdego nowego wroga musisz odmieniac...), i nigdy nie jest perfekcyjny. Generalnie polecam raczej pokolorowanie sobie koncentracji i wylapywanie "wlasnoocznie" - da sie to ogarnac po jakims czasie

Od kiedy CMUD obsluguje SQL, skrypt odmiany jest dosc latwy do zrobienia. Jedynie odmiana rzeczownikow wymaga wpisywania ich na sztywno do bazy (bo np. przy imionach zdarzaja sie problemy), przymiotniki mozna wszystkie odmienic z automatu. No i trzeba miec tez liste mozliwych okreslen wystepujących po rzeczowniku (ze skory, chaosu, ognia, wody, elfa - jak np. duch elfa - itp.). Mimo to skrypt na skuteczna odmiane wcale nie jest ciezki i moze byc praktycznie niezawodny.