Dota 2 Workshop Tools/Scripting/API/Global.LinkLuaModifier: Difference between revisions
RoyAwesome (talk | contribs) (Dota_Lebot push: Updated Page) |
Thunder4ik (talk | contribs) m (clean up, added Empty section (1), deadend tags) |
||
(11 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
{{Dead end|date=January 2024}} | |||
{{Note | This page is automatically generated. Any changes may be overwritten}} | {{Note | This page is automatically generated. Any changes may be overwritten}} | ||
== Function Description == | == Function Description == | ||
{{Empty section|date=January 2024}} | |||
== Chiness : == | |||
''' void LinkLuaModifier(string ''modifier_name'', string ''file_path'', int ''motion_controller_type'') ''' | |||
''Link a lua-defined modifier with the associated class. If the modifier is located within the root vscript folder, then the second argument (file_path) may be omitted链接一个已经用lua脚本定义的Modifier(类class)。如果这个Modifier脚本在根目录,第二个参数(文件路径)可以省略' | |||
例:我们现在要创造一个Buff,名字叫modifier_evo_buff用来直接给单位加一个Buff,那么我们新建立了一个modifier_evo_buff.lua文件放在hero文件夹下,文件内容 | |||
<source lang="lua"> | |||
--类名,跟文件名一致 | |||
modifier_evo_buff = class({}) | |||
--when a modifier created当Modifier被创建时 | |||
function modifier_evo_buff:OnCreated(table) | |||
--注意:这些函数是会被服务器和客户端同时执行,所以请判断(一般关键操作在服务器上,提示内容才在客户端上!) | |||
if not IsServer() then | |||
return | |||
end | |||
--set interval of think 设置计时器间隔 | |||
self:StartIntervalThink( 1 ) | |||
end | |||
--think callback 计时器回调函数 | |||
function modifier_evo_buff:OnIntervalThink( ) | |||
if not IsServer() then | |||
return | |||
end | |||
print("modifier_evo_buff:OnIntervalThink") | |||
end | |||
--return modifier's texture name返回该Buff图标资源名(这里用亚巴顿的第一个技能图标) | |||
function modifier_evo_buff:GetTexture( ) | |||
return "abaddon_death_coil" | |||
end | |||
--return modifier's effect name 该Buff携带的效果 | |||
function modifier_evo_buff:GetEffectName() | |||
return "particles/generic_gameplay/generic_stunned.vpcf" | |||
end | |||
--effect attached position 该Buff效果依附的位置 | |||
function modifier_evo_buff:GetEffectAttachType() | |||
return PATTACH_OVERHEAD_FOLLOW | |||
end | |||
--the others ,see API:CDOTA_Modifier_Lua 其他的复写函数请参考 API:CDOTA_Modifier_Lua | |||
</source> | |||
接下来在调用之前,声明链接(加载)这个Modifier | |||
<source lang="lua"> | |||
--参数1 Modifier名称(在本地化资源文本里,引动的就是这个,添加Modifier用的也是这个) | |||
--参数2 Modifier的lua文件所在的位置 | |||
--参数3 Modifier控制类型 | |||
LinkLuaModifier("modifier_evo_buff","hero/modifier_evo_buff", LUA_MODIFIER_MOTION_NONE) | |||
--If the modifier is located within the root vscript folder | |||
-- call LinkLuaModifier("modifier_evo_buff", LUA_MODIFIER_MOTION_NONE) | |||
</source> | |||
声明完就可以为单位添加一个这个Modifier了 | |||
<source lang="lua"> | |||
--entity为单位句柄 | |||
--技能为空 | |||
--Modifier名称(上面注册的那个) | |||
--其他参数列表(这里添加了一个永久持续的Modifier) | |||
entity:AddNewModifier(entity, nil, "modifier_evo_buff", { duration = -1}) | |||
</source> | |||
== English (google translation from chiness) == | |||
''' void LinkLuaModifier(string ''modifier_name'', string ''file_path'', int ''motion_controller_type'') ''' | ''' void LinkLuaModifier(string ''modifier_name'', string ''file_path'', int ''motion_controller_type'') ''' | ||
''Link a lua-defined modifier with the associated class. If the modifier is located within the root vscript folder, then the second argument (file_path) may be omitted' | ''Link a lua-defined modifier with the associated class. If the modifier is located within the root vscript folder, Modifier then the second argument (file_path) may be omitted a link with lua script has been defined (class class). If Modifier script in the root directory, and the second parameter (file path) may be omitted 'Example: We are now going to create a Buff, called modifier_evo_buff used to direct units plus a Buff, we established a new file modifier_evo_buff.lua on the hero folder, file contents' | ||
<source lang="lua"> | |||
--The class name, the file name is consistent with | |||
modifier_evo_buff = class ({}) | |||
--when a modifier created when the Modifier is created | |||
function modifier_evo_buff:OnCreated (table) | |||
--NOTE:These functions will be performed while the server and client, so please judge (usually a key operation on the server, only the prompts on the client!) | |||
if not IsServer () then | |||
return | |||
end | |||
--set interval of think sets the timer interval | |||
self:StartIntervalThink (1) | |||
end | |||
--think callback timer callback function | |||
function modifier_evo_buff:OnIntervalThink () | |||
if not IsServer () then | |||
return | |||
end | |||
print ( "modifier_evo_buff:OnIntervalThink") | |||
end | |||
--return modifier's texture name returns the Buff icon resource name (here with Abaddon first skill icon) | |||
function modifier_evo_buff:GetTexture () | |||
return "abaddon_death_coil" | |||
end | |||
--return modifier's effect name carries the Buff effect | |||
function modifier_evo_buff:GetEffectName () | |||
return "particles / generic_gameplay / generic_stunned.vpcf" | |||
end | |||
--effect attached position the Buff effect attachment position | |||
function modifier_evo_buff:GetEffectAttachType () | |||
return PATTACH_OVERHEAD_FOLLOW | |||
end | |||
--the others, see API:CDOTA_Modifier_Lua other replication functions refer to the API: CDOTA_Modifier_Lua | |||
</source> | |||
Before calling the next, the statement links (load) this Modifier | |||
<source lang="lua"> | <source lang="lua"> | ||
LinkLuaModifier( " | --1 Modifier parameter name (in the localized resource texts, to move is this, this is also used to add Modifier) | ||
--Location parameter 2 Modifier of lua files are located | |||
--Type of control parameters 3 Modifier | |||
LinkLuaModifier ( "modifier_evo_buff", "hero / modifier_evo_buff", LUA_MODIFIER_MOTION_NONE) | |||
--If The modifier is located within the root vscript folder | |||
-- Call LinkLuaModifier ( "modifier_evo_buff", LUA_MODIFIER_MOTION_NONE) | |||
</source> | </source> | ||
End statement that can add a unit of the Modifier | |||
<source lang="lua"> | |||
--entity units handle | |||
--Skills is empty | |||
--Modifier Name (registered above that) | |||
--Other parameter list (here we add a permanent ongoing Modifier) | |||
entity:AddNewModifier (entity, nil, "modifier_evo_buff", {duration = -1}) | |||
</source> | |||
== Parameters == | == Parameters == | ||
{| class="standard-table" style="width: 50%;" | {| class="standard-table" style="width: 50%;" | ||
Line 25: | Line 132: | ||
| string | | string | ||
| modifier_name | | modifier_name | ||
| | | 注册Modifier所使用的名称 | ||
|- | |- | ||
| string | | string | ||
| file_path | | file_path | ||
| | | lua文件所处的位置 | ||
|- | |- | ||
| int | | int | ||
| motion_controller_type | | motion_controller_type | ||
| | | Modifier控制类型(一般为LUA_MODIFIER_MOTION_NONE) | ||
|} | |} | ||
[[Category:Dota2Function]] | |||
[[Category:Global]] |
Latest revision as of 09:57, 21 January 2024



January 2024

Function Description
Chiness :
void LinkLuaModifier(string modifier_name, string file_path, int motion_controller_type)
Link a lua-defined modifier with the associated class. If the modifier is located within the root vscript folder, then the second argument (file_path) may be omitted链接一个已经用lua脚本定义的Modifier(类class)。如果这个Modifier脚本在根目录,第二个参数(文件路径)可以省略' 例:我们现在要创造一个Buff,名字叫modifier_evo_buff用来直接给单位加一个Buff,那么我们新建立了一个modifier_evo_buff.lua文件放在hero文件夹下,文件内容
--类名,跟文件名一致
modifier_evo_buff = class({})
--when a modifier created当Modifier被创建时
function modifier_evo_buff:OnCreated(table)
--注意:这些函数是会被服务器和客户端同时执行,所以请判断(一般关键操作在服务器上,提示内容才在客户端上!)
if not IsServer() then
return
end
--set interval of think 设置计时器间隔
self:StartIntervalThink( 1 )
end
--think callback 计时器回调函数
function modifier_evo_buff:OnIntervalThink( )
if not IsServer() then
return
end
print("modifier_evo_buff:OnIntervalThink")
end
--return modifier's texture name返回该Buff图标资源名(这里用亚巴顿的第一个技能图标)
function modifier_evo_buff:GetTexture( )
return "abaddon_death_coil"
end
--return modifier's effect name 该Buff携带的效果
function modifier_evo_buff:GetEffectName()
return "particles/generic_gameplay/generic_stunned.vpcf"
end
--effect attached position 该Buff效果依附的位置
function modifier_evo_buff:GetEffectAttachType()
return PATTACH_OVERHEAD_FOLLOW
end
--the others ,see API:CDOTA_Modifier_Lua 其他的复写函数请参考 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)
--If the modifier is located within the root vscript folder
-- call LinkLuaModifier("modifier_evo_buff", LUA_MODIFIER_MOTION_NONE)
声明完就可以为单位添加一个这个Modifier了
--entity为单位句柄
--技能为空
--Modifier名称(上面注册的那个)
--其他参数列表(这里添加了一个永久持续的Modifier)
entity:AddNewModifier(entity, nil, "modifier_evo_buff", { duration = -1})
English (google translation from chiness)
void LinkLuaModifier(string modifier_name, string file_path, int motion_controller_type)
Link a lua-defined modifier with the associated class. If the modifier is located within the root vscript folder, Modifier then the second argument (file_path) may be omitted a link with lua script has been defined (class class). If Modifier script in the root directory, and the second parameter (file path) may be omitted 'Example: We are now going to create a Buff, called modifier_evo_buff used to direct units plus a Buff, we established a new file modifier_evo_buff.lua on the hero folder, file contents'
--The class name, the file name is consistent with
modifier_evo_buff = class ({})
--when a modifier created when the Modifier is created
function modifier_evo_buff:OnCreated (table)
--NOTE:These functions will be performed while the server and client, so please judge (usually a key operation on the server, only the prompts on the client!)
if not IsServer () then
return
end
--set interval of think sets the timer interval
self:StartIntervalThink (1)
end
--think callback timer callback function
function modifier_evo_buff:OnIntervalThink ()
if not IsServer () then
return
end
print ( "modifier_evo_buff:OnIntervalThink")
end
--return modifier's texture name returns the Buff icon resource name (here with Abaddon first skill icon)
function modifier_evo_buff:GetTexture ()
return "abaddon_death_coil"
end
--return modifier's effect name carries the Buff effect
function modifier_evo_buff:GetEffectName ()
return "particles / generic_gameplay / generic_stunned.vpcf"
end
--effect attached position the Buff effect attachment position
function modifier_evo_buff:GetEffectAttachType ()
return PATTACH_OVERHEAD_FOLLOW
end
--the others, see API:CDOTA_Modifier_Lua other replication functions refer to the API: CDOTA_Modifier_Lua
Before calling the next, the statement links (load) this Modifier
--1 Modifier parameter name (in the localized resource texts, to move is this, this is also used to add Modifier)
--Location parameter 2 Modifier of lua files are located
--Type of control parameters 3 Modifier
LinkLuaModifier ( "modifier_evo_buff", "hero / modifier_evo_buff", LUA_MODIFIER_MOTION_NONE)
--If The modifier is located within the root vscript folder
-- Call LinkLuaModifier ( "modifier_evo_buff", LUA_MODIFIER_MOTION_NONE)
End statement that can add a unit of the Modifier
--entity units handle
--Skills is empty
--Modifier Name (registered above that)
--Other parameter list (here we add a permanent ongoing Modifier)
entity:AddNewModifier (entity, nil, "modifier_evo_buff", {duration = -1})
Parameters
Type | Name | Description |
---|---|---|
string | modifier_name | 注册Modifier所使用的名称 |
string | file_path | lua文件所处的位置 |
int | motion_controller_type | Modifier控制类型(一般为LUA_MODIFIER_MOTION_NONE) |