Skip to content

通过QyMod构建ModSDK脚本项目

本页讲解如何通过QyMod来构建ModSDK的脚本项目




在使用QingYunModLibs之前,请先从GitHub上下载QingYunModLibs源库,并以如下的格式放在您的Mod脚本文件夹中:

py
/behavior_pack/ModScripts/QingYunModLibs

image

modMain.py的准备工作

框架本质是基于ModSDK的基础上进行封装和改动的,因此注册仍需要在modMain做文章,但相对于原版冗杂的步骤,QyMod更加简单便捷

导入必须的依赖库以使用其封装后的注册功能

py
from QingYunModLibs.ModInit.QingYunMod import *

实例化QingYunMod类以注册Mod的各种功能

py
from QingYunModLibs.ModInit.QingYunMod import *
Mod = QingYunMod()  # QingYunMod类是QingYunMod模块里的一个类,用于收集mod的信息并注册到框架系统内

使用QingYunMod的类方法注册Mod的所有信息

InitMod

py
from QingYunModLibs.ModInit.QingYunMod import *
Mod = QingYunMod()
Mod.InitMod("ModScripts") # InitMod方法的参数填入ModName,需要注意的是,这里ModName需要与脚本文件夹对齐,例如"behavior_pack/tutoralScripts"就需要输入"tutoralScripts"

DANGER

如果ModName未与脚本文件夹对齐,可能导致Mod注册出错.

ServerInit

py
from QingYunModLibs.ModInit.QingYunMod import *
Mod = QingYunMod()
Mod.ServerInit("ModServer") # ServerInit方法的参数填入脚本文件的名称,不带后缀".py"

INFO

如果你有脚本文件分层放置的需求,则这里填入参数的格式如下

文件目录:"behavior_pack/tutoralScripts/Server/ModServer.py"

py
Mod.ServerInit("Server.ModServer") # 文件层级之间用"."连接

ClientInit

py
from QingYunModLibs.ModInit.QingYunMod import *
Mod = QingYunMod()
Mod.ClientInit("ModClient") # ClientInit方法的参数填入脚本文件的名称,不带后缀".py"

INFO

如果你有脚本文件分层放置的需求,则这里填入参数的格式如下

文件目录:"behavior_pack/tutoralScripts/Client/ModClient.py"

py
Mod.ClientInit("Server.ModClient") # 文件层级之间用"."连接

以上工作在modMain.py中完成

接下来将分别在双端脚本中做准备工作

双端脚本代码的准备工作

由于剔除了原生系统类的框架,因此部分基于类实现的功能由框架单独封装进依赖库,并提供给开发者使用

导入服务端脚本初始化需要的依赖库

py
from QingYunModLibs.ServerMod import *

ServerMod模块中存储了所有服务端功能开发可能用到的服务端ModSDK接口以及框架功能

例如mod.extraApi.serverApi,ServerSystem的基类方法等

导入客户端脚本初始化需要的依赖库

py
from QingYunModLibs.ClientMod import *

ClientMod模块中存储了所有服务端功能开发可能用到的客户端ModSDK接口以及框架功能

例如mod.extraApi.clientApi,ClientSystem的基类方法等


到这里基本上Mod注册环节就已经完成了,您可以打开游戏测试Mod是否注册成功

如果日志出现"Successfully import xxx"的信息则代表您的脚本注册成功了