CMUD
Re: CMUD
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;)
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
Twój kod, zmodyfikowany z leksza (tam gdzie czerwone to jakies poprawki, zielone to nowa czesc).
(Nie testowalem tego skryptu!)
Zmienna exits_show wrzuc sobie tam gdzie chcesz zeby sie wyswietlala. Alias podepnij pod klawisze kierunkowe. I voila.<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>
(Nie testowalem tego skryptu!)
Re: CMUD
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
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.
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.
Dla ciebie jestem ateistą, dla Boga - konstruktywną opozycją.
Woody Allen
Woody Allen
Re: CMUD
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
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
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).
(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).
Do kontaktów z czarodziejami służy komenda ‚zglos’ (błąd/pomysl/mg).
Re: CMUD
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.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