Mudlet 2.1 - Mapper + zestaw prostych niezawodnych skryptów
Re: Mudlet 2.1 - Mapper + zestaw prostych niezawodnych skryptów
Podeślę wieczorem kilka opisów bo znalazłem miejsca gdzie /medytuj i /licz_poziom nie działa poprawnie.
Re: Mudlet 2.1 - Mapper + zestaw prostych niezawodnych skryptów
Taka wskazówka: nie musisz dopisywać wszystkich statków po konkretnym opisie, bo są standardowe teksty kapitana. Ja mam tak:
/def -mregexp -p2 -t'(Wszyscy na poklad!|przybija wielki trojmasztowy galeon.)' ship_on = \
/tbind wns
/def -mregexp -p2 -t'(ratwa|rom) przybija do brzegu' ship_on1 = \
/tbind wejdz na statek
/def -mregexp -p2 -t'(Doplynelismy.*(Mozna|w calej swej)|Marynarze sprawnie cumuja)' ship_off = \
/tbind zejdz ze statku
I działa.
/def -mregexp -p2 -t'(Wszyscy na poklad!|przybija wielki trojmasztowy galeon.)' ship_on = \
/tbind wns
/def -mregexp -p2 -t'(ratwa|rom) przybija do brzegu' ship_on1 = \
/tbind wejdz na statek
/def -mregexp -p2 -t'(Doplynelismy.*(Mozna|w calej swej)|Marynarze sprawnie cumuja)' ship_off = \
/tbind zejdz ze statku
I działa.
I aim to misbehave.
Systematycznie dążę do wyrugowania hejtu z arsenału swoich środków wyrazu.
Systematycznie dążę do wyrugowania hejtu z arsenału swoich środków wyrazu.
Re: Mudlet 2.1 - Mapper + zestaw prostych niezawodnych skryptów
Dzięki. Co do wydzielonego okna - będzie, ale to większy temat, bo tak jak wspominałem Mudlet ma jakiegoś buga, który sprawia, że gmcp.messages odpowiadający za dostarczanie tych komunikatów jest pusty. Podejrzewam, że w następnych 2 miesiącach powinienem to rozwiązać.Suavi pisze: Adremenie, wielkie dzięki, za poświęcony czas, za to, że Ci się chce i za podzielenie się
Na Mudlecie gram od dawna, zrobilam sobie jakieś tam swoje duperele (dźwięki przy ataku na mnie i do nowej poczty np. - bardzo przydatne:P), ale o pisaniu takich skryptów nawet nie marzę.
Wcześniej tu zaglądałam, ale nie miałam czasu grzebać w Mudlecie. Dopiero w ten weekend znalazłam chwilę.
Okienko do walki - rewelacja!
Jakby się jeszcze udało zrobić takie osobne okienko do erpega – gadanie + emoty, bez żadnych dodatków i wodotrysków nawet, żeby tylko to nie ginęło jak jest kilkanaście osób w drużynie - to mi osobiście nic wiecej nie potrzeba:)
Na tę chwilę, apetyt rośnie w miarę... itd
Dzięki, nie zdawałem sobie sprawy, że od tej strony można to złapać. Co do tratwy i promu to warto dodać jeszcze krype, od niedawna jest.Werbat pisze: Taka wskazówka: nie musisz dopisywać wszystkich statków po konkretnym opisie, bo są standardowe teksty kapitana. Ja mam tak:
/def -mregexp -p2 -t'(Wszyscy na poklad!|przybija wielki trojmasztowy galeon.)' ship_on = \
/tbind wns
/def -mregexp -p2 -t'(ratwa|rom) przybija do brzegu' ship_on1 = \
/tbind wejdz na statek
/def -mregexp -p2 -t'(Doplynelismy.*(Mozna|w calej swej)|Marynarze sprawnie cumuja)' ship_off = \
/tbind zejdz ze statku
I działa.
Re: Mudlet 2.1 - Mapper + zestaw prostych niezawodnych skryptów
Chcialem szczerze podziekowac za prace jaka wykonujesz i z nami sie dzielisz.
Czy moglbym prosic o jakas krociutka instrukcje jak to zaladowac do mudleta, skrypt i mapy by dzialalo. Rozumiem ze mapy sa oddzielnie a skrypty oddzielnie.
Wybaczcie za tak glupiutkie pytanie lecz przeszlo 11 lat nie tykalem mudow i ich klientow.
Da sie zmienic w mapperze by zamiast kropek jak na filmiku instruktazowym byly kwadraty? Jak np w arkadiowym kliencie?
I ostatnie czy na tych mapach moge sobie dodawac opisy typu " kowal" " banici" etc...
Czy moglbym prosic o jakas krociutka instrukcje jak to zaladowac do mudleta, skrypt i mapy by dzialalo. Rozumiem ze mapy sa oddzielnie a skrypty oddzielnie.
Wybaczcie za tak glupiutkie pytanie lecz przeszlo 11 lat nie tykalem mudow i ich klientow.
Da sie zmienic w mapperze by zamiast kropek jak na filmiku instruktazowym byly kwadraty? Jak np w arkadiowym kliencie?
I ostatnie czy na tych mapach moge sobie dodawac opisy typu " kowal" " banici" etc...
Re: Mudlet 2.1 - Mapper + zestaw prostych niezawodnych skryptów
Dzięki. Co do instalacji:Irvin pisze:Chcialem szczerze podziekowac za prace jaka wykonujesz i z nami sie dzielisz.
Czy moglbym prosic o jakas krociutka instrukcje jak to zaladowac do mudleta, skrypt i mapy by dzialalo. Rozumiem ze mapy sa oddzielnie a skrypty oddzielnie.
Wybaczcie za tak glupiutkie pytanie lecz przeszlo 11 lat nie tykalem mudow i ich klientow.
Da sie zmienic w mapperze by zamiast kropek jak na filmiku instruktazowym byly kwadraty? Jak np w arkadiowym kliencie?
I ostatnie czy na tych mapach moge sobie dodawac opisy typu " kowal" " banici" etc...
Skrypty to łatwiej - po prostu instalujesz paczkę (Package Manager i wskaż plik xml). Do mappera potrzebna jest odrobina Twojej ingerencji w kilka aliasów, które musisz stworzyć, aby mapper śledził poprawnie Twoje ruchy. Przejrzyj proszę plik README dołączany w paczce.
Co do kwadratów - nie wiem, u mnie w 2.1 jest tylko, że mogę dać "round" na dole okna mappera, nie mam pojęcia czy da się to jakoś inaczej modyfikować.
Na razie możesz sobie dodawać litery do lokacji (prawy plik na lokacji -> letter i dajesz jakąś literę). W następnych wersjach mam zamiar wprowadzić oznaczanie pokoi (typu kowale, karczmy itp) i później wyszukiwanie najbliższych typów lokacji. Ale kiedy to będzie to nie wiem.
Re: Mudlet 2.1 - Mapper + zestaw prostych niezawodnych skryptów
Czas na kolejny duży update, tym razem mapper.
Arkadia mapper, wersja 1.7
Co w tej wersji?
1. Baza nazw/opisów lokacji i notatki
Od teraz można ustawiać sobie tytuły lokacji, ich opisy i przeszukiwać wszystkie pokoje po tych nazwach i opisach. Przykładowo, nazwa jest krótka, jednoznacznie określająca lokację a opis już dowolny. Ja sobie ustawiam opisy tylko do sklepów lub lokacji, gdzie chcę podkreślić co tam mogę kupić/dostać. Przykład poniżej z targiem w Gelibolu (wyszukiwanie po "jablko" i znajdzie, ze mozna go dostać na targu jeśli ma się zdefiniowany odpowiednio opis do tamtej lokacji).
Cała funkcjonalność opisana w README i jest to zbyt długi opis na wklejenie w poście, tutaj jest wycinek z README wyjaśniający całą funkcjonalność
Tutaj tylko po krótce jak wyglądają komendy:
A tutaj i tutaj przykładowe działania bazy.
Notatki to proste i szybkie notatki, które pokażą się po wejściu na lokację. To automatyczne pokazywane po wejściu na lokację z notatką można wyłączyć w opcjach (poniżej o tym). Wygląda to tak
2. Wagi lokacji
Od teraz można ustawiać wagi lokacji. Wagi są wykorzystywane przy liczeniu wartości ścieżki (jedna lokacja przez góry != jedna lokacja traktem, czyli na przykład wagę traktu górskiego ustawimy sobie na 1.5 lub 2 albo inną). Standardowo każda stworzona lokacja ma wagę 1.
Kawałek z '/mapper_rys':
3. Zmiany w chodziku.
Od teraz jakikolwiek kierunek nacisnięty lub kliknięty róży wiatrów stopuje alias natchmiastowo.
W dodatku, '/idz [wartosc]' działa też teraz dla id lokacji (lokacje są pokazywane przy przeszukiwaniu lokacji w bazie, (patrz punkt 1)
4. Podobnie jak w skryptach, w mapperze dochodzi też opcja ustawienia sobie domyślnych opcji. Plik-wzór w paczce. Wygląda tak:
Więcej w README
5. Stabilizacyjne
*coś tam*
6. Nowa mapa
Będzie niebawem, jak domapuję pozostałe tereny i podopisuję opisy sklepów/karczm itp.
Instalacja
Standardowa. Usunąć paczkę, restart, instalacja nowej paczki.
Tutaj mapper do ściągnięcia
Jak zwykle będę wdzięczny za informacje o błędach/co niedziała.
Arkadia mapper, wersja 1.7
Co w tej wersji?
1. Baza nazw/opisów lokacji i notatki
Od teraz można ustawiać sobie tytuły lokacji, ich opisy i przeszukiwać wszystkie pokoje po tych nazwach i opisach. Przykładowo, nazwa jest krótka, jednoznacznie określająca lokację a opis już dowolny. Ja sobie ustawiam opisy tylko do sklepów lub lokacji, gdzie chcę podkreślić co tam mogę kupić/dostać. Przykład poniżej z targiem w Gelibolu (wyszukiwanie po "jablko" i znajdzie, ze mozna go dostać na targu jeśli ma się zdefiniowany odpowiednio opis do tamtej lokacji).
Cała funkcjonalność opisana w README i jest to zbyt długi opis na wklejenie w poście, tutaj jest wycinek z README wyjaśniający całą funkcjonalność
Tutaj tylko po krótce jak wyglądają komendy:
Kod: Zaznacz cały
+-------------------------- Arkadia mapper, ver 1.7 ---------------------------+
| |
| Dostepne KOMENDY: |
| |
| /pokazuj_notki - czy pokazywac automatycznie notki. |
| |
| /lok_nazwa [nazwa] - ustawi [nazwe] aktualnej lokacji. |
| /lok_nazwa [id] [nazwa] - to co powyzej, ale dla tego [id] lokacji. |
| /lok_opis [opis] - ustawi [opis] aktualnej lokacji. |
| /lok_opis [id] [opis] - to co powyzej, ale dla tego [id] lokacji. |
| |
| /przeszukaj_mape [nazwa] - przeszuka mape (nazwy i opisy) po tej [nazwie]. |
| Pokaze tylko 5 wynikow (najblizszych w odniesieniu do aktualnej lokacji). |
| /przeszukaj_mape! [nazwa] - przeszuka mape (nazwy i opisy) po tej [nazwie]. |
| Pokaze wszystkie wyniki, rowniez w kolejnosci odleglosci od aktualnej lokacji. |
| |
| /lok_notka [nazwa] - ustawi [notke] aktualnej lokacji. |
| /lok_notka [id] [nazwa] - to co powyzej, ale dla tego [id] lokacji. |
| /lok_notka- - zresetuje notke aktualnej lokacji |
| /lok_notka- [id] - to co powyzej, ale dla tego [id] lokacji. |
| |
+--------------------------------------------------------------------------------+
Notatki to proste i szybkie notatki, które pokażą się po wejściu na lokację. To automatyczne pokazywane po wejściu na lokację z notatką można wyłączyć w opcjach (poniżej o tym). Wygląda to tak
2. Wagi lokacji
Od teraz można ustawiać wagi lokacji. Wagi są wykorzystywane przy liczeniu wartości ścieżki (jedna lokacja przez góry != jedna lokacja traktem, czyli na przykład wagę traktu górskiego ustawimy sobie na 1.5 lub 2 albo inną). Standardowo każda stworzona lokacja ma wagę 1.
Kawałek z '/mapper_rys':
Kod: Zaznacz cały
| /waga [wartosc] - ustawia wage tego pokoju. |
| /waga [wartosc] [lokacja_id] - ustawia wage lokacje o tym [lokacja_id]. |
Od teraz jakikolwiek kierunek nacisnięty lub kliknięty róży wiatrów stopuje alias natchmiastowo.
W dodatku, '/idz [wartosc]' działa też teraz dla id lokacji (lokacje są pokazywane przy przeszukiwaniu lokacji w bazie, (patrz punkt 1)
4. Podobnie jak w skryptach, w mapperze dochodzi też opcja ustawienia sobie domyślnych opcji. Plik-wzór w paczce. Wygląda tak:
Kod: Zaznacz cały
-- SKOPIUJ CALA ZAWARTOSC TEGO PLIKU
------------------------------------------
--- Ustawienia do mappera ---
------------------------------------------
-- Domyslna opcja czy maja byc pokazywane notki
-- podczas wejscia na lokacje
--
-- Dozwolone wartosci
-- true - beda pokazywane notki
-- false - nie beda pokazywane notki (mozna ja wtedy zobaczyc w '/lok')
--
-- Komenda do zmiany w trakcie gry: '/pokazuj_notki'
amap.db.show_notes = true
------------------------------------------
-- Domyslna opcja startowa opoznienia chodzika
--
-- Dozwolone wartosci
-- <jakakolwiek liczba>
-- Mozna zmienic '/opoz' w trakcie gry
--
-- Komenda do zmiany w trakcie gry: '/opoz [wartosc]'
amap.walker_delay = 2
------------------------------------------
-- Domyslna opcja startowa rozy wiatrow (czy ma byc wlaczona)
--
-- Dozwolone wartosci
-- true - roza bedzie wlaczona przy starcie Mudleta
-- false - roza nie bedzie wlaczona przy starcie Mudleta
--
-- Komenda do zmiany w trakcie gry: '/roza'
amap.ui.active = true
------------------------------------------
5. Stabilizacyjne
*coś tam*
6. Nowa mapa
Będzie niebawem, jak domapuję pozostałe tereny i podopisuję opisy sklepów/karczm itp.
Instalacja
Standardowa. Usunąć paczkę, restart, instalacja nowej paczki.
Tutaj mapper do ściągnięcia
Jak zwykle będę wdzięczny za informacje o błędach/co niedziała.
Re: Mudlet 2.1 - Mapper + zestaw prostych niezawodnych skryptów
Prawdopodobnie parser wywala sie na znaku ESCAPE od kolorow. Bo chyba powinien (pozostale klienty pewnie nie trzymaja sie dokladnie specyfikacji JSON).Adremen pisze: Dzięki. Co do wydzielonego okna - będzie, ale to większy temat, bo tak jak wspominałem Mudlet ma jakiegoś buga, który sprawia, że gmcp.messages odpowiadający za dostarczanie tych komunikatów jest pusty. Podejrzewam, że w następnych 2 miesiącach powinienem to rozwiązać.
Re: Mudlet 2.1 - Mapper + zestaw prostych niezawodnych skryptów
Adremen, mam kilka kolejnych błędów
Odnośnie komunikatu przy włączaniu, to pewnie przez to, że mam pustą listę wrogów.
Od razu mówię, że nie instalowałem najnowszego mappera, więc może w najnowszym to poprawiłeś, ale:
1. Chodzenie za kimś w drużynie. Ogólnie trigger masz działający, ale w triggerze masz odwołanie:
A w amapie funkcje
I z tego co zauważyłem, to to nie działa (znaczy nie gada ze sobą jak przy odwołaniu nie ma drugiego atrybutu)
2. Chodzenie i zmienna:
W tej zmiennej zapisują się wszystkie wartości, które się wpisze z klawiatury (a przynajmniej tak to wygląda). I jak przykładowo chodzę za kimś, kliknę sobie
Później
To mapper się pierdzieli, bo dostaje ścieżkę:
A nawet czasami jest tak, że kierunek wpada między te wklepane komendy (bo trigger zdąży się szybciej wykonać niż skrypt wyrzuci wszystko z tabeli) i mapper się gubi
Możliwe (nie sprawdzone) rozwiązania:
1. Skoro używasz kolejki, to używaj jej zawsze bo z triggera follow_team kierunek nie wpada do stosu, tylko wpierdziela się gdzieś z boku
2. Sprawdź najpierw czy kierunek, który leży sobie w stosie ma sens (jeszcze nie chciało mi się ogarniać kolejki "amap.queue" ale w momencie wrzucenia czegoś w tą tabelkę możesz sprawdzić czy taki kierunek występuje na danej lokacji. Jak nie ma, to nie wrzucaj ).
To takie moje małe żale
Odnośnie komunikatu przy włączaniu, to pewnie przez to, że mam pustą listę wrogów.
Od razu mówię, że nie instalowałem najnowszego mappera, więc może w najnowszym to poprawiłeś, ale:
1. Chodzenie za kimś w drużynie. Ogólnie trigger masz działający, ale w triggerze masz odwołanie:
Kod: Zaznacz cały
amap:follow(amap.dir_from_team_follow)
Kod: Zaznacz cały
function amap:follow(direction, gmcp_to_check)
2. Chodzenie i zmienna:
Kod: Zaznacz cały
amap.queue
Kod: Zaznacz cały
stan
Kod: Zaznacz cały
kondycja
Kod: Zaznacz cały
kondycja wszystkich
Kod: Zaznacz cały
{"stan", "kondycja", "kondycja_wszystkich", "kierunek w którym idziesz"}
Możliwe (nie sprawdzone) rozwiązania:
1. Skoro używasz kolejki, to używaj jej zawsze bo z triggera follow_team kierunek nie wpada do stosu, tylko wpierdziela się gdzieś z boku
2. Sprawdź najpierw czy kierunek, który leży sobie w stosie ma sens (jeszcze nie chciało mi się ogarniać kolejki "amap.queue" ale w momencie wrzucenia czegoś w tą tabelkę możesz sprawdzić czy taki kierunek występuje na danej lokacji. Jak nie ma, to nie wrzucaj ).
To takie moje małe żale
Re: Mudlet 2.1 - Mapper + zestaw prostych niezawodnych skryptów
Działa działa. Jeśli nie przekażesz ostatniego argumentu to jest on nil, a w follow masz:Artak pisze:Adremen, mam kilka kolejnych błędów
Odnośnie komunikatu przy włączaniu, to pewnie przez to, że mam pustą listę wrogów.
Od razu mówię, że nie instalowałem najnowszego mappera, więc może w najnowszym to poprawiłeś, ale:
1. Chodzenie za kimś w drużynie. Ogólnie trigger masz działający, ale w triggerze masz odwołanie:
Kod: Zaznacz cały
if gmcp_to_check then
(...)
Eh Artaku Artaku, jak już chcesz się żalić to musisz spędzić więcej czasu i rozpoznać dokładnie jak działa cały mechanizm mappera Albo usiąść do tego od strony GMCP i Arki i wtedy zobaczysz czemu czasami stosuję takie ruchy, a nie inne2. Chodzenie i zmienna:
Ok, to po kolei kilka najważniejszych informacji.
Każda Twoja komenda trafia do kolejki. Dzięki temu masz niegubienie się w miejscach, gdzie w GMCP nie koordynatów (jaskinie, bagna itp). To jest zrobione tak, że:
- wklepujesz masę komend kierunkowych
- zaczynają przychodzić GMCP. Każde przyjście GMCP powoduje podbieranie komend z kolejki. Pierwsza, która jest poprawnym ruchem jest wykonywana. itp itd.
Teraz tak: przyjście gmcp.room powoduje odpalenie on_key_event(). Znaczy to, że przyszedł komunikat i trzeba wykonać ruch z kolejki. Te wszystkie komendy typu "stan", "kondycje" są później filtrowane (w amap.follow() masz:
Kod: Zaznacz cały
local new_id = get_next_room_from_dirs(current_id, dir, dir)
if not dir and not new_id then
amap.dir_from_key = nil
return false
end
Teraz dochodzimy do tego, dlaczego śledzenie drużyny nie działa z kolejką. Odpowiedź jest bardzo prosta: Bo śledzenie drużyny nie korzysta z GMCP (dlatego wtedy cały mechanizm GMCP jest wyłączony). Dlaczego tak jest? Dlatego, że GMCP przychodzi szybciej niż tekst "Podazasz za ...", już o tym pisałem gdzieś. Wiem, że jest ruch, ale nie mam kierunku, jest problem. Stąd takie rozwiązanie.
Stąd też, jeśli podążasz za drużyną i nagle się ruszysz gdziekolwiek (nawet o jedną lokację), to powracając do drużyny chcąc ją śledzić musisz dać '/fo', żeby "przełączyć się" z powrotem na parsowanie bez GMCP (czyli chodzenie za drużyną).
i tak ma być, mapper sobie wyfiltruje i weźmie tylko odpowiedni kierunek, wszystko zadziała. Daj mi konkretne kombinacje/miejsca gdzie mapper się gubi jak szybko chodzisz. Ja właśnie sprawdziłem stojąc na bagnach taką komendę:A nawet czasami jest tak, że kierunek wpada między te wklepane komendy (bo trigger zdąży się szybciej wykonać niż skrypt wyrzuci wszystko z tabeli) i mapper się gubi
Kod: Zaznacz cały
w;stan;w;k wszystkich;e;fuknij;fuknij;e;kto;e
1. Nie, followanie drużyny nie będzie kolejkowane, bo kolejkowanie jest do GMCP (dzięki temu mapper nie gubi się na szybkim bieganiu po tereneach bez GMCP gdzie komunikaty przychodzą po Twoich komendach).Możliwe (nie sprawdzone) rozwiązania:
1. Skoro używasz kolejki, to używaj jej zawsze bo z triggera follow_team kierunek nie wpada do stosu, tylko wpierdziela się gdzieś z boku
2. Sprawdź najpierw czy kierunek, który leży sobie w stosie ma sens (jeszcze nie chciało mi się ogarniać kolejki "amap.queue" ale w momencie wrzucenia czegoś w tą tabelkę możesz sprawdzić czy taki kierunek występuje na danej lokacji. Jak nie ma, to nie wrzucaj ).
2. Nie, nie trzeba tego robić inaczej. Sprawdzanie jest (w funkcji follow). Jak wyobrażasz sobie sprawdzanie tego przed wrzuceniem do kolejki? Musiałbym rozpoznawać wszystkie wyjścia/wejścia specjalne. Załóżmy, że je zbiorę do listy, mam super długą listę. Nagle administracja dodaje nowe teremy z nowymi wyjściami, których nie mam na liście, lista musi być zmodyfikowana. Nie, to nie ma sensu. Znacznie prostszą metodą jest to co robię, czyli wzięcie każdej komendy po kolei i sprawdzenie, czy z aktualnej lokacji jest wyjście (normalne lub specjalne) w kierunku wpisanej komendy. To po prostu działa i działa dość niezawodnie.
Nie przeczę, że chcesz dobrze, ale musisz wiedzieć, że pewne rzeczy nie wynikają z tego, że nie chcę tego uprościć, a z tego, że Mudlet zgłasza event gmcp.room wcześniej niż pojawia się tekst na ekranie.
EDIT: Lekka modyfikacja w związku z postem Gleanevalla i Rafgarta
Ostatnio zmieniony 22 kwie 2016 10:09 przez Adremen, łącznie zmieniany 1 raz.
-
- Posty: 258
- Rejestracja: 13 sie 2011 21:08
Re: Mudlet 2.1 - Mapper + zestaw prostych niezawodnych skryptów
Nie ma opóźnienia w wysyłaniu GMCP - można to sprawdzić w Wiresharku. To klienty po odebraniu przetwarzają je asynchronicznie wzgledem przetwarzania tekstu.