泰拉瑞亚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也是半退坑状态。

以上。