User Tools

Site Tools


lua:scripting:examples:vodurbirthdayletters

Differences

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

Link to this comparison view

Both sides previous revision Previous revision
lua:scripting:examples:vodurbirthdayletters [2014/12/24 05:48]
vodur
— (current)
Line 1: Line 1:
-Place 300 random letters in luai: 
-<code lua> 
-loadscript("​vodur",​ "​birthday"​) 
-for i=1,300 do 
-  make_letter(getrandomroom():​oload(31450)) 
-end 
-</​code>​ 
  
-<​code>​ 
-Area:        [   57] Aes Sedai Clan Area 
-Vnum:        [31450] 
-Type:        [treasure] 
-Level: ​      ​[ ​   1] 
-Wear flags: ​ [take] 
-Extra flags: [nolocate] 
-Material: ​   [unknown] 
-Condition: ​  ​[ ​ 100] 
-Weight: ​     [    0] 
-Cost:        [    0] 
-OPs:         [ 0/ 5] 
-Short desc:  birthday quest letter 
-Long desc: 
-   ​Birthday quest letter 
-Notes: 
-Used for birthday quest, progs will set the actual 
-name, desc, etc. 
-OBJPrograms for [31450]: 
-Number Vnum Trigger Phrase 
------- ---- ------- ------ 
-[    0] 31450     put 100 
-</​code>​ 
- 
-<code lua> 
--- birthday.lua 
- 
-local lettervnum=31450 
-local bname="​Vodur"​ 
-local bcolor="​{m"​ 
- 
-local qpreward=29 
--- try to make word out of obj and all letters in cont 
--- return true if doesn'​t make word or return false 
--- and reward qp and destroy the letters 
-function put_trigger( ch, cont ) 
-    local letters={} 
-    for i=1,#bname do 
-        letters[i]=bname:​sub(i,​i) 
-    end 
- 
-    local items={ obj } 
-    for k,v in pairs(cont.contents) do 
-        if v.vnum==lettervnum then 
-            table.insert(items,​ v) 
-        end 
-    end 
- 
-    local used={} 
-    for k,v in pairs(items) do 
-        local iletter=string.match(v.name,​ "​letter (%a)") 
-        for i=#​letters,​1,​-1 do 
-            if iletter==letters[i] then 
-                table.insert(used,​ v) 
-                table.remove(letters,​i) 
-                break 
-            end 
-        end 
-    end 
- 
-    if #​letters<​1 then 
-        sendtochar( ch, "The letters merge together to form the word "​..bcolor..bname.."​{x!"​.. 
-        "​\n\rAfter an instant it vanishes completely.\n\r"​) 
-        ch:​reward(ch,​ "​qp",​ qpreward) 
- 
-        for k,v in pairs(used) do 
-            v:destroy() 
-        end 
-        return false 
-    end 
- 
-    return true 
-end 
- 
-function make_letter(l) 
-    if not(l.vnum == lettervnum) then 
-        error("​wtf"​) 
-    end 
- 
-    local letters={} 
-    for i=1,#bname do 
-        letters[i]=bname:​sub(i,​i) 
-    end 
- 
-    local letter=letters[randnum(1,​ #letters)] 
- 
-    l.name="​letter "​..letter 
-    l.shortdescr="​the letter "​..bcolor..letter.."​{x"​ 
-    l.description="​It'​s a letter. Put it in a container with other letters and see what happens!"​ 
-end 
-</​code>​ 
lua/scripting/examples/vodurbirthdayletters.1419400088.txt.gz ยท Last modified: 2014/12/24 05:48 by vodur