网站首页 > 精选文章 正文
本月初魔兽怀旧赛季服全面开放,由于内容新颖玩法多样,吸引了大批的拥趸,此篇我们谈谈如何把winda迁移到赛季服。
给大家汇报个情况,插件后续的开发正在进行中,正式版发布会随视频更新; 希望大家不要心急,让我们一起享受编程的过程,在每期的配套视频(同名B站号)后都有代码文件,可以放在游戏中自己修改学习;
这里我在KOOK上开了winda频道,有什么问题和建议,大家可以一起进来讨论:
https://kook.top/PYEQ2u
赛季服编程工具
接上篇,我们给出了一些好用的编程插件,同样在赛季服也将用到这些插件,链接:
1.15.0插件开发工具包: 链接:
https://pan.baidu.com/s/1CHlLH1XK_xN_cb7ph0iglQ?pwd=wdwd 提取码:wdwd
本次怀旧服使用的客户端版本是1.15.0,前面我们说到使用宏可以得到当前游戏的版本号
/dump select(4, GetBuildInfo())
我们也可以使用插件编程工具Pad,在其编程文本输入框里输入代码,点击“疾跑”按钮运行获得
print(select(4, GetBuildInfo()))
接下来把之前写好的winda插件,复制到经典怀旧服的插件目录里;在游戏里重新/reload界面,我们看到winda已经正常加载;
迁移带来的隐患
虽然这里并没有出现什么问题,但其实这会存在隐患;不同版本的插件代码,不是简单的复制就可以完成迁移的;
同样的道理,每当游戏新的版本发布后,会面临着大量不明的插件错误;
这是因为在游戏客户端进行升级时,伴随着新内容的加入,有时还会对游戏API代码进行废弃,也就是说上个版本还能用的功能,这次更新后就不可以用了;
那么在这样的情况下,代码必然会出现问题,这时如果使用旧插件,就会导致插件报错,严重时还会导致界面卡顿,布局错乱甚至影响技能施放等等;
所以针对不同版本的游戏,我们自己的插件也需要做不同的处理;
迁移第一步
那么今天,我们先来做好第一步,让winda来加载不同的文件和代码;
之前我们说到,插件必须要有一个与其文件夹同名的.toc文件,这是因为插件在加载过程中,首先要检查其内的.toc
.toc文件就相当于插件的入口,通过该入口客户端知道需要加载哪些代码;
通过toc文件可以把lua代码加载到内存里,之后所有的插件逻辑都在lua文件中修改即可;
当我们的插件要适配不同的游戏版本时,可以有多个.toc文件
这些文件的命名规则是这样的,如下表所示
版本 | 游戏路径 | 文件命名 | 旧版命名(同样支持) |
正式服 | _retail_ | winda_Mainline.toc | winda.toc |
WLK怀旧服 | _classic_ | winda_Wrath.toc | winda-WOTLKC.toc |
经典怀旧服 | _classic_era_ | winda_Vanilla.toc | winda-Classic.toc |
在winda后添加后缀,可以满足加载不同的代码
这些不同的.toc的加载规则是:当多个文件同时存在,游戏会加载当前版本对应的.toc;如果不存在,则会加载没有后缀的.toc;如果都没有,则不会加载插件;
接下来我们来写个简单的例子来展示上面的内容:
首先在winda.toc中,把插件名修改成:winda(无后缀)
## Interface: 30400
## Title: winda
## Title-zhCN: winda(无后缀)
接下来在winda.lua中,在开头打印,print("这是加载了无后缀的toc代码!")
print("Hello, winda!")
print("这是加载了无后缀.toc的代码!")
保存进入选人界面reloadUI,我们看到插件名称已经被修改;
接着点进入游戏后,可以看到聊天栏也输出了打印内容;
接下来回到插件目录,新建winda_Vanilla.toc文件以及winda_Vanilla.lua文件;
复制winda.toc的内容到,winda_Vanilla.toc里;修改插件名称为:winda(经典怀旧服),并修改最后一行的加载文件;
## Interface: 11500
## Title: winda
## Title-zhCN: winda(经典怀旧服)
# 通过toc加载代码
# 这里相当于一个入口
winda_Vanilla.lua
打开winda_Vanilla.lua,在开头打印,print("插件加载了修改后的文件代码,之前的代码失效了!")
print("插件加载了修改后的文件代码,之前的代码失效了!")
保存上面修改的内容,重新进入角色选择界面;这时我们发现,插件的名称发生了改变;
点击进入游戏后,也出现了预期的效果;
插件并没有运行我们之前的代码,而是通过带有后缀名的.toc文件,将我们的代码引到了另一条“路”上;
这样一来,基于上面的机制,我们可以在插件代码里,添加多个不同后缀名的.toc,从而使插件可以适配不同版本的魔兽客户端;
迁移的其他问题
当然,在游戏代码变的复杂后,我们不可能在每个版本里,都重新写一份代码;
大部分情况下代码是可以通用的,只是当遇到某些特殊情况时,有些代码版本支持,而有些版本不支持;
代码迁移版本是个复杂的问题,需要具体问题具体分析;之后遇到我们会详细讲解;
以上
祝大家在赛季服里,都有个好的际遇!!!
我在听风,也在等你。
- 上一篇: 【温达】插件制作-文件的加载顺序
- 下一篇: linux支持的文件系统_linux支持哪些文件系统
猜你喜欢
- 2025-09-19 纯干货|Markdown常用语法_markdown语法笔记
- 2025-09-19 Tomcat介绍和配置使用_tomcats
- 2025-09-19 谷歌ToC助手炸场,飞书ToB“知识问答”跟牌 | 智能涌现独家
- 2025-09-19 linux支持的文件系统_linux支持哪些文件系统
- 2025-09-19 【温达】插件制作-文件的加载顺序
- 2025-09-19 二 SEMI F57 测试项目_sourcehanserifcn semibold字体下载
- 最近发表
-
- Linux学习3 国产深度系统安装常用软件
- 用Cursor开启JAVA+AI生涯_cursor java
- 想学编程看过来,大概的入门学习路线。
- JeecgUniapp 全新版本 3.0 发布,采用 uniapp+vue3 最新架构
- 破解研发安全困局,安得卫士数据沙盒技术成企业核心资产守护者
- 人工智能-Anaconda3基础环境安装_anaconda3环境配置
- 基于Springboot + vue3实现的在线智慧考公系统
- 基于Springboot + vue3实现的学校学报出版发行
- 有哪些是你用了Mac电脑才知道Mac吊打windows 的事
- 刚接触python编译器和Pycharm的区别是什么?
- 标签列表
-
- 向日葵无法连接服务器 (32)
- git.exe (33)
- vscode更新 (34)
- dev c (33)
- git ignore命令 (32)
- gitlab提交代码步骤 (37)
- java update (36)
- vue debug (34)
- vue blur (32)
- vscode导入vue项目 (33)
- vue chart (32)
- vue cms (32)
- 大雅数据库 (34)
- 技术迭代 (37)
- 同一局域网 (33)
- github拒绝连接 (33)
- vscode php插件 (32)
- vue注释快捷键 (32)
- linux ssr (33)
- 微端服务器 (35)
- 导航猫 (32)
- 获取当前时间年月日 (33)
- stp软件 (33)
- http下载文件 (33)
- linux bt下载 (33)