lua:scripting:examples:qtimerluavals
Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| lua:scripting:examples:qtimerluavals [2014/12/31 19:19] – created vodur | lua:scripting:examples:qtimerluavals [2015/01/01 00:53] (current) – vodur | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== Original ====== | ||
| <code lua> | <code lua> | ||
| + | -- Kain GRALL code for sack of rice | ||
| + | say(" | ||
| + | emote(" | ||
| + | -- Kain greet code to start quest | ||
| + | local ricevnum=7326 | ||
| + | local qvnum=14800 | ||
| + | -- Don't give quest if timer is still running | ||
| + | if ch: | ||
| + | say(" | ||
| + | return | ||
| + | end | ||
| + | -- Don't talk them if already gave something | ||
| + | tracker=tracker or {} | ||
| + | if tracker[ch.name] then return end | ||
| - | -- Kain GRALL code for sack of rice\\ | + | say(" |
| - | say(" | + | ch.name, |
| - | emote(" | + | getobjproto(ricevnum).shortdescr) |
| - | -- Kain greet code to start quest\\ | + | -- End Kain greet code |
| - | local ricevnum=7326\\ | + | </ |
| - | local qvnum=14800\\ | + | |
| - | -- Don't give quest if timer is still running\\ | + | <code lua>-- Kain give code |
| - | if ch:qtimer(qvnum)>0 then \\ | + | local ricevnum=7326 |
| - | say(" | + | local qvnum=14800 |
| - | return | + | |
| - | end\\ | + | -- Does he want it? |
| - | -- Don't talk them if already gave something\\ | + | if not(obj1.vnum==ricevnum) then |
| - | tracker=tracker or {}\\ | + | say("I don't want this." |
| - | if tracker[ch.name] then return end\\ | + | mdo(" |
| - | \\ | + | mdo(" |
| - | say(" | + | return |
| - | ch.name,\\ | + | end |
| - | getobjproto(ricevnum).shortdescr)\\ | + | |
| - | -- End Kain greet code\\ | + | -- check if their timer is still running |
| - | </ | + | if ch: |
| + | say(" | ||
| + | mdo(" | ||
| + | mdo(" | ||
| + | return | ||
| + | end | ||
| + | |||
| + | -- check if already gave that one | ||
| + | tracker=tracker or {} | ||
| + | if tracker[ch.name] and tracker[ch.name][obj1.vnum] then | ||
| + | say(" | ||
| + | mdo(" | ||
| + | mdo(" | ||
| + | return | ||
| + | end | ||
| + | |||
| + | -- He really wants it! | ||
| + | if tracker[ch.name]==nil then | ||
| + | tracker[ch.name]={} | ||
| + | end | ||
| + | tracker[ch.name][obj1.vnum]=true | ||
| + | say(" | ||
| + | |||
| + | -- Now see if finished | ||
| + | if tracker[ch.name][ricevnum] then -- Has the rice | ||
| + | qset(ch, qvnum, 1, 24) | ||
| + | say(" | ||
| + | mdo(" | ||
| + | reward(ch, " | ||
| + | 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 ===== | ||
| + | <code lua> | ||
| + | -- Kain GRALL code for sack of rice | ||
| + | say(" | ||
| + | emote(" | ||
| + | -- 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(" | ||
| + | if time_quest> | ||
| + | say(" | ||
| + | return | ||
| + | end | ||
| + | -- Don't talk them if already gave something | ||
| + | tracker=tracker or {} | ||
| + | if tracker[ch.name] then return end | ||
| + | |||
| + | say(" | ||
| + | ch.name, | ||
| + | getobjproto(ricevnum).shortdescr) | ||
| + | -- End Kain greet 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(" | ||
| + | mdo(" | ||
| + | return | ||
| + | end | ||
| + | |||
| + | -- check if their timer is still running | ||
| + | local time_current=os.time() | ||
| + | local time_quest=ch: | ||
| + | if time_quest> | ||
| + | say(" | ||
| + | mdo(" | ||
| + | mdo(" | ||
| + | return | ||
| + | end | ||
| + | |||
| + | -- check if already gave that one | ||
| + | tracker=tracker or {} | ||
| + | if tracker[ch.name] and tracker[ch.name][obj1.vnum] then | ||
| + | say(" | ||
| + | mdo(" | ||
| + | mdo(" | ||
| + | return | ||
| + | end | ||
| + | |||
| + | -- He really wants it! | ||
| + | if tracker[ch.name]==nil then | ||
| + | tracker[ch.name]={} | ||
| + | end | ||
| + | tracker[ch.name][obj1.vnum]=true | ||
| + | say(" | ||
| + | |||
| + | -- Now see if finished | ||
| + | if tracker[ch.name][ricevnum] then -- Has the rice | ||
| + | qset(ch, qvnum, 1, 24) | ||
| + | ch: | ||
| + | say(" | ||
| + | mdo(" | ||
| + | reward(ch, " | ||
| + | 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.1420053587.txt.gz · Last modified: 2014/12/31 19:19 by vodur