2023-09-13 10:51:24 来源:网友整理
泰拉瑞亚MOD制作器tModLoader使用全指南
TModLoader介绍:
下载链接(点击进入)
注意:电脑的过载可能导致MOD浏览器停止工作
TModLoader本质上是一种类似于TAPI的“模式”,提供了一种方法来加载你自己的MOD,从而不需要TR的源代码来进行操作,这意味着你可以很容易的使自己的MOD与其他人所制作的兼容,不需要你自己要去蛋疼的反编译和重新编译Terraria.exe,并避免要去必须理解所有的难以理解的“复杂”的TR源代码。它由版本为TR1.3+来工作
TModLoader的存档与普通游戏的存档是分开的,普通游戏的存档你只需复制粘贴到TModLoader的存档文件夹就可以游玩了,修改内容的PLR与WLD文件保存后会将格式改成TPLR和TWLD来与普通存档分开,所以你也可以修改存档,回到普通游戏会失去TML所修改的东西
作者的目的是让TModLoader尽可能的简单化,同时给予游戏模组强大的游戏机能,其次是,任何人在TModLoader上足够做出自己的独立MOD
TModLoader设计方式在作者更新未来的版本将减少更多的工作量
1、这是界面,我们首先打开
Mod Sources
2、接着我们不要管界面,先点击Open Sources
然后你就会跳转到mod制作目录
C:UsersAdministratorDocumentsMy GamesTerrariaModLoader(不同的电脑地址可能有所不同,不过目录一定是ModLoader)
顺便强调一下,这个mod的人物和存档是独立的。
mod目录,我们要制作mod的话,先创建一个文件夹,名字的话..随意就行...但是不能有空格
例如"Super Mod"这样就不行
3、然后我创建一个叫“FirstMod”的文件夹
之后,我们要在文件夹里创建一个
“类似MODBase的存在” ←就像1.241的tapi一样
4、我们叫它...FirstMod
using System;
using Microsoft.Xna.Framework;
using Terraria;
using Terraria.ID;
using Terraria.ModLoader;
using FirstMod.Items; //这个不要改,改了之后,要修改就很麻烦
namespace FirstMod
{
public class FirstMod : Mod
{
public override void SetModInfo(out string name, ref string version, ref string author)
{
name = "First Mod"; //这里是在游戏里显示的mod名
version = "v1"; //版本号
author = "CWOF"; //作者
}
public override void Load()
{
AddItem("BlackKing", new BlackKing(), "FirstMod/Items/BlackKing"); //读取新物品,并读取新物品的图片
}
public override void AddRecipes()
{
ModRecipe recipe = new ModRecipe(this);
recipe.AddIngredient(ItemID.DirtBlock, 2); //需要:泥土块2个
recipe.SetResult(null, "BlackKing", 1); //合成BlackKing
recipe.AddRecipe(); //添加合成
}
}
}
注释的地方,自己理解理解
public override void AddRecipes()这些,就像一个公式,套上去就行了。
5、成品,using FirstMod.Items中的Items就对应图片文件夹里的Items
之后,我们要在Items的文件夹里,创造新的武器/装备/饰品等等
不过首先,我们需要一张png和CS文件(注意,cs和png名字必须一致)
然后我们编辑BlackKing.cs文件(lz是用的vs,不过因为vs2G大,如果没有特殊需要并不建议去使用)
6、套公式
using System;
using Terraria;
using Terraria.ModLoader;
using System.Diagnostics;
using Microsoft.Xna.Framework;
namespace FirstMod.Items
{
public class BlackKing : ModItem
{
public override void SetDefaults()
{
}
}
}
然后我们开始定义我们的第一个物品
我们要给它一个名字
于是,我们在public override void SetDefaults()
{
}
里面写上
item.name = "Black King";
然后呢,一个item最基本的,除了名字,还有介绍,宽,高。
于是..
item.toolTip = "FIRE WITH BLACK”;
item.height = 40;
item.width = 40;
注意“;”号,你要知道印第安人是不会说中文的(←土著),别打成中文的“;”
这就是一个基本的item的构成了
可是我们要的是一把武器
7、那么我们应该添加更多的“属性”
item.useTime = 5; //这是一个武器使用的时间间隔
item.useAnimation = 5; //这是一个武器挥动的速度,即使用动画
item.useStyle = 1; //使用方式为挥动
item.rare = 5; //物品品质
item.autoReuse = true; //是否连发
item.damage = 10; //伤害
item.value = 10000; //售价,10银币,进率就是tr的硬币进率
这就是一个基本的武器了,然后,如果这是一个近战武器的话,我们要“告诉”它,让它可以发挥特殊的作用(比如穿上幽魂套,魔法武器会吸血)
那么,我们就写
item.melee = true;
如果是远程武器就是
item.ranged = true;
如果是魔法武器
item.magic = true;
哦,对了,我们要它只能堆叠一个。因为这是把武器
item.maxStack = 1;
于是,一个武器做好了
PS:namespace FirstMod.Items中的"FirstMod是指这个mod文件夹的名字..可别直接抄了
8、那么,成品如下
using System;
using Terraria;
using Terraria.ModLoader;
using System.Diagnostics;
using Microsoft.Xna.Framework;
namespace FirstMod.Items
{
public class BlackKing : ModItem
{
public override void SetDefaults()
{
item.name = "Black King";
item.damage = 1;
item.melee = true;
item.width = 40;
item.height = 40;
item.toolTip = "Your First weapon.";
item.useTime = 5;
item.useAnimation = 5;
item.shoot = 451;
item.shootSpeed = 2f;
item.useStyle = 1;
item.knockBack = 6;
item.value = 10000;
item.rare = 8;
item.useSound = 1;
item.autoReuse = true;
item.maxStack = 1;
}
}}
mod做好了(只有一个武器的mod做好了)
我们要让它在游戏中出现,那么,打开游戏
打开MOD Sources
哦对了
这个武器的合成对应上面"FirstMod"中的
public override void AddRecipes()
{
ModRecipe recipe = new ModRecipe(this);
recipe.AddIngredient(ItemID.DirtBlock, 2); //需要:泥土块2个
recipe.SetResult(null, "BlackKing", 1); //合成BlackKing
recipe.AddRecipe(); //添加合成
}
看见了么。
当我们加载好,我们就可以去游戏里制作了。
顺便这是空气合成,在某个东西上面合成的话,用这个
public void AddTile(int tileID)
如果你能制作,并且你的武器可以使用,那么说明你的mod制作成功了,enjoy吧
哦对了,发射pro的代码是
item.shoot = 304;
item.shoot = 3f;
这只是个例子..恩...
MOD报错解决
那么此时,mod制作器会自动报错,可是为什么一堆****呢?因为tr本身不支持中文,所以我们需要打开箭头所指的地方
然后就是出现中文的..
我这个是例子,具体你看着报错的提示改
实例制作
管那么多,先来把昆特!
咳咳。这就是一个饰品的图片..
然后,开始制作..
我们先找找不同..
AddItem("MotherFucker", new MotherFucker(), "FirstMod/Items/MotherFucker");
recipe = new ModRecipe(this);
recipe.AddIngredient(ItemID.DirtBlock);
recipe.SetResult(null, "MotherFucker", 1);
recipe.AddRecipe();
然后我们在MotherFucker.cs里面开始写这个饰品的数据
using System;
using Terraria;
using Terraria.ID;
using Terraria.ModLoader;
using Microsoft.Xna.Framework;
namespace FirstMod.Items
{
public class MotherFucker : ModItem
{
}
}
套公式...这属于简单理解..
基本的道具属性也不用说了,直接放上
item.name = "Mother Fucker!";
item.width = 24;
item.height = 28;
item.toolTip = "Come on KunTe!.";
item.toolTip2 = "Yooooooooooo!";
item.value = 10000;
item.rare = 2;
然后,我们要知道,它是个饰品,我们要它可以“佩戴"
那么,我们就写
item.accessory = true;
它是个饰品,怎么能没用的,所以,我们要设定它的防御为5
item.defense = 5;
(ps:我还不满足,我死的快,然后我就写了 item.lifeRegen = 19; //回血速度为19)
等会,这一切都要写在
public override void SetDefaults()
{
}
里面..
那么增加角色攻击之类的呢..?
来
公式
public override void UpdateAccessory(Player player)
{
player.minionDamage += 19f;
}
//召唤师哭瞎
然后你的饰品就做好了
进入游戏里看看吧
附代码图
常见问题解决方法
顺便说一些东西
关于制作mod
Q:我不知道游戏里物品的id之类怎么办?
A:可以去反编辑图片,名字就是Item_id了,wiki里面有id裱(表),就是gamepedia里,后缀改为Data_IDs
就是了,很方便。
Q:我不知道游戏里的变量怎么办?
A:里大多数的变量都是英文组合……但是也不能靠猜,有能力的可以去尝试反一下源,你有能力谁管得住你。这方面的事情我也不说,那没能力的呢,可以借鉴其他mod。也可以问我(我他妈懒啊)
Q:怎么打开!mod不会安装!代码好复杂!
A:建议去学习基础知识再来,说到这里,有一位同学想请教我trmod,我问他,会不会基础知识?他反过来问我,基础知识是啥啊,我想学做mod啊。这就跟
哥哥我想写作文唉,教我识字吧……一个道理。所以建议大家还是补补基础知识,tr是用C # 做的,所以可以去学学它的语法,lz也是正处于学习阶段。“有师傅吗,可以带带我吗,教我。”这种,很抱歉,没有。
你也可以进入terraria mod组,说明你的来意,如果是制作mod,可能会有热心人帮助你,比如ryh呢。(好像是这个id?我忘了=。=)
MOD不是想做就能做的。
做mod的都是冲着对tr的热爱来的。肯定想学什么,不给你们帮助,说不过去,可是这么多人,我们也会烦了的。还是希望大家努力。毕竟lz也是半退坑状态。
以上。