第一类:如果在某种状态下施放某个技能,则会获得某个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=德鲁伊
暂无评论内容