通用

索引

接口
描述
InitLingmienAetherMod服务端[必用]注册灵免以太模组信息
BindNextTickFunction双端绑定下一帧执行函数,可以携带该函数所需的参数,1Tick内重复绑定不会生效
BindNextTickFunctionAboutUUID双端绑定下一帧执行函数,可以携带该函数所需的参数
SetIsDisable服务端服务端设置,需要在服务端初始化后直接调用
GetServerIsDisable客户端获取服务端设置信息
AddObjectFunction客户端给实例添加函数库
GetLingmienAetherManifest客户端获取灵免以太函数库清单
Notify双端双端之间的通信
UseServerApi客户端使用服务端接口
UseClientApi服务端使用客户端接口,但无法获得返回值
GetIsStart客户端获取玩家是否处于进入游戏状态(这里指进入灵免以太主界面后是否点击了"单人游戏")
BindGameHighTickFunction客户端绑定游戏高Tick函数
BindMouseWheelFunction客户端绑定鼠标滚轮事件
Lerp客户端常规非线性计算
SLerp客户端角度形非线性计算
GetLingmienAetherMod服务端获取已注册的灵免以太模组数据
GetTwoPosLength双端获取目标坐标与第一坐标之间的距离
DeltaDateTime双端计算日期差值,FirstDate-SecondDate
SplitListByQuantity双端按数量拆分list
SortListByNumberMagnitude双端根据数字排序由Dict元素组成的List--[{}, {}, ...]
SortDictByNumberMagnitude双端据数字排序由Dict元素组成的Dict--{'x':{}, 'y':{}, ...}
GetDictExtremeValueKey双端获取Dict中指定Key的极值对应的键--{'x':float, 'y':float, ...}
GetPlatForm服务端获取服务端运行环境
ConvertUnicodeDictToUtf8双端将字典中的unicode编码转换为utf-8编码
EncryptDict服务端加密数据为字符串
DecryptDict服务端解密数据

InitLingmienAetherMod

服务端

  • 描述
    [必用]注册灵免以太模组信息

  • 参数

参数名数据类型说明
ModDatadict模组信息
  • 返回值

  • 备注
    ModData(dict)说明

参数名数据类型说明
ModNamestr模组名称
Versionstr模组版本号
LogoPathstrlogo路径,从textures开始(选填)
Contentstr模组简介

效果图:

  • 示例
def __init__(self, namespace, systemNam):
  ...
  self.LA = self.GetLASys('密钥')

@Event.ClientEvent('UiInitFinished')
def UiInitFinished(self, *args)
  ModData = {
      'ModName': 'Lingmien Aether',
      'Version': '1.0.2',
      'LogoPath': 'textures/ui/LA/logo_text',
      'Content': 'Lingmien Aether(灵免以太)'
                  '\n版本:1.0.2'
                  '\n制作人员:大肥免开发组\n'
                  '\nLAAPI Mod前置组件管理器',
  }
  self.LA.UseServerApi('InitLingmienAetherMod', [ModData])

BindNextTickFunction

双端

  • 描述
    绑定下一帧执行函数,可以携带该函数所需的参数,1Tick内重复绑定不会生效

  • 参数

参数名数据类型说明
FunctionInstancefunction函数,例如self.CreateMsg,不要填写成self.CreateMsg()样式
*argsany绑定函数的参数
  • 返回值

  • 备注

  • 示例 无


BindNextTickFunctionAboutUUID

双端

  • 描述
    绑定下一帧执行函数,可以携带该函数所需的参数

  • 参数

参数名数据类型说明
FunctionInstancefunction函数,例如self.CreateMsg,不要填写成self.CreateMsg()样式
*argsany绑定函数的参数
  • 返回值

  • 备注

  • 示例 无


SetIsDisable

服务端

  • 描述
    服务端设置,需要在服务端初始化后直接调用

  • 参数

参数名数据类型说明
Typestr设置类型
Boolbool是否启用,默认为None
  • 返回值
    该设置的布尔值(bool)

  • 备注

    • 设置类型:
    参数名数据类型默认值说明
    AntiCheatUseServerApiboolTrue联机大厅、网络游戏UseServerApi反作弊
    AntiCheatPingboolTrue联机大厅、网络游戏弱网反作弊
    IsStartUIboolTrue是否启用灵免以太主界面,禁用后主界面相关接口及功能将失效
    IsLobbyboolAuto是否为联机大厅、网络游戏环境
    IsLobbyKickboolFalse是否限制玩家二次进入本房间/存档
  • 示例

def __init__(self, namespace, systemName):
    ...
    self.LA = self.GetLASys('密钥')
    self.LA.SetIsDisable('IsStartUI', False)

GetServerIsDisable

客户端

  • 描述
    获取服务端设置信息

  • 参数

参数名数据类型说明
Typestr设置类型

AddObjectFunction

客户端

  • 描述
    给实例添加函数库

  • 参数

参数名数据类型说明
Manifestlist函数库清单
  • 返回值

  • 备注

def QuerySet(Value):
  pass

Manifest = [
  ('QuerySet', QuerySet, False, None, None),
  ...
]

tuple说明

参数位置数据类型说明
0str添加后的函数名字
1function添加后的函数名字
2bool是否拥有装饰器(已废弃,请填写为False)
3object监听装饰器(已废弃,请填写为None)
4str事件名(已废弃,请填写为None)
  • 示例 空

GetLingmienAetherManifest

客户端

  • 描述
    获取灵免以太函数库清单

  • 参数

  • 返回值
    灵免以太函数库清单(list)

  • 备注
    能够直接在非灵免以太客户端实例中使用一些接口,双端往返类型的通常不支持。

  • 示例

self.LA = self.GetLASys('密钥')
LingmienAetherManifest = self.LA.GetLingmienAetherManifest()
self.AddObjectFunction(LingmienAetherManifest)

Notify

双端

  • 描述
    服务端使用:服务端通信至使用灵免以太引擎的客户端事件

    客户端使用:客户端通信至使用灵免以太引擎的服务端事件

  • 服务端参数

参数名数据类型说明
LAConfigobject灵免以太脚本配置config,用于指定脚本系统通信
ClientFunctionNamestr该灵免以太脚本配置客户端系统的函数名称
DataDictdict通信数据
PlayerIdListstr,list,None通信玩家的客户端列表,默认为None则为广播至所有玩家
DelayTimefloat通信客户端失败时,延迟多久(单位:秒)重试,默认为None则下一帧重试
  • 客户端参数
参数名数据类型说明
LAConfigobject灵免以太脚本配置config,用于指定脚本系统通信
ServerFuncitonNamestr该灵免以太脚本配置服务端系统的函数名称
DataDictdict通信数据
  • 返回值

  • 备注
    该接口会自动优化通信效率,节省流量。

  • 示例 服务端广播至客户端

服务端发送

LASystem.Notify(config, 'CustomFunction', {'a': 1})

客户端接收

def CustomFunction(self, args):
  print args
  # 结果为 {'a': 1}

UseServerApi

客户端

  • 描述
    使用服务端接口,但无法获得返回值

  • 参数

参数名数据类型说明
ApiNamestr服务端接口名称
ArgsListlist服务端接口参数列表
OnlyClientbool是否仅在客户端调用缓存数据,默认为False
  • 返回值
    ApiId,用于获取接口返回值 (str)

  • 备注

    • 该接口禁止在联机大厅、网络游戏中执行!
    • 在返回数据量较大的时候,推荐开启OnlyClient
  • 示例

self.LA = self.GetLASys('密钥')
ApiId = self.LA.UseServerApi('PlaySound', [playerId, 'random.click'])
# 需要考虑玩家延迟,已防无法获取到返回值
ApiId = self.LA.UseServerApi('GetItemDictByInv', [playerId, 0, 0])
Ping = self.LA.GetPlayerPing(playerId)
# 由于ping单位为毫秒,因此使用0.02倍率计时器来进行获取
compTimer.AddTimer(0.02 * Ping, self.CallBack, ApiId)

def CallBack(self, ApiId):
  # 获取返回值
  self.LA.GetModRenderAttrByKey(playerId, ApiId)

UseClientApi

服务端

  • 描述
    使用客户端接口,但无法获得返回值

  • 参数

参数名数据类型说明
ApiNamestr客户端接口名称
ArgsListlist客户端接口参数列表
PlayerIdstr指定客户端玩家Id,默认为None,则广播所有客户端使用该接口
  • 返回值

  • 备注

  • 示例 无


GetIsStart

客户端

  • 描述
    获取玩家是否处于进入游戏状态(这里指进入灵免以太主界面后是否点击了"单人游戏")

  • 参数

  • 返回值
    玩家是否处于进入游戏状态 (bool)

  • 备注

  • 示例 无


BindGameHighTickFunction

客户端

  • 描述
    绑定游戏高Tick函数

  • 参数

参数名数据类型说明
FunctionInstancefunction函数(无参数),例如self.CreateMsg,不要填写成self.CreateMsg()样式
IsAddbool是否是添加绑定,默认为True,则为添加类型反之为删除
  • 返回值

  • 备注
    原版MC每秒20Tick,网易MC脚本每秒30Tick,该Tick的基准以玩家当前Fps为准

  • 示例

def __init__(self, namespace, systemName):
  ...
  self.LA = self.GetLASys('密钥')

@Event.ClientEvent('UiInitFinished')
  def UiInitFinished(self, *args):
    self.LA.BindGameHighTickFunction(self.CreateMsg)

def CreateMsg(self):
    self.LA.Msg('高刷Tick')

BindMouseWheelFunction

客户端

  • 描述
    绑定鼠标滚轮事件

  • 参数

参数名数据类型说明
FunctionInstancefunction函数(是否向上滚的一个bool参数),例如self.CreateMsg,不要填写成self.CreateMsg()样式
IsAddbool是否是添加绑定,默认为True,则为添加类型反之为删除
  • 返回值

  • 备注

  • 示例 无


Lerp

客户端

  • 描述
    常规非线性计算

  • 参数

参数名数据类型说明
Startfloat开始数值
Endfloat结束数值
Factorfloat非线性系数
  • 返回值
    线性插值后的结果 (float)

  • 备注

  • 示例 无


SLerp

客户端

  • 描述
    角度形非线性计算

  • 参数

参数名数据类型说明
Startfloat开始角度
Endfloat结束角度
Factorfloat非线性系数
  • 返回值
    线性插值后的结果 (float)

  • 备注

  • 示例 无


GetLingmienAetherMod

服务端

  • 描述
    获取已注册的灵免以太模组数据

  • 参数

  • 返回值
    灵免以太模组数据 (dict)

  • 备注

  • 示例 无


GetTwoPosLength

双端

  • 描述
    获取目标坐标与第一坐标之间的距离

  • 参数

参数名数据类型说明
FirstPostuple第一三维坐标
TargetPostuple目标三维坐标
  • 返回值
    距离 (float)

  • 备注

  • 示例 无


DeltaDateTime

双端

  • 描述
    计算日期差值,FirstDate-SecondDate

  • 参数

参数名数据类型说明
FirstDatestr格式为%Y-%m-%d %H:%M:%S
SecondDatestr格式为%Y-%m-%d %H:%M:%S
  • 返回值
    差值(datetime), <type 'datetime.timedelta'>

  • 备注

  • 示例 无


SplitListByQuantity

双端

  • 描述
    按数量拆分list

  • 参数

参数名数据类型说明
Listlist需要拆分的List
Numberint拆分结果:几个元素为一个新变量
  • 返回值
    处理完毕之后的list (list)

  • 备注

  • 示例 无


SortListByNumberMagnitude

双端

  • 描述
    根据数字排序由Dict元素组成的List--[{}, {}, ...]

  • 参数

参数名数据类型说明
Listlist需要排序的List
Keystr按List内的哪个Key排序,没有则填None
IsPositiveSequencebool是否为正序
  • 返回值
    处理完毕之后的list (list)

  • 备注

  • 示例 无


SortDictByNumberMagnitude

双端

  • 描述
    据数字排序由Dict元素组成的Dict--{'x':{}, 'y':{}, ...}

  • 参数

参数名数据类型说明
Dictdict需要排序的Dict
Keystr需要排序的Dict中的Dict的Key
IsPositiveSequencebool是否为正序
Numint排出多少个
  • 返回值
    处理完毕之后的dictlist (list)

  • 备注

  • 示例 无


GetDictExtremeValueKey

双端

  • 描述
    获取Dict中指定Key的极值对应的键--{'x':float, 'y':float, ...}

  • 参数

参数名数据类型说明
Dictdict需要获取的Dict
Keystr用于比较的目标Key,字典中该Key的值用于比较
FindMaxbool是否寻找最大值,默认为True
  • 返回值
    极值对应的键 (any)

  • 备注

  • 示例 无


GetPlatForm

服务端

  • 描述
    获取服务端运行环境

  • 参数

  • 返回值
    运行环境 0:Windows平台;1:IOS;2:Android;-1:其他,例如联机大厅,阿波罗等linux服务器 (int)

  • 备注

  • 示例 无


ConvertUnicodeDictToUtf8

双端

  • 描述
    将字典中的unicode编码转换为utf-8编码

  • 参数

参数名数据类型说明
UnicodeDictdict输入的字典
  • 返回值
    转换后的字典 (dict)

  • 备注

  • 示例


EncryptDict

服务端

  • 描述
    加密数据为字符串

  • 参数

参数名数据类型说明
Dataany数据
  • 返回值
    加密后的字符串 (str)

  • 备注

  • 示例

Data = {
  'Name': 'Minecraft'
}
LASecret = LASystem.Secret()
SecretData = LASecret.EncryptDict(Data)
print LASecret.DecryptDict(SecretData)

DecryptDict

服务端

  • 描述
    解密数据

  • 参数

参数名数据类型说明
Passwordstr加密的数据字符串
  • 返回值
    解密后的内容,第一个为加密时的日期,第二个为加密的数据 (tuple[datetime, any])

  • 备注

  • 示例

Data = {
  'Name': 'Minecraft'
}
LASecret = LASystem.Secret()
SecretData = LASecret.EncryptDict(Data)
print LASecret.DecryptDict(SecretData)

前往附件

评论交流

文档目录

灵免以太