Hacki zyciowe do Mudleta
Re: Hacki zyciowe do Mudleta
Moze switch zamiast ifow?
I nie wyswietlaj pozycji za kazdym razem, tylko zrob na krotkim alarmie.
I nie wyswietlaj pozycji za kazdym razem, tylko zrob na krotkim alarmie.
Re: Hacki zyciowe do Mudleta
Rafgart ma na myśli, żeby obliczenie nie wykonywało się co każda lokacja, tylko co jakiś czas jak wystąpi event wejścia na lokacje - wtedy jak przebiegniesz kilka lokacji szybko, to nie odpali się to x liczba lokacji, tylko 1 raz.
Do kontaktów z czarodziejami służy komenda ‚zglos’ (błąd/pomysl/mg).
-
- Posty: 258
- Rejestracja: 13 sie 2011 21:08
Re: Hacki zyciowe do Mudleta
Najszybszym rozwiązaniem w takich przypadkach jest struktura danych nazywana map albo dictionary (na pewno jest i w Lua). Umieścisz w kluczach zlepienie PozycjaN + PozycjaY + PozycjaX, a w wartościach ten numerek lokacji.
Re: Hacki zyciowe do Mudleta
Kurde alarm sie nie bardzo przydaje, bo lokacje musza sie uaktualniac bardzo szybko.
A tego switcha znalazlem, poczytam pozniej. Dzieki za odpowiedz!
----------------------------------
I w ogole mam wrazenie, ze w samym moim skrypcie mappera sa razace niedociagniecia w optymalizacji.
Hmm
Czyli jak dostaje GMCP mam to zamienic na stringa, a pozniej z table.find znalesc tego stringa i sprawdzic value (ID lokacji?).
A tego switcha znalazlem, poczytam pozniej. Dzieki za odpowiedz!
----------------------------------
... Y, mozesz rozwinac?Najszybszym rozwiązaniem w takich przypadkach jest struktura danych nazywana map albo dictionary (na pewno jest i w Lua). Umieścisz w kluczach zlepienie PozycjaN + PozycjaY + PozycjaX, a w wartościach ten numerek lokacji.
I w ogole mam wrazenie, ze w samym moim skrypcie mappera sa razace niedociagniecia w optymalizacji.
Hmm
Czyli jak dostaje GMCP mam to zamienic na stringa, a pozniej z table.find znalesc tego stringa i sprawdzic value (ID lokacji?).
Tęczowe serce...
Re: Hacki zyciowe do Mudleta
Tercoralu, a musisz za każdym razem ustawiać klocek za pomocą gmcp? Nie lepiej zrobić sobie alias lub inny button z tą nastawą kiedy się zgubisz? Też zależy jak dokladne masz roomscripty...
"Twoj nos atakuje won kiszonej kapusty."
Re: Hacki zyciowe do Mudleta
W moim odczuciu zmiana switch/if to tylko kosmetyka, a wydajność niewiele się zmieni.Rafgart pisze:Moze switch zamiast ifow?
I nie wyswietlaj pozycji za kazdym razem, tylko zrob na krotkim alarmie.
Co do alarmu, to dokładnie to samo przyszło mi do głowy. Tercoal, alarm jest po to, żeby nie odświeżać ani sprawdzać nic dla lokacji, które bardzo szybko przebiegasz, a jedynie tam, gdzie zwolnisz lub się zatrzymasz.
A teraz tak. Bardzo przydatne w pracy z mapperem są funkcje setRoomIDbyHash oraz getRoomIDbyHash. Pozwalają wygenerowany w dowolny sposób indentyfikator skojarzyć z daną lokacją. Jeśli hash generujesz na postawie danych lokacji z GMCP, to łatwo uzyskasz roomID i ustawisz mapper gdzie trzeba.
1. Napisz prostą funkcję generującą hash:
Kod: Zaznacz cały
function makeHash()
return PozycjaN .. PozycjaX .. ":" .. PozycjaY
end
2. Ponieważ masz już mapę, teraz musisz się przelecieć po lokacjach i poustawiać im hashe za pomocją
Kod: Zaznacz cały
setRoomIDbyHash(roomID, makeHash())
roomID musisz znać. Albo sobie klikasz po mapie i sprawdzasz ręcznie, co jest upierdliwe, albo korzystasz z dotychczasowych skryptów, by je pobierać, ale wtedy musisz zmapować wszystko nim wywalisz te ify. Przeróbka
Kod: Zaznacz cały
function MapyGMCPImperium()
if PozycjaN == "Urbimo" then
if PozycjaY == 31 and PozycjaX == 22 then centerview(6664)
setRoomIDbyHash(6664, makeHash())
table.insert(TabelkaOdwiedzonych, 6664) end
end
Kod: Zaznacz cały
local id = getRoomIdByHash(makeHash())
centerview(id)
table.insert(TabelkaOdwiedzonych, id)
Re: Hacki zyciowe do Mudleta
No wlasnie musze... bo, nie bardzo chce mapowac cala arke z tym gmcp.
Najwygodniej jest miec kilka lokacji ktore wiadomo ze sa wazne, typu skrzyzowania albo przystanek dylizansow i z nich czerpac. Bo jak znow wizowie cos zmienia to nie szkoda od nowa zbierac dane.
-------
Wlasnie nie bardzo juz pamietam, ale z tego co se przypominam to mam tak ze dodaje kazda lokacje na ktora "mam wejsc", ale jest stoper, typu jestes zmeczony, to biore ustawiam lokacje tabelka_odwiedzonych -1 i jakos mi ten mapper dziala.
Mapowanie mam w innym profilu niz chodzenie wiec to nie jest arcydzielo sztuki koderskiej.
Najwygodniej jest miec kilka lokacji ktore wiadomo ze sa wazne, typu skrzyzowania albo przystanek dylizansow i z nich czerpac. Bo jak znow wizowie cos zmienia to nie szkoda od nowa zbierac dane.
-------
Wlasnie nie bardzo juz pamietam, ale z tego co se przypominam to mam tak ze dodaje kazda lokacje na ktora "mam wejsc", ale jest stoper, typu jestes zmeczony, to biore ustawiam lokacje tabelka_odwiedzonych -1 i jakos mi ten mapper dziala.
Mapowanie mam w innym profilu niz chodzenie wiec to nie jest arcydzielo sztuki koderskiej.
Ostatnio zmieniony 30 lip 2015 16:33 przez Tercoral, łącznie zmieniany 1 raz.
Tęczowe serce...
Re: Hacki zyciowe do Mudleta
Hmm, ale funkcję z podwójnym ifem odpalasz za każdym nadejsciem danych przez gmcp(czyli co ruch), czy tylko na tych skrzyżowaniach?
Druga sprawa, ile ifow i elseifow ma ta funkcja i czy jest globalna, czy lokalna, powiazana z konkretnym roomem?
Jeśli jest tak jak cytuje Kjell poniżej, to chyba posłuchaj jego rad z tymi hashami dla unikatowych lokacji.
Druga sprawa, ile ifow i elseifow ma ta funkcja i czy jest globalna, czy lokalna, powiazana z konkretnym roomem?
Jeśli jest tak jak cytuje Kjell poniżej, to chyba posłuchaj jego rad z tymi hashami dla unikatowych lokacji.
Ostatnio zmieniony 30 lip 2015 16:23 przez Migr, łącznie zmieniany 1 raz.
"Twoj nos atakuje won kiszonej kapusty."
Re: Hacki zyciowe do Mudleta
No to żaden problem. Ustawiasz hash tylko dla tych ważnych lokacji, a resztę olewasz. I moja metoda dalej się sprawdzi. Wtedy dla porządku dodaj warunek sprawdzający id:Najwygodniej jest miec kilka lokacji ktore wiadomo ze sa wazne, typu skrzyzowania albo przystanek dylizansow i z nich czerpac. Bo jak znow wizowie cos zmienia to nie szkoda od nowa zbierac dane.
Kod: Zaznacz cały
local id = getRoomIdByHash(makeHash())
if id > 0 then
centerview(id)
table.insert(TabelkaOdwiedzonych, id)
end
Re: Hacki zyciowe do Mudleta
Ja mam zmapowaną całą z hashami na bazie GMCP od marca
I nie laguje?
I nie laguje?
Tęczowe serce...