Mudlet 2.1 - Mapper + zestaw prostych niezawodnych skryptów

Forum techniczne Arkadii.
Esze
Posty: 20
Rejestracja: 29 kwie 2015 23:57

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

Post autor: Esze » 30 sty 2016 12:38

Posiedziałem kilka dni i mam kilka spostrzeżeń, z niecierpliwością czekam na update.
Masz rację, robi się wtedy spore zamieszanie, zająłem się tym w następnej wersji i będzie to limitowane (1 komunikat na pewien czas, po tym czasie jeśli nie wsparłeś to komunikat pojawi się ponownie).
Co do ALT+1 to działa on tylko wtedy gdy pojawia się "LEJESZ INNEGO". Kiedy pojawia się komunikat i naciskasz ALT+1 to powinno wesprzeć i akcja wsparcia pod ALT+1 się dezaktywuje (nie zadziała ponownie). Zrobiłem to w przypadku jakbym chciał też używać ALT+1 gdzieś indziej.

czy ALT+1 nie działa Ci po pokazaniu "LEJESZ INNEGO"? Jeśli tak to jest to błąd. Jeśli tak jest to najłatwiej sprawdzić czy działa ALT+1 (np w polu Scripts tego binda dodać jakieś echo
Mam wrażenie, że skrypt sie gubił bo nie mógł zrozumieć kto jest prowadzącym. Tak jak wspieranie z /za 3 itd. działa świetnie tak tutaj nie wie kim jest ob_213231. Rozwiązałem ten problem zamieniając w kodzie sekwencje na wesprzyj; zabij cel ataku i teraz działa świetnie. ALT + 1 powinno być kombinacją która działa niezależnie od tego czy pojawia się komenda "LEJESZ INNEGO" czy nie.
Dodam opcję rozciągnięcia. Początkowo okno to było umieszczone w prawym górnym rogu w celu nie blokowania całego paska góry.
Dodanie atakowanej osoby jest możliwe i dodam to w następnej wersji. Choć zastanawiam się, czy dawać pełny opis atakowanej postaci. Np:

Kod: Zaznacz cały

Postac XXX -> tegi wysoki mezczyzna
jest dość długie, choć tak jak wspominasz gdy pasek jest rozciągnięty na cała długość to nie jest to problemem. Jakoś to rozwiążę.
Udalo mi sie znalezc w kodzie i samemu powiekszyc tabelke. Wydaje mi sie, ze ilosc #hp powinna zostac zmniejszona, dzieki temu zaoszczedzimy nieco miejsca. Z ta tabelka powinienes wzrowac sie na k wszystkich i powinno to wygladac mniej wiecej tak:


[######] JA [A MNIE] maly ciemnoskory kobold | niewysoki energiczny goblin | brudny brzydki kobold.
[- -####] teammate 1 [A =>] wysoki przecietny goblin | duzy wstretny pukacz
[-----## ] teammate 2 [A =>] brudny smiercacy goblin
[######] Maly ciemnoskory kobold [A =>] TY | teammate 1
[######] Niewysoki energiczny goblin
[- -####] Brudny brzydki kobold
[-----## ] Wysoki przecietny goblin [A =>] teammate 2
[######] Duzy wstretny pukacz
[-----## ] Brudny smierdzacy goblin

Btw. zaznaczanie wroga którego się bije jest bardzo pomocne :)
Jesteś pewien, że mapa się nie zapisała? U mnie działa to tak, że po wyjściu z Mudleta, klient zapisuje aktualny stan skryptów (w folderze "current") oraz aktualny stan mapy (folder "map"). W folderze "map" powinieneś mieć pliki typu:

Kod: Zaznacz cały

27-01-2016#15-59-35map.dat
czyli mix daty, godziny z dodatkiem map.dat. Ja jeszcze ani razu nie zapisywałem ani nie ładowałem mapy w Mudlecie. Jeśli chcę wrócić do poprzedniego stanu to poprostu usuwam ileś ostatnich plików *.dat. Sprawdź ten folder, mapa powinna się tam zapisywać z każdym wyłączeniem Mudleta.
Nawet nie wiedziałem, że jest ten folder current :) Mapa coprawda dalej "sama" się nie odpala, ale to co zrobiłem to znalazłem i mogę kontynuować badanie obszarów.
Myślałem już nad tym wcześniej i początkowo taki miałem zamiar, także na pewno się pojawi. Co do brakującego miejsca w tabelce to problem załatwia chyba wyłącznie szeroki na całą długość pasek (który będzie dorobiony) i poszerzenie tabelkowego miejsca.


Nowa wersja niedługo wraz z działającymi klikalnymi zasłonami (w sumie to klikalne jest zasłanianie członka drużyny po naciśnięciu na imieniu, klikalne jest atakowanie konkretnego wroga po naciśnięciu na jego ID, klikalne jest zasłanianie przed konkretnym wrogiem (po naciśnięciu informacji kogo dany wróg bije: '-> [1]'). Poprawiłem też trochę błędów, które gdzieś tam znalazłem.
Mam czarne tło w arce, tło w tabelce powinno być delikatni w innym kolorze np. szarawe. Dodatkowo zauważyłem, że literki też mogłby być nieco mniejsze. Klikalne zasłony zapowiadają się świetnie.


EDIT: No i nie moge sobie poradzić z wycinaniem... liczy ciala ale nie bierze sie do roboty :P

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

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

Post autor: Adremen » 30 sty 2016 18:19

Esze pisze:Mam wrażenie, że skrypt sie gubił bo nie mógł zrozumieć kto jest prowadzącym. Tak jak wspieranie z /za 3 itd. działa świetnie tak tutaj nie wie kim jest ob_213231. Rozwiązałem ten problem zamieniając w kodzie sekwencje na wesprzyj; zabij cel ataku i teraz działa świetnie. ALT + 1 powinno być kombinacją która działa niezależnie od tego czy pojawia się komenda "LEJESZ INNEGO" czy nie.
Hmm, ciekawe. Generalnie to dodałem, że komunikat pojawi się tylko jeśli prowadzący kogoś leje, bo zdarzały się przypadki, kiedy moja postać po zabiciu automatycznie biła kogoś innego, a attack_num w gmcp obiektu prowadzącego miało false, wtedy też się pojawiał komunikat.
Chyba zrobię to tak:

- Alt + 1 działa zawsze jako komenda wesprzyj
- naciśnięcie Alt + 1 sprawdza też, czy jest osoba, którą należy wesprzeć (tą osobą może być tylko kapitan drużyny). Tę informację zbieram po nadejściu GMCP w sposób następujący:

Kod: Zaznacz cały

if ateam.objs[v]["team_leader"] == true and ateam.objs[v]["attack_num"] ~= false and ateam.objs[v]["attack_num"] ~= ateam.objs[ateam.my_id]["attack_num"] then
      -- if you see the team_leader and it is attacking different than me, msg
      ateam.to_support = v
      cecho ("<red>***************************************\n")
      cecho ("<red>*       Lejesz innego! ALT+1          *\n")
      cecho ("<red>***************************************\n")
    end
czyli jeśli aktualnie obrabiana postać to prowadzący (team_leader jest true), jeśli atakuje cokolwiek (wtedy attack_num jest != false) i kiedy atakuje inny obiekt niż obiekt atakowany przeze mnie (ostatnia część ifa). Wtedy ustawię ateam.to_support jako obiekt prowadzącego i on zostanie dodatkowo wsparty po naciśnięciu Alt + 1. Z tego co widzę w "?wesprzyj" to samo wesprzyj bez argumentu działa jako wsparcie losowego członka drużyny.

Co do tego, że nie rozpoznawało u Ciebie ob_[numer] to można to bardzo łatwo sprawdzić. Wbij w mudlecie:

Kod: Zaznacz cały

lua ateam.objs[<tutaj_numer>]
i pokaże jaki jest aktualny stan tego id, który widzą skrypty. Np u mnie:

Kod: Zaznacz cały

lua ateam.objs[85302]
{
  team_leader = false,
  defense_target = false,
  attack_target = false,
  desc = "Drax",
  attack_num = false,
  team = false,
  enemy = false,
  living = true,
  hp = 6
}
jeśli widziałeś wspieranie jakiegoś "ob_...." to możesz zobaczyć indeks tego numeru w ateam.objs i jaki ma "desc", czyli imię.
Generalnie mniej więcej wiem na czym mogło się gubić, nie powinno się to już dziać, bo tak jak wspominałem poprawiłem ten mechanizm, ale będę niezmiernie wdzięczny jeśli mi dasz znać, że po update'cie znowu jest jakiś problem :)

Co do kondycji to wygląda sensownie. Na początku miałem jeden # na jeden stan, ale od zawsze na Ingwarowskich miałem dwie i siłą woli sam ustawiłem dwie :)
Co do ustawiania tych [A=>] świetny pomysł, jedynie to nie będzie to symetryczne (bo imiona są znacznie krótsze niż longi NPCów).

Sprawdzę też wycinanie, dawno tego nie używałem. Paczkę wrzucę chyba jutro.

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

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

Post autor: Adremen » 01 lut 2016 05:51

Skrypty, wersja 1.2

Co w tej wersji?

1. Dodane klikalne w oknie. Klikalne są jak na razie 3 elementy:
a) kliknięcie na nazwie kogoś z drużyny spowoduje wykonanie "zaslon <osoba>"
b) kliknięcie na którymkolwiek id przeciwnika spowoduj wykonanie "/zab <przeciwnik_z_tym_id>". UWAGA: działa tylko na przeciwnikach, czyli tam gdzie są przydzielone id (wrogowie nasi/drużyny).
c) kliknięcie w linii wroga na LITERZE, która oznacza kogo bije danych przeciwnik spowoduje zasłonięcie tej osoby z drużyny przed tym konkretnym przeciwnikiem.

Jednocześnie następuje zmiana numerowania członków drużyny - od tej wersji są to A, B, C... JA zostaje oznaczone jako @. W związku z tym bind /za <id> bierze teraz symbol kogoś z drużyny (np '/za b' lub '/za B', działają obie wersje)

W najbliższych dniach kolejna wersja z rozbudową tego okna: dodanie tego, o czym pisał Esze.

2. Zmiana ALT+1 i mechanizmu pokazującego komunikat "LEJESZ INNEGO"
Ulepszony mechanizm wykrywania kiedy bije się innego (choć wciąż nie jest moim docelowym)
Od tej wersji ALT+1 działa zawsze jako "wesprzyj" (można to oczywiście zmienić w źródle skryptu jeśli ktoś chce mieć pod tym coś innego). W dodatku, gdy pojawi się "LEJESZ INNEGO" to naciśnięcie ALT+1 wykona też "wesprzyj <prowadzący drużyny>" - dlatego, że samo "wesprzyj" wspiera losowego członka drużyny, niekoniecznie prowadzącego (przynajmniej tak mówi "?wesprzyj").
Komunikat "LEJESZ INNEGO" pojawi się teraz maksymalnie jeden raz na 3 sekundy aby nie spamować okna.

W kolejne wersji dodam najprawdopodobniej obsługę ALT+1 do atakowania celu ataku.

3. Drobne zmiany
a) kosmetyka okna (jest mniej "czarne" niż ekran) i minimalne obramowane
b) naprawa "/wycinaj" (lub "/wyc")
c) inne błędy

Instalacja
Standardowo: odinstalować aktualną wersję, restart mudleta, zainstalować nową wersję.

Z racji tego, że największa część zmian dotyczyła dość kluczowej części skryptów to będę wdzięczny za wszelkie informacje o błędach/problemach i jak zawsze ulepszeniach. Wtedy będę w stanie od razu wrzucić poprawkę.
Załączniki
skrypty12.zip
(15.03 KiB) Pobrany 79 razy

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 » 01 lut 2016 15:57

Dzieki, wyglada to wszystko rewelacyjnie.

Wlasnie zainstalowalem skrypty dla wersji 3.0 i 2.1 (zeby przetestowac obie), ale niestety mam problem z oznaczaniem lokacji literami w mapperze (niezaleznie od wersji apki). Dodawanie etykiet dziala, z tego co sprawdzilem na szybko, natomiast po kliknieciu na "letter" nic sie nie dzieje.

Na jakiej wersji Mudlet najlepiej obecnie testowac skrypty i mapper? Mam nadzieje, ze 3.0, bo to wersja wspierajaca Retine.

Edit: OK, juz wiem w czym problem - literka byla niewidoczna przy domyslnym zoomie + w odroznieniu od labela trzeba kliknac na lokacje (logiczne).
Edit: Sigh, kompletnie nie ogarniam mapowania lokacji poza miastami i traktami, takich jak np. las ze snotlingami przy Nuln - mapper sie gubi po zejsciu z traktu. Jesli kazda taka lokacje trzeba dodawac jako specjalna, podawac wspolrzedne i wyjscia/linkowanie manualnie, to sie poddaje.

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

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

Post autor: Adremen » 01 lut 2016 22:27

Vicentil pisze:Edit: Sigh, kompletnie nie ogarniam mapowania lokacji poza miastami i traktami, takich jak np. las ze snotlingami przy Nuln - mapper sie gubi po zejsciu z traktu. Jesli kazda taka lokacje trzeba dodawac jako specjalna, podawac wspolrzedne i wyjscia/linkowanie manualnie, to sie poddaje.
Przeczytaj najpierw posty, gdzie opisywałem cały mapper (przede wszystkim tam gdzie opisywałem rysowanie manualne ('/rysuj manual'), później przejrzyj całe '/mapper' i dopiero bierz się za mapowanie bardziej skomplikowanych terenów.
Odpowiadając na Twoje pytanie: mapując trakty/lasy itp nie trzeba podawać wszystkiego manualnie, wystarczy wiedzieć jak działa mapper ;)

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 » 02 lut 2016 01:00

Przeczytam wszystko na spokojnie i sprawdze raz jeszcze. Na ten moment skorzystalem z dolaczonej mapy i gra sie swietnie.

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 » 02 lut 2016 20:55

Pytanie - czy ktos ma rowniez problemy w trybie fullscreen na maku podczas pisania listow? Okno zmniejsza mi sie do rozmiaru 1/4 (reszta to czern), tekst sie zbyt mocno zawija i pisanie jest prawie niemozliwe. Przy nastepnej okazji zlapie zrzut ekranu.

Wulgor
Posty: 57
Rejestracja: 21 lip 2015 22:11

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

Post autor: Wulgor » 02 lut 2016 21:00

A ja trochę z innej beczki, przy probie odinstalowania skryptow w wersji 1.1, po restarcie klienta (v 2.1) one nadal są, natomiast nie ma instalowanych skryptów w wersji 1.2. Co robię nie tak? ☺

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

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

Post autor: Adremen » 02 lut 2016 21:45

Vicentil pisze:Pytanie - czy ktos ma rowniez problemy w trybie fullscreen na maku podczas pisania listow? Okno zmniejsza mi sie do rozmiaru 1/4 (reszta to czern), tekst sie zbyt mocno zawija i pisanie jest prawie niemozliwe. Przy nastepnej okazji zlapie zrzut ekranu.
Który Mudlet? U mnie na 2.1 nic takiego się nie dzieje. Tak w ogóle to w poprzednim poście nie odpowiedziałem: skrypty są pisane pod 2.1, choć niewykluczone, że mogą działać na 3.0.0. Jak wypuszczą stabilny 3.0 to wtedy je dostosuję do tej wersji, do tej pory nie gwarantuję ich poprawnego działania na 3.0. Odnośnie pisania listów to ja tam nic w tym kierunku w skryptach nie dodawałem. Spróbuj sprawdzić czy na nowym profilu też będziesz miał ten problem, może coś zmieniałeś?

Niestety sporo rzeczy wciąż pozostaje nierozwiązywalnych w mudlecie. Klikalne zasłony chciałem zrobić tak, aby kliknięcie na członka drużyny pokazowało mały "popup" z akcją do wyboru (zasłonięcie, oznaczenie jako cel obrony itp), ale okazuje się, że funkcja echoPopup(), która powinna działać na innych oknach niż główne nie działa.
Wulgor pisze:A ja trochę z innej beczki, przy probie odinstalowania skryptow w wersji 1.1, po restarcie klienta (v 2.1) one nadal są, natomiast nie ma instalowanych skryptów w wersji 1.2. Co robię nie tak? ☺
Czy po usunięciu 1.1 ta paczka jest wciąż widoczna w menadżerze paczek?
Dwa w miarę proste rozwiązania są takie (przy czym możesz preferować jednak to pierwsze):

1. Wchodzisz w Scripts i następnie w zakładkach Triggers, Aliases, Scripts i Keys usuwasz katalog scripts. Dzięki temu usuniesz wszystkie części paczki. Następnie po prostu instalujesz paczkę w menadżerze.
2. Jeśli nie masz tam niczego poza tą paczką to po prostu nowy profil.

Wulgor
Posty: 57
Rejestracja: 21 lip 2015 22:11

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

Post autor: Wulgor » 03 lut 2016 09:26

Adremen pisze:
Vicentil pisze:
Wulgor pisze:A ja trochę z innej beczki, przy probie odinstalowania skryptow w wersji 1.1, po restarcie klienta (v 2.1) one nadal są, natomiast nie ma instalowanych skryptów w wersji 1.2. Co robię nie tak? ☺
Czy po usunięciu 1.1 ta paczka jest wciąż widoczna w menadżerze paczek?
Dwa w miarę proste rozwiązania są takie (przy czym możesz preferować jednak to pierwsze):

1. Wchodzisz w Scripts i następnie w zakładkach Triggers, Aliases, Scripts i Keys usuwasz katalog scripts. Dzięki temu usuniesz wszystkie części paczki. Następnie po prostu instalujesz paczkę w menadżerze.
2. Jeśli nie masz tam niczego poza tą paczką to po prostu nowy profil.
Dzieki, pomoglo :)

ODPOWIEDZ