Dota 2 Workshop Tools/Scripting/API/Global.LinkLuaModifier
< Dota 2 Workshop Tools | Scripting | API
Jump to navigation
Jump to search

Function Description
void LinkLuaModifier(string modifier_name, string file_path, int motion_controller_type)
链接一个已经用lua脚本定义的Modifier(类class)。如果这个Modifier脚本在根目录,第二个参数(文件路径)可以省略' 例:我们现在要创造一个Buff,名字叫modifier_evo_buff用来直接给单位加一个Buff,那么我们新建立了一个modifier_evo_buff.lua文件放在hero文件夹下,文件内容
--类名,跟文件名一致
modifier_evo_buff = class({})
--返回该Buff图标资源名(这里用亚巴顿的第一个技能图标)
function modifier_evo_buff:GetTexture( )
return "abaddon_death_coil"
end
--该Buff携带的效果
function modifier_evo_buff:GetEffectName()
return "particles/generic_gameplay/generic_stunned.vpcf"
end
--该Buff效果依附的位置
function modifier_evo_buff:GetEffectAttachType()
return PATTACH_OVERHEAD_FOLLOW
end
--其他的复写函数请参考 API:CDOTA_Modifier_Lua
接下来在调用之前,声明链接(加载)这个Modifier
--参数1 Modifier名称(在本地化资源文本里,引动的就是这个,添加Modifier用的也是这个)
--参数2 Modifier的lua文件所在的位置
--参数3 Modifier控制类型
LinkLuaModifier("modifier_evo_buff","hero/modifier_evo_buff", LUA_MODIFIER_MOTION_NONE)
声明完就可以为单位添加一个这个Modifier了
--entity为单位句柄
--技能为空
--Modifier名称(上面注册的那个)
--其他参数列表(这里添加了一个永久持续的Modifier)
entity:AddNewModifier(entity, nil, "modifier_evo_buff", { duration = -1})
Parameters
Type | Name | Description |
---|---|---|
string | modifier_name | Name to be registered for the modifier, to be used when adding it. |
string | file_path | File path of the .lua file containing the code for the modifier. |
int | motion_controller_type | The type of motion controller(s) to be registered by this modifier |