eluna基本功能Lua模板

第一类:如果在某种状态下施放某个技能,则会获得某个buff,示例:
(, 下载次数: 1)
local function example(event, player, spell, skipCheck)

     local spellid = spell:GetEntry()  — 解释:这个是用来获取技能id的命令

     if spellid == 9999 and player:HasAura(8888)  then   — 解释:如果玩家施放id为9999的技能,而且玩家身上有id为8888的buff或状态,那么
     player:AddAura(7777,player)  — 解释:玩家获得一个id为7777的buff
     player:AddAura(6666,player)  — 解释:玩家获得一个id为6666的buff
     end
end

RegisterPlayerEvent(5,example)

—————————————————-分割线————————————————-

第二类:如果玩家施放某个技能时,生命值大于50%,则获得buff A;如果小于50%,则获得buff B,示例:
(, 下载次数: 0)
local function example(event, player, spell, skipCheck)

     local spellid = spell:GetEntry()  — 解释:这个是用来获取技能id的命令
     local playerhp = player:GetHealthPct()  — 解释:这个是用来获得玩家生命值比例的命令

     if spellid == 9999 and playerhp >= 50  then   — 解释:如果玩家施放id为9999的技能,而且玩家的生命大于等于50%,那么
     player:AddAura(7777,player)  — 解释:玩家获得一个id为7777的buff
     end

     if spellid == 9999 and playerhp < 50  then   — 解释:如果玩家施放id为9999的技能,而且玩家的生命小于50%,那么
     player:AddAura(6666,player)  — 解释:玩家获得一个id为6666的buff
     end

end

RegisterPlayerEvent(5,example)

—————————————————-分割线————————————————-

第三类:使用某个技能后,获得随机的buff,示例:
(, 下载次数: 0)
local function example(event, player, spell, skipCheck)

     local spellid = spell:GetEntry()  — 解释:这个是用来获取技能id的命令
     local randomspell1 = {8888,7777,6666,5555}  –解释:这里是候选的buff
     local randomspellid2 = randomspell1[math.random(4)] — 解释:buff有4个,就填4

     if spellid == 9999   then   — 解释:如果玩家施放id为9999的技能,那么
     player:AddAura(randomspellid2,player)  — 解释:玩家从4个buff中随机获得一个
     end

end

RegisterPlayerEvent(5,example)

—————————————————-分割线————————————————-

第四类:施放某个技能后,重置某个技能的冷却时间,示例:
(, 下载次数: 0)
local function example(event, player, spell, skipCheck)

     local spellid = spell:GetEntry()  — 解释:这个是用来获取技能id的命令

     if spellid == 9999 then    — 如果玩家施放id为9999的技能,那么
     player:ResetSpellCooldown(8888)  — 玩家重置id为8888的技能的冷却时间
     end

end

RegisterPlayerEvent(5,example)

注:这个Lua是100%触发的,示例中的圣光裁决只是有一定几率触发冷却,是因为我给圣光裁决加入了职业标识的缘故

—————————————————-分割线————————————————-

第五类:使用某个技能,学会/遗忘某个技能或者获得/删除某个物品,示例:

(, 下载次数: 0)

local function example(event, player, spell, skipCheck)

     local spellid = spell:GetEntry()  — 解释:这个是用来获取技能id的命令

     if spellid == 9999 then    — 如果玩家施放id为9999的技能,那么
     player:LearnSpell(8888)  — 玩家学会id为8888的技能
     player:LearnSpell(7777)  — 玩家学会id为7777的技能
     player:RemoveSpell(6666)  — 玩家遗忘id为6666的技能
     player:AddItem(5555,1)  — 玩家获得1个id为5555的物品
     player:RemoveItem(4444,1) — 玩家失去1个id为4444的物品
     end

end

RegisterPlayerEvent(5,example)

—————————————————-分割线————————————————-

第六类:玩家使用某个物品(该物品必须有技能)时,如果玩家有某个技能,则获得某个效果;如果没有,则获得另一个效果,示例:
(, 下载次数: 0)

local function example(event, player, spell, skipCheck)

     local spellid = spell:GetEntry()  — 解释:这个是用来获取技能id的命令

     if spellid == 9999  and player:HasSpell(8888) then    — 如果玩家使用带着id为9999的技能的物品且玩家已经学会了id为8888的技能,那么
     player:AddAura(7777,player) — 解释:玩家获得id为7777的buff
     end

     if spellid == 9999  and player:HasSpell(8888) == false then    — 如果玩家使用带着id为9999的技能的物品且玩家不会id为8888的技能,那么
     player:AddAura(6666,player) — 解释:玩家获得id为6666的buff
     end

end

RegisterPlayerEvent(5,example)

—————————————————-分割线————————————————-

第七类:玩家在某种状态下使用某个技能,玩家随机说话,示例:
(, 下载次数: 0)

local function example(event, player, spell, skipCheck)

     local spellid = spell:GetEntry()  — 解释:这个是用来获取技能id的命令
     local playerhp = player:GetHealthPct()  — 解释:这个是用来获取玩家生命值比例的命令
     local rpline1 = {
     “这不叫逃跑,这叫战略撤退”,
     “君子报仇,十年不晚”,
     “突然想起一件重要的事,我先走一步”}  — 解释:这里是候选台词
     local rpline2 = rpline1[math.random(3)]  — 解释:有3条候选台词就填3

     if spellid == 9999  and playerhp < 10 then    — 如果玩家使用带着id为9999的技能的物品且玩家的生命比例低于10%,那么
     player:Say(rpline2,0)  — 玩家从3条候选台词中随机挑选一条
     end

end

RegisterPlayerEvent(5,example)

—————————————————-分割线————————————————-

第八类:如果目标带着某个debuff死掉,那么亲手杀死这个目标的玩家获得buff,示例:
(, 下载次数: 0)
local function Bonus(event, killer, killed)

         if killed:HasAura(9999) then  — 解释:如果被杀死的目标带着id为9999的debuff,那么
         killer:AddAura(8888,killer)  –解释:杀死这个目标的玩家获得id为8888的buff
         end

end

RegisterPlayerEvent(7, example)

注:这个脚本其实是我投机取巧实现的,我将技能9999的第8列改为了0x100000(意思是死亡后这个buff仍然不消失);如果不修改第8列为0x100000,则无法触发这个lua

—————————————————-分割线————————————————-

第九类:如果玩家在某种状态下杀死一个比自己等级大的敌人,那么获得某个buff或物品,示例:
(, 下载次数: 0)

local function Bonus(event, killer, killed)

local lvdiff = killed:GetLevel() – killer:GetLevel()  — 解释:这是用来获取死亡的目标和玩家的等级差的命令

         if killer:HasAura(9999) and lvdiff > 0 then  — 解释:如果玩家有id为9999的buff且死亡的目标比玩家的等级高,那么
         killer:AddAura(8888,killer)  –解释:玩家获得id为8888的buff
         end

end

RegisterPlayerEvent(7, example)

—————————————————-分割线————————————————-

第十类:如果玩家在某种状态下杀死敌人,根据职业不同获得不同的buff,示例:
(, 下载次数: 0)

local function Bonus(event, killer, killed)

local playerclass = player:GetClass() — 解释:这是用来获取玩家的职业的

         if killer:HasAura(9999) and playerclass = 1 then  — 解释:如果玩家有id为9999的buff且职业为1(战士),那么
         killer:AddAura(8888,killer)  –解释:玩家获得id为8888的buff
         end

end

RegisterPlayerEvent(7, example)

注:1=战士,2=圣骑士,3=猎人,4=盗贼,5=牧师,6=死亡骑士,7=萨满,8=法师,9=术士,11=德鲁伊

© 版权声明
THE END
喜欢就支持一下吧
点赞15赞赏 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

Captcha Code

取消
昵称表情代码图片

    请登录后查看评论内容