Hacki zyciowe do Mudleta

Forum techniczne Arkadii.
Kjell
Posty: 70
Rejestracja: 23 kwie 2015 11:01

Re: Hacki zyciowe do Mudleta

Post autor: Kjell » 31 lip 2015 11:26

Mój błąd, pisałem na szybko i sknociłem local id = getRoomIdByHash() <-- ta tunkcja nie może być bez parametru. Miało być

Kod: Zaznacz cały

local hash = makeHash()
cecho(hash.."\n")
local id = getRoomIdByHash(hash)
cecho("ID: "..id.."\n")
Sprawdziłem przy okazji, jeśli lokacja skojarzona z hashem nie istnieje, to getRoomIdByHash zwraca -1. Zatem jeśli po tej poprawce powinno ci działać. Przy testowaniu patrz zawsze na konsolę błędów (Central Debug Console). To pomoga od razu znaleźć wiele problemów.

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

Re: Hacki zyciowe do Mudleta

Post autor: Tercoral » 31 lip 2015 11:34

LUA: ERROR running script SprawdzanieGmcpLokacji (SprawdzanieGmcpLokacji) ERROR:[string "function
SprawdzanieGmcpLokacji()..."]:9: attempt to call global 'getRoomIdByHash' (a nil value)

Poprawilem i wyszlo to.
Tęczowe serce... :oops:

Kjell
Posty: 70
Rejestracja: 23 kwie 2015 11:01

Re: Hacki zyciowe do Mudleta

Post autor: Kjell » 31 lip 2015 12:55

Biczuję się makaronem. :P getRoomIDbyHash <- ID ma być wielkimi literami. Case sensitive.

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

Re: Hacki zyciowe do Mudleta

Post autor: Tercoral » 31 lip 2015 13:04

Faktycznie, wszystko dziala jak trzeba. (Identycznie jak z ifami)

Tylko nadal ma takie cos ze przeskakuje lokacje jak szybciej gdzies podejde.

Pewnie skrypt mappera miesza.


Podzielil bys sie skryptem mappera?
Tęczowe serce... :oops:

Kjell
Posty: 70
Rejestracja: 23 kwie 2015 11:01

Re: Hacki zyciowe do Mudleta

Post autor: Kjell » 31 lip 2015 13:19

Najpierw podziałamy z twoim, jak ustaliliśmy. Jeśli zostanie mi czasu w weekend, to wrzucę swój na githuba i podam link.

Awatar użytkownika
Zorilazor
Posty: 49
Rejestracja: 19 lut 2015 19:56

Re: Hacki zyciowe do Mudleta

Post autor: Zorilazor » 01 sie 2015 13:16

A jak ci sie to objawia, ze 'przeskakuje'?
Ja mam tak, ze mapper/gmpc dziala szybciej niz tekst z muda (mapa sie renderuje w 2-3ms przy kazdej zmianie gmpc.room)

Np sprypt mapujacy sprawdza czy pokoj juz istnieje:

Kod: Zaznacz cały

	if getRoomIDbyHash(hash) ~= -1 then
		cecho("<red>Pokoj juz zmapowany!\n") 
		return
	end
i dziala to tak przy szybkim chodzeniu:

Kod: Zaznacz cały

e;e;e;e;e
Pokoj juz zmapowany!
Glowny korytarz.
Sa tutaj trzy widoczne wyjscia: polnoc, wschod i zachod.
Pokoj juz zmapowany!
Pokoj juz zmapowany!
Pokoj juz zmapowany!
Pokoj juz zmapowany!
> Glowny korytarz.
Sa tutaj trzy widoczne wyjscia: poludnie, wschod i zachod.
Krostowaty opasly krasnolud i brudny schorowany krasnolud.
> Glowny korytarz.
Sa tutaj trzy widoczne wyjscia: polnoc, wschod i zachod.
Nerwowy masywny krasnolud.
> Glowny korytarz.
Sa tutaj cztery widoczne wyjscia: polnoc, poludnie, wschod i zachod.
> Glowny korytarz.
Sa tutaj cztery widoczne wyjscia: polnoc, wschod, zachod i poludnie.
Brudny malomowny krasnolud i rudobrody przyjazny krasnolud.
> 

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

Re: Hacki zyciowe do Mudleta

Post autor: Tercoral » 01 sie 2015 13:36

No... przeskakuje lokacje wstecz. Mowie, ze w moim mapperze jest cos nie tak.

Sklejalem 3 skrypty mapera przez 2 lata az w koncu cos wyszlo. :P


edit: Ale ty chyba masz calosc w gmcp? Ja mam zrobione tylko niektore lokacje i moze temu przeskakuje.
Tęczowe serce... :oops:

Awatar użytkownika
Zorilazor
Posty: 49
Rejestracja: 19 lut 2015 19:56

Re: Hacki zyciowe do Mudleta

Post autor: Zorilazor » 01 sie 2015 15:54

To co sie da to mam z gmcp. Mapa z klienta oficjalnego sie kopiuje autoamtycznie.
Do innych lokacjji to sobie skryptow nie dorobilem jeszcze, bo w sumie nie mam pomyslu jak to hashowac.

Mialem taki pomysl zeby hashe robic z krotkiego opisu i wyjsc ale jakos to mi utknelo :)

Kod: Zaznacz cały

function ZrobHashaTekstowego(tekst1,tekst2)
	local suma = 0

	for i = 1, string.len(tekst1)  do
		suma = suma + string.byte(tekst1,i)
	end
	for i = 1, string.len(tekst2)  do
		suma = suma + string.byte(tekst2,i)
	end
	return DEC_HEX(suma)
end

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

Re: Hacki zyciowe do Mudleta

Post autor: Tercoral » 01 sie 2015 16:14

Dajesz do zmiennej:
Domene + ostatnie name + short lokacji + cyferkowe wartosci wyjsc.

Np ishtar.okolicenovi.przykrypcie.132
Tęczowe serce... :oops:

Awatar użytkownika
Zorilazor
Posty: 49
Rejestracja: 19 lut 2015 19:56

Re: Hacki zyciowe do Mudleta

Post autor: Zorilazor » 01 sie 2015 17:26

no tylko to nie rozwiazuje problemu z podobnymi lokacjami, np jak tu:

Kod: Zaznacz cały

Nad przepascia.
Sa tutaj dwa widoczne wyjscia: polnoc i poludnie.
> s
Nad przepascia.
Sa tutaj dwa widoczne wyjscia: polnoc i poludnie.
> s
Nad przepascia.
Sa tutaj dwa widoczne wyjscia: polnoc i poludnie.
> s
Hashe musza byc unikalne w tym przypadku inaczej bedzie dzialal tylko ten przypisany najpozniej.

PS akurat lokacje w przykladzie da sie oskryptowac z gmcp, ale sa pdobne gdzie indziej ktore nie wysylaja nic poza gmpc.room.info.exits

ODPOWIEDZ