|
发表于 2010-7-9 12:00:27
|
显示全部楼层
Aspb(魔法书):魔法书基本上就是一个容器,可以装下11种其它技能。它可以装主动技能、自动施放技能、被动技能以至英雄技能。第一点好处是即使它被禁用,其中的被动技能也能正常生效。因此它可以用来隐藏任何被动技能,帮你节省按钮栏位。另一好处是你可以在运行时添加和删除魔法书中的技能。方法是把想添加的技能放进另一本魔法书内添加给单位,然后将第二本魔法书禁用。只要两本魔法书的命令ID相同,后一本魔法书中的技能就会显示到前一本里。给每一个技能准备一本魔法书就能实现动态添加了。该技能还有一个优点是,里面的技能可以通过英雄的学习界面来升级。唯一的缺点是它们一开始就是1级而非0级。不过你可以在英雄学会第1级以后再添加魔法书给他。
复制代码 jass
function Learn_Actions takes nothing returns nothing
if GetLearnedSkillLevel() == 1 and GetLearnedSkill() == <hero skill> then
call UnitRemoveAbility(GetTriggerUnit(), GetLearnedSkill())
call UnitAddAbility(GetLearningUnit(), <adder spellbook ability>)
call MakeUnitAbilityPermanent(u, <adder spellbook ability>)
call MakeUnitAbilityPermanent(u, <ability inside spellbook>)
endif
endfunction
function Learn takes nothing returns nothing
local trigger t = CreateTrigger()
call TriggerRegisterAnyUnitEventBJ(t, EVENT_PLAYER_HERO_SKILL)
call TriggerAddAction(t, function Learn_Actions)
endfunction
当然,用于添加技能的魔法书必须一开始就对玩家禁用。另外要将魔法书的最少技能数和最大技能数设为一样来避免bug。不过这里还是存在一些小问题。你似乎无法用触发来使用书中的主动技能。而且在运行时被添加的技能不够法力施放也不会使整本书图标变蓝。不过这都是些小瑕疵,没什么大不了的。 |
|