CMUD

Forum techniczne Arkadii.
Awatar użytkownika
Zog
Posty: 25
Rejestracja: 26 lis 2011 11:21

Re: CMUD

Post autor: Zog »

Ja ogólnie odradzam używanie subów.
Da się zrobić porządny skrypt bez nich, a ich brak sprawia że wszystko chodzi płynnie.

Np zamiast:

Kod: Zaznacz cały

(*) zrecznie zaslania (*) przed ciosami (*).$
#SUB {--->> > %1 < - !!ZASLANIA!! - >> %2 << PRZED >> %3 <<}
Dałbym:

Kod: Zaznacz cały

(*) zrecznie zaslania (*) przed ciosami (*).$
#GAG
#SA {--->> > %1 < - !!ZASLANIA!! - >> %2 << PRZED >> %3 <<}
Teraz żeby to pokolorować użyj %ansi().

Np:

Kod: Zaznacz cały

#SA {%ansi(11)--->> > %ansi(15)%1 %ansi(11)< - !!ZASLANIA!! - >> %ansi(15)%2 %ansi11()<< PRZED >> %ansi(15)%3 %ansi(11)<<}
Kody kolorów ansi: ctrl+i.
Zurwen
Posty: 756
Rejestracja: 13 lut 2009 09:37

Re: CMUD

Post autor: Zurwen »

Wygagowanie i wyswietlenie to to samo co sub ;)
Całkiem prawdopodobne, że wręcz działa gorzej wydajnościowo.
Do kontaktów z czarodziejami służy komenda ‚zglos’ (błąd/pomysl/mg).
Awatar użytkownika
Zog
Posty: 25
Rejestracja: 26 lis 2011 11:21

Re: CMUD

Post autor: Zog »

Testy mówią co innego. :)
Zurwen
Posty: 756
Rejestracja: 13 lut 2009 09:37

Re: CMUD

Post autor: Zurwen »

Musiałeś zmienić coś innego wydajnościowo, albo ktoś się strasznie nie popisał w pisaniu #sub. Najprostszy sposób na suby, jaki mi przychodzi do głowy to usunąć tekst i wkleić nowy, czyli to co ty robisz. Spodziewałbym się, że Zugg wymyślił coś lepszego albo co najmniej nie gorszego.
Do kontaktów z czarodziejami służy komenda ‚zglos’ (błąd/pomysl/mg).
Suvi
Posty: 45
Rejestracja: 07 mar 2011 00:03

Re: CMUD

Post autor: Suvi »

Zog pisze:Testy mówią co innego. :)
Jak się testuje zły materiał, to i wyniki bywają złe ;]
Zog pisze:Ja ogólnie odradzam używanie subów.
Da się zrobić porządny skrypt bez nich, a ich brak sprawia że wszystko chodzi płynnie.
Widocznie źle ich używasz. Polecam zapoznać się z opcją priorytetu triggerów, wszystko stanie się prostsze.
Zog pisze:Teraz żeby to pokolorować użyj %ansi().
O bogowie! Przecież ansi jest nieczytelne, i niewygodne. Próbowałeś używać ansi w funkcji %format? Koszmar. Gorąco zachęcam do używania MXP, które wygląda np. tak:
#MXP %format( "Znajdujesz <color green>%s</color>", $ziolo)
#SUB "<color red>ATAKUJE CIE!</color>"
#MXP "<b>Tekst pogrubiony</b>"
Jest bardziej przejrzyste, szybkie, łatwiejsze do zmiany, można nim robić też tysiąc innych rzeczy, łącznie z klikalnymi sekcjami tekstu czy też możliwością tworzenia własnych tagów. No i można je też logować, tworząc logi od razu w htmlu.
Awatar użytkownika
Zog
Posty: 25
Rejestracja: 26 lis 2011 11:21

Re: CMUD

Post autor: Zog »

Zrobiłem sobie triggera który przesuwa mi kropkę na mapie w czasie wykonywania komendy idź, więc się chętnie podzielę.
Pewnie da się to zrobić lepiej więc czekam na uwagi. ;)

Kod: Zaznacz cały

Pattern: Ruszasz * na (*).
Value:
#mo %item( "n|s|w|e|ne|nw|se|sw|d|u", ( %ismember( %1, "polnoc|poludnie|zachod|wschod|polnocny-wschod|polnocny-zachod|poludniowy-wschod|poludniowy-zachod|dol|gore" ) ) )
Do tego dołożyłem alias który odpala "idz" i tego triggera:

Kod: Zaznacz cały

Name: 5
Value:
#T+ "Ruszasz * na (*)."
idz %1
Oraz triggera który wyłączy wszystko:

Kod: Zaznacz cały

Pattern: ^Wykonywanie komendy 'idz' zostaje przerwane.$
Value:
#T- "Ruszasz * na (*)."
Ostatnio zmieniony 29 lis 2011 14:59 przez Zog, łącznie zmieniany 1 raz.
Zurwen
Posty: 756
Rejestracja: 13 lut 2009 09:37

Re: CMUD

Post autor: Zurwen »

Znacznie lepiej to zrobić korzystając z trigger state.

Kod: Zaznacz cały

<trigger priority="3300" id="330">
  <pattern>^{> |}Wykonuje komende 'idz *'.$</pattern>
  <trigger type="Within Lines" param="1">
    <pattern>^{> |}Ruszasz * na (*).$</pattern>
    <value>#mo @wyjscie_dlugie_na_krotkie(%1)</value>
  </trigger>
</trigger>
Ostatnio zmieniony 29 lis 2011 14:56 przez Zurwen, łącznie zmieniany 1 raz.
Do kontaktów z czarodziejami służy komenda ‚zglos’ (błąd/pomysl/mg).
Awatar użytkownika
Zog
Posty: 25
Rejestracja: 26 lis 2011 11:21

Re: CMUD

Post autor: Zog »

Już czytam helpa. :)
Visborg
Posty: 406
Rejestracja: 15 maja 2009 03:09

Re: CMUD

Post autor: Visborg »

Dzięki. A w związku z powyższym mam pytanie: czy istnieje sposób by komendę znajdującą się wewnątrz aliasa nie sprawdzał pod względem bycia aliasem?

Tzn: jeśli bym np zamiast Kolegi '5' jako komende aliasa dał 'idz', aby nie zwracał mi infinite loopa tylko w odpowiedzi na 'idz %' aktywował trigger i wysylal do MUDa komendę 'idz %'?

Analogicznie (chyba) - aby 'zabij' zawsze wysyłało jako 'zabij elfa' a nie robiło pętli (zabij -> zabij elfa -> zabij elfa elfa -> zabij elfa elfa elfa...ad infinitum).
Rennz
Posty: 546
Rejestracja: 12 sty 2010 17:09
Lokalizacja: Kraków
Kontakt:

Re: CMUD

Post autor: Rennz »

Naprościej #sendraw chyba.
ODPOWIEDZ