模仿石器时代里恶魔宝石(原地石),这个道具比原地石要高级一些,可以自定义怪物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

发表评论
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。