Skip to content

SystemApi

QyMod中的核心功能依赖模块库

里面包含了ServerSystem以及ClientSystem类的所有类方法以及双端基类的实例对象

且提供了框架系统内部的数据管理接口,比如访问其他框架环境中已经注册的模块对象等

Universal



  • 描述

    通用类,可做存储数据使用(读写该类属性对象数据会打印信息到日志,以便调试,可继承此类使子类启用该功能)

  • 参数

    None

  • 返回值

    None

  • 示例

    py
    from QingYunModLibs.System import *
    
    UniversalData = Universal()

GetClientModAttr



  • 描述

    安全获取客户端ModAttr数据

  • 参数

    py
    entityId|str|实体Id
    AttrName|str|AttrId名称
  • 返回值

    py
    AttrData|str|Attr数据内容
  • 示例

    py
    from QingYunModLibs.System import *
    
    ModAttr = GetClientModAttr(playerId, "Test")
    # 获取某个玩家客户端id为Test的Attr数据

SetClientModAttr



  • 描述

    安全设置客户端ModAttr数据

  • 参数

    py
    entityId|str|实体Id
    AttrName|str|AttrId名称
    Attr|str|Attr数据
  • 返回值

    None

  • 示例

    py
    from QingYunModLibs.System import *
    
    ModAttr = SetClientModAttr(playerId, "Test", "attr")
    # 设置某个玩家客户端id为Test的Attr数据为"attr"

Bcolors



  • 描述

    颜色日志输出标识符类(无需实例化,可直接访问类对象成员)
    SUC # GREEN
    ERROR # YELLOW
    FAIL # RED
    RESET # RESET COLOR

  • 参数

    None

  • 返回值

    None

  • 示例

    py
    from QingYunModLibs.System import *
    
    print Bcolors.SUC+"Successfully!"
    # 打印绿色(成功)字样"Successfully!"日志

CallBack



  • 描述

    通信绑定函数,用于绑定目标函数,发信端发信时该接口绑定的函数会被调用,可返回某值

  • 参数

    py
    BackFunc|object|自定义通信的回调函数
    TargetId|str|自定义通信的目标id,客户端一般为playerId,服务端则为-1,服务端无需传参
    ForAllMod|bool|是否为框架全局通信
  • 返回值

    None

  • 示例

    py
    # ModScripts.Client
    from QingYunModLibs.ClientMod import *
    playerId = ClientApi.Player.playerId
    
    def Func(args):
        pass
    
    CallBack(Func, playerId)
    py
    # ModScripts.Server
    from QingYunModLibs.ServerMod import *
    
    def Func(args):
        pass
    
    CallBack(Func)

CallClient



  • 描述

    发起通信请求函数,服务端接口,从服务端向客户端发起单向请求,可调用被通信端指定函数

  • 参数

    py
    FuncName|str|需要调用的函数名称
    TargetId|str|需要请求的客户端玩家id
    EventData|any|需要一并传入指定函数的参数数据(仅支持基本数据类型)
    BackFunc|object|目标函数运行结束以后将用于获取返回值的回调函数
    ForAllMod|bool|是否为框架全局通信
  • 返回值

    None

  • 示例

    py
    # ModScripts.Client
    from QingYunModLibs.ClientMod import *
    playerId = ClientApi.Player.playerId
    
    def Func(args):
        print args
        return 1919810
    
    CallBack(Func, playerId)
    py
    # ModScripts.Server
    from QingYunModLibs.ServerMod import *
    
    def BackFunc(args):
        print args
    
    CallClient("Func", playerId, "114514", BackFunc)

CallServer



  • 描述

    发起通信请求函数,客户端接口,从客户端向服务端发起单向请求,可调用被通信端指定函数

  • 参数

    py
    FuncName|str|需要调用的函数名称
    EventData|any|需要一并传入指定函数的参数数据(仅支持基本数据类型)
    BackFunc|object|目标函数运行结束以后将用于获取返回值的回调函数
    ForAllMod|bool|是否为框架全局通信
  • 返回值

    None

  • 示例

    py
    # ModScripts.Server
    from QingYunModLibs.ServerMod import *
    
    def Func(args):
        print args
        return 1919810
    
    CallBack(Func)
    py
    # ModScripts.Client
    from QingYunModLibs.ClientMod import *
    
    def BackFunc(args):
        print args
    
    CallServer("Func", "114514", BackFunc)

MappingCall



  • 描述

    发起通信请求函数,客户端接口,从客户端向所有客户端发起单向请求,可调用被通信端指定函数(暂不支持获取返回值以及选为全局框架通信)

  • 参数

    py
    FuncName|str|需要调用的函数名称
    EventData|any|需要一并传入指定函数的参数数据(仅支持基本数据类型)
  • 返回值

    None

  • 示例

    py
    # ModScripts.Client
    from QingYunModLibs.ClientMod import *
    
    def Func(args):
        print args
    
    MappingCall("Func", "114514")

ListenServerEvents



  • 描述

    监听服务端游戏原生事件

  • 参数

    py
    EventName|str|事件名称
    BackFunc|object|用于触发事件逻辑的回调函数
  • 返回值

    None

  • 示例

    py
    # ModScripts.Server
    from QingYunModLibs.ServerMod import *
    
    def OnServerChat(args):
        print args["message"]
    
    ListenServerEvents("ServerChatEvent", OnServerChat)

ListenClientEvents



  • 描述

    监听客户端游戏原生事件

  • 参数

    py
    EventName|str|事件名称
    BackFunc|object|用于触发事件逻辑的回调函数
  • 返回值

    None

  • 示例

    py
    # ModScripts.Client
    from QingYunModLibs.ClientMod import *
    
    def OnHoleBefore(args):
        print args
    
    ListenClientEvents("HoleBeforeClientEvent", OnHoleBefore)

DesEntityClient



  • 描述

    基于客户端的该接口用于销毁实体,理论上所有实体通用,包括特效类实体

  • 参数

    py
    entityId|str|需要销毁的实体id
  • 返回值

    None

  • 示例

    py
    from QingYunModLibs.ClientMod import *
    
    DesEntityClient(entityId)

DesEntityServer



  • 描述

    基于客户端的该接口用于销毁实体,理论上所有实体通用

  • 参数

    py
    entityId|str|需要销毁的实体id
  • 返回值

    None

  • 示例

    py
    from QingYunModLibs.ServerMod import *
    
    DesEntityServer(entityId)

CreateParticle



  • 描述

    基于客户端的该接口用于根据MCS制作的粒子特效配置文件生成粒子特效

  • 参数

    py
    Effect|str|需要创建的粒子特效配置文件路径,例如:"effects/fire.json"
    Pos|tuple|将要创建粒子特效的位置坐标
    IsPlay|bool|是否立刻播放特效(默认False)
  • 返回值

    py
    particleId|str|创建的粒子特效实体id
  • 示例

    py
    from QingYunModLibs.ClientMod import *
    
    CreateParticle("effects/xxx.json", (0, 100, 0), True)

CreateFrame



  • 描述

    基于客户端的该接口用于根据MCS制作的序列帧特效配置文件生成序列帧特效

  • 参数

    py
    Effect|str|需要创建的序列帧特效配置文件路径,例如:"effects/fire.json"
    Pos|tuple|将要创建序列帧特效的位置坐标
    Rot|tuple|将要创建序列帧特效的旋转角度
    Scale|tuple|将要创建序列帧特效的缩放大小
    IsPlay|bool|是否立刻播放特效(默认False)
  • 返回值

    py
    frameId|str|创建的序列帧特效实体id
  • 示例

    py
    from QingYunModLibs.ClientMod import *
    
    CreateFrame("effects/xxx.json", (0, 100, 0), (0, 0, 0), (1, 1, 1), True)

CreateFrameTexture



  • 描述

    基于客户端的该接口用于根据MCS制作的序列帧特效配置文件生成序列帧特效

  • 参数

    py
    Effect|str|需要创建的序列帧特效配置文件路径,例如:"textures/sfxs/effect.png"
    Pos|tuple|将要创建序列帧特效的位置坐标
    Rot|tuple|将要创建序列帧特效的旋转角度
    Scale|tuple|将要创建序列帧特效的缩放大小
    IsPlay|bool|是否立刻播放特效(默认False)
  • 返回值

    py
    frameId|str|创建的序列帧特效实体id
  • 示例

    py
    from QingYunModLibs.ClientMod import *
    
    CreateFrameTexture("textures/sfxs/effect.png", (0, 100, 0), (0, 0, 0), (1, 1, 1), True)

CreateEntityServer



  • 描述

    基于服务端的该接口用于根据命名标识符来创建实体,可指定实体的生成位置,面向角度(默认为0,0),所处维度id(默认为主世界--0),是否为NPC(默认为否)

  • 参数

    py
    EntityTypeStr|str|实体的命名标识符
    Pos|tuple|生成位置
    Rot|tuple|面向角度 --> (0,0)
    DimId|float|维度id --> 0
    IsNpc|bool|是否为NPC --> False(默认False)
  • 返回值

    py
    frameId|str|创建的序列帧特效实体id
  • 示例

    py
    from QingYunModLibs.ClientMod import *
    
    CreateEntityServer("minecraft:pig", (0, 100, 0), (0, 0), 0)
    # 在主世界(0, 100, 0)的位置生成一个朝向为(0, 0)的猪

GetClientModule



  • 描述

    获取全局框架环境中某一客户端模块文件(本地客户端)

  • 参数

    py
    ModuleName|str|将要获取的模块名称(无后缀)
  • 返回值

    py
    Module|object|目标模块对象
  • 示例

    py
    from QingYunModLibs.ClientMod import *
    
    Client = GetClientModule("ModScripts.Client")

GetServerModule



  • 描述

    获取全局框架环境中某一服务端模块文件

  • 参数

    py
    ModuleName|str|将要获取的模块名称(无后缀)
  • 返回值

    py
    Module|object|目标模块对象
  • 示例

    py
    from QingYunModLibs.ServerMod import *
    
    Client = GetServerModule("ModScripts.Server")

DestroyAllServerEvents



  • 描述

    注销服务端所有监听事件(不建议在游戏运行结束前随意调用该接口)

  • 参数

    None

  • 返回值

    None

  • 示例

    py
    from QingYunModLibs.ServerMod import *
    
    DestroyAllServerEvents()

DestroyAllClientEvents



  • 描述

    注销客户端所有监听事件(不建议在游戏运行结束前随意调用该接口)

  • 参数

    None

  • 返回值

    None

  • 示例

    py
    from QingYunModLibs.ClientMod import *
    
    DestroyAllClientEvents()

Call



  • 描述

    通信绑定函数,用于绑定目标函数,发信端发信时该接口绑定的函数会被调用,可返回某值(装饰器函数)

  • 参数

    py
    TargetId|str|自定义通信的目标id,客户端一般为playerId,服务端则为-1,服务端无需传参
    ForAllMod|bool|是否为框架全局通信
  • 返回值

    None

  • 示例

    py
    # ModScripts.Client
    from QingYunModLibs.ClientMod import *
    playerId = ClientApi.Player.playerId
    
    @Call(playerId)
    def OnFunc(args):
        pass
    py
    # ModScripts.Server
    from QingYunModLibs.ServerMod import *
    
    @Call()
    def OnFunc(args):
        pass

ListenServer



  • 描述

    监听服务端游戏原生事件(装饰器函数)

  • 参数

    py
    EventName|str|事件名称
  • 返回值

    None

  • 示例

    py
    # ModScripts.Server
    from QingYunModLibs.ServerMod import *
    
    @ListenServer(ServerEvents.WorldEvents.ServerChatEvent)
    def OnServerChat(args):
        print args["message"]

ListenClient



  • 描述

    监听客户端游戏原生事件(装饰器函数)

  • 参数

    py
    EventName|str|事件名称
  • 返回值

    None

  • 示例

    py
    # ModScripts.Client
    from QingYunModLibs.ClientMod import *
    
    @ListenClient(ClientEvents.ControlEvents.HoldBeforeClientEvent)
    def OnHoldBefore(args):
        print args

UnListenServer



  • 描述

    注销监听服务端游戏原生事件

  • 参数

    py
    EventName|str|事件名称
    BackFunc|object|用于触发事件逻辑的回调函数
  • 返回值

    None

  • 示例

    py
    # ModScripts.Server
    from QingYunModLibs.ServerMod import *
    
    def OnServerChat(args):
        print args["message"]
        
    UnListenServer(ServerEvents.WorldEvents.ServerChatEvent, OnServerChat)

UnListenClient



  • 描述

    注销监听客户端游戏原生事件

  • 参数

    py
    EventName|str|事件名称
    BackFunc|object|用于触发事件逻辑的回调函数
  • 返回值

    None

  • 示例

    py
    # ModScripts.Client
    from QingYunModLibs.ClientMod import *
    
    def OnHoldBefore(args):
        print args
        
    UnListenClient(ClientEvents.ControlEvents.HoldBeforeClientEvent, OnHoldBefore)

UnListenServerCall



  • 描述

    注销绑定服务端通信

  • 参数

    py
    BackFunc|object|用于绑定通信的回调函数
  • 返回值

    None

  • 示例

    py
    # ModScripts.Server
    from QingYunModLibs.ServerMod import *
    
    def OnFunc(args):
        print args
        
    UnListenServerCall(OnFunc)

UnListenClientCall



  • 描述

    注销绑定客户端通信

  • 参数

    py
    BackFunc|object|用于绑定通信的回调函数
  • 返回值

    None

  • 示例

    py
    # ModScripts.Client
    from QingYunModLibs.ClientMod import *
    
    def OnFunc(args):
        print args
        
    UnListenClientCall(OnFunc)