Hacki zyciowe do Mudleta

Forum techniczne Arkadii.
Migr
Posty: 37
Rejestracja: 30 kwie 2015 18:26

Re: Hacki zyciowe do Mudleta

Post autor: Migr »

Plus musisz wziąć poprawki, że nie zawsze masz tekst typu "Podazasz za kims na polnoc", ale często występują niestandardowe przejścia np. "Podazasz za kims (przez most|w krzaki|itp.)". Nie wiem jak dokładnie jest w Mudlecie, ale w innych klientach używa się room scriptow, aby to ogarnąć.
"Twoj nos atakuje won kiszonej kapusty."
Awatar użytkownika
Zorilazor
Posty: 49
Rejestracja: 19 lut 2015 19:56

Re: Hacki zyciowe do Mudleta

Post autor: Zorilazor »

po paru tygodniach bawienia sie mapperem taka obserwacje mam, do tego co bylo pisane wczesniej o hashach
System obslugi hashow w mudlecie (setRoomIDbyHash) jest przeznaczony do mapowania mudow ktore wysylaja unikalny hash w gmcp i do Arkadii sie nie bardzo nadaje - glownie dlatego, ze nie ma sily zeby hashe sie nie powtarzaly, a 'getRoomIDbyHash' zwraca zawsze tylko jeden pokoj.
lepiej dziala ustawianie wlasnych hashow jako 'UserData'

Kod: Zaznacz cały

setRoomUserData(roomID, key (as a string), value (as a string))
a potem dopisanie sobie funkcji ktora zwraca liste RoomID's z takim samym hashem przy uzyciu getRooms() i getRoomUserData().
Uzbrojeni w taka liste, powiedzmy 2-3 albo wiecej pokoi mozemy wtedy je sobie sprawdzac, np: ktory najbardziej odpowiada ostatnio wpisanej komendzie (zmienna 'command' - typu 'wyjscie', 'wejdz na gore' itp) albo kierunku marszu, albo czy ma wyjscia z ostatniego pokoju w ktorym bylismy albo czy jest w tej samej AreaID itd
Awatar użytkownika
Zorilazor
Posty: 49
Rejestracja: 19 lut 2015 19:56

Re: Hacki zyciowe do Mudleta

Post autor: Zorilazor »

Wlaczyl juz ktos nowe GMPC w mudlecie?
Jakos nie daje rady...
sendGMCP("char.state") dziala jak trzeba ale:
sendGMCP("Core.Ping") - nic nie daje, chociaz chyba powinno
ani gmod.enableModule("user", "Objects")
ani sendGMCP([[Core.Supports.Add ["Objects"] ]])

jakies pomysly?
Awatar użytkownika
Tercoral
Posty: 712
Rejestracja: 30 sty 2013 13:44

Re: Hacki zyciowe do Mudleta

Post autor: Tercoral »

Sprobuj z mudletem 3.0. Mi nie dziala roza wiatrow pod nim z gmcp to moze cos grzebali w obsludze tego protokolu.
Tęczowe serce... :oops:
Dorien
Posty: 142
Rejestracja: 25 lip 2012 00:38

Re: Hacki zyciowe do Mudleta

Post autor: Dorien »

jezeli sendGMCP("char.state") dziala ok to sprobuj
sendGMCP("core.supports.add[ "Objects" ]")

Core.Ping odpowie pustym "IAC SB GMCP Core.Ping IAC SE" wiec raczej niczego niedostatniesz chyba ze jakosc wylapiesz odpowiedz konkretnego rodzaju
Awatar użytkownika
Zorilazor
Posty: 49
Rejestracja: 19 lut 2015 19:56

Re: Hacki zyciowe do Mudleta

Post autor: Zorilazor »

w 3.0 probowalem i tez bez powodzenia - znaczy kompas i wskazniki inne mi dzialaja w 2.1 i 3.0

Dorien, w mudlecie mozna wlaczyc debug ktory pokaze info przychodzace z GMCP np tak:

Kod: Zaznacz cały

> lua sendGMCP('char.info')
System Message: 
gmcp event <gmcp.char> display(gmcp) to see the full content
System Message: 
gmcp event <gmcp.char.info> display(gmcp) to see the full content
i mamy nowe info, a po sendGMCP('Core.Ping') ciszzzzaaa :)

Kod: Zaznacz cały

sendGMCP("core.supports.add[ "Objects" ]")
sie wykrzacza bo musza byc inne znaczniki stringow albo [[ albo ' np:

Kod: Zaznacz cały

sendGMCP([[core.supports.add[ "Objects" ] ]])
abo
sendGMCP('core.supports.add[ "Objects" ] ')
probowalem tez laczyc stringa tak:

Kod: Zaznacz cały

sendGMCP("Core.Supports.Add ".. yajl.to_string{"Objects"})
gdzie yajl.to_string konwertuje dane JSON ale tez nic

czy mozna sobie wylaczyc modul 'core' przez przypadek?
Awatar użytkownika
Rafgart
Posty: 970
Rejestracja: 09 lut 2009 10:10

Re: Hacki zyciowe do Mudleta

Post autor: Rafgart »

Pomiedzy naglowkiem a ladunkiem musi byc spacja przerwy.

Kod: Zaznacz cały

'core.supports.add ["Objects"]'
Awatar użytkownika
Zorilazor
Posty: 49
Rejestracja: 19 lut 2015 19:56

Re: Hacki zyciowe do Mudleta

Post autor: Zorilazor »

ze spacja a newet dwiema tez nie dziala :) moze cos innego zle robie :/ ale juz wyczerpalem pomysly
Narmaniel

Re: Hacki zyciowe do Mudleta

Post autor: Narmaniel »

Nie korzystam z Mudleta, ale... może trzeba wpisać coś w ustawieniach GMCP w kliencie? Tak, jak to było w CMUDzie, co napisał Zurwen w temacie o swojej paczce skryptów.
Awatar użytkownika
Zorilazor
Posty: 49
Rejestracja: 19 lut 2015 19:56

Re: Hacki zyciowe do Mudleta

Post autor: Zorilazor »

Narmaniel pisze:może trzeba wpisać coś w ustawieniach GMCP w kliencie?
Moge sie myslic, ale po wielu probach raczej sklaniam sie ku temu, ze nowe GMCP sie gryzie z Mudletem w jakis sposob.

Mudlet ma tylko jedno ustawienie - tzn albo 'Enable GMCP' albo nie i przy polaczeniu wlacza obsluge lub nie :)

wlaczylem sobie Wiresharka zeby zobaczyc co on tam wysyla i generalnie nic ciekawego nie ma tzn, jako standard Mudlet robi subskrybcje do kilku modulow a reszte trzeba sobie dodac (info z Wiresharka):
Core.Hello { "client": "Mudlet", "version": "2.0.1" }
Core.Supports.Set [ "Char 1", "Char.Skills 1", "Char.Items 1", "Room 1", "IRE.Rift 1", "IRE.Composer 1"]
tyle wysyla mudlet przy kazdym polaczeniu, i raczej nie da rady tego zmienic.
Dane ktore sam wysylam wygladaja tak:

Kod: Zaznacz cały

Core.Hello { "client": "Mudlet", "version": "2.0.1" }
Core.Supports.Set [ "Core", "Char", "Room", "Objects" ]
moze mi po tym wysyla jakies tam info ale mudlet tylko widzi room i char i sobie to tam przetwarza w taki sposob - po sendGMCP("room.info") np:

Kod: Zaznacz cały

  room = {
    info = {
      exits = {
        "polnoc",
        "gora",
        "zachod"
      },
      map = {
        y = 53,
        x = 72,
        name = "Nuln",
        domain = "Imperium"
      }
    }
ODPOWIEDZ