diff --git a/lua/miniworld/config.json b/lua/miniworld/config.json index f47fa46..c28249b 100644 --- a/lua/miniworld/config.json +++ b/lua/miniworld/config.json @@ -1,13 +1,6 @@ { "$schema": "https://raw.githubusercontent.com/LuaLS/LLS-Addons/main/schemas/addon_config.schema.json", "name": "Miniworld Lua Script", - "files": [ - "starter.zh-CN.lua", - "event.zh-CN.lua", - "block.zh-CN.lua", - "game-rule.zh-CN.lua", - "world.zh-CN.lua" - ], "settings": { "Lua.runtime.version": "Lua 5.1" } diff --git a/lua/miniworld/library/actor.zh-CN.lua b/lua/miniworld/library/actor.zh-CN.lua new file mode 100644 index 0000000..34bd629 --- /dev/null +++ b/lua/miniworld/library/actor.zh-CN.lua @@ -0,0 +1,482 @@ +---迷你世界脚本API语法库,实体管理。 +--- +---[查看文档](https://dev-wiki.mini1.cn/cyclopdeia?wikiMenuId=3&wikiId=1358) +---@meta + +---实体管理。 +--- +---[查看文档](https://dev-wiki.mini1.cn/cyclopdeia?wikiMenuId=3&wikiId=1358) +---@class ActorLib +Actor = {} + +---判断 Actor 是否为玩家。 +---@param objid number # Actor ID +---@return ErrorCode # `0` 表示是,`1001` 表示不是 +function Actor:isPlayer(objid) end + +---判断 Actor 是否为怪物。 +---@param objid number # Actor ID +---@return ErrorCode # `0` 表示是,`1001` 表示不是 +function Actor:isMob(objid) end + +---获取 Actor 类型。 +---@param objid number # Actor ID +---@return ErrorCode, ObjType # Actor 类型 +function Actor:getObjType(objid) end + +---判断 Actor 是否在空中。 +---@param objid number # Actor ID +---@return ErrorCode, boolean # 是否在空中 +function Actor:isInAir(objid) end + +---获取 Actor 位置。 +---@param objid number # Actor ID +---@return ErrorCode, number, number, number # Actor 位置 +function Actor:getPosition(objid) end + +---设置 Actor 位置。 +---@param objid number # Actor ID +---@param x number # X 坐标 +---@param y number # Y 坐标 +---@param z number # Z 坐标 +---@return ErrorCode +function Actor:setPosition(objid, x, y, z) end + +---使 Actor 跳跃。 +---@param objid number # Actor ID +---@return ErrorCode +function Actor:jump(objid) end + +---使 Actor 击败自己。 +---@param objid number # Actor ID +---@return ErrorCode +function Actor:killSelf(objid) end + +---获取 Actor 当前朝向。 +---@param objid number # Actor ID +---@return ErrorCode, FaceDirection # 当前朝向 +function Actor:getCurPlaceDir(objid) end + +---自动寻路至指定 Actor。 +---@param self_objid number # Actor ID +---@param target_objid number # 目标 Actor ID +---@param speed number # 速度系数 +---@return ErrorCode +function Actor:tryMoveToActor(self_objid, target_objid, speed) end + +---自动寻路至指定位置。 +---@param objid number # Actor ID +---@param x number # X 坐标 +---@param y number # Y 坐标 +---@param z number # Z 坐标 +---@param speed number # 速度系数 +---@return ErrorCode +function Actor:tryMoveToPos(objid, x, y, z, speed) end + +---给 Actor 增加生命值。 +---@param objid number # Actor ID +---@param hp number # 增加的生命值 +---@return ErrorCode +function Actor:addHP(objid, hp) end + +---获取 Actor 当前生命值。 +---@param objid number # Actor ID +---@return ErrorCode, number # 当前生命值 +function Actor:getHP(objid) end + +---获取 Actor 生命值上限。 +---@param objid number # Actor ID +---@return ErrorCode, number # 生命值上限 +function Actor:getMaxHP(objid) end + +---给 Actor 增加氧气值。 +---@param objid number # Actor ID +---@param oxygen number # 氧气值 +---@return ErrorCode +function Actor:addOxygen(objid, oxygen) end + +---获取 Actor 当前氧气值。 +---@param objid number # Actor ID +---@return ErrorCode, number # 当前氧气值 +function Actor:getOxygen(objid) end + +---给装备添加附魔。 +---@param objid number # 装备穿戴者 Actor ID +---@param slot EquipSlotType # 装备栏 +---@param enchantId number # 附魔 ID +---@param enchantLevel number # 附魔等级 +---@return ErrorCode +function Actor:addEnchant(objid, slot, enchantId, enchantLevel) end + +---给装备删除附魔。 +---@param objid number # 装备穿戴者 Actor ID +---@param slot EquipSlotType # 装备栏 +---@param enchantId number # 附魔 ID +---@return ErrorCode +function Actor:removeEnchant(objid, slot, enchantId)end + +---寻找附近指定范围内指定 ID 的方块。 +---@param objid number # 寻找者 Actor ID +---@param blockid number # 方块 ID +---@param blockRange number # 范围大小 +---@return ErrorCode +function Actor:findNearestBlock(objid, blockid, blockRange) end + +---设置 Actor 在水平面内的旋转角度。 +---@param objid number # Actor ID +---@param yaw number # 旋转角度 +---@return ErrorCode +function Actor:setFaceYaw(objid, yaw) end + +---获取 Actor 在水平面内的旋转角度。 +---@param objid number # Actor ID +---@return ErrorCode, number # 在水平面内的旋转角度 +function Actor:getFaceYaw(objid) end + +---在水平面内的旋转 Actor。 +---@param objid number # Actor ID +---@param offset number # 偏移角度 +---@return ErrorCode +function Actor:turnFaceYaw(objid, offset) end + +---设置 Actor 仰角。 +---@param objid number # Actor ID +---@param pitch number # 仰角 +---@return ErrorCode +function Actor:setFacePitch(objid, pitch) end + +---获取 Actor 仰角。 +---@param objid number # Actor ID +---@return ErrorCode, number # 仰角 +function Actor:getFacePitch(objid) end + +---旋转 Actor 仰角。 +---@param objid number # Actor ID +---@param offset number # 偏移角度 +---@return ErrorCode +function Actor:turnFacePitch(objid, offset) end + +---播放 Actor 身体特效。 +---@param objid number # Actor ID +---@param type ActorBodyEffect # 身体特效 +---@return ErrorCode +function Actor:playBodyEffect(objid, type) end + +---停止 Actor 身体特效。 +---@param objid number # Actor ID +---@param type ActorBodyEffect # 身体特效 +---@return ErrorCode +function Actor:stopBodyEffect(objid, type) end + +---播放指定文件中的 Actor 身体特效。 +---@param objid number # Actor ID +---@param filename string # 文件名 +---@param sync boolean # 是否同步执行 +---@return ErrorCode +function Actor:playBodyEffectByFile(objid, filename, sync) end + +---停止指定文件中的 Actor 身体特效。 +---@param objid number # Actor ID +---@param filename string # 文件名 +---@param sync boolean # 是否同步执行 +---@return ErrorCode +function Actor:stopBodyEffectByFile(objid, filename, sync) end + +---播放声音。 +---@param objid number # Actor ID +---@param name string # 声音名称 +---@param volume number # 音量系数 +---@param pitch number # 音高系数 +---@param flag number +---@return ErrorCode +function Actor:playSound(objid, name, volume, pitch, flag) end + +---播放特殊声音。 +---@param objid number # Actor ID +---@param name string # 声音名称 +---@param type GSoundType # 声音类型 +---@return ErrorCode +function Actor:playSoundSpecial(objid, name, type) end + +---清除 Actor。 +---@param actorid number # Actor ID +---@param bkill boolean # 是否播放死亡特效 +---@return ErrorCode +function Actor:clearActorWithId(actorid, bkill) end + +---设置伤害类型。 +---@param objid number # Actor ID +---@param attacktype number # 伤害类型 +---@return ErrorCode +function Actor:setAttackType(objid, attacktype) end + +---设置伤害免疫。 +---@param objid number # Actor ID +---@param immunetype number # 免疫类型 +---@param isadd boolean # 是否启用免疫 +---@return ErrorCode +function Actor:setImmuneType(objid, immunetype, isadd) end + +---乘骑或脱离载具。 +---@param objid number # Actor ID +---@param mountobjid number # 目标 Actor ID +---@param posindex number # 乘骑位置 +---@return ErrorCode +function Actor:mountActor(objid, mountobjid, posindex) end + +---设置 Actor 行为属性状态。 +---@param objid number # Actor ID +---@param actionattr CreatureAttr # 行为属性 +---@param switch boolean # 是否开启 +---@return ErrorCode +function Actor:setActionAttrState(objid, actionattr, switch) end + +---获取 Actor 行为属性状态。 +---@param objid number # Actor ID +---@param actionattr CreatureAttr # 行为属性 +---@return ErrorCode, boolean # 是否开启 +function Actor:getActionAttrState(objid, actionattr) end + +---自动寻路到位置。 +---@param objid number # Actor ID +---@param x number # X 坐标 +---@param y number # Y 坐标 +---@param z number # Z 坐标 +---@param cancontrol boolean # 玩家是否可以控制 +---@param showtip boolean # 是否显示路线提示 +---@return ErrorCode +function Actor:tryNavigationToPos(objid, x, y, z, cancontrol, showtip) end + +---随机获取一个 Actor 类型。 +---@return ErrorCode, number # Actor 类型 ID +function Actor:randomActorID() end + +---获取当前乘骑的 Actor。 +---@param objid number # 乘骑者 Actor ID +---@return ErrorCode, number # 被乘骑者 Actor ID +function Actor:getRidingActorObjId(objid) end + +---在指定 Actor 上播放特效。 +---@param objid number # Actor ID +---@param particleId number # 特效 ID +---@param scale number # 特效大小系数 +---@return ErrorCode +function Actor:playBodyEffectById(objid, particleId, scale) end + +---停止 Actor 上的指定特效。 +---@param objid number # Actor ID +---@param particleId number # 特效 ID +---@return ErrorCode +function Actor:stopBodyEffectById(objid, particleId) end + +---设置 Actor 上的特效大小。 +---@param objid number # Actor ID +---@param particleId number # 特效 ID +---@param scale number # 特效大小系数 +---@return ErrorCode +function Actor:playBodyEffectById(objid, particleId, scale) end + +---在 Actor 上播放音效。 +---@param objid number # Actor ID +---@param soundId number # 音效 ID +---@param volume number # 音量系数 +---@param pitch number # 音调系数 +---@param isLoop boolean # 是否循环播放 +---@return ErrorCode +function Actor:playSoundEffectById(objid, soundId, volume, pitch, isLoop) end + +---停止指定位置上的指定音效。 +---@param objid number # Actor ID +---@param soundId number # 音效 ID +---@return ErrorCode +function Actor:stopSoundEffectOnPos(objid, soundId) end + +---给 Actor 附加速度。 +---@param objid number # Actor ID +---@param east number # 东方向的分速度 +---@param up number # 上方向的分速度 +---@param north number # 北方向的分速度 +---@return ErrorCode +function Actor:appendSpeed(objid, east, up, north) end + +---获取 Actor 朝向。 +---@param objid number # Actor ID +---@return ErrorCode, number, number, number # 相对于玩家中点的偏移量 +function Actor:getFaceDirection(objid) end + +---通过相对坐标方向计算绝对方向。 +---@param objid number # 作为坐标系的原点的 Actor ID +---@param vx number # X 轴相对方向 +---@param vy number # Y 轴相对方向 +---@param vz number # Z 轴相对方向 +---@return ErrorCode, __PositionTable # 绝对方向 +function Actor:calcDirectionByDirection(objid, vx, vy, vz) end + +---通过局部球坐标方向计算绝对方向。 +---@param objid number # 作为坐标系原点的 Actor ID +---@param yaw number # 水平偏移 +---@param pitch number # 垂直偏移 +---@return ErrorCode, __PositionTable # 绝对方向 +function Actor:calcDirectionByAngle(objid, yaw, pitch) end + +---通过局部坐标方向计算绝对正方向,忽略仰角。 +---@param objid number # 作为坐标系的原点的 Actor ID +---@param vx number # X 轴相对方向 +---@param vy number # Y 轴相对方向 +---@param vz number # Z 轴相对方向 +---@return ErrorCode, __PositionTable # 绝对正方向 +function Actor:calcDirectionByYawDirection(objid, vx, vy, vz) end + +---通过局部球坐标方向计算绝对正方向,忽略仰角。 +---@param objid number # 作为坐标系原点的 Actor ID +---@param yaw number # 水平偏移 +---@param pitch number # 垂直偏移 +---@return ErrorCode, __PositionTable # 绝对正方向 +function Actor:calcDirectionByYawAngle(objid, yaw, pitch) end + +---获取 Actor 眼睛位置。 +---@param objid number # Actor ID +---@return ErrorCode, number, number, number # 眼睛位置 +function Actor:getEyeHeight(objid) end + +---获取 Actor 身体大小。 +---@param objid number # Actor ID +---@return ErrorCode, number, number # 身体宽高 +function Actor:getBodySize(objid) end + +---播放 Actor 动作。 +---@param objid number # Actor ID +---@param actid number # 动作 ID +---@return ErrorCode +function Actor:playAct(objid, actid) end + +---是否显示 Actor 昵称。 +---@param objid number # Actor ID +---@param bshow boolean # 是否显示 +---@return ErrorCode +function Actor:shownickname(objid, bshow) end + +---设置 Actor 昵称 +---@param objid number # Actor ID +---@param name string # 昵称 +---@return ErrorCode +function Actor:setnickname(objid, name) end + +---获取 Actor 外观 +---@param objid number # Actor ID +---@return ErrorCode, string # 外观 +function Actor:getActorFacade(objid) end + +---设置 Actor 外观。 +---@param objid number # Actor ID +---@param name string # 外观 +---@return ErrorCode +function Actor:changeCustomModel(objid, name) end + +---恢复 Actor 外观。 +---@param objid number # Actor ID +---@return ErrorCode +function Actor:recoverinitialModel(objid) end + +---给 Actor 添加 Buff。 +---@param objid number # Actor ID +---@param buffid number # Buff ID +---@param bufflv number # Buff 等级 +---@param customticks number # 持续时间,`-1` 表示默认,`0` 表示无限 +---@return ErrorCode +function Actor:addBuff(objid, buffid, bufflv, customticks) end + +---删除 Actor 上的 Buff。 +---@param objid number # Actor ID +---@param buffid number # Buff ID +---@return ErrorCode +function Actor:removeBuff(objid, buffid) end + +---清空 Actor 上的 Buff。 +---@param objid number # Actor ID +---@return ErrorCode +function Actor:clearAllBuff(objid) end + +---清空 Actor 上的负面 Buff。 +---@param objid number # Actor ID +---@return ErrorCode +function Actor:clearAllBadBuff(objid) end + +---判断 Actor 是否有指定 Buff。 +---@param objid number # Actor ID +---@param buffid number # Buff ID +---@param bufflv number # Buff 等级 +---@return ErrorCode # `0` 表示有,`1001` 表示没有 +function Actor:hasBuff(objid, buffid, bufflv) end + +---获取 Actor Buff 列表。 +---@param objid number # Actor ID +---@return ErrorCode, number, number[] # Buff 数量; Buff ID 列表 +function Actor:getBuffList(objid) end + +---获取 Actor 指定 Buff 数量。 +---@param objid number # Actor ID +---@param buffid number # Buff ID +---@return ErrorCode, number # Buff 数量 +function Actor:getBuffNumByBuffid(objid, buffid) end + +---获取 Actor 指定 Buff 的所在 Actor Buff 列表的位置(从 1 开始)。 +---@param objid number # Actor ID +---@param buffid number # Buff ID +---@return ErrorCode +function Actor:getBuffIndex(objid, buffid) end + +---获取 Actor 指定 Buff 剩余时间。 +---@param objid number # Actor ID +---@param buffid number # Buff ID +---@return ErrorCode, number # 剩余时间 +function Actor:getBuffLeftTime(objid, buffid) end + +---随机获取一个外观 ID。 +---@return ErrorCode, number # 随机结果 +function Actor:randomFacadeID() end + +---使玩家对另一个 Actor 造成伤害。 +---@param objidA number # 攻击者 Actor ID +---@param objidB number # 被攻击者 Actor ID +---@param hp number # 伤害值 +---@param attackType HurtType # 伤害类型 +---@return ErrorCode +function Actor:playerHurt(objidA, objidB, hp, attackType) end + +---使玩家对指定区域中所有 Actor 造成伤害 +---@param objid number # 攻击者 Actor ID +---@param areaid number # 区域 ID +---@param hp number # 伤害值 +---@param attackType HurtType # 伤害类型 +---@return ErrorCode +function Actor:playerHurtArea(objid, areaid, hp, attackType) end + +---使 Actor 对另一个 Actor 造成伤害。 +---@param objidA number # 攻击者 Actor ID +---@param objidB number # 被攻击者 Actor ID +---@param hp number # 伤害值 +---@param attackType HurtType # 伤害类型 +---@return ErrorCode +function Actor:actorHurt(objidA, objidB, hp, attackType) end + +---使 Actor 对指定区域中所有 Actor 造成伤害 +---@param objid number # 攻击者 Actor ID +---@param areaid number # 区域 ID +---@param hp number # 伤害值 +---@param attackType HurtType # 伤害类型 +---@return ErrorCode +function Actor:actorHurtArea(objid, areaid, hp, attackType) end + +---获取 Actor 位置。 +---@param objid number # Actor ID +---@return ErrorCode, __PositionTable +function Actor:getPositionV2(objid) end + +---设置 Actor 朝向。 +---@param objid number # Actor ID +---@param x number # X 坐标上的方向 +---@param y number # Y 坐标上的方向 +---@param z number # Z 坐标上的方向 +---@return ErrorCode +function Actor:setFaceDirection(objid, x, y, z) end diff --git a/lua/miniworld/library/buff.zh-CN.lua b/lua/miniworld/library/buff.zh-CN.lua new file mode 100644 index 0000000..1192b37 --- /dev/null +++ b/lua/miniworld/library/buff.zh-CN.lua @@ -0,0 +1,79 @@ +---迷你世界脚本API语法库,对象状态效果管理。 +--- +---[查看文档](https://dev-wiki.mini1.cn/cyclopdeia?wikiMenuId=3&wikiId=2315) +---@meta + +---状态效果管理。 +--- +---[查看文档](https://dev-wiki.mini1.cn/cyclopdeia?wikiMenuId=3&wikiId=2315) +---@class BuffLib +Buff = {} + +---给 Actor 添加 Buff。 +---@param objid number # Actor ID +---@param buffid number # Buff ID +---@param bufflv number # Buff 等级 +---@param customticks number # 持续时间,`-1` 表示默认,`0` 表示无限 +---@return ErrorCode +function Buff:addBuff(objid, buffid, bufflv, customticks) end + +---删除 Actor 上的 Buff。 +---@param objid number # Actor ID +---@param buffid number # Buff ID +---@return ErrorCode +function Buff:removeBuff(objid, buffid) end + +---清空 Actor 上的 Buff。 +---@param objid number # Actor ID +---@return ErrorCode +function Buff:clearAllBuff(objid) end + +---清空 Actor 上的负面 Buff。 +---@param objid number # Actor ID +---@return ErrorCode +function Buff:clearAllBadBuff(objid) end + +---判断 Actor 是否有指定 Buff。 +---@param objid number # Actor ID +---@param buffid number # Buff ID +---@param bufflv number # Buff 等级 +---@return ErrorCode # `0` 表示有,`1001` 表示没有 +function Buff:hasBuff(objid, buffid, bufflv) end + +---获取 Actor Buff 列表。 +---@param objid number # Actor ID +---@return ErrorCode, number, number[] # Buff 数量; Buff ID 列表 +function Buff:getBuffList(objid) end + +---获取 Actor 指定 Buff 数量。 +---@param objid number # Actor ID +---@param buffid number # Buff ID +---@return ErrorCode, number # Buff 数量 +function Buff:getBuffNumByBuffid(objid, buffid) end + +---获取 Actor 指定 Buff 的所在 Actor Buff 列表的位置(从 1 开始)。 +---@param objid number # Actor ID +---@param buffid number # Buff ID +function Buff:getBuffIndex(objid, buffid) end + +---获取 Actor 指定 Buff 剩余时间。 +---@param objid number # Actor ID +---@param buffid number # Buff ID +---@return ErrorCode, number # 剩余时间 +function Buff:getBuffLeftTime(objid, buffid) end + +---获取 Actor Buff 名称。 +---@param objid number # Actor ID +---@param buffid number # Buff ID +---@return ErrorCode, string # Buff 名称 +function Buff:getBuffName(objid, buffid) end + +---获取 Buff 名称。 +---@param buffid number # Actor ID +---@return ErrorCode, string # Buff 定义名称 +function Buff:GetBuffDefName(buffid) end + +---获取 Buff 描述。 +---@param buffid number # Actor ID +---@return ErrorCode, string # Buff 定义描述 +function Buff:GetBuffDefDesc(buffid) end diff --git a/lua/miniworld/library/creature.zh-CN.lua b/lua/miniworld/library/creature.zh-CN.lua new file mode 100644 index 0000000..54ec00b --- /dev/null +++ b/lua/miniworld/library/creature.zh-CN.lua @@ -0,0 +1,240 @@ +---迷你世界脚本API语法库,生物管理。 +--- +---[查看文档](https://dev-wiki.mini1.cn/cyclopdeia?wikiMenuId=3&wikiId=1360) +---@meta + +---生物管理。 +--- +---[查看文档](https://dev-wiki.mini1.cn/cyclopdeia?wikiMenuId=3&wikiId=1360) +---@class CreatureLib : ActorLib +Creature = {} + +---获取生物属性。 +---@param objid number # 生物 ID +---@param attrtype CreatureAttr # 生物属性 +---@return ErrorCode, number +function Creature:getAttr(objid, attrtype) end + +---设置生物属性。 +---@param objid number # 生物 ID +---@param attrtype CreatureAttr # 生物属性 +---@param val number # 属性值 +---@return ErrorCode +function Creature:setAttr(objid, attrtype, val) end + +---判断生物是否成年。 +---@param objid number # 生物 ID +---@return ErrorCode # `0` 表示才能,`1001` 表示未成年 +function Creature:isAdult(objid) end + +---设置生物是否依赖氧气。 +---@param objid number # 生物 ID +---@param v boolean # 是否依赖氧气 +---@return ErrorCode +function Creature:setOxygenNeed(objid, v) end + +---获取驯养主 ID。 +---@param objid number # 生物 ID +---@return ErrorCode, number # `0` 代表未驯服 +function Creature:getTamedOwnerID(objid) end + +---设置生物是否处于惊慌状态。 +---@param objid number # 生物 ID +---@param v boolean # 是否处于惊慌状态 +---@return ErrorCode +function Creature:setPanic(objid, v) end + +---设置 AI 功能是否启用。 +---@param objid number # 生物 ID +---@param v boolean # 是否启用 +---@return ErrorCode +function Creature:setAIActive(objid, v) end + +---获取生物 Actor ID。 +---@param objid number # 生物 ID +---@return ErrorCode, number +function Creature:getActorID(objid) end + +---获取生物 Actor 名称。 +---@param objid number # 生物 ID +---@return ErrorCode, string +function Creature:getActorName(objid) end + +---给生物添加附魔。 +---@param objid number # 生物 ID +---@param attrtype ModAttribType # 附魔类型 +---@param value number # 附魔等级 +---@return ErrorCode +function Creature:addModAttrib(objid, attrtype, value) end + +---获取生物附魔等级。 +---@param objid number # 生物 ID +---@param attrtype ModAttribType # 附魔类型 +---@return ErrorCode, number +function Creature:getModAttrib(objid, attrtype) end + +---获取生物队伍。 +---@param objid number # 生物 ID +---@return ErrorCode, number +function Creature:getTeam(objid) end + +---设置生物队伍。 +---@param objid number # 生物 ID +---@param teamid number # 队伍 ID +---@return ErrorCode +function Creature:setTeam(objid, teamid) end + +---获取生物当前饱食度。 +---@param objid number # 生物 ID +---@return ErrorCode, number +function Creature:getFood(objid) end + +---设置生物当前饱食度。 +---@param objid number # 生物 ID +---@param foodLevel number # 生物饱食度 +---@return ErrorCode +function Creature:getFood(objid, foodLevel) end + +---获取生物生命值恢复速度。 +---@param objid number # 生物 ID +---@return ErrorCode, number +function Creature:getHpRecover(objid) end + +---设置生物生命值恢复速度。 +---@param objid number # 生物 ID +---@param val number # 生命值恢复速度 +---@return ErrorCode +function Creature:setHpRecover(objid, val) end + +---获取生物氧气值上限。 +---@param objid number # 生物 ID +---@return ErrorCode, number +function Creature:getMaxOxygen(objid) end + +---获取生物移动速度。 +---@param objid number # 生物 ID +---@return ErrorCode, number +function Creature:getWalkSpeed(objid) end + +---设置生物移动速度。 +---@param objid number # 生物 ID +---@param val number # 移动速度 +---@return ErrorCode +function Creature:setWalkSpeed(objid, val) end + +---获取生物游泳速度。 +---@param objid number # 生物 ID +---@return ErrorCode, number +function Creature:getSwinSpeed(objid) end + +---设置生物游泳速度。 +---@param objid number # 生物 ID +---@param val number # 游泳速度 +---@return ErrorCode +function Creature:setSwinSpeed(objid, val) end + +---获取生物跳跃能力。 +---@param objid number # 生物 ID +---@return ErrorCode, number +function Creature:getJumpPower(objid) end + +---设置生物跳跃能力。 +---@param objid number # 生物 ID +---@param val number # 跳跃能力 +---@return ErrorCode +function Creature:setJumpPower(objid, val) end + +---获取生物重量。 +---@param objid number # 生物 ID +---@return ErrorCode, number +function Creature:getMass(objid) end + +---获取生物闪避率。 +---@param objid number # 生物 ID +---@return ErrorCode, number +function Creature:getDodge(objid) end + +---设置生物闪避率。 +---@param objid number # 生物 ID +---@param val number # 闪避率 +---@return ErrorCode +function Creature:setWalkSpeed(objid, val) end + +---获取生物近战攻击系数。 +---@param objid number # 生物 ID +---@return ErrorCode, number +function Creature:getPunchAttack(objid) end + +---设置生物近战攻击系数。 +---@param objid number # 生物 ID +---@param val number # 近战攻击系数 +---@return ErrorCode +function Creature:setPunchAttack(objid, val) end + +---获取生物远程攻击系数。 +---@param objid number # 生物 ID +---@return ErrorCode, number +function Creature:getRangeAttack(objid) end + +---设置生物远程攻击系数。 +---@param objid number # 生物 ID +---@param val number # 远程攻击系数 +---@return ErrorCode +function Creature:setRangeAttack(objid, val) end + +---获取生物近战防御系数。 +---@param objid number # 生物 ID +---@return ErrorCode, number +function Creature:getPunchDefense(objid) end + +---设置生物近战防御系数。 +---@param objid number # 生物 ID +---@param val number # 近战防御系数 +---@return ErrorCode +function Creature:setPunchDefense(objid, val) end + +---获取生物远程防御系数。 +---@param objid number # 生物 ID +---@return ErrorCode, number +function Creature:getRangeDefense(objid) end + +---设置生物远程防御系数。 +---@param objid number # 生物 ID +---@param val number # 远程防御系数 +---@return ErrorCode +function Creature:setWalkSpeed(objid, val) end + +---设置生物生命值上限。 +---@param objid number # 生物 ID +---@param val number # 生命值上限 +---@return ErrorCode +function Creature:setMaxHP(objid, val) end + +---设置生物当前生命值。 +---@param objid number # 生物 ID +---@param val number # 当前生命值 +---@return ErrorCode +function Creature:setHP(objid, val) end + +---设置生物当前氧气值。 +---@param objid number # 生物 ID +---@param val number # 当前氧气值 +---@return ErrorCode +function Creature:setOxygen(objid, val) end + +---替换生物。 +---@param objid number # 被替换下来的生物 ID +---@param actorid number # 替换上去的生物 ID +---@param hp number # 生命值 +---@return ErrorCode +function Creature:replaceActor(objid, actorid, hp) end + +---获取生物类型名称。 +---@param monsterid number # 生物类型 ID +---@return ErrorCode, string +function Creature:GetMonsterDefName(monsterid) end + +---获取生物类型描述。 +---@param monsterid number # 生物类型 ID +---@return ErrorCode, string +function Creature:GetMonsterDefDesc(monsterid) end diff --git a/lua/miniworld/library/player.zh-CN.lua b/lua/miniworld/library/player.zh-CN.lua new file mode 100644 index 0000000..0045ebc --- /dev/null +++ b/lua/miniworld/library/player.zh-CN.lua @@ -0,0 +1,373 @@ +---迷你世界脚本API语法库,玩家管理。 +--- +---[查看文档](https://dev-wiki.mini1.cn/cyclopdeia?wikiMenuId=3&wikiId=1359) +---@meta + +---玩家管理。 +--- +---[查看文档](https://dev-wiki.mini1.cn/cyclopdeia?wikiMenuId=3&wikiId=1359) +---@class PlayerLib : ActorLib +Player = {} + +---获取玩家属性。 +---@param objid number # 玩家 ID +---@param attrtype PlayerAttr # 属性 +---@return ErrorCode, number +function Player:getAttr(objid, attrtype) end + +---设置玩家属性。 +---@param objid number # 玩家 ID +---@param attrtype PlayerAttr # 属性 +---@param val PlayerAttr # 值 +---@return ErrorCode +function Player:setAttr(objid, attrtype, val) end + +---获取房主 ID。 +---@return ErrorCode, number +function Player:getHostUin() end + +---判断玩家是否房主。 +---@param objid number # 玩家 ID +---@return ErrorCode, boolean +function Player:isMainPlayer(objid) end + +---获取房主 ID。 +---@return ErrorCode, number +function Player:getMainPlayerUin() end + +---获取玩家比赛结果。 +---@param objid number # 玩家 ID +---@return ErrorCode, number +function Player:getGameResults(objid) end + +---设置玩家比赛结果。 +---@param objid number # 玩家 ID +---@param result number # 比赛结果 +---@return ErrorCode +function Player:setGameResults(objid, result) end + +---获取玩家游戏分数。 +---@param objid number # 玩家 ID +---@return ErrorCode, number +function Player:getGameScore(objid) end + +---设置玩家游戏分数。 +---@param objid number # 玩家 ID +---@param score number # 游戏分数 +---@return ErrorCode, number +function Player:setGameScore(objid, score) end + +---获取玩家排行。 +---@param objid number # 玩家 ID +---@return ErrorCode, number +function Player:getGameRanking(objid) end + +---设置玩家排行。 +---@param objid number # 玩家 ID +---@param rank number # 排行 +---@return ErrorCode +function Player:setGameRanking(objid, rank) end + +---给玩家添加道具。 +---@param objid number # 玩家 ID +---@param itemid number # 道具 ID +---@param num number # 道具数量 +---@param prioritytype number # 优先顺序(`1` 表示快捷栏,`2` 表示背包栏) +---@return ErrorCode +function Player:gainItems(objid, itemid, num, prioritytype) end + +---将玩家传送到出生点。 +---@param objid number # 玩家 ID +---@return ErrorCode +function Player:teleportHome(objid) end + +---获取玩家当前手持道具 ID。 +---@param objid number # 玩家 ID +---@return ErrorCode, number +function Player:getCurToolID(objid) end + +---获取玩家昵称。 +---@param objid number # 玩家 ID +---@return ErrorCode, string +function Player:getNickname(objid) end + +---移除玩家的道具。 +---@param objid number # 玩家 ID +---@param itemid number # 道具 ID +---@param num number # 移除数量 +---@return ErrorCode +function Player:removeBackpackItem(objid, itemid, num) end + +---获取玩家死亡次数。 +---@param objid number # 玩家 ID +---@return ErrorCode, number +function Player:getDieTimes(objid) end + +---获取玩家剩余生命数。 +---@param objid number # 玩家 ID +---@return ErrorCode, number +function Player:getLeftLifeNum(objid) end + +---获取玩家队伍。 +---@param objid number # 玩家 ID +---@return ErrorCode, number +function Player:getTeam(objid) end + +---设置玩家队伍。 +---@param objid number # 玩家 ID +---@param teamid number # 队伍 ID +---@return ErrorCode +function Player:setTeam(objid, teamid) end + +---获取玩家当前饱食度。 +---@param objid number # 玩家 ID +---@return ErrorCode, number +function Player:getFoodLevel(objid) end + +---设置玩家当前饱食度。 +---@param objid number # 玩家 ID +---@param foodLevel number # 玩家饱食度 +---@return ErrorCode +function Player:getFoodLevel(objid, foodLevel) end + +---获取玩家当前快捷栏。 +---@param objid number # 玩家 ID +---@return ErrorCode, number +function Player:getCurShotcut(objid) end + +---设置玩家当前手持道具的消耗。 +---@param objid number # 玩家 ID +---@param num number # 道具数量 +---@return ErrorCode +function Player:onCurToolUsed(objid, num) end + +---设置玩家道具冷却时间。 +---@param objid number # 玩家 ID +---@param itemid number # 道具 ID +---@param cd number # 冷却时间(秒) +---@return ErrorCode +function Player:setSkillCD(objid, itemid, cd) end + +---击败玩家,复活到指定位置。 +---@param objid number # 玩家 ID +---@param x number # X 坐标 +---@param y number # Y 坐标 +---@param z number # Z 坐标 +---@return ErrorCode +function Player:reviveToPos(objid, x, y, z) end + +---设置玩家复活点位置。 +---@param objid number # 玩家 ID +---@param x number # X 坐标 +---@param y number # Y 坐标 +---@param z number # Z 坐标 +---@return ErrorCode +function Player:setRevivePoint(objid, x, y, z) end + +---对玩家显示飘窗文字。 +---@param objid number # 玩家 ID +---@param info string # 飘窗文字 +---@return ErrorCode +function Player:notifyGameInfo2Self(objid, info) end + +---使玩家使用道具。 +---@param objid number # 玩家 ID +---@param itemid number # 道具 ID +---@param status number # 使用状态 +---@param onshift boolean # 是否按下 `Shift` 键 +---@return ErrorCode +function Player:useItem(objid, itemid, status, onshift) end + +---旋转玩家镜头。 +---@param objid number # 玩家 ID +---@param yaw number # 水平偏移 +---@param pitch number # 垂直偏移 +---@return ErrorCode +function Player:rotateCamera(objid, yaw, pitch) end + +---改变玩家视角。 +---@param objid number # 玩家 ID +---@param viewmode ViewportType # 视角 +---@param islock boolean # 是否锁定视角 +---@return ErrorCode +function Player:changeViewMode(objid, viewmode, islock) end + +---获取玩家行为属性状态。 +---@param objid number # 玩家 ID +---@param actionattr PlayerAttr # 行为属性 +---@return ErrorCode, boolean +function Player:checkActionAttrState(objid, actionattr) end + +---设置玩家行为属性状态。 +---@param objid number # 玩家 ID +---@param actionattr PlayerAttr # 行为属性 +---@param switch boolean # 是否启用 +---@return ErrorCode +function Player:setActionAttrState(objid, actionattr, switch) end + +---设置玩家装备。 +---@param objid number # 玩家 ID +---@param itemid number # 装备 ID +---@return ErrorCode +function Player:isEquipByResID(objid, itemid) end + +---获取玩家准星位置。 +---@param objid number # 玩家 ID +---@return ErrorCode, number, number, number # 准星坐标 +function Player:getAimPos(objid) end + +---设置玩家对道具的操作属性。 +---@param objid number # 玩家 ID +---@param attrtype PlayerAttr # 道具操作属性 +---@param switch boolean # 是否启用 +---@return ErrorCode +function Player:setItemAttAction(objid, itemid, attrtype, switch) end + +---给玩家播放背景音乐。 +---@param objid number # 玩家 ID +---@param musicId number # 背景音乐 ID +---@param volume number # 音量系数 +---@param pitch number # 音调系数 +---@param isLoop boolean # 是否循环播放 +---@return ErrorCode +function Player:playMusic(objid, musicId, volume, pitch, isLoop) end + +---停止玩家背景音乐。 +---@param objid number # 玩家 ID +---@return ErrorCode +function Player:stopMusic(objid) end + +---使玩家胜利。 +---@param objid number # 玩家 ID +---@return ErrorCode +function Player:setGameWin(objid) end + +---使玩家打开开发者商店。 +---@param objid number # 玩家 ID +---@return ErrorCode +function Player:openDevStore(objid) end + +---获取玩家手持道具类型。 +---@param objid number # 玩家 ID +---@return ErrorCode +function Player:getPropsType(objid) end + +---检测掉落物半径。 +---@param objid number # 玩家 ID +---@param range number # 缩放比例 +---@return ErrorCode +function Player:setCheckBoxScale(objid, range) end + +---使玩家打开箱子。 +---@param objid number # 玩家 ID +---@param x number # X 坐标 +---@param y number # Y 坐标 +---@param z number # Z 坐标 +---@return ErrorCode +function Player:openBoxByPos(objid, x, y, z) end + +---强制使玩家打开交互方块。 +---@param objid number # 玩家 ID +---@param itemid number # 方块 ID +---@return ErrorCode +function Player:forceOpenBoxUI(objid, itemid) end + +---打开商品购买弹窗。 +---@param objid number # 玩家 ID +---@param devGoodsId number # 商品 ID +---@param customDesc string # 商品推荐语 +---@return ErrorCode +function Player:openDevGoodsBuyDialog(objid, devGoodsId, customDesc) end + +---设置玩家移动方式。 +---@param objid number # 玩家 ID +---@param moveType MoveType # 移动方式 +---@return ErrorCode +function Player:changPlayerMoveType(objid, moveType) end + +---设置伤害免疫。 +---@param objid number # 玩家 ID +---@param immunetype number # 免疫类型 +---@param isadd boolean # 是否启用免疫 +---@return ErrorCode +function Player:setImmuneType(objid, immunetype, isadd) end + +---抖动玩家镜头。 +---@param objid number # 玩家 ID +---@param duration number # 抖动时长 +---@param power number # 力度系数 +---@return ErrorCode +function Player:shakeCamera(objid, duration, power) end + +---停止抖动玩家镜头。 +---@param objid number # 玩家 ID +---@return ErrorCode +function Player:stopShakeCamera(objid) end + +---给玩家播放 QQ 音乐。 +---@param objid number # 玩家 ID +---@param musicId number # 音乐 ID +---@param volume number # 音量系数 +---@param isLoop boolean # 是否循环播放 +---@return ErrorCode +function Player:playQQMusic(objid, musicId, volume, isLoop) end + +---暂停/恢复/停止 玩家的 QQ 音乐。 +---@param operate QqMusicOp # 操作类型 +---@param objid number # 玩家 ID +---@return ErrorCode +function Player:operateQQMusic(operate, objid) end + +---使玩家打开地图评价页。 +--- +---注意:游戏超过 3 分钟后才能调用,10 分钟内仅可调用一次。 +---@param objid number # 玩家 ID +---@return ErrorCode +function Player:OpenAppraiseView(objid) end + +---使玩家打开地图收藏页。 +--- +---注意:游戏超过 3 分钟后才能调用,10 分钟内仅可调用一次。 +---@param objid number # 玩家 ID +---@return ErrorCode +function Player:OpenCollectionView(objid) end + +---判断玩家是否迷你会员。 +---@param objid number # 玩家 ID +---@return ErrorCode +function Player:IsMiniVip(objid) end + +---发送好友请求。 +---@param playerid number # 发送请求的玩家 ID +---@param playerid2 number # 收到请求的玩家 ID +---@return ErrorCode +function Player:SendFriendApply(playerid, playerid2) end + +---判断是否存在好友。 +---@param playerid number # 玩家 ID +---@param playerid2 number # 需要判断的玩家 ID +---@return ErrorCode +function Player:HasFriend(playerid, playerid2) end + +---使玩家播放微缩道具动画。 +---@param playerid number # 玩家 ID +---@param animid number # 动作 ID +---@param playmode AnimMode # 播放模式 +---@return ErrorCode +function Player:PlayActInHand(playerid, animid, playmode) end + +---使玩家打开开发者商店。 +---@param objid number # 玩家 ID +---@return ErrorCode +function Player:openDevStoreNew(objid) end + +---使玩家打开排行榜。 +---@param playerid number # 玩家 ID +---@param id number # 排行榜 ID +---@return ErrorCode +function Player:OpenBuiltinRank(playerid, id) end + +---使玩家关闭排行榜。 +---@param playerid number # 玩家 ID +---@return ErrorCode +function Player:HideBuiltinRank(playerid) end diff --git a/lua/miniworld/library/starter.zh-CN.lua b/lua/miniworld/library/starter.zh-CN.lua index 7fde516..60bfd4d 100644 --- a/lua/miniworld/library/starter.zh-CN.lua +++ b/lua/miniworld/library/starter.zh-CN.lua @@ -19,6 +19,105 @@ CameraEditState = { CAMERA_EDIT_STATE_TEST = 2, } +---装备部位。 +---@enum EquipSlotType +EQUIP_SLOT_TYPE = { + ---头。 + EQUIP_HEAD = 0, + ---身体。 + EQUIP_BREAST = 1, + ---腿。 + EQUIP_LEGGING = 2, + ---脚。 + EQUIP_SHOE = 3, + ---披风 + EQUIP_PIFENG = 4, + ---武器。 + EQUIP_WEAPON = 5, + MAX_EQUIP_SLOTS = 6, +} + +---附魔类型。 +---@enum ModAttribType +MODATTRIB_TYPE = { + ---移动速度。 + MODATTR_MOVE_SPEED = 0, + ---游泳速度。 + MODATTR_SWIM_SPEED = 1, + ---跳跃速度。 + MODATTR_JUMP_SPEED = 2, + ---近战攻击的加成的百分比。 + MODATTR_ATTACK_PUNCH = 3, + ---远程攻击时加成的百分比。 + MODATTR_ATTACK_RANGE = 4, + ---爆炸攻击时加成的百分比。 + MODATTR_ATTACK_EXPLODE = 5, + ---火攻击时加成的百分比。 + MODATTR_ATTACK_FIRE = 6, + ---毒攻击时加成的百分比。 + MODATTR_ATTACK_POISON = 7, + ---混乱攻击时加成的百分比。 + MODATTR_ATTACK_WITHER = 8, + ---攻击玩家时加成的百分比。 + MODATTR_ATTACK_PLAYER = 9, + ---攻击亡灵时加成的百分比。 + MODATTR_ATTACK_UNDEAD = 10, + ---攻击动物时加成的百分比。 + MODATTR_ATTACK_ANIMAL = 11, + ---被近程攻击时加成的百分比。 + MODATTR_DAMAGED_PUNCH = 12, + ---被远程攻击时加成的百分比。 + MODATTR_DAMAGED_RANGE = 13, + ---被爆炸攻击时加成的百分比。 + MODATTR_DAMAGED_EXPLODE = 14, + ---被火攻击时加成的百分比。 + MODATTR_DAMAGED_FIRE = 15, + ---被毒攻击时加成的百分比。 + MODATTR_DAMAGED_POISON = 16, + ---被混乱攻击时加成的百分比。 + MODATTR_DAMAGED_WITHER = 17, + ---高处掉下伤害加成的百分比。 + MODATTR_DAMAGED_FALLING = 18, + ---近程护甲加点。 + MODATTR_ARMOR_PUNCH = 19, + ---远程护甲加点。 + MODATTR_ARMOR_RANGE = 20, + ---爆炸护甲加点。 + MODATTR_ARMOR_EXPLODE = 21, + ---吸收伤害。 + MODATTR_DAMAGE_ABSORB = 22, + ---暴击伤害加成。 + MODATTR_CRITICAL_HIT = 23, + ---增加攻击的击退距离。 + MODATTR_KNOCK = 24, + ---减少击退距离。 + MODATTR_KNOCK_RESIST = 25, + ---击退概率抵抗值, 0.2表示有20%概率不被击退。 + MODATTR_KNOCK_RESIST_PROB = 26, + ---角色大小 0 - 1.0 只针对玩家对象有效。 + MODATTR_ACTOR_SCALE = 27, + ---怪物 最大附魔属性。 + MAX_MOB_MODATTR = 28, + ---挖掘速度。 + MODATTR_DIG_SPEED = 28, + ---挖掘幸运, 0.2表示增加20%掉落概率。 + MODATTR_LUCK_DIG = 29, + ---怪物掉落。 + MODATTR_LUCK_KILLMOB = 30, + ---视野亮度 0 - 1.0。 + MODATTR_VIEW_BRIGHT = 31, + ---氧气提供。 + --- + ---值: + --- - `1`:只能水底用 + --- - `100`:只能太空用 + --- - `101`:都能用 + --- - `10000`:恢复氧气 + MODATTR_OXYGEN_SUPPLY = 32, + MAX_PLAYER_MODATTR = 33, + MAX_MOD_ATTRIB = 33, +} + ---朝向。 ---@enum FaceDirection FACE_DIRECTION = { @@ -38,6 +137,242 @@ FACE_DIRECTION = { DIR_POS_Y = 5, } +---@enum CreatureAttr +CREATUREATTR = { + ---最大生命值。 + MAX_HP = 1, + ---当前生命值。 + CUR_HP = 2, + ---生命恢复。 + HP_RECOVER = 3, + ---最大饥饿值。 + MAX_HUNGER = 5, + ---当前饥饿值。 + CUR_HUNGER = 6, + ---最大氧气值。 + MAX_OXYGEN = 7, + ---当前氧气值。 + CUR_OXYGEN = 8, + ---氧气恢复速度。 + RECOVER_OXYGEN = 9, + ---移动速度。 + WALK_SPEED = 10, + ---奔跑速度。 + RUN_SPEED = 11, + ---游泳速度。 + SWIN_SPEED = 13, + ---跳跃力。 + JUMP_POWER = 14, + ---重量。 + WEIGHT = 15, + ---闪避率。 + DODGE = 16, + ---近战攻击。 + ATK_MELEE = 17, + ---远程攻击。 + ATK_REMOTE = 18, + ---近战防御。 + DEF_MELEE = 19, + ---远程防御。 + DEF_REMOTE = 20, + ---模型大小。 + DIMENSION = 21, +} + +---玩家属性。 +---@enum PlayerAttr +PLAYERATTR = { + ---最大生命值。 + MAX_HP = 1, + ---当前生命值。 + CUR_HP = 2, + ---生命恢复。 + HP_RECOVER = 3, + ---生命数。 + LIFE_NUM = 4, + ---最大饥饿值。 + MAX_HUNGER = 5, + ---当前饥饿值。 + CUR_HUNGER = 6, + ---最大氧气值。 + MAX_OXYGEN = 7, + ---当前氧气值。 + CUR_OXYGEN = 8, + ---氧气恢复速度。 + RECOVER_OXYGEN = 9, + ---移动速度。 + WALK_SPEED = 10, + ---奔跑速度。 + RUN_SPEED = 11, + ---潜行速度。 + SNEAK_SPEED = 12, + ---游泳速度。 + SWIN_SPEED = 13, + ---跳跃力。 + JUMP_POWER = 14, + ---闪避率。 + DODGE = 16, + ---近战攻击。 + ATK_MELEE = 17, + ---远程攻击。 + ATK_REMOTE = 18, + ---近战防御。 + DEF_MELEE = 19, + ---远程防御。 + DEF_REMOTE = 20, + ---大小。 + DIMENSION = 21, + ---分数。 + SCORE = 22, + ---星星等级。 + LEVEL = 23, + ---当前体力值。 + CUR_STRENGTH = 28, + ---当前最大体力值。 + MAX_STRENGTH = 29, + ---当前体力值恢复速度。 + STRENGTH_RECOVER = 30, + ---当前经验。 + CUR_LEVELEXP = 26, + ---当前等级。 + CUR_LEVEL = 27, + ---可移动。 + ENABLE_MOVE = 1, + ---可摆放方块。 + ENABLE_PLACEBLOCK = 2, + ---可操作方块。 + ENABLE_OPERATEBLOCK = 4, + ---可破坏方块。 + ENABLE_DESTROYBLOCK = 8, + ---可使用道具。 + ENABLE_USEITEM = 16, + ---可攻击。 + ENABLE_ATTACK = 32, + ---可被攻击。 + ENABLE_BEATTACKED = 64, + ---可被杀死。 + ENABLE_BEKILLED = 128, + ---可拾取道具。 + ENABLE_PICKUP = 256, + ---死亡掉落。 + ENABLE_DEATHDROPITEM = 512, + ---载具自动前行。 + ENABLE_VEHICLEAUTOFORWARD = 1024, + ---可丢弃道具。 + ENABLE_DISCARDITEM = 2048, + ---道具不可丢弃。 + ITEM_DISABLE_THROW = 1, + ---道具不可掉落。 + ITEM_DISABLE_DROP = 2, +} + +---伤害类型。 +---@enum HurtType +HURTTYPE = { + ---近战伤害。 + MELEE = 0, + ---远程伤害。 + REMOTE = 1, + ---爆炸伤害。 + BOMB = 2, + ---物理伤害。 + PHYSICS = 3, + ---燃烧伤害。 + BURNING = 3, + ---毒素伤害。 + TOXIN = 4, + ---混乱伤害。 + WITHER = 5, + ---元素伤害。 + MAGIC = 6, + ---日晒。 + SUN = 6, + ---跌落伤害。 + FALL = 7, + ---被砸中伤害。 + ANVIL = 8, + ---仙人掌伤害。 + CACTUS = 9, + ---窒息伤害。 + ASPHYXIA = 10, + ---溺水伤害。 + DROWN = 11, + ---水下生物在空气中窒息伤害。 + SUFFOCATE = 12, + ---反伤。 + ANTIINJURY = 13, + ---被激光伤害。 + LASER = 14, +} + +---特殊声音。 +---@enum GSoundType +GSOUND_TYPE = { + ---挖掘。 + GSOUND_DIG = 0, + ---破坏。 + GSOUND_DESTROY = 1, + ---放置。 + GSOUND_PLACE = 2, + ---掉落。 + GSOUND_FALLGROUND = 3, + ---行走。 + GSOUND_WALK = 4, +} + +---Actor 身体特效。 +---@enum ActorBodyEffect +ACTORBODY_EFFECT = { + BODYFX_HURT = 0, + BODYFX_FIRE = 1, + BODYFX_PORTAL = 2, + BODYFX_ACCUMFIRE = 3, + BODYFX_DRAGONFIRE = 4, + BODYFX_DRAGONSUMMON = 5, + BODYFX_TAME_SUCCEED = 6, + BODYFX_TAME_FAILED = 7, + BODYFX_TAME_FOOD = 8, + BODYFX_TAME_NOFOOD = 9, + BODYFX_AI_NEEDREEDS = 10, + BODYFX_FEAR = 11, + BODYFX_ROLECOLLECT = 12, + BODYFX_ROLEJUMP = 13, + BODYFX_DEADPROTECT = 14, + BODYFX_DRAGONDIE0 = 15, + BODYFX_DRAGONDIE1 = 16, + BODYFX_DRAGONDIE2 = 17, + BODYFX_HORSE_FLY = 18, + BODYFX_DISAPPEAR = 19, + BODYFX_HORSE_BENTENG = 20, + BODYFX_DANCE = 21, + TOOLFX_JETPACK2 = 22, + BODYFX_INTERACTION = 23, + HUDFX_HEADSHOT = 24, + HUDFX_NORMALSHOT = 25, + BODYFX_MILKING = 26, + BODYFX_AI_ANGRY = 27, + BODYFX_AI_SLEEP = 28, + BODYFX_TRANSPORT = 29, + BODYFX_FORBIDDEN = 30, + ---潜行。 + BODYFX_CONCEAL = 31, + ---野人猎手武器上的火。 + BODYFX_WEAPON_FIRE = 32, + ---眩晕。 + BODYFX_DIZZY = 33, + BODYFX_MAKETROUBLE = 34, + ---过山车移动。 + BODYFX_TRAINMOVE = 35, + ---饥饿。 + BODYFX_AI_HUNGRY = 36, + ---蓄力踢球。 + BODYFX_BALL_CHARGE = 37, + ---踢球瞬间的爆发。 + BODYFX_BALL_SHOOT_RELEASE = 38, + ---附魔速降。 + BODYFX_ENCH_FALL = 39, +} + ---Actor 类型。 ---@enum ObjType OBJ_TYPE = { @@ -77,6 +412,23 @@ BLOCKATTR = { BEPUSHED_DROPITEM = 16, } +---视角。 +---@enum ViewportType +VIEWPORTTYPE = { + ---主视角。 + MAINVIEW = 0, + ---背视角。 + BACKVIEW = 1, + ---正视角。 + FRONTVIEW = 2, + ---背视角2。 + BACK2VIEW = 3, + ---俯视角。 + TOPVIEW = 4, + ---自定义视角。 + CUSTOMVIEW = 5, +} + ---@enum AnimMode ANIMMODE = { ---循环播放。 @@ -89,6 +441,26 @@ ANIMMODE = { ANIM_MODE_DEFAULT = 3, } +---移动方式。 +---@enum MoveType +MOVETYPE = { + ---飞行。 + FLY = 1, + ---默认。 + IDLE = 2, +} + +---QQ 音乐操作。 +---@enum QqMusicOp +QQMUSICOP = { + ---暂停。 + PAUSE = 0, + ---恢复。 + RESUME = 1, + ---停止。 + STOP = 2, +} + ---@enum EventDate EVENTDATE = { ---年。 @@ -107,4 +479,5 @@ EVENTDATE = { TIMESTAMP = 6, } +---位置表。 ---@alias __PositionTable { x: number, y: number, z: number } diff --git a/lua/miniworld/library/ui.zh-CN.lua b/lua/miniworld/library/ui.zh-CN.lua new file mode 100644 index 0000000..ce60303 --- /dev/null +++ b/lua/miniworld/library/ui.zh-CN.lua @@ -0,0 +1,78 @@ +---迷你世界脚本API语法库,世界 UI 管理。 +--- +---[查看文档](https://dev-wiki.mini1.cn/cyclopdeia?wikiMenuId=3&wikiId=1361) +---@meta + +---游戏世界管理。 +--- +---[查看文档](https://dev-wiki.mini1.cn/cyclopdeia?wikiMenuId=3&wikiId=1361) +---@class UiLib +UI = {} + +---@alias __UiWidgetName +---| 'left_title' # 左标题(默认:"第1") +---| 'right_title' # 右标题(默认:"/40") +---| 'left_desc' # 左描述(默认:"大吉大利,我是第一") +---| 'left_little_desc' # 左简述(默认:"排名1") +---| 'right_little_desc' # 右简述(默认:"战胜4") +---| 'battle_btn' # 比分面板按钮显示(默认:true) +---| 'result' # 比赛结果显示(默认:true) +---| 'result_bkg' # 比赛结果背景显示(默认:true) +---| 'reopen' # 再来一局按钮显示(默认:true) + +---设置战斗总结(左标题)。 +---@param name __UiWidgetName # 名称 +---@param value string | boolean # 值 +---@return ErrorCode +------ +function UI:setGBattleUI(name, value) end + +---世界坐标转换为小地图坐标。 +---@param x number # X 坐标 +---@param y number # Y 坐标 +---@return ErrorCode, number, number # X 坐标、Z 坐标 +function UI:world2RadarPos(x, y) end + +---世界长度转换为小地图长度。 +---@param length number # 长度 +---@return ErrorCode, number +function UI:world2RadarDist(length) end + +---@alias __MinimapRenderMode +---| 0 # 默认 +---| 1 # 45° 旋转视角 +---| 2 # 俯视角 +---设置小地图视角。 +---@param mode __MinimapRenderMode # 视角 +---@return ErrorCode +------ +function UI:setMinimapRenderMode(mode) end + +---在小地图上作线段。 +---@param uiname string +---@param p1x number # 起点 X 坐标 +---@param p1y number # 起点 Y 坐标 +---@param p2x number # 终点 X 坐标 +---@param p2y number # 终点 Y 坐标 +---@return ErrorCode +function UI:setShapeLine(uiname, p1x, p1y, p2x, p2y) end + +---在小地图上作圆。 +---@param uiname string +---@param x number # 圆心 X 坐标 +---@param y number # 圆心 Y 坐标 +---@param radius number # 半径 +---@return ErrorCode +function UI:setShapeCircle(uiname, x, y, radius) end + +---@alias __ScreenEffect +---| 1 # speedline +---| 2 # powerline +---| 3 # fog +---显示迷雾效果。 +---@param type __ScreenEffect # 效果类型 +---@param isloop boolean # 是否循环 +---@param incspeed number # 增速 +---@return ErrorCode +------ +function UI:ShowScreenEffect(type, isloop, incspeed) end diff --git a/lua/miniworld/library/world.zh-CN.lua b/lua/miniworld/library/world.zh-CN.lua index f237e4c..631110e 100644 --- a/lua/miniworld/library/world.zh-CN.lua +++ b/lua/miniworld/library/world.zh-CN.lua @@ -104,7 +104,7 @@ function World:getRayBlock(srcx, srcy, srcz, face, distance) end ---@param x2 number # 终点 X 坐标 ---@param y2 number # 终点 Y 坐标 ---@param z2 number # 终点 Z 坐标 ----@return ErrorCode, number, table +---@return ErrorCode, number, number[] function World:getActorsByBox(objtype, x1, y1, z1, x2, y2, z2) end ---@alias __WorldAliveConfig @@ -121,7 +121,7 @@ function World:getPlayerTotal(alive) end ---获取所有玩家。 ---@param alive __WorldAliveConfig # 统计哪些玩家 ----@return ErrorCode, number, table +---@return ErrorCode, number, number[] function World:getAllPlayers(alive) end ---随机获取一位玩家。 @@ -132,7 +132,7 @@ function World:randomOnePlayer(alive) end ---移除 Actor。 ---@param objid number # Actor ID ---@return ErrorCode -function despawnActor(objid) end +function World:despawnActor(objid) end ---生成生物。 ---@param x number # X 坐标 @@ -140,13 +140,13 @@ function despawnActor(objid) end ---@param z number # Z 坐标 ---@param actorid number # 生物类型 ID ---@param num number # 生成数量 ----@return ErrorCode, table # 生成的生物 ID 列表 -function spawnCreature(x, y, z, actorid, num) end +---@return ErrorCode, number[] # 生成的生物 ID 列表 +function World:spawnCreature(x, y, z, actorid, num) end ---移除生物。 ---@param objid number # 生物 ID ---@return ErrorCode -function despawnCreature(objid) end +function World:despawnCreature(objid) end ---生成道具。 ---@param x number # 道具 X 坐标 @@ -154,7 +154,7 @@ function despawnCreature(objid) end ---@param z number # 道具 Z 坐标 ---@param itemid number # 道具类型 ID ---@param num number # 生成数量 -function spawnItem(x, y, z, itemid, num) end +function World:spawnItem(x, y, z, itemid, num) end ---移除区域内的道具。 ---@param x1 number # 起点 X 坐标 @@ -164,7 +164,7 @@ function spawnItem(x, y, z, itemid, num) end ---@param y2 number # 终点 Y 坐标 ---@param z2 number # 终点 Z 坐标 ---@return ErrorCode -function despawnItemByBox(x1, y1, z1, x2, y2, z2) end +function World:despawnItemByBox(x1, y1, z1, x2, y2, z2) end ---移除道具。 ---@param objid number # 道具 ID @@ -245,6 +245,7 @@ function World:playSoundEffectOnPos(pos, soundId, volume, pitch, isLoop) end ---停止指定位置上的指定音效。 ---@param pos __PositionTable # 位置 ---@param soundId number # 音效 ID +---@return ErrorCode function World:stopSoundEffectOnPos(pos, soundId) end ---获取指定位置光照强度。