从零开始制作属于你的地图,这是一张空白地图。


把一大堆例子拿出来你看不懂,把命令拿出来你不会英文,那还不如从零开始,创建一个单位写一个教程。把这下面所说的空白地图(的xml与xs两个文件)复制到我的文档\My Games\Age of Empires 3\RM3文件夹(这是官方版本的自建地图路径,不排除MOD会改掉)。

空白地图下载链接:https://pan.baidu.com/s/1QWhvkeK5M_ZQ_JpBbVsMvg 提取码:c8r0
如果不能下载:1.你可以加入我们的QQ群85442352,里面有得下载;2.在RM3文件夹随便创建两个记事本,一个重命名为Debug.xml,另一个重命名为Debug.xs;将下面的内容复制进去。

  Debug.xml - 记事本 ____ X
文件(F)  编辑(E)  格式(O)  查看(V)  帮助(H)
<?xml version = "1.0" encoding = "UTF-8"?>
<mapinfo detailsText = "&lt;color=0,255,255&gt;Map&#xFF1A;Debug        &#x4F5C;&#x8005;&#xFF1A;&#x5C0F;&#x7FBD;\nQQ&#xFF1A;927067964        E-mail:oqingtianxiaoyu@gmail.com\nQQ&#x7FA4;&#xFF1A;456359856&#xFF08;&#x8054;&#x673A;&#x7FA4;&#xFF09;    QQ&#x7FA4;&#xFF1A;85442352&#xFF08;MOD&#x7FA4;&#xFF09;\n&lt;b&gt;Test&lt;/b&gt;&lt;i&gt;Test&lt;/i&gt;&lt;icon=&quot;(16)(ui/ingame/resource_skill_16)&quot;&gt;" imagepath = "ui\random_map\yellow_river" displayName = "*Debug" cannotReplace = ""
	loadDetailsText="&lt;color=0,255,0&gt;&lt;icon=&quot;(16)(ui/ingame/resource_skill_16)&quot;&gt;&lt;color=0,255,255&gt;Debug" loadBackground="ui\random_map\yellow_river\yellow_river_map">
<loadss>ui\random_map\yellow_river\yellow_river_ss_3</loadss>
</mapinfo>


  Debug.xs - 记事本 ____ X
文件(F)  编辑(E)  格式(O)  查看(V)  帮助(H)
	include "mercenaries.xs";
	include "ypAsianInclude.xs";
	include "ypKOTHInclude.xs";

	void main(void)
	{
		// ---------------------------------------- Map Info -------------------------------------------
		int playerTilesX=13200;			//设定地图X大小
		int playerTilesZ=13200;			//设定地图Z大小(帝国3的Y是高度,Z才是我们平常所用到的Y)


		//如果玩家大于4将playerTilesX与playerTilesZ改为11500(同一个值的int只能出现1次,当你需要修改数值的时候,不能再加入int)
		if (cNumberNonGaiaPlayers >4){	playerTilesX=11500;	playerTilesZ=11500;}



		if (cNumberNonGaiaPlayers >6){	playerTilesX=10500;	playerTilesZ=10500;}		//Modify Map X&Z Size of 6,7,8 Player



		int SizeX = 2*sqrt(cNumberNonGaiaPlayers*playerTilesX);
		int SizeZ = 2*sqrt(cNumberNonGaiaPlayers*playerTilesZ);



		string MapTerrain ="Carolinas\ground_marsh3_car";	//<-------- 地图地形,自己参照剧情编辑器 <--------

		string MapLighting ="319a_Snow";			//<-------- 照明,自己参照剧情编辑器 <--------

		string PlayerTerrain ="Carolinas\ground_marsh1_car";	//<--------- 玩家范围地形 <---------




		//设定地图XZ大小,分别调用上面用int定义的SizeX与SizeZ,即为rmSetMapSize(13200,13200);如果玩家大于4将改为11500
		rmSetMapSize(SizeX, SizeZ);



		rmSetMapElevationParameters(cElevTurbulence, 0.15, 2.5, 0.35, 3.0); // type, frequency, octaves, persistence, variation 

		rmSetMapElevationHeightBlend(1.0);


		//地形初始化,设定地图初始地形,调用上面用string定义MapTerrain,即为"Carolinas\ground_marsh3_car";
		rmTerrainInitialize(MapTerrain,6);



		//设定照明,调用上面用string定义MapLighting,即为"319a_Snow"
		rmSetLightingSet(MapLighting);



		rmSetGlobalRain(0.9);		//设定下雨
		chooseMercs();
		rmSetMapType("yucatan");
		rmSetMapType("water");
		rmSetMapType("default");	//设定地图类型,地图类型影响到宝藏
		rmSetMapType("land");
		rmSetMapType("bayou");
		rmSetSeaLevel(0); // this is height of river surface compared to surrounding land. River depth is in the river XML.

		rmSetStatusText("",0.01);//读取地图进度条



		rmPlacePlayersCircular(0.35, 0.35, 0.0);   	//圆形放置玩家


		//玩家范围
		float AreaSizePlayer = rmAreaTilesToFraction(700);
		for(i=1; <=cNumberNonGaiaPlayers)
		{
			int id=rmCreateArea("Player"+i);
			rmSetPlayerArea(i, id);
			rmSetAreaWarnFailure(id, false);
			rmSetAreaSize(id, AreaSizePlayer, AreaSizePlayer);
			rmSetAreaLocPlayer(id, i);
			rmSetAreaCoherence(id, 0.85);
			rmSetAreaSmoothDistance(id, 2);
			rmSetAreaMinBlobs(id, 1);
			rmSetAreaMaxBlobs(id, 1);
			rmSetAreaTerrainType(id,PlayerTerrain);
			rmBuildArea(id);
		}


		//定义城镇中心
		int TownCenterID = rmCreateObjectDef("player TC");
		if (rmGetNomadStart())
		{
			rmAddObjectDefItem(TownCenterID, "CoveredWagon", 1, 0.0);
		}
		else
		{
			rmAddObjectDefItem(TownCenterID, "TownCenter", 1, 0);
		}
		rmSetObjectDefMinDistance(TownCenterID, 0.0);
		rmSetObjectDefMaxDistance(TownCenterID, 20.0);
		for(i=1; <=cNumberNonGaiaPlayers)
		{	//放置城镇中心,rmPlaceObjectDefAtLoc第二个值为被放置玩家对象,这里使用了for循环,循环值=1,<=玩家人数,所以会放置所有玩家的城镇中心。
			rmPlaceObjectDefAtLoc(TownCenterID, i, rmPlayerLocXFraction(i), rmPlayerLocZFraction(i));
		}


		//定义起始单位(civs.xml定义那些开局单位)
		int startingUnits = rmCreateStartingUnitsObjectDef(5.0);
		rmSetObjectDefMinDistance(startingUnits, 6.0);
		rmSetObjectDefMaxDistance(startingUnits, 10.0);

		for(i=1; <=cNumberNonGaiaPlayers)
		{
			//我暂时只能告诉你这个是调用城镇中心坐标,不解释太多,解释太多你听不懂。另外留意下for(i=1;<=xx){},这是是c++的一种循环格式。
			vector TCLocation = rmGetUnitPosition(rmGetUnitPlacedOfPlayer(TownCenterID, i));

			//放置起始单位
			rmPlaceObjectDefAtLoc(startingUnits, i, rmXMetersToFraction(xsVectorGetX(TCLocation)), rmZMetersToFraction(xsVectorGetZ(TCLocation)));
		}

		




		rmSetStatusText("",0.50);//读取地图进度条





		rmSetStatusText("",1.00);//读取地图进度条


					//愿神兽会保佑你不会出错。
 			/*----------------------------------------------------------------------------------------------*
			*    ┏┓   ┏┓										*
			*   ┏┛┻━━━┛┻┓									*
			*   ┃       ┃									*
			*   ┃   ━   ┃									*
			*   ┃ ┳┛ ┗┳ ┃									*
			*   ┃       ┃									*
			*   ┃   ┻   ┃									*
			*   ┃       ┃									*
			*   ┗━┓   ┏━┛     Code is far away from bug with the animal protecting		*
			*     ┃   ┃    									*
			*     ┃   ┃										*
			*     ┃   ┃										*
			*     ┃   ┃										*
			*     ┃   ┃										*
			*     ┃   ┗━━━┓									*
			*     ┃       ┣┓									*
			*     ┃       ┏┛									*
			*     ┗┓┓┏━┳┓┏┛									*
			*      ┃┫┫ ┃┫┫									*
			*      ┗┻┛ ┗┻┛									*
			*----------------------------------------------------------------------------------------------*/
	} //END




反正只是证明这是一张除了TC什么都没有的空白地图,图片画质什么的都无所谓了。







劝退率高达99.95%的教程,你连把这个空白地图放进RM3文件夹的勇气都没有了,或者你根本不想花时间去学

网上搜的教程都是战役的,我想自建地图,该怎么操作?先谢谢了
自建地图劝退率99.95%
https://pan.baidu.com/s/15O-fjgHrpfu1P5u0LqaYsA
好的谢谢,我先看看
确实有点复杂,问一下。可否用编辑好的地图做修改呢
不可以
所以说劝退率99.95不夸张
好的吧,我超级想要那种只有一条路,前期龟缩防守,后期一波带走的地图
系统自带地图也不可以修改吗