Lua接口/帮会相关

来自天龙知识库
雪舞留言 | 贡献2026年9月12日 (六) 13:54的版本 (维护服务端 Lua 接口:核对参数、返回值、边界条件与调用示例)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳到导航跳到搜索

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

查询帮会信息、帮会操作、帮战与帮会城市。帮会用帮会编号(guildID)标识,帮会城市用城市场景编号(citySceneId)标识。

帮会查询

接口 参数与返回
GetHumanGuildID sceneId, selfId → 所属帮会编号;失败 -1。
GetGuildLevel sceneId, selfId → 帮会等级缓存;失败 -1。
GetGuildPos sceneId, selfId → 当前帮会职位;0 或 -1。
LuaFnGetGuildAppointTime sceneId, selfId → 就任当前职位经过的分钟数;失败 -1。
IsGuildPosLongEnough sceneId, selfId → 任职是否满七天;失败 -1。
GetFactionJoinTime sceneId, selfId → 加入帮会时刻的 ANSI 时间;0 或 -1。
LuaFnGetHumanGuildLeagueID sceneId, selfId → 帮会联赛编号;失败 -1。
LuaFnGetHumanGuildLeagueName sceneId, selfId → 帮会联赛名称;失败 -1。

GetGuildPos 返回 0 表示无职位(合法值),失败才是 -1。

荣誉

接口 参数与返回
GetHonour sceneId, selfId → 帮会荣誉值(任务数据 263 号槽);失败 -1。
SetHonour sceneId, selfId, honour → 1 / -1。设置并刷新玩家详细属性。

帮会荣誉值存放在任务数据 263 号槽,SetHonour 会刷新玩家详细属性。

帮会操作

接口 参数与返回
GuildCreate sceneId, selfId, targetId;无返回值。显示创建帮会界面。
GuildList sceneId, selfId, targetId;无返回值。请求帮会列表。
GuildPromoteToChief sceneId, selfId;无返回值。副帮主发起帮主推举。
LuaFnDrawGuildPositionName sceneId, selfId, arg3;无返回值。请求 World 发放职位称号。
LuaFnComMissComplete sceneId, selfId → 返回值;失败 -1。通知 World 完成商业任务。
GetCityGuildID sceneId, selfId, citySceneId → 城市场景所属帮会编号;失败 -1。

这几个帮会操作接口都**无返回值**(除 LuaFnComMissComplete)。

帮战

接口 参数与返回
GetGuildWarPoint sceneId, pointIndex → 帮战积分;失败 -1。
GetGuildBattleValue sceneId, selfId, battleFlag → 帮战统计值;失败 -1。
SetGuildBattleValue sceneId, selfId, battleFlag, battleValue;无返回值。
GetHumanGuildInt sceneId, selfId, arrayIndex → 临时整数数组值;失败 -1。
SetHumanGuildInt sceneId, selfId, arrayIndex, value → 1 / -1。
GetGuildIntNum / SetGuildIntNum arg1, guildID, arrayIndex[, num] → 帮战记录整数参数;部分分支无返回值。
NotifyGuildBattle sceneId, selfId, flagGuild, guildIDAttack, guildIDDefence;无返回值。
NotifyBattleScore sceneId, selfId;无返回值。

GetGuildIntNumSetGuildIntNum 的第一个参数不是 sceneId,按实际用途传入。

帮会城市

接口 参数与返回
CityApply sceneId, selfId;无返回值。请求可申请的城市入口组。
CityCreate sceneId, selfId, citySceneId;无返回值。
CityDelete sceneId, selfId, citySceneId;无返回值。
CheckPlayerCanApplyCity sceneId, selfId → 1 / 0 / -1。
CityGetSelfCityID sceneId, selfId → 所属城市场景编号;失败 -1。
CityGetBuildingLevel sceneId, selfId, citySceneId, buildingType → 建筑等级;0 或 -1。
CityGetProgress sceneId, selfId, citySceneId, progressType → 建设进度;0 或 -1。
CityIncProgress sceneId, selfId, citySceneId, progressType;无返回值。
CityGetMaintainStatus sceneId, selfId, citySceneId → 维护状态;0 或 -1。

城市创建、删除、进度增加都通过 WorldServer 异步完成,接口本身无返回值。

城市属性

接口 参数与返回
CityGetAttr sceneId, selfId, attrType → 城市脚本属性;0 或 -1。
CitySetAttr sceneId, selfId, attrType, attrValue;无返回值。
CityChangeAttr sceneId, selfId, attrType, attrChangedValue → 帮贡修改返回 1、-1 或无返回值。
CanCitySetAttr sceneId, selfId, attrType → 是否允许异步修改;0 或 -1。

CityGetAttr 的 attrType:0-5 为六项帮会发展度、6 为个人帮贡、7 为帮会资金。CityChangeAttr 的返回值因属性类型而异。

城市升级与传送

接口 参数与返回
CityBeginLevelUpBuilding sceneId, selfId, citySceneId → 部分分支无返回值。
CitySuccessLevelUpBuilding sceneId, selfId, citySceneId, buildingIndex, buildingLevel;无返回值。
CityInBuildingLevelUp sceneId, selfId, citySceneId → 0 或 -1。
CityMoveToPort sceneId, selfId;无返回值。
CityMoveToScene sceneId, selfId, targetSceneId, posX, posZ;无返回值。

CitySuccessLevelUpBuilding 需要 5 个参数,通知 World 升级成功。

城市名称与查询

接口 参数与返回
LuaFnCityGetNameBySceneId citySceneId → 城市名称;失败 -1。
LuaFnCityGetDefaultNameBySceneId citySceneId → 配置表默认名称;失败 -1。
CityGetCityName sceneId, selfId, citySceneId → 入口场景缓存的城市名称;失败空串或 -1。
CityExistByIndex sceneId, selfId, portSceneId, cityIndex → 城市是否存在;0 或 -1。
CityGetNameByIndex sceneId, selfId, portSceneId, cityIndex → 城市占位名称;空串或 -1。
LuaFnAddGuildCollectNum sceneId, selfId, nValue → 1 / -1。

LuaFnCityGetNameBySceneIdLuaFnCityGetDefaultNameBySceneId 只传城市场景编号。

脚本锁与任务管理

接口 参数与返回
IsLocked sceneId, selfId, lockType → 64 位脚本锁标志;0 或 -1。
Lock sceneId, selfId, lockType, iValue;无返回值。
OpenCityMissonMgr sceneId, selfId;无返回值。
GetCityMissonValue sceneId, selfId, missType, valueType → 控制值或剩余额度;-99 或 -1。
ChangeCityMissonValue sceneId, selfId, valueType, value → 0 或 -1。

GetCityMissonValue 失败返回 **-99 或 -1**(-99 是特殊哨兵)。

检查帮会并申请城市

local guildId = GetHumanGuildID(sceneId, selfId)
if type(guildId) == "number" and guildId ~= -1 then
    local canApply = CheckPlayerCanApplyCity(sceneId, selfId)
    if type(canApply) == "number" and canApply == 1 then
        CityApply(sceneId, selfId)
    end
end

CheckPlayerCanApplyCity 返回 1 表示满足条件,用 == 1 判断。

读取帮会等级与职位

local level = GetGuildLevel(sceneId, selfId)
if type(level) == "number" and level ~= -1 then
    local pos = GetGuildPos(sceneId, selfId)
    -- pos 为 0 表示无职位(合法值)
end

GetGuildPos 返回 0 是无职位的合法值,只有 -1 才是失败。

相关主题

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

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

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