This shows you the differences between two versions of the page.
lua:scripting:examples:runequestorig [2014/12/24 05:39] vodur created |
— (current) | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====Rune Quest (original version)==== | ||
- | <code lua> | ||
- | runevnum=31470 | ||
- | homevnum=31404 | ||
- | maxrune=50 | ||
- | checktime=nil | ||
- | checkdelay=300 -- 5 mins | ||
- | |||
- | |||
- | function runereward() | ||
- | local runes=getobjworld(runevnum) | ||
- | for _,rune in pairs(runes) do | ||
- | char=rune.carriedby | ||
- | if char then | ||
- | goto(char.room.vnum) | ||
- | if char:ispc() then | ||
- | echo(string.format("%s glows brightly and evaporates into the air!", rune.shortdescr)) | ||
- | reward(string.format("%s qp 5", char.name) ) | ||
- | end | ||
- | end | ||
- | rune:destroy() | ||
- | end | ||
- | |||
- | goto(homevnum) | ||
- | mdo("chirp") | ||
- | end | ||
- | |||
- | function place() | ||
- | local runes=getobjworld(runevnum) | ||
- | local count=table.getn(runes) | ||
- | if count >= maxrune then | ||
- | return | ||
- | end | ||
- | |||
- | for i=1,maxrune-count do | ||
- | goto("wrandom") | ||
- | oload(runevnum) | ||
- | mdo("drop rune") | ||
- | end | ||
- | |||
- | goto(homevnum) | ||
- | end | ||
- | |||
- | function checkrunes() | ||
- | local currtime=os.time() | ||
- | if checktime==nil then | ||
- | checktime=currtime+checkdelay | ||
- | return | ||
- | elseif currtime<checktime then | ||
- | return | ||
- | end | ||
- | |||
- | runereward() | ||
- | place() | ||
- | |||
- | checktime=currtime+checkdelay | ||
- | end | ||
- | |||
- | runeloaded=true | ||
- | </code> | ||
- | |||
- | <code> | ||
- | MOBPrograms for [31425]: | ||
- | Number Vnum Trigger Phrase | ||
- | ------ ---- ------- ------ | ||
- | [ 0] 31404 RANDOM 100 | ||
- | |||
- | Vnum: [31404] | ||
- | Lua: True | ||
- | Code: | ||
- | |||
- | if not runeloaded then | ||
- | loadscript("vodur", "rune1") | ||
- | end | ||
- | |||
- | checkrunes() | ||
- | </code> |