Lua接口/状态效果:修订间差异

来自天龙知识库
跳到导航跳到搜索
雪舞​(留言 | 贡献)
维护服务端 Lua 接口:核对参数、返回值、边界条件与调用示例
Waylee​(留言 | 贡献)
维护服务端 Lua 接口:核对参数、返回值、边界条件与调用示例
第1行: 第1行:
__NOTOC__
__NOTOC__
<div class="lua-reference" style="max-width:1200px;margin:0 auto;line-height:1.8;color:#29343a;font-family:Arial,'Microsoft YaHei',sans-serif;letter-spacing:0;overflow-wrap:anywhere;">
<div class="lua-reference">
[[首页|首页]] · [[Lua接口/服务端函数索引|服务端接口]] · [[Lua接口/服务端调用约定|调用约定]]
[[首页|首页]] · [[Lua接口/服务端函数索引|服务端接口]] · [[Lua接口/服务端调用约定|调用约定]]


第6行: 第6行:


== 查询 ==
== 查询 ==
{| class="wikitable" style="width:100%;table-layout:fixed;border-collapse:collapse;font-size:13px;"
{| class="wikitable"
! scope="col" style="text-align:left;background:#edf3f2;padding:8px;" | 接口
! scope="col" | 接口
! scope="col" style="text-align:left;background:#edf3f2;padding:8px;" | 参数与返回
! scope="col" | 参数与返回
|-
|-
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/LuaFnHaveImpactOfSpecificDataIndex|LuaFnHaveImpactOfSpecificDataIndex]]
| [[Lua接口/服务端/LuaFnHaveImpactOfSpecificDataIndex|LuaFnHaveImpactOfSpecificDataIndex]]
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId, dataIndex</code> → 是否拥有该效果;失败 -1。
| <code>sceneId, selfId, dataIndex</code> → 是否拥有该效果;失败 -1。
|-
|-
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/LuaFnHaveImpactInSpecificCollection|LuaFnHaveImpactInSpecificCollection]]
| [[Lua接口/服务端/LuaFnHaveImpactInSpecificCollection|LuaFnHaveImpactInSpecificCollection]]
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId, collectionId</code> → 是否拥有集合中任一效果;失败 -1。
| <code>sceneId, selfId, collectionId</code> → 是否拥有集合中任一效果;失败 -1。
|}
|}
[[Lua接口/服务端/LuaFnHaveImpactInSpecificCollection|LuaFnHaveImpactInSpecificCollection]] 只要角色拥有该集合中的**任一**效果即返回真值,用于判断一组互斥或同类效果。
[[Lua接口/服务端/LuaFnHaveImpactInSpecificCollection|LuaFnHaveImpactInSpecificCollection]] 只要角色拥有该集合中的**任一**效果即返回真值,用于判断一组互斥或同类效果。


== 施加 ==
== 施加 ==
{| class="wikitable" style="width:100%;table-layout:fixed;border-collapse:collapse;font-size:13px;"
{| class="wikitable"
! scope="col" style="text-align:left;background:#edf3f2;padding:8px;" | 接口
! scope="col" | 接口
! scope="col" style="text-align:left;background:#edf3f2;padding:8px;" | 参数与返回
! scope="col" | 参数与返回
|-
|-
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/LuaFnSendSpecificImpactToUnit|LuaFnSendSpecificImpactToUnit]]
| [[Lua接口/服务端/LuaFnSendSpecificImpactToUnit|LuaFnSendSpecificImpactToUnit]]
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, nSelfID, nSenderID, nTargetID, nImpactDataIndex, nDelayTime</code> → 返回值;失败 -1。
| <code>sceneId, nSelfID, nSenderID, nTargetID, nImpactDataIndex, nDelayTime</code> → 返回值;失败 -1。
|-
|-
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/LuaFnSendSpecificImpactBySkillToUnit|LuaFnSendSpecificImpactBySkillToUnit]]
| [[Lua接口/服务端/LuaFnSendSpecificImpactBySkillToUnit|LuaFnSendSpecificImpactBySkillToUnit]]
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId, senderId, targetId, impactDataIndex, delayTime</code> → 返回值;失败 -1。
| <code>sceneId, selfId, senderId, targetId, impactDataIndex, delayTime</code> → 返回值;失败 -1。
|-
|-
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/LuaFnSendImpactAroundPosition|LuaFnSendImpactAroundPosition]]
| [[Lua接口/服务端/LuaFnSendImpactAroundPosition|LuaFnSendImpactAroundPosition]]
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId, x, z, radius, standFlag, levelRequire, effectCount, impact, delayTime</code> → 10 个参数;失败 -1。
| <code>sceneId, selfId, x, z, radius, standFlag, levelRequire, effectCount, impact, delayTime</code> → 10 个参数;失败 -1。
|}
|}
[[Lua接口/服务端/LuaFnSendSpecificImpactToUnit|LuaFnSendSpecificImpactToUnit]] 与 [[Lua接口/服务端/LuaFnSendSpecificImpactBySkillToUnit|LuaFnSendSpecificImpactBySkillToUnit]] 都是 6 个参数,区别是后者按战斗结算规则处理(命中、抗性等)。[[Lua接口/服务端/LuaFnSendImpactAroundPosition|LuaFnSendImpactAroundPosition]] 需要 10 个参数,在指定坐标按半径和筛选条件对范围内角色施加效果。
[[Lua接口/服务端/LuaFnSendSpecificImpactToUnit|LuaFnSendSpecificImpactToUnit]] 与 [[Lua接口/服务端/LuaFnSendSpecificImpactBySkillToUnit|LuaFnSendSpecificImpactBySkillToUnit]] 都是 6 个参数,区别是后者按战斗结算规则处理(命中、抗性等)。[[Lua接口/服务端/LuaFnSendImpactAroundPosition|LuaFnSendImpactAroundPosition]] 需要 10 个参数,在指定坐标按半径和筛选条件对范围内角色施加效果。


== 移除 ==
== 移除 ==
{| class="wikitable" style="width:100%;table-layout:fixed;border-collapse:collapse;font-size:13px;"
{| class="wikitable"
! scope="col" style="text-align:left;background:#edf3f2;padding:8px;" | 接口
! scope="col" | 接口
! scope="col" style="text-align:left;background:#edf3f2;padding:8px;" | 参数与返回
! scope="col" | 参数与返回
|-
|-
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/LuaFnCancelSpecificImpact|LuaFnCancelSpecificImpact]]
| [[Lua接口/服务端/LuaFnCancelSpecificImpact|LuaFnCancelSpecificImpact]]
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, nSelfID, nImpactDataIndex</code> → 返回值;失败 -1。
| <code>sceneId, nSelfID, nImpactDataIndex</code> → 返回值;失败 -1。
|-
|-
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/LuaFnDispelAllHostileImpacts|LuaFnDispelAllHostileImpacts]]
| [[Lua接口/服务端/LuaFnDispelAllHostileImpacts|LuaFnDispelAllHostileImpacts]]
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId</code> → 部分分支无返回值。
| <code>sceneId, selfId</code> → 部分分支无返回值。
|-
|-
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/LuaFnCancelMoveSpeedBuff|LuaFnCancelMoveSpeedBuff]]
| [[Lua接口/服务端/LuaFnCancelMoveSpeedBuff|LuaFnCancelMoveSpeedBuff]]
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId</code> → 1 成功、-1 失败。
| <code>sceneId, selfId</code> → 1 成功、-1 失败。
|-
|-
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | [[Lua接口/服务端/LuaFnIsModelOrMount|LuaFnIsModelOrMount]]
| [[Lua接口/服务端/LuaFnIsModelOrMount|LuaFnIsModelOrMount]]
| style="padding:8px;vertical-align:top;overflow-wrap:anywhere;" | <code style="white-space:normal;overflow-wrap:anywhere;">sceneId, selfId</code> → 是否有模型替换或坐骑修正;失败 -1。
| <code>sceneId, selfId</code> → 是否有模型替换或坐骑修正;失败 -1。
|}
|}
[[Lua接口/服务端/LuaFnCancelSpecificImpact|LuaFnCancelSpecificImpact]] 移除指定编号的效果,[[Lua接口/服务端/LuaFnDispelAllHostileImpacts|LuaFnDispelAllHostileImpacts]] 清除全部敌对效果(部分分支无返回值)。[[Lua接口/服务端/LuaFnIsModelOrMount|LuaFnIsModelOrMount]] 判断人物当前是否具有模型替换或坐骑模型修正。
[[Lua接口/服务端/LuaFnCancelSpecificImpact|LuaFnCancelSpecificImpact]] 移除指定编号的效果,[[Lua接口/服务端/LuaFnDispelAllHostileImpacts|LuaFnDispelAllHostileImpacts]] 清除全部敌对效果(部分分支无返回值)。[[Lua接口/服务端/LuaFnIsModelOrMount|LuaFnIsModelOrMount]] 判断人物当前是否具有模型替换或坐骑模型修正。


== 查询并移除效果 ==
== 查询并移除效果 ==
<pre style="white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;line-height:1.7;padding:12px;background:#f5f7f8;border:1px solid #dbe3e6;">local has = LuaFnHaveImpactOfSpecificDataIndex(sceneId, selfId, dataIndex)
<pre>local has = LuaFnHaveImpactOfSpecificDataIndex(sceneId, selfId, dataIndex)
if type(has) == "number" and has ~= -1 then
if type(has) == "number" and has ~= -1 then
     LuaFnCancelSpecificImpact(sceneId, selfId, dataIndex)
     LuaFnCancelSpecificImpact(sceneId, selfId, dataIndex)
第61行: 第61行:


== 施加效果 ==
== 施加效果 ==
<pre style="white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;line-height:1.7;padding:12px;background:#f5f7f8;border:1px solid #dbe3e6;">LuaFnSendSpecificImpactToUnit(sceneId, selfId, senderId, targetId, impactDataIndex, delayTime)
<pre>LuaFnSendSpecificImpactToUnit(sceneId, selfId, senderId, targetId, impactDataIndex, delayTime)
-- 6 个参数;失败 -1</pre>
-- 6 个参数;失败 -1</pre>
[[Lua接口/服务端/LuaFnSendSpecificImpactToUnit|LuaFnSendSpecificImpactToUnit]] 需要 6 个参数。要按战斗结算规则(含命中与抗性)施加,改用 [[Lua接口/服务端/LuaFnSendSpecificImpactBySkillToUnit|LuaFnSendSpecificImpactBySkillToUnit]]。
[[Lua接口/服务端/LuaFnSendSpecificImpactToUnit|LuaFnSendSpecificImpactToUnit]] 需要 6 个参数。要按战斗结算规则(含命中与抗性)施加,改用 [[Lua接口/服务端/LuaFnSendSpecificImpactBySkillToUnit|LuaFnSendSpecificImpactBySkillToUnit]]。
第99行: 第99行:
[[Lua接口/函数不存在|函数不存在或提示 nil]] · [[Lua接口/参数类型与顺序|参数类型与顺序]] · [[Lua接口/返回值判断|返回值判断]] · [[Lua接口/对象ID与GUID|对象 ID 与 GUID]]
[[Lua接口/函数不存在|函数不存在或提示 nil]] · [[Lua接口/参数类型与顺序|参数类型与顺序]] · [[Lua接口/返回值判断|返回值判断]] · [[Lua接口/对象ID与GUID|对象 ID 与 GUID]]


<div style="margin-top:20px;padding-top:10px;border-top:1px solid #dbe3e6;color:#657078;font-size:12px;">本页函数签名与返回约定依据当前服务端注册表整理;sceneId、selfId 由实际回调提供,业务枚举、属性类型编号与运行效果需要实测。</div>
<div class="lua-note">本页函数签名与返回约定依据当前服务端注册表整理;sceneId、selfId 由实际回调提供,业务枚举、属性类型编号与运行效果需要实测。</div>


</div>
</div>

2026年9月19日 (六) 16:59的版本

首页 · 服务端接口 · 调用约定

查询、施加与移除角色单位的增益 / 减益(Impact)效果。效果编号(impactDataIndex)来自效果表,集合编号(collectionId)来自效果集合配置。

查询

接口 参数与返回
LuaFnHaveImpactOfSpecificDataIndex sceneId, selfId, dataIndex → 是否拥有该效果;失败 -1。
LuaFnHaveImpactInSpecificCollection sceneId, selfId, collectionId → 是否拥有集合中任一效果;失败 -1。

LuaFnHaveImpactInSpecificCollection 只要角色拥有该集合中的**任一**效果即返回真值,用于判断一组互斥或同类效果。

施加

接口 参数与返回
LuaFnSendSpecificImpactToUnit sceneId, nSelfID, nSenderID, nTargetID, nImpactDataIndex, nDelayTime → 返回值;失败 -1。
LuaFnSendSpecificImpactBySkillToUnit sceneId, selfId, senderId, targetId, impactDataIndex, delayTime → 返回值;失败 -1。
LuaFnSendImpactAroundPosition sceneId, selfId, x, z, radius, standFlag, levelRequire, effectCount, impact, delayTime → 10 个参数;失败 -1。

LuaFnSendSpecificImpactToUnit 与 LuaFnSendSpecificImpactBySkillToUnit 都是 6 个参数,区别是后者按战斗结算规则处理(命中、抗性等)。LuaFnSendImpactAroundPosition 需要 10 个参数,在指定坐标按半径和筛选条件对范围内角色施加效果。

移除

接口 参数与返回
LuaFnCancelSpecificImpact sceneId, nSelfID, nImpactDataIndex → 返回值;失败 -1。
LuaFnDispelAllHostileImpacts sceneId, selfId → 部分分支无返回值。
LuaFnCancelMoveSpeedBuff sceneId, selfId → 1 成功、-1 失败。
LuaFnIsModelOrMount sceneId, selfId → 是否有模型替换或坐骑修正;失败 -1。

LuaFnCancelSpecificImpact 移除指定编号的效果,LuaFnDispelAllHostileImpacts 清除全部敌对效果(部分分支无返回值)。LuaFnIsModelOrMount 判断人物当前是否具有模型替换或坐骑模型修正。

查询并移除效果

local has = LuaFnHaveImpactOfSpecificDataIndex(sceneId, selfId, dataIndex)
if type(has) == "number" and has ~= -1 then
    LuaFnCancelSpecificImpact(sceneId, selfId, dataIndex)
end

LuaFnHaveImpactOfSpecificDataIndex 失败返回 -1,先判类型再排除 -1。

施加效果

LuaFnSendSpecificImpactToUnit(sceneId, selfId, senderId, targetId, impactDataIndex, delayTime)
-- 6 个参数;失败 -1

LuaFnSendSpecificImpactToUnit 需要 6 个参数。要按战斗结算规则(含命中与抗性)施加,改用 LuaFnSendSpecificImpactBySkillToUnit。

相关主题

服务端调用约定 · 服务端调用示例 · 服务端函数索引

函数不存在或提示 nil · 参数类型与顺序 · 返回值判断 · 对象 ID 与 GUID

本页函数签名与返回约定依据当前服务端注册表整理;sceneId、selfId 由实际回调提供,业务枚举、属性类型编号与运行效果需要实测。