Mudlet 2.1 - Mapper + zestaw prostych niezawodnych skryptów

Forum techniczne Arkadii.
Awatar użytkownika
Eltharis
Posty: 128
Rejestracja: 22 lip 2014 23:39

Re: Mudlet 2.1 - Mapper + zestaw prostych niezawodnych skryptów

Post autor: Eltharis » 02 mar 2017 19:36

Villon pisze:Jak można zrobić bindy reagujące na komunikaty, które są gdzieś w tle?
Jest tak, jak napisał Artak, ale nie zaszkodzi przykład. Powiedzmy, że chcesz, żeby pojawił się komunikat jak spadnie Ci kondycja do zlej. Jeden ze sposobów jak to osiągnąć wygląda tak:

Dodajesz sobie nowy skrypt do Skripts. Tam wpisujesz:

Kod: Zaznacz cały

alrm = alrm {}
alrm.reactivateTime = 30
alrm.active = true
Teraz możesz albo utworzyć trigger (wówczas tworzysz nowy trigger i w patternie jako regex podajesz ^Jestes w zlej kondycji$), albo robisz to po gmcp. Spróbujemy tą drugą opcję.

Dodajesz kolejny skrypt (albo piszesz w tym samym - bez znaczenia). W Add User Defined Handler dodajesz gmcp.char.state i klikasz ikonke plusa. Teraz dodajesz funkcję o takiej samej nazwie jak nazwa skryptu. Załóżmy, że skrypt nazwaliśmy AlarmScript.

Kod: Zaznacz cały

function AlarmScript()
  local currentHp = tonumber(gmcp.char.state.hp)

  if (currentHp == 2) and (alrm.active == true) then
    alrm.active = false
    cecho("<yellow>Uzyj formy")
    tempTimer(alrm.reactivateTime, [[alrm.active = true]])
  end
end
Teraz za każdym razem jak przyjdzie komunikat gmcp o zmianie stanu postaci, sprawdzisz kondycję i jeśli będzie równa 3 (zdaje się, że to właśnie w zlej), to wyświetli się napis Uzyj formy (na żółto) i komunikat zostanie zablokowany na 30 sekund.

Nie sprawdzałem, ale chyba powinno działać. W przeciwnym razie napisz.

W temacie chciałbym też zgłosić błąd w mapie. W Novigradzie nie da się wejść do Cechu, bo na lokacji ze Złotą Księgą gdy idziemy na wschód, to schodzimy na doł, do karczmy.

Może taka opcja istnieje i jej nie zauważyłem, ale jeśli nie, to przydałaby się możliwość wysyłania kierunków na czysto, bez konwertowania właśnie 'wschod' na 'dol' etc.. W niektórzych sytuacjach - zwłaszcza, gdy mapper się pogubi, byłoby to pomocne.

Astor
Posty: 33
Rejestracja: 05 sty 2015 22:57

Re: Mudlet 2.1 - Mapper + zestaw prostych niezawodnych skryptów

Post autor: Astor » 03 mar 2017 20:34

/ziola_buduj zacina się, jesli w woreczku jest takie ziolo: grube wygiete klacze.

Awatar użytkownika
Adremen
Posty: 242
Rejestracja: 31 gru 2009 11:13

Re: Mudlet 2.1 - Mapper + zestaw prostych niezawodnych skryptów

Post autor: Adremen » 04 mar 2017 05:29

UWAGA: Jeśli korzystało się z globalnego licznika postępów i ma się tam swoje zapiski, należy je zapamiętać (zsumowaną liczbę), gdyż w tej wersji nadchodzące zmiany spowodują, że licznik pokaże 0.

Poza tym w pliku imie.txt pojawiły się kluczowe zmiany, które muszą zostać dodane w celu poprawnego działania rzeczy, które zostały dodane, dlatego też trzeba go przekopiować na nowo i ustawić lub wychwycić które rzeczy zostały dodane (najważniejsze zmiany są na samym dole pliku).


Wersja 2.20b

Nowy licznik postępów

Od teraz postępy globalne będą się zapisywały same. W dodatku został poprawiony system zapisy postępów w /postepy. Od teraz restart mudleta czy zerwanie/połączenie na nowo nie spowoduje duplikowania się poziomów w /postepy.

Oczywiście aby korzystać z /postepy2 trzeba ustawić w pliku konfiguracyjnym imię postaci (imie.txt). Z racji, że dodają się teraz automatycznie, a czasami chcemy to wyłączyć (np na czas wbijania formy), można chwilowo wyłączyć dodawanie do globalnego licznika. Cała pomoc w /skrypty:

Kod: Zaznacz cały

| /postepy2 - globalny licznik postepow.                                         |
| /postepy2+ - dodaje jeden postep do globalnego licznika.                       |
| /postepy2+ [ile] - dodaje [ile] postepow do globalnego licznika.               |
| np /postepy2+ 4 doda 4 postepy. Musi to byc liczba mniejsza badz rowna 15!     |
| /postepy2- [id] - usuwa wpis z globalnego licznika o tym [id]. id mozna        |
| znalezc jako pierwsza kolumna od lewej w /postepy2.                            |
| /postepy2_reset - resetuje globalny licznik postepow.                          |
| /postepy2_off - wylacza dodawanie do globalnego licznika postepow.             |
| /postepy2_on - wlacza dodawanie do globalnego licznika postepow.               |
Poprawki w ukrywaniu/przemykaniu

Podziękowania dla @ftpd, który dostarczył większość bugów i testował.
Przemykanie/ukrywanie, licznik ukrywania (zatrzymujący się na 15 sekundach) i inne ruchy dotyczące ukrywania zostały usprawnione.

Dodatkowe aliasy do mapy

Aliasy typu "w", "e" itp mają to do siebie, że sprawdzają sporo rzeczy (transformacje do przejść specjalnych, /kbind itp). Dlatego też dodałem dwie wersje bindów:

"w!", "e!" - zignoruje sprawdzenie /kbindow które mogą być na lokacji.
"w!!", "e!!" - zignoruje wszystkie sprawdzenia systemów mappera, po prostu wyśle dany kierunek do Arkadii.

Poprawki, mniejsze dodatki i ulepszenia

Podziękowania do wszystkich, którzy dodają zgłoszenia na githubie (https://github.com/tjurczyk/arkadia-skrypty/issues), dzięki temu kiedy siadam do pracy nad skryptami mogę sprawnie poprawić sporo błędów i dodać ulepszenia. Od 2.18 (ostatnio na froum) do wersji, którą opisuję teraz zostało dodanych duża liczba poprawek i mniejszych ulepszeń.


Aktualizacja: '/aktualizuj_skrypty'
Tutaj jest pełna paczka: Skrypty 2.20b

Awatar użytkownika
Adremen
Posty: 242
Rejestracja: 31 gru 2009 11:13

Re: Mudlet 2.1 - Mapper + zestaw prostych niezawodnych skryptów

Post autor: Adremen » 14 mar 2017 18:53

Sporo drobnych poprawek, można wykonać aktualizację poprzez `/aktualizuj_skrypty`

Awatar użytkownika
Enefghar
Posty: 202
Rejestracja: 12 lut 2009 21:42
Lokalizacja: Actiontown

Re: Mudlet 2.1 - Mapper + zestaw prostych niezawodnych skryptów

Post autor: Enefghar » 22 mar 2017 21:48

Po pierwsze - naprawde dobra robota Adremen. Chyba pierwszy klient/konfiguracja po GMudzie i Mushcliento do ktorej zdaje sie byc przekonany (przyszlosc pokaze czy nie wroce do Musha, jednak sentyment).

A teraz pytanie. Mam powiedzmy lokacje ID 1 i lokacje ID 2 (przyklad), ktora chce miec ustawiona gora/dol, ale ze specjalna komenda "schody" (na obu lokacjach). Udalo mi sie to wykombinowac z 1 do 2 uzywajac

Kod: Zaznacz cały

/spe_lok u schody
i teraz mam problem z ustawieniem powrotu, bo

Kod: Zaznacz cały

/spe_lok d schody
tworzy kolejna lokacje, a

Kod: Zaznacz cały

/spe [numer lokacji] [przejscie]
zdaje sie nie przyjmuje argumentu "[kierunek]", ktory nie ukrywam jest moim celem.

Da sie jakos temu zaradzic?

Przy takzwanej okazji - jest jakas mozliwosc usuniecia /kbinda z lokacji poza usunieciem jej i stworzeniem na nowo?
Polelfka namysla sie nad czyms, cichutko szumiac.

Awatar użytkownika
Eltharis
Posty: 128
Rejestracja: 22 lip 2014 23:39

Re: Mudlet 2.1 - Mapper + zestaw prostych niezawodnych skryptów

Post autor: Eltharis » 23 mar 2017 07:57

Jeśli rozważasz uaktualnienie paczki skryptów do Mudleta 3.0, Adremenie, to podobno jutro wydana zostanie stabilna wersja, o ile tylko nie znajdą żadnych poważnych błędów w aktualnym preview.

Awatar użytkownika
Adremen
Posty: 242
Rejestracja: 31 gru 2009 11:13

Re: Mudlet 2.1 - Mapper + zestaw prostych niezawodnych skryptów

Post autor: Adremen » 23 mar 2017 13:42

Enefghar pisze:Po pierwsze - naprawde dobra robota Adremen. Chyba pierwszy klient/konfiguracja po GMudzie i Mushcliento do ktorej zdaje sie byc przekonany (przyszlosc pokaze czy nie wroce do Musha, jednak sentyment).

A teraz pytanie. Mam powiedzmy lokacje ID 1 i lokacje ID 2 (przyklad), ktora chce miec ustawiona gora/dol, ale ze specjalna komenda "schody" (na obu lokacjach). Udalo mi sie to wykombinowac z 1 do 2 uzywajac

Kod: Zaznacz cały

/spe_lok u schody
i teraz mam problem z ustawieniem powrotu, bo

Kod: Zaznacz cały

/spe_lok d schody
tworzy kolejna lokacje, a

Kod: Zaznacz cały

/spe [numer lokacji] [przejscie]
zdaje sie nie przyjmuje argumentu "[kierunek]", ktory nie ukrywam jest moim celem.

Da sie jakos temu zaradzic?

Przy takzwanej okazji - jest jakas mozliwosc usuniecia /kbinda z lokacji poza usunieciem jej i stworzeniem na nowo?
Najprościej jest tak. Ustawiasz się na lokacji z ID 1 i tworzysz lokację z ID 2 na dole:

Kod: Zaznacz cały

/spe_lok d schody
następnie ustawiasz się na lokacji z ID 2 i robisz:

Kod: Zaznacz cały

/spe 1 schody
Eltharis pisze: Jeśli rozważasz uaktualnienie paczki skryptów do Mudleta 3.0, Adremenie, to podobno jutro wydana zostanie stabilna wersja, o ile tylko nie znajdą żadnych poważnych błędów w aktualnym preview.
Jeśli nie znajdą tam żadnych bugów i wypuszczą jutro stabilne 3.0.0, to przygotuję pod nią paczkę.

Orrgar

Re: Mudlet 2.1 - Mapper + zestaw prostych niezawodnych skryptów

Post autor: Orrgar » 23 mar 2017 14:35

Ciekawe czy logowanie do htmlu naprawili

Awatar użytkownika
Adremen
Posty: 242
Rejestracja: 31 gru 2009 11:13

Re: Mudlet 2.1 - Mapper + zestaw prostych niezawodnych skryptów

Post autor: Adremen » 23 mar 2017 14:48

Orrgar pisze:Ciekawe czy logowanie do htmlu naprawili
Tak, jest to naprawione. Loguje też wszystkie komendy wysyłane do MUDa.
Przetestowałem i większość błędów, z którymi się stykałem jest naprawiona. Jeśli do jutra nie wykryte zostaną żadne duże problemy to przerzucę skrypty na 3.0 i rozwijane dalej będą tylko na 3.0.

Awatar użytkownika
Denea
Posty: 242
Rejestracja: 16 mar 2010 01:30
Lokalizacja: Legionowo

Re: Mudlet 2.1 - Mapper + zestaw prostych niezawodnych skryptów

Post autor: Denea » 29 mar 2017 16:26

Bardzo fajne skrypty :) No i mapper!
Zaczne chyba korzystac! :D

Ale mam jedno ale, a wlasciwie dwa :P
Nie wiem, czy to w jednym miejscu tylko (w liczeniu_butli tez zauwazylem w paternnie), ale skrypty nie sa dopasowane do zenskich postaci. Na przyklad w herbs:build_db:

Kod: Zaznacz cały

Doliczyles sie ([a-z]+) sztuk(|i)\.)$"
Druga rzecz: skrypt sie wysypuje, gdy mam ususzone ziola w woreczkach.

Ale ogolnie bardzo fajne, tylko dostosuje herbs do siebie i bede smigal :)

A tak w ogole, jak moge dodac pozycje do tablicy (bo to chyba talica?) herbs["herbs_long_to_short"], tak by nie grzebac w skrypty_master?
I przy okazji tworzac jakies aliasy poza skrypty_master moge sie odwolywac do funkcji / zmiennych czy elementow jakiejs tablicy? ze skrypty_master? (Sorry glupi jestem i nie wiem)

Jeszcze jedno glupie pytanie: Konieczne jest korzystanie z formy Zabil(es|as)? Nie wystarczyloby Zabil.s?
Ble... Ble? Ble!

ODPOWIEDZ