InventoryLock(help)

Indította Red, 2017-02-09, 18:45:46

2017-02-09, 18:45:46 Utolsó szerkesztés: 2017-02-09, 18:48:38 Szerző: Red
Sziasztok.

Valaki megtudná nekem mondani, hogy miért nem csinál semmit az alábbi quest/lua?

#21.01.2017 blackdragonx61
quest envanter_black_kilitle begin
state start begin
when login begin
cmdchat("envanter "..q.getcurrentquestindex())
end
                when info or button begin
if game.get_event_flag(pc.get_account_id().."envanter_sifresi") == 0 then
say_title("Inventory Lock System:")
say_reward("Hello "..pc.get_name().."")
say("Welcome to Inventory Lock System.")
say("Firstly you must create a password.")
say("Password can be 5 digits.")
say("Enter your password.")
local sifre = tonumber(input(''))
if sifre < 10000 or sifre > 99999 then
say_title("Hello "..pc.get_name().."")
say("Please enter the 5 digits number.")
elseif sifre == nil then
say_title("Hello "..pc.get_name().."")
say("Password can not blank.")
elseif sifre > 10000 or sifre < 99999 then
say_title("Inventory Lock System:")
say_reward("Hello "..pc.get_name().."")
say("Your password is "..sifre.."")
game.set_event_flag(pc.get_account_id().."envanter_sifresi",sifre)
end
else
local mypass = game.get_event_flag(pc.get_account_id().."envanter_sifresi")
if pc.get_kilit() == 0 then
say_title("Inventory Lock System:")
say_reward("Hello "..pc.get_name().."")
say("Welcome to Inventory Lock System.")
say("Are you sure you want open the Inventory Lock?")
local onay = select(locale.yes,locale.no)
if onay == 1 then
say_title("Inventory Lock System:")
say("Enter your password for open the Inventory Lock.")
local passone = tonumber(input(''))
if passone == nil then
say_title("Hello "..pc.get_name().."")
say("Password can not blank.")
elseif passone != mypass then
say_title("Inventory Lock System:")
say("Wrong password!")
elseif passone == mypass then
pc.kilitle()
return
end
end
elseif pc.get_kilit() == 1 then
say_title("Inventory Lock System:")
say_reward("Hello "..pc.get_name().."")
say("Are you sure you want close the Inventory Lock?")
local onay = select(locale.yes,locale.no)
if onay == 1 then
say_title("Inventory Lock System")
say("Enter your password for close the Inventory Lock.")
local pass = tonumber(input(''))
if pass == nil then
say_title("Hello "..pc.get_name().."")
say("Password can not blank.")
elseif pass != mypass then
say_title("Inventory Lock System")
say("Wrong Password!")
elseif pass == mypass then
pc.kilitle()
end
end
end
end
end
end
end


Próbáltam már npc-re tenni when 20091.chat begin próbáltam már fordítva a info or button-t de, sehogy nem akar megjelenni.

Syserr sehol semmi.

Köszönöm előre a segítséget.

"Info or button" csak send_letter() után fog megjelenni.

2017-02-09, 20:56:34 #2 Utolsó szerkesztés: 2017-02-09, 22:07:54 Szerző: Red
Ha, otthon leszek kipróbálom de, akkor npc-n miért nem jelent meg?

szerk: Így működik. Köszi pisti nem gondoltam volna.

Üzenet összefésülés: 2017-02-09, 22:07:53

Bocs, hogy megint írok de, nem jövök rá mi a kínja.
Maga a quest működik csak a syserr gagyog rá folyton.

Syserr:
SYSERR: Feb  9 22:32:59.480012 :: HandleEvent: QUEST There's suspended quest state, can't run new quest state (quest: envanter_black_kilitle pc: Red)

Quest:
#21.01.2017 blackdragonx61
quest envanter_black_kilitle begin
state start begin
when login begin
cmdchat("envanter "..q.getcurrentquestindex())
set_state(information)
end
end
state information begin
when letter begin
send_letter("Leltár lezárás:")
end
when button or info begin
if game.get_event_flag(pc.get_account_id().."envanter_sifresi") == 0 then
say_title("Leltár lezárás:")
say_reward("Hello "..pc.get_name().."")
say("Tudd biztonságban a cuccaid.")
say("Adj meg 5 számjegyet amivel,")
say("letudod zárni a leltáradat.")
say("Írd be a jelszót:")
local sifre = tonumber(input(''))
if sifre < 10000 or sifre > 99999 then
say_title("Hello "..pc.get_name().."")
say("Öt számjegyű kódot adj meg.")
elseif sifre == nil then
say_title("Hello "..pc.get_name().."")
say("A jelszó nem lehet üres.")
elseif sifre > 10000 or sifre < 99999 then
say_title("Leltár lezárás:")
say_reward("Hello "..pc.get_name().."")
say("A te jelszavad: "..sifre.."")
game.set_event_flag(pc.get_account_id().."envanter_sifresi",sifre)
end
else
local mypass = game.get_event_flag(pc.get_account_id().."envanter_sifresi")
if pc.get_kilit() == 0 then
say_title("Leltár lezárás:")
say_reward("Hello "..pc.get_name().."")
say("Biztosan leszeretnéd zárni a leltárad?")
local onay = select(locale.yes,locale.no)
if onay == 1 then
say_title("Leltár lezárás:")
say("Írd be a jelszavad a kinyiításhoz.")
local passone = tonumber(input(''))
if passone == nil then
say_title("Hello "..pc.get_name().."")
say("A jelszó nem lehet üres.")
elseif passone != mypass then
say_title("Leltár lezárás:")
say("Hibás jelszó!")
elseif passone == mypass then
pc.kilitle()
return
end
end
elseif pc.get_kilit() == 1 then
say_title("Leltár lezárás:")
say_reward("Hello "..pc.get_name().."")
say("Biztosan kiakarod nyitni a leltárad?")
local onay = select(locale.yes,locale.no)
if onay == 1 then
say_title("Leltár lezárás:")
say("Írd be a jelszót a kinyitáshoz.")
local pass = tonumber(input(''))
if pass == nil then
say_title("Hello "..pc.get_name().."")
say("A jelszó nem lehet üres.")
elseif pass != mypass then
say_title("Leltár lezárás:")
say("Hibás jelszó!")
elseif pass == mypass then
pc.kilitle()
end
end
end
end
end
end
end


Hogy írjam szebben, hogy ne gagyogjon?