User Tools

Site Tools


lua:scripting:examples:qtimerluavals

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
lua:scripting:examples:qtimerluavals [2014/12/31 22:04]
vodur
— (current)
Line 1: Line 1:
-====== Original ====== 
-<code lua>-- 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 
-</​code>​ 
- 
-<code lua>-- 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, 23)     ​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 
-</​code>​ 
- 
-===== With luavals ===== 
-<code lua>-- 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 time_current=os.time() 
-local time_quest=ch:​getval("​kain_timer"​) or 0 
- 
--- Don't give quest if timer is still running 
-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 
-</​code>​ 
- 
-<code lua>-- Kain give code 
-local ricevnum=7326 
- 
--- 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",​ 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     ​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 
-</​code>​ 
  
lua/scripting/examples/qtimerluavals.1420063483.txt.gz ยท Last modified: 2014/12/31 22:04 by vodur