收起左侧

帝国时代3给地图添加宝藏教程

[复制链接]
こはね发表于 2020-3-15 01:46:01
@POLICE1994反馈,圣典的地图教程没有写怎样添加宝藏。作者对此表示,你不提醒我,我短时间内也发现不了这个问题。(其实已经过去半年了)

不说废话了,创建宝藏跟创建单位差不多(在地图添加单位教程自行参考https://www.aooebbs.net/Age_of_Empires_III_Modding_Tutorial/13-04-IICreateUnit.htm),下面为创建单位模板

int Unit1ID = rmCreateObjectDef("Unit1");

rmAddObjectDefItem(Unit1ID, "protoname",1,5.0);

rmSetObjectDefMinDistance(Unit1ID,0.0);

rmSetObjectDefMaxDistance(Unit1ID,30.0);

rmPlaceObjectDefAtLoc(Unit1ID,0,0.50,0.50,1);

创建宝藏就是放置宝藏这个单位,调用名为"Nugget",然后还多了一句rmSetNuggetDifficulty设定宝藏等级,宝藏等级由databar里面的nuggets.xml定义(地图会出现哪些类型的宝藏也是在这个文件定义,具体参考https://www.aooebbs.net/Age_of_Empires_III_Modding_Tutorial/10-04nuggets.htm),命令表语句如下:

[( )] rmSetNuggetDifficulty(int minLevel, int maxLevel): Sets the min/max difficulty levels for placing nuggets.

如果设定rmSetNuggetDifficulty(1,1),那么放置宝藏只会出现nuggets.xml定义的1级宝藏;如果设定rmSetNuggetDifficulty(2,2),那么放置宝藏只会出现nuggets.xml定义的2级宝藏;如果设定rmSetNuggetDifficulty(1,4),那么放置宝藏应该会随机出现1-4级宝藏。(作者猜测的,没有试过)

下面放置(1级)宝藏模板:

int NuggetID = rmCreateObjectDef("Nugget");

rmAddObjectDefItem(NuggetID, "Nugget", 1, 0.0);

rmSetNuggetDifficulty(1, 1));

rmSetObjectDefMinDistance(NuggetID,0.0);

rmSetObjectDefMaxDistance(NuggetID,30.0);

rmPlaceObjectDefAtLoc(NuggetID,0,0.50,0.50,1);

设定1级宝藏后,可以更改宝藏等级

int Nugget2ID = rmCreateObjectDef("Nugget2");

rmAddObjectDefItem(Nugget2ID, "Nugget", 1, 0.0);

rmSetNuggetDifficulty(2, 2);

rmSetObjectDefMinDistance(Nugget2ID,0.0);

rmSetObjectDefMaxDistance(Nugget2ID,30.0);

rmPlaceObjectDefAtLoc(Nugget2ID,0,0.50,0.50,1);

1级宝藏为初级宝藏,例如没有守护者的40、50钱币,由1只狼守护的40食物。

2级宝藏为中级宝藏,例如两只狼守护的60、90食物,两个亡命步枪兵守护的80食物;另外还有些不高的属性加成科技。

3级宝藏为高级宝藏,例如3个亡命步枪兵守护的225食物,3个海盗守护的235黄金;另外还有些不高的属性加成科技。

4级宝藏为超级宝藏,通常为+100%属性科技,或者是400+以上的食物、黄金、经验宝藏;另外两辆哨所马车也是超级宝藏。

5级宝藏为海洋宝藏,海洋宝藏没有等级之分,全部为随机,如果需要分等级只能自己去nuggets.xml修改。

98级宝藏为为一个蒙古斥候,这是为了固定蒙古地图的斥候宝藏而设定的。

最后补充:如果给地图类型添加scenario,那么会出现剧情宝藏,部分剧情宝藏只能由剧情英雄捡取,普通探险家不行。

跳转到