[GP] skillitem.lua--技能道具

[复制链接]
发表于 5 天前 | 显示全部楼层 |阅读模式
local skillgold = 5000 --支付费用
local skilltab = {}
--skilltab [itemid] = skillid  道具对应的技能编号
skilltab[50275] = 67 -- 洁净魔法
skilltab[50276] = 61 -- 补血魔法
skilltab[50277] = 62 -- 强力补血魔法
skilltab[50278] = 64 -- 恢复魔法
skilltab[50279] = 65 -- 强力恢复魔法
skilltab[50280] = 96 -- 暗杀
skilltab[51061] = 66 -- 超强恢复魔法
skilltab[51062] = 63 -- 超强补血魔法
skilltab[79651] = 72 -- 偷窃
skilltab[79652] = 94 -- 混乱攻击
skilltab[79653] = 44 -- 超强中毒魔法
skilltab[79654] = 45 -- 超强昏睡魔法
skilltab[79655] = 46 -- 超强石化魔法
skilltab[79656] = 47 -- 超强酒醉魔法
skilltab[79657] = 48 -- 超强混乱魔法
skilltab[79658] = 49 -- 超强遗忘魔法

Global_Reg.RegItemUseEvent ("skill_item");--创建一个所有玩家双击道具栏物品就会触发的Lua函数。

function skill_item(player, Itemindex)
        local itemid = Item.GetData(Itemindex, %道具_ID%);
--                                NLG.SystemMessage(player,"双击有效,itemid="..itemid..",类型="..type(itemid)..",")
        if skilltab[itemid] then
                local gold = Char.GetData(player,53)--判断魔币
                if gold >= skillgold then --若魔币够
                        local a = Char.addSkill(player, skilltab[itemid])--添加技能函数
                        if  a >= 0 then--a>0 为成功
                                        Char.SetData(player,53,gold-skillgold)
                                        NLG.DelItem(player, itemid, 1)
                                        NLG.UpChar(player)
                                        NLG.SystemMessage(player,"学习技能成功,扣取"..skillgold.."魔币")
                        elseif(a == -1)then --失败
                                NLG.SystemMessage(player,"学习失败");
                                return 1
                        elseif(a == -2)then --已学过
                                NLG.SystemMessage(player,"学习失败,此技能已学习过");
                                return 1
                        elseif(a == -3)then --技能栏不足
                                NLG.SystemMessage(player,"学习失败,技能栏不足");
                                return 1
                        elseif(a == -4)then --职业不能学习
                                NLG.SystemMessage(player,"学习失败,此职业不能学习此技能");
                                return 1
                        end
                else
                        NLG.SystemMessage(player,"学习失败,学习该技能需要"..skillgold.."魔币") --不够魔币
                        return 1
                end
        end
        return 0--通过
end

回复

使用道具 举报

快速回复 返回顶部 返回列表