Re: Hacki zyciowe do Mudleta
: 30 lip 2015 12:58
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.
Oficjalne forum Arkadii, polskiego MUD-a, tekstowej gry fabularnej.
https://arkadia.rpg.pl/forum/
... 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.
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.
Kod: Zaznacz cały
function makeHash()
return PozycjaN .. PozycjaX .. ":" .. PozycjaY
end
Kod: Zaznacz cały
setRoomIDbyHash(roomID, makeHash())
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)
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