User Tools

Site Tools


lua:scripting:examples:olcscripts

Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
lua:scripting:examples:olcscripts [2015/03/15 09:04] vodurlua:scripting:examples:olcscripts [2016/10/02 03:26] (current) – [Reduce wealth of shops over 100%] vodur
Line 1: Line 1:
-Edit v1 and v2 values for all wands and staffs+====== OLC scripts ======
  
-<code lua><font inherit/inherit;;inherit;;inherit>​​</font>+===== Edit all wands and staffs to have 50/50 charges =====
  
-<code>+<code lua>
 do do
  
Line 21: Line 21:
 end end
 </code> </code>
 +
 +===== Shop wands/staffs have 50/50 charges, otherwise set to -1/50 =====
 +
 +-1 makes the # of charges randomize then item pops.
 +
 <code lua> <code lua>
 do do
Line 80: Line 85:
 </code> </code>
  
-<code>+===== Surreal reset culling =====
  
 +[[http://aarchonmud.com/forum/viewtopic.php?f=25&t=242|http://aarchonmud.com/forum/viewtopic.php?f=25&t=242]]
 +
 +<code lua>
 +do
 +local area=getroom(2031).area
 +
 +for _,room in pairs(area.rooms) do
 +    local edited=false
 +    clearloopcount()
 +    local finished
 +    while not finished do
 +        finished=true
 +        local num_resets=#room.resets
 +
 +        for i,reset in ipairs(room.resets) do
 +            if reset.command=="M" then
 +                goto(room.vnum)
 +                local rmax=reset.arg4
 +                local amax=reset.arg2
 +                local mvnum=reset.arg1
 +
 +                if amax>25 then
 +                    local newmax=25
 +                    rmax=math.min(rmax,newmax)
 +                    --local newmax=math.max(20, amax/2)
 +                        --newmax=math.min(amax, 50)
 +                    edited=true
 +                    mdo("reset "..i.." delete")
 +                    mdo("reset "..num_resets.." mob "..mvnum.." "..newmax.." "..rmax)
 +                    finished=false
 +                    break
 +                end
 +            end
 +        end
 +    end
 +    if edited then mdo('reset') end
 +end
 +
 +end
 +</code>
 +===== Burnproof flag removal / Nonmetal Weapon adjust =====
 +
 +<code lua>
 +function anti_burnproof()
 +    local count = 0
 +    for _,area in pairs(getarealist()) do
 +        if not area:flag("clone") then
 +            for _,op in pairs(area.objprotos) do
 +                if op:extra("burnproof") and (op.otype == "armor" or op.otype == "weapon") then
 +                    -- adjust damage using olc
 +                    mdo("oedit " .. op.vnum)
 +                    olc("extra burnproof")
 +                    olc("done")
 +                    count = count + 1
 +                end
 +            end
 +        end
 +    end
 +    sendtochar(mob, "Removed burnproof flag from " .. count .. " items.\n")
 +end
 +
 +function nonmetal_weapons()
 +    local count = 0
 +    for _,area in pairs(getarealist()) do
 +        if not area:flag("clone") then
 +            for _,op in pairs(area.objprotos) do
 +                if op:extra("nonmetal") and op.otype == "weapon" and op.level>= 1 and op.level <= 100 then
 +                    -- remove burnproof flag using olc
 +                    mdo("oedit " .. op.vnum)
 +                    olc("adjust")
 +                    olc("done")
 +                    count = count + 1
 +                end
 +            end
 +        end
 +    end
 +    sendtochar(mob, "Adjusted damage for " .. count .. " nonmetal weapons.\n")
 +end
 +</code>
 +===== Reduce wealth of shops over 100% =====
 +
 +<code lua>
 +do
 +
 +local cnt = 0
 +
 +for _,area in pairs(getarealist()) do
 +    for _,mp in pairs(area.mobprotos) do
 +        if mp.shop and mp.wealthpcnt> 100 then
 +            mdo("medit "..mp.vnum)
 +            olc("wealth 100")
 +            olc('done')
 +            cnt = cnt + 1
 +
 +        end
 +    end
 +end
 +local msg = "Updated wealth on "..cnt.." mobs via lua script"
 +log(msg, 'secure')
 +end
 </code> </code>
  
lua/scripting/examples/olcscripts.1426410246.txt.gz · Last modified: 2015/03/15 09:04 by vodur