泰拉瑞亚模组学习笔记-#0

泰拉瑞亚模组学习笔记-#0

声明:本笔记仅为学习小裙子的视频教学记录下来的学习笔记。

重要提示:
在阅读本篇文章之前你应该优先掌握裙子博客的前置教程:

传送门:裙中世界

TML源码阅读技巧教程源视频(来自裙子的哔哩哔哩):

视频高清传送门:TML源码阅读技巧教程源视频

以下是笔记区域


No.1——VS查看TML源码注意事项:

1.VS默认是反编译源码生成,因此部分变量无法读取将会显示为不规范的命名。
例:


No.2——笔记随录

Top1:

1.先调用GlobalItem里面的数据,再调用每一个物品的单独数据
2.继续查找所有引用,发现Player和ItemLoader的设置。
其优先级顺序如下表所示:


优先级代码依赖性
HighPlayer如果ModPlayer=False
LowItemLoader则ItemLoader也没有办法Shoot
源区域类型暂无说明
ItemCheckInt暂无说明

Top2:GlobalItem – Item[相关说明]

1.Hook Funcition 钩子函数
2.转到Item.cs ,先确定ID范围,然后并查找所有引用
其示范代码如下:

if (this.type == 0){
this.netID = 0;
this.stack = 0;
} else if (this.type <= 1000) {
this.SetDefaults1 (this.type);
/*
查找需要的范围 并查找所有引用
例如GPS,ID为395,则对SetDefaults1进行查找
并在里面搜索395,即可查到物品GPS相关SetDefaults定义
------------------------------------------------
结构如下:
case 395
*/
} else if (this.type <= 2001) {
this.SetDefaults2 (this.type);
}
……………………

此类别的其他笔记:
1.查找当前–只查询被打开的文档(先决条件:当前文档)
2.查找全部–查找此项目的全部东西(先决条件:当前文档)
3.读取 读取源代码数据或mod数据
4.写入 new()创建一个或者clone数据


Top3–丛林蜥蜴祭坛召唤原理

1.查询丛林蜥蜴电池的ID,通过ItemID.cs查询,或者在Wiki上面查询(ID:1293)
2.ModItem的UseItem函数也同样重要,需要根据实际情况进行查找。总而言之,找ID为“1293”即可。

具体请观看上方裙子的视频!
时间位置:19:37–23:00 ModItem
时间位置:24:00–25:00 ModTile
P.S.:定位可能不准,如有偏差还请见谅

此类别的其他笔记:
1.转到定义–查找局部变量的声明区域


Top4–原版鼠标绘制

主要文件:Main.cs
寻找方法:MouseWorld
函数区域:DoDraw[泰拉瑞亚最顶层的绘制函数]
提示:ModItem,ModPlayer,Main
重要:Override Cursor

具体请观看上方裙子的视频!
时间位置:32:00–40:00 CursorMouse
P.S.:定位可能不准,如有偏差还请见谅

Top5–分析源代码NPC的AI代码

具体请观看上方裙子的视频!

时间位置:45:00–65:00 NPC-AI
在Top5和Top4之间还有裙子为直播间朋友分析【PickUp】和exmod的一些东西。有关详情说明,请自行观看视频。
P.S.:定位可能不准,如有偏差还请见谅

代码序列用途分析
scaleStats()专家模式增加怪物血量
VanillaFindFrame(int num)贴图动画帧的切换代码
Main.expertMode读取是否为专家模式代码
DropBossBags()专家模式掉落宝藏袋的方法
VanillaHitEffect怪物受到攻击的特效粒子效果
aiStyle指定AI类型代码
VanillaAI()原版AI类型代码组

重要提示:
1.局部变量由于反编译生成的代码并不规范,你可以使用重命名方法进行修改。以方便后续参考源代码能更好的去理解此代码的用法。
2.写代码最好带上注释,避免以后自己忘掉这里是干什么的。
3.要对原版的泰拉瑞亚源码进行维护调试,方便以后参考更加轻松

本文总结:

裙子的视频质量非常之高,我也看了两遍左右,这篇文章我整理了视频里面一些很关键的东西,或许综合裙子的视频应该会帮助到刚刚入坑TML以及有一些MOD基础的你。
文章可能会有一些小问题,若有请发送评论对我批评指正。
希望这篇文章能帮助到需要帮助的人,感谢你的阅读。

By JDSA Ling-Ling Book Blog

Comments

No comments yet. Why don’t you start the discussion?

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注