如何写一个召唤单位的技能
时间: 2023-08-08 20:14:10 浏览: 47
写一个召唤单位的技能需要以下步骤:
1. 定义技能的属性,例如:技能名称、技能冷却时间、技能魔法消耗等等。
2. 编写技能的逻辑,例如:召唤单位的属性、召唤单位的行为等等。
3. 在游戏中添加技能,例如:将技能添加到英雄的技能栏中、设置技能的热键等等。
下面是一个简单的LUA代码示例,展示如何编写一个召唤单位的技能:
```lua
-- 定义技能属性
local skillName = "SummonBear"
local skillCooldown = 30
local skillManaCost = 100
-- 定义召唤单位的属性
local bearName = "npc_dota_unit_bear"
local bearTeam = DOTA_TEAM_GOODGUYS
local bearDuration = 60
-- 定义技能逻辑
function SummonBear(keys)
local caster = keys.caster
local playerID = caster:GetPlayerOwnerID()
local bearPosition = caster:GetAbsOrigin() + RandomVector(100)
-- 召唤单位
local bear = CreateUnitByName(bearName, bearPosition, true, caster, caster, bearTeam)
-- 设置单位的归属玩家
bear:SetControllableByPlayer(playerID, true)
-- 设置单位的持续时间
bear:AddNewModifier(caster, nil, "modifier_kill", {duration = bearDuration})
end
-- 添加技能到英雄的技能栏中
function AddSummonBearSkill(hero)
local summonBearSkill = hero:AddAbility(skillName)
summonBearSkill:SetLevel(1)
summonBearSkill:SetCooldown(skillCooldown)
summonBearSkill:SetManaCost(skillManaCost)
-- 设置技能热键
local hotkey = "W"
summonBearSkill:SetAbilityIndex(1)
summonBearSkill:SetBinding(hotkey)
end
```
在上面的代码中,我们首先定义了技能的属性,例如技能名称、技能冷却时间、技能魔法消耗等等。然后,我们定义了召唤单位的属性,例如召唤单位的名称、召唤单位的归属队伍、召唤单位的持续时间等等。接下来,我们编写了技能的逻辑,即当技能触发时,召唤一个单位,并设置单位的属性和行为。最后,我们添加了技能到英雄的技能栏中,并设置了技能的热键。