跳转到内容

API运行环境

Lua脚本需要区分为服务端代码与客户端代码,分别对服务端逻辑与客户端逻辑进行控制,客户端-服务器代码分别写在GameServer.lua与GameClient.lua中。客户端代码负责处理用户输入向服务端发送请求,比如界面的逻辑;服务端代码负责处理客户端请求,比如存储玩家数据。

API有三种运行环境,第一种是纯客户端运行,第二种是纯服务端运行,第三种是在客户端和服务端运行。

可以在开发者文档中查看该API的运行范围。开发者文档链接:元件脚本 API文档 | 元梦之星

纯服务端运行

纯服务端运行的API只能在服务端运行,用于处理与服务器相关的逻辑和数据操作。这些API通常不涉及客户端渲染或用户交互,而是专注于业务逻辑、数据存储和网络通信。

使用场景:

  1. 游戏逻辑处理:如伤害计算、物品掉落、任务完成判定。
  2. 数据存储与查询:如玩家存档、排行榜数据、游戏配置。
  3. 网络通信:如处理客户端请求、广播消息给所有客户端。

纯客户端运行

纯客户端运行的API只能在客户端运行,用于处理与用户界面、输入和渲染相关的操作。这些API通常不涉及服务器逻辑,而是专注于本地数据处理和用户交互。

使用场景:

  1. 用户界面渲染:如显示游戏画面、更新血条、播放音效。
  2. 输入处理:如接收玩家按键、鼠标点击、触摸操作。

在服务端和客户端运行

在服务端和客户端运行的API可以在客户端调用也可在服务端调用,比如获取玩家数据。

部分在服务端和客户端上使用的API,因其操作对象三端同步,最终效果会以服务端为准。

以下为这类API列表:

API描述
CharacterSetPosition设置角色的位置
CharacterSetToward设置角色的朝向,相当于指定方向向量
CharacterSetRotation设置角色的旋转角度
CharacterSetScale设置角色的模型大小
CharacterChangeAttribute设置角色的角色属性值。支持设置:移动速度,跳跃速度或重力系数属性
CharacterSetAttributeEnabled设置角色属性是否启用,支持设置:输入,移动,跳跃,抓取,被抓取,拾取道具,使用道具,物理模拟,可见性
CharacterAddImpulse给角色添加向某个方向的力
CharacterSetTrackTargetMove让角色追踪某个元件/角色/生物,并设置其速度等。可用于制作角色追击指定玩家
CharacterStopTracking让角色停止追踪运动
CharacterMove让角色朝指定方向移动,并设置其速度与时间
CharacterMoveToPosition让角色朝目标点位置移动
CharacterStopMove让角色停止移动

如果元件创建在服务端,则下列API以服务端为准:

API描述
ElementDestroy销毁元件
ElementDestroyByTime在指定时间后,销毁指定元件实例
ElementSetPosition设置并改变元件位置
ElementSetToward设置并改变元件朝向
ElementSetScale设置并改变元件的缩放
ElementSetRotation设置并改变元件的旋转方向
ElementSetRotationQuaternion使用四元数设置元件的旋转
ElementSetEnableCollision设置并改变元件的是否可碰撞属性
ElementSetPhysics设置元件物理属性是否开启。若需要开启抓举,需要先开启受外力作用。若需要关闭抓举,需要先将受外力作用关闭
ElementSetVisibility设置并改变元件的是否可见属性
ElementEnableAllMotionUnit启用/禁用目标元件的所有运动单元,无视启动条件
ElementEnableMotionUnitByIndex启用/禁用目标元件的指定编号运动单元,无视启动条件
ElementAddForce对具备物理特性的指定元件添加对应向量的力
ElementBindingToElement将目标元件附加到指定父元件上
ElementBindingToCharacterOrNPC将目标元件附加到指定父角色上
ElementUnBinding解除元件的附加逻辑
ElementTrackTarget让指定元件实例追踪目标实例,元件可以做加速运动且保持一个指定的相对距离
ElementStopTracking让指定元件实例停止追踪运动
ElementLinearMotion让元件直线移动。注意:只支持运动表演,运动期间元件无碰撞
ElementCircularMotion让元件圆周运动。注意:只支持运动表演,运动期间元件无碰撞
ElementParabolicMotion让元件抛物线运动。注意:只支持运动表演,运动期间元件无碰撞
ElementMoveTo设置元件位置,使元件按指定方式移动到该位置
ElementRotateTo设置元件旋转,使元件按指定方式旋转到该位置
ElementScaleTo设置元件缩放,使元件按指定方式缩放到该大小