[Quest-release] Online GM lista

Indította ATAG, 2012-07-09, 18:00:47

2012-07-09, 18:00:47 Utolsó szerkesztés: 2012-07-09, 21:51:23 Szerző: ATAG
Sziasztok!

Találtam epvp-n egy hasonló questet, de nem tetszett, hogy kézzel kell beleirkálni a neveket, így kicsit javítottam rajta.

Egy fájlban tárolja a GM listát, ki és belépésnél pedig a quest táblába menti hogy on vagy off az állapotuk.
Mivel csak az online tagokat jeleníti meg, karbantartást nem igényel :)

-- online gm list by ATAG
quest gmonline begin
    state start begin
        when login begin
if pc.is_gm() then
--gm lista olvasás és név ellenőrzés
local pcname = pc.get_name()
local f,e = io.open("locale/hungary/quest/gmlist.txt", "r")
if f then
for name in f:lines() do
if name == pcname then
is_in = true
break
end
end
f:close()
end

--név beírása, ha még nincs benne
if not is_in then
f,e = io.open("locale/hungary/quest/gmlist.txt", "a+")
if f then
f:write(pcname.."\\n")
f:close()
else
syschat("gmonline error: "..e)
end
end

--online állapot tárolása
game.set_event_flag(pcname,1)
end
set_state(information)
end
end

state information begin
when letter begin
send_letter("Online GM lista")
end
when button or info begin
say_title("Online GM-ek listája:")
local count = 0
local f,e = io.open("locale/hungary/quest/gmlist.txt", "r")
if f then
for name in f:lines() do
if name != "" and game.get_event_flag(name) == 1 then
say(name.." ")
count=count+1
end
end
f:close()
end
if count == 0 then
say("Sajnos nincs online GM")
say("Próbálkozz később!")
end
say("")
end

when logout with pc.is_gm() begin
--offline állapot tárolása
game.set_event_flag(pc.get_name(),0)
set_state(start)
end
end
end


Új funkciók a quest_functions-ba
lines
io.open


A quest tábla "szName" oszlopát nem árt varbinary típusra cserélni, mert ékezetes neveknél akadhat kis probléma (kérdőjel lesz az ékezetes karakter helyett, így sosem lesz online a listában az illető)

locale/hungary -t értelemszerűen át kell írni mindenhol a KÜLDIBEN a megfelelőre, pl: locale/germany, vagy locale/hongkong
VAGY csinálni egy hungary mappát a locale-ba a germany/hongkong mellé.