Mudlet 2.1 - Mapper + zestaw prostych niezawodnych skryptów

Forum techniczne Arkadii.
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 »

Zmiany, zmiany, zmiany...

Arkadia skrypty, wersja 1.3

Co w tej wersji?

Kilka dość kluczowych zmian.

1. Zmiana okna kondycyjnego i zmiana algorytmu do wspierania/atakowania celu ataku.
- Okno od teraz wygląda mniej więcej tak:

Kod: Zaznacz cały

[ @][#######] JA  <- [0,3]
[ A][#######] teammate1  <- [1,2]
[ B][#######] teammate2
[ C][#######] teammate3
[ 0][#######] drazliwy jasnooki mezczyzna  -> [@,A,C]
[ 1][#######] gorliwy krotkowlosy mezczyzna  -> [B]
[ 2][#######] arogancki bystrooki mezczyzna
[ 3][#######] arogancki gladkolicy mezczyzna
Kondycje zmienione na jeden # (oszczednosc miejsca), zasłony/atakujący przeniesione na koniec. Przy JA/członkach drużyny wciąż wylistowani ludzie, którzy atakują daną postać, przy wrogach wylistowani członkowie drużyni bijący poszczególnego wroga.
Prawdopodobnie w następnej wersji dojdzie alternatywna opcja do ustawienia okna na całą długość + pełnych opisów zamiast skrótów.

- Jednocześnie zmieniają się odrobinę klikalne, a dokładniej jedno:
a) klik na imieniu kogoś z drużyny - <zaslon tego członka>
b) klik na ID wroga - <zaatakuj tego wroga> (wciąż działa tylko na wrogach drużyny)
c) klik na shortcie/imieniu wroga - <zaslon czlonka druzyny przed tym przeciwnikiem> (czyli to jest zmieniony klikalny bind)

- Zmiana algorytmu wsparcia
Jest teraz rozbudowany. Jeśli prowadzący drużyny zaatakuje i wskaże kogoś jako cel ataku to dostaniemy:

Kod: Zaznacz cały

    cecho ("<red>***************************************\n")
    cecho ("<red>*    ZAATAKUJ WSKAZANY CEL: ALT+1     *\n")
    cecho ("<red>***************************************\n")
czyli należy nacisnąć ALT+1 aby wykonać "zabij cel ataku". Jeśli prowadzący nie wskazuje, ale bije innego to wciąż pojawi się:

Kod: Zaznacz cały

    cecho ("<red>***************************************\n")
    cecho ("<red>*       Lejesz innego! ALT+W          *\n")
    cecho ("<red>***************************************\n")
czyli należy nacisnąć ALT+W aby wesprzeć. Te bindy działają zawsze, komunikaty są pokazywane nie częściej niż 3 sekundy. Priorytetem jestem cel ataku - jeśli prowadzący wskazuje i nie bijemy celu ataku to nie częściej niż 3 sekundy będzie pojawiało się przypomnienie, tak długo aż będziemy bili przeciwnika innego niż aktualny cel ataku. Mniejszy priorytet ma sprawdzanie czy prowadzący bije innego niż my (czyli prowadzący nie wskazuje przeciwników, ale skrypt z GMCP "attack_num" wciąż widzi, że prowadzący bije innego przeciwnika niż my).
Komunikat pokaże się tylko jeden (czyli jeśli pokaże się o celu ataku to już o LEJESZ INNEGO nie).

2. Dodanie opcji do dolnego paska
Dodałem opcje przeciążenia, paniki i postępów, można je sobie dodać do paska na dole. Lista wszystkich pasków i pomoc: '/ui'.

3. Liczniki do postępów i zabitych.
- '/postepy' to licznik do postępów. Po wykonaniu '/postepy' pokaże tabelkę z aktualnym czasem oraz godziną kiedy wbiliśmy postępy. W czasie kiedy wskoczą nam postępy (działa po GMCP bo przychodzi komunikat) pokaże komunikat typu:

Kod: Zaznacz cały

[07/02 14:00:00] Wlasnie wbiles postepy: bardz male
- '/zabici' to licznik zabitych (tylko dla naszej postaci = tylko dla "^Zabiles ..."). '/zabici_reset' resetuje licznik. '/zabici' pokaże tabelkę z poszczególnymi wrogami i łączną sumą wszystkich. W przyszłości planowany licznik uwzględniający drużynę.

4. Ładowanie skryptów walki
Skrypty walki ładują się teraz po dłuższym czasie od zalogowaniu (~15 sekund), bo dodałem sprawdzanie czy GMCP jest włączone.

Instalacja
Standardowa - usunąć paczkę, restart mudleta i powinno wszystko działać. Radzę przejrzeć całe '/skrypty'

Arkadia mapper, wersja 1.2

Co w tej wersji?

1. Dodanie usuwania stubów
Stuby to te kikuty, które czasami można zobaczyć. Oznaczają, że jest wyjście w tym kierunku. Czasami jest tak, że chcemy przerysować linie łączące dwie lokacje. Załóżmy, że mamy:

Kod: Zaznacz cały

o
  \
   o
i przerysowujemy sobie linię w inych kierunkach.
Problemem jest, że wtedy przy górnej i dolnej lokacji zobaczymy te kikuty na se i nw tak jak były oryginalnie (pomimo posiadania nowych kresek, które wyrysowaliśmy). Dzieje się tak dlatego, bo Mudlet nie usuwa stubów w momencie, kiedy pokoje są łączone, dlatego dodałem komendę:

Kod: Zaznacz cały

/usun_stuby
która powoduje, że na aktualnej lokacji zostaną usunięte wszystkie stuby i nie będą już widoczne przy lokacji.

2. Zmiana otwierania bram.
Od teraz gdy idziemy gdzieś manualnie i natrafimy bramę to pokaże się komunikat, że:

Kod: Zaznacz cały

amap:print_log("**** OTWORZ UZYWAJAC ALT+2 ****")
trzeba wtedy nacisnąć ALT+2 i skrypt zawoła "zastukaj we wrota" i można kontynuować drogę. Czyli trigger widząc, że jest brama po prostu pokaże komunikat o użyciu ALT+2.

Instalacja
Standardowa - usunąć paczkę, restart mudleta i powinno wszystko działać. Radzę przejrzeć całe '/mapper'.

I jak zwykle będę wdzięczny za informacje o jakichkolwiek błędach/problemach/uwagach.
Załączniki
scripts13.zip
(17.4 KiB) Pobrany 144 razy
mapper12.zip
(11.01 KiB) Pobrany 162 razy
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 »

Arkadia skrypty, wersja 1.4

Co w tej wersji?

1. Licznik drużynowy
Ten sam licznik co w poprzedniej wersji, ale teraz pokaże też ilość zabitych ludzi w drużynie. Dla każdego (włącznie z JA) pokaże zabitych i sumę. Pokaże też sumę drużynową.

2. Dodanie bindów do zbieranie
Wołać '/zbieranie':

Kod: Zaznacz cały

/zbieranie
(skrypty): Wspierane opcje:
1 - monety
2 - kamienie
3 - monety i kamienie
0 - nic
(skrypty): Aktualne ustawienie: monety i kamienie
(skrypty): Domyslne ustawienie przy starcie: monety i kamienie
(skrypty): Ustaw poprzez zawolanie '/zbieranie [numer opcji]
W przypadku jeśli zabije się kogoś to klient wydrukuje drobne przypomnienie o zbieraniu (bindem ALT+3 lub aliasem '/zb').
'/zb' działa tylko na ciała, które postać zabiła. Jest też '/zb!', które weźmie zbierane rzeczy z ciała (niezależnie kto zabił).

Dodałem pomoc dla wszystkich dostępnych bindów i aliasów. Do przejrzenia jest '/skrypty'.

Instalacja

Standardowa - usunąć paczkę, restart mudleta, zainstalować nową paczkę. Pomoc w '/skrypty'
Załączniki
skrypty14.zip
(19.41 KiB) Pobrany 147 razy
Esze
Posty: 20
Rejestracja: 29 kwie 2015 23:57

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

Post autor: Esze »

Co się zbiorę do komentarza, to wychodzi nowa paczka :) Wersja 13 poprawiła dużo błędów jednak są trzy na które chciałbym zwrócić uwagę - przy tarczach, nie ma w opisie ogólnej skuteczności. Dręczy mnie pewien problem z mapperem, gdyż czasami kiedy za szybko poruszam się między lokacjami to potrafię się niestety zgubić i muszę "odnajdywać" się korzystając z /ustaw. Trzecia, już bardziej kosmetyczna, dotyczy tabelki (która swoją drogą sprawdza się świetnie - ogromne gratulacje). Wrogowie oznaczeni są cyframi 012345 itd. i wydaje mi się, że bardziej przejrzyste byłoby gdyby liczby zaczynały się od jedynki :)
Biorę się za sprawdzanie nowej wersji.
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 »

Esze pisze:Co się zbiorę do komentarza, to wychodzi nowa paczka :) Wersja 13 poprawiła dużo błędów jednak są trzy na które chciałbym zwrócić uwagę - przy tarczach, nie ma w opisie ogólnej skuteczności. Dręczy mnie pewien problem z mapperem, gdyż czasami kiedy za szybko poruszam się między lokacjami to potrafię się niestety zgubić i muszę "odnajdywać" się korzystając z /ustaw. Trzecia, już bardziej kosmetyczna, dotyczy tabelki (która swoją drogą sprawdza się świetnie - ogromne gratulacje). Wrogowie oznaczeni są cyframi 012345 itd. i wydaje mi się, że bardziej przejrzyste byłoby gdyby liczby zaczynały się od jedynki :)
Biorę się za sprawdzanie nowej wersji.
Co do tarczy to się przyjrzę, autorem tego był Farandar i ja w to nie ingerowałem w ogóle, po prostu dostosowałem kod do paczki. W następnej wersji będzie pewnie poprawka.

Z mapperem to jest to niestety największa bolączka właśnie, problem, którego świadom jestem od samego początku i który zabrał chyba już najwięcej mojego czasu przy mapperze. W chodzeniu są dwa scenariusze:

1. Szybkie chodzenie po lokacjach z GMCP (te widoczne na webowym mapperze).
W tym przypadku nie ma problemu - nadchodzi komunikat GMCP, wyłuskuję z niego koordynaty i od razu je ustawiam na mapie. Nie muszę (i nie robię) nawet zaglądać jaki kierunek został wbity z keybinda/aliasa

2. Szybkie chodzenie po lokacjach bez koordynatów w GMCP.
Tutaj zaczynają się problemy. GMCP przychodzi, lecz nie zawiera żadnych danych identyfikujących lokację. W przypadku gdy GMCP tego nie zawiera, skrypt próbuje wyłapać kierunek z keybinda/aliasa i przesuwa w odpowiednią lokację znacznik na mapie. Problem gubienia występuje jeśli pójdziesz tak szybko, że ruchami kierunków "wyprzedzisz" przychodzenie komunikatów GMCP, co jest dość proste do zrobienia.
Teraz dwie kwestie:

i) Dlaczego ruch jest wykonywany po GMCP? Bo jest to łatwiej spiąć - naciśnięcie kierunku nie powoduje przejścia z różnych względów. Czy to nie ma lokacji w tym kierunku z lokacji, na której aktualnie się znajdujesz, czy to "Jestes zmeczony...", czy to brama zagradza, czy to krzaki blokują, cokolwiek. W przypadku, kiedy patrzę na nadejście gmcp.room.info to wiem, że lokacja faktycznie się zmieniła, muszę tylko się dowiedzieć na którą (z kierunków).

ii) Dlaczego nie spiąłem tego początkowo z aliasami/bindami? Właśnie z powodów, które opisałem powyżej. Robi się wtedy multum triggerów, które trzeba śledzić i utrzymywać aby wyłapać, że tak naprawdę nie zmieniło się lokacji pomimo naciśnięcia binda.
Zastosowanie jakiegokolwiek opóźnienia w sprawdzaniu przyjścia GMCP po naciśnięciu binda nie wchodzi w grę - komunikaty przychodzą w tak różnych odstępach czasowych, że nie sposób znaleźć jakikolwiek pattern pozwalający to ogarnąć.

Pomysłów jak to rozwiązać miałem już wiele, żaden nie przyniósł znacznego polepszenia grywalności szybkiego chodzenia po terenach bez koordynatów w GMCP. To tak w celu informacji, że problem znam i czego on dotyczy. Niewykluczone, że pewnego dnia wpadnę na coś, co to rozwiąże. Jeśli masz jakąś propozycję to chętnie wysłucham.

Co do numerowania od 1 to w sumie racja - przecież cyfry na górze zaczynają się od 1. Startowałem od 0 z powodu skrzywienia ;) Następna wersja będzie z 1 jako początkową liczbą.
Farandar
Posty: 70
Rejestracja: 14 cze 2009 17:26

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

Post autor: Farandar »

Przyjrzę się tej tarczy dzisiaj, może czegoś nie wyłapałem przy testowaniu :)
"Pamiętajcie, proszę, że gdzie rządzi nieład, tam upada handel."
Terry Pratchett
Esze
Posty: 20
Rejestracja: 29 kwie 2015 23:57

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

Post autor: Esze »

Farandar,
czasami przy ocenianiu pancerza, zwłaszcza karacen, skrypty sie kaszania i zupelnie nie ma opisow. Przydalaby sie tez wiadomosc czy bron jest jednoreczna czy dwureczna.
Wulgor
Posty: 59
Rejestracja: 21 lip 2015 22:11

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

Post autor: Wulgor »

Zwracam sie z uprzejma prosba, sam nie mam zielonego pojecia o pisaniu skryptow, po pierwsze, czy sa jakies tutoriale, najlepiej video (nie koniecznie po polsku), druga prosba - pamietam za dawnych lat, w mudmaster 2000 Kuling stworzyl zestaw skryptow i tak powstal Arkdisk (swietna sprawa), pamietam ze byl tam licznik ilosci ciosow parowanych/sciaganych na poszczegolne czesci zbroi (tarcza, naramienniki, ogolnie zbroje) w procentach. Czy istnialaby mozliwosc napisania czegos pdobnego do mudleta?

Serdecznie dziekuje za dotychczasowe poswiecenie swojego czasu prywatnego, by stworzyc te skrypty + mapper - sa kozackie :D

Z duza iloscia uszanowanka w kierunku Tworcy/osob dodajacych cos od siebie :)
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 »

Wulgor pisze:Zwracam sie z uprzejma prosba, sam nie mam zielonego pojecia o pisaniu skryptow, po pierwsze, czy sa jakies tutoriale, najlepiej video (nie koniecznie po polsku), druga prosba - pamietam za dawnych lat, w mudmaster 2000 Kuling stworzyl zestaw skryptow i tak powstal Arkdisk (swietna sprawa), pamietam ze byl tam licznik ilosci ciosow parowanych/sciaganych na poszczegolne czesci zbroi (tarcza, naramienniki, ogolnie zbroje) w procentach. Czy istnialaby mozliwosc napisania czegos pdobnego do mudleta?

Serdecznie dziekuje za dotychczasowe poswiecenie swojego czasu prywatnego, by stworzyc te skrypty + mapper - sa kozackie :D

Z duza iloscia uszanowanka w kierunku Tworcy/osob dodajacych cos od siebie :)
To mam na liście, jedyne czego mi na dzień dzisiejszy brakuje to wszystkich opisów parowania itp ;)
Jeśli jesteś w stanie mi wskazać gdzie znajdę ich komplet to dodanie tego to rzecz prosta.
Awatar użytkownika
Vicentil
Posty: 89
Rejestracja: 22 sty 2016 14:55

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

Post autor: Vicentil »

Podziekuje tu przy okazji za wyczerpujaca odpowiedz na moje pytania wyslane pw i zapytam, czy jest jakas mozliwosc dodania paska postepow znanego z klienta webowego? (obok pozostalych, takich jak mana)
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 »

Vicentil pisze:Podziekuje tu przy okazji za wyczerpujaca odpowiedz na moje pytania wyslane pw i zapytam, czy jest jakas mozliwosc dodania paska postepow znanego z klienta webowego? (obok pozostalych, takich jak mana)
Ten pasek już powinieneś mieć jeśli masz wersję skryptów od 1.3 wzwyż (aktualna wersja to 1.4). Wszystkie wspierane paski:

Kod: Zaznacz cały

> /paski
(skrypty): Paski wspierane przez skrypt:
{
  panika = true,
  przeciazenie = true,
  mana = true,
  kondycja = true,
  glod = true,
  pragnienie = true,
  zaslona = true,
  upicie = true,
  postepy = true,
  kac = true,
  zmeczenie = true
}
/skrypty
+-------------------------- Arkadia skrypty, ver 1.4 ----------------------------+
|                                                                                |
ODPOWIEDZ