模仿石器时代里恶魔宝石(原地石),这个道具比原地石要高级一些,可以自定义怪物ID,无论在任何地图下都可以遇到定义的怪物,并且没有使用次数限制,这个LUA主要是运用了循环事件和怪物数组和随机数,注释我就不给了,请自行研究,这应该是我第一次直接贴出这么多代码。这LUA还没有测试过,有问题请自己解决,学习还得靠自己。
function Loop(meindex) if char.Finditem(meindex, itemid) > -1 then if char.getWorkInt(meindex, "NPC临时1") == 0 then char.delFunctionPointer(meindex, "循环事件") return end if char.getWorkInt(meindex, "摆摊") >= 1 then char.delFunctionPointer(meindex, "循环事件") char.TalkToCli(meindex, -1, "不能在摆摊时使用", "黄色") return end if char.getWorkInt(meindex, "战斗") == 0 then if char.getInt(meindex, "地图号") == enemymap then if char.getWorkInt(meindex, "战斗") == 0 then rarepetid1 = {1794,1795,1796,1797,2943,2944,2945,2890,2891,2892,2893,2941} rarepetid2 = {333,310,324,367,1624,2786,2787,2788,2789,341,46,50,337,333,310,324,367,1624,2786,2787,2788,2789,341,46,50,337,2993,2994,2995,2830,2831,2832,2833,2834} rarepetid3 = {346,347,348,349,75,76,78,307,308,309,42,43,44,45,476,56,57,55,54,307,308,309,321,319,320,322,325,340,339,481,331,330,332,483} enemytable = {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1} irnd = math.random(1,10) for i = 1, irnd do rnd = math.random(10000) if rnd > 9950 then enemytable[i] = rarepetid1[math.random(table.getn(rarepetid1))] elseif rnd <= 1000 then enemytable[i] = rarepetid2[math.random(table.getn(rarepetid2))] else enemytable[i] = rarepetid3[math.random(table.getn(rarepetid3))] end end battleindex = battle.CreateVsEnemy(meindex, -2, enemytable) end else if char.getWorkInt(meindex, "战斗") == 0 then enemytable = {0, 0, 0, 0, 0, 0, 0, 0, 0 } battleindex = battle.CreateVsEnemy(meindex, -1, enemytable) end end end else char.delFunctionPointer(meindex, "循环事件") end end function encount(itemindex, charaindex, toindex, haveitemindex) if char.getWorkInt(charaindex, "摆摊") >= 1 then char.TalkToCli(charaindex, -1, "不能在摆摊时使用", "黄色") return end if char.getInt(charaindex, "地图号") ~= enemymap then char.TalkToCli(charaindex, -1, "只能在" .. map.getFloorName(enemymap) .. "上使用", "黄色") return end if char.getWorkInt(charaindex, "组队") ~= 2 then char.setFunctionPointer(charaindex, "循环事件", "Loop", "") char.setInt(charaindex, "循环事件时间", 2000) end item.UpdataItemOne(charaindex, itemindex) char.setFunctionPointer(charaindex, "登出事件", "CharLogout", "") char.setWorkInt(charaindex, "NPC临时1", 1) char.TalkToCli(charaindex, -1, "你感受到周边突然充满杀气!", "黄色") end function CharLogout( talkerindex ) char.delFunctionPointer(talkerindex, "循环事件") end function data() itemid = 21000 enemymap = 125 end function main() data() item.addLUAListFunction( "ITEM_ENCOUNT", "encount", "") end
发表评论
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。