User Tools

Site Tools


lua:scripting:examples:qtimerluavals

Original

-- Kain GRALL code for sack of rice
say("Keep counting kid... We'll work some of that fight out of you.")
emote("puts some bricks on Cloud's back, JUST to make sure he gets a work out.")
-- Kain greet code to start quest
local ricevnum=7326
local qvnum=14800
-- Don't give quest if timer is still running
if ch:qtimer(qvnum)>0 then
    say("You should give someone else a turn. Come back in %d hours", ch:qtimer(qvnum))
    return
end
-- Don't talk them if already gave something
tracker=tracker or {}
if tracker[ch.name] then return end
 
say("Hey %s! I need some more weights for cloud. Can you bring me a '%s'?",
    ch.name,
    getobjproto(ricevnum).shortdescr)
-- End Kain greet code
-- Kain give code
local ricevnum=7326
local qvnum=14800
 
-- Does he want it?
if not(obj1.vnum==ricevnum) then
    say("I don't want this.")
    mdo("give '%s' %s", obj1.name, ch.name)
    mdo("drop %s", obj1.name)
    return
end
 
-- check if their timer is still running
if ch:qtimer(qvnum)>0 then
    say("You should give someone else a turn. Come back in %d hours", ch:qtimer(qvnum))
    mdo("give '%s' %s", obj1.name, ch.name)
    mdo("drop %s", obj1.name)
    return
end
 
-- check if already gave that one
tracker=tracker or {}
if tracker[ch.name] and tracker[ch.name][obj1.vnum] then
    say("You already gave me that!")
    mdo("give '%s' %s", obj1.name, ch.name)
    mdo("drop %s", obj1.name)
    return
end
 
-- He really wants it!
if tracker[ch.name]==nil then
    tracker[ch.name]={}
end
tracker[ch.name][obj1.vnum]=true
say("Thanks %s!", ch.name)
 
-- Now see if finished
if tracker[ch.name][ricevnum] then -- Has the rice
    qset(ch, qvnum, 1, 24)
    say("Haha! Cloud will be strong in no time with this kind of weight!")
    mdo("mob junk '%s'", obj1.name)
    reward(ch, "qp", 15)
    tracker[ch.name]=nil
else
    say("I still need a %s", getobjproto( (not(tracker[ch.name][ricevnum]))).shortdescr)
end
 
-- End Kain give code

With luavals

-- Kain GRALL code for sack of rice
say("Keep counting kid... We'll work some of that fight out of you.")
emote("puts some bricks on Cloud's back, JUST to make sure he gets a work out.")
-- Kain greet code to start quest
local ricevnum=7326
-- Don't give quest if timer is still running
local time_current=os.time()
local time_quest=ch:getval("kain_timer") or 0
if time_quest>time_current then 
    say("You should give someone else a turn. Come back in %d hours", math.ceil((time_quest-time_current)/3600))
    return 
end
-- Don't talk them if already gave something
tracker=tracker or {}
if tracker[ch.name] then return end
 
say("Hey %s! I need some more weights for cloud. Can you bring me a '%s'?",
    ch.name,
    getobjproto(ricevnum).shortdescr)
-- End Kain greet code
-- Kain give code
local ricevnum=7326
local qvnum=14800
 
-- Does he want it?
if not(obj1.vnum==ricevnum) then
    say("I don't want this.")
    mdo("give '%s' %s", obj1.name, ch.name)
    mdo("drop %s", obj1.name)
    return
end
 
-- check if their timer is still running
local time_current=os.time()
local time_quest=ch:getval("kain_timer") or 0
if time_quest>time_current then
    say("You should give someone else a turn. Come back in %d hours", math.ceil((time_quest-time_current)/3600))
    mdo("give '%s' %s", obj1.name, ch.name)
    mdo("drop %s", obj1.name)
    return
end
 
-- check if already gave that one
tracker=tracker or {}
if tracker[ch.name] and tracker[ch.name][obj1.vnum] then
    say("You already gave me that!")
    mdo("give '%s' %s", obj1.name, ch.name)
    mdo("drop %s", obj1.name)
    return
end
 
-- He really wants it!
if tracker[ch.name]==nil then
    tracker[ch.name]={}
end
tracker[ch.name][obj1.vnum]=true
say("Thanks %s!", ch.name)
 
-- Now see if finished
if tracker[ch.name][ricevnum] then -- Has the rice
    qset(ch, qvnum, 1, 24)
    ch:setval("kain_timer", time_current + 3600*24, true) -- Now + 24hrs
    say("Haha! Cloud will be strong in no time with this kind of weight!")
    mdo("mob junk '%s'", obj1.name)
    reward(ch, "qp", 15)
    tracker[ch.name]=nil
else
    say("I still need a %s", getobjproto( (not(tracker[ch.name][ricevnum]))).shortdescr)
end
 
-- End Kain give code
lua/scripting/examples/qtimerluavals.txt · Last modified: 2015/01/01 00:53 by vodur