语句是: [( )] rmSetAreaWaterType(int areaID, string waterName): Sets the water type for an area.
[( )] rmSetAreaWaterType(int areaID, string waterName): 给地形设定水域类型,然后这个地形就变成水域了,string waterName参考下表。
River | |||||||
Amazon River | Andes River | Deccan Plateau River | Pampas River | ||||
Yellow River | Yukon River | ||||||
Lake | |||||||
Amsterdam | Bayou | Berlin | Borneo Water | ||||
China_HC | Constantinople | Great Lakes | Great Lakes Ice | ||||
Great Plains Pond | India_HC | Iroquois_HC | Japan_HC | ||||
Lisbon | London | New England Lake | Northwest Territory Water | ||||
Paris | Saguenay Lake | Seville | Texas Pond | ||||
Yellow River Flooded | |||||||
Coast | |||||||
Amazon River Basin | Araucania Central Coast | Araucania North Coast | Araucania Southern Coast | ||||
Atlantic Coast | Bayou SPC | Borneo Coast | California Coast | ||||
Caribbean Coast | Ceylon Coast | Cinematic Ship Ocean | Coastal Japan | ||||
Hudson Bay | Hudson Bay | New England Coast | Yucatan Coast |
例如这是一个地形: int TestID=rmCreateArea("Test ID Area"); rmSetAreaSize(TestID, rmAreaTilesToFraction(500), rmAreaTilesToFraction(500)); rmSetAreaWarnFailure(TestID, true); rmSetAreaSmoothDistance(TestID, 0); rmSetAreaCoherence(TestID, 0.0); rmSetAreaMix(TestID, "himalayas_a"); rmSetAreaBaseHeight(TestID, 4.0); rmSetAreaElevationOctaves(TestID, 3); rmSetAreaObeyWorldCircleConstraint(TestID, false); rmSetAreaLocation(TestID, 0.5, 0.5); rmBuildArea(TestID); 将上述语句改成水域如下: int TestID=rmCreateArea("Test ID Area"); rmSetAreaSize(TestID, rmAreaTilesToFraction(500), rmAreaTilesToFraction(500)); rmSetAreaWaterType(TestID, "Cinematic Ship Ocean"); rmSetAreaWarnFailure(TestID, true); rmSetAreaSmoothDistance(TestID, 0); rmSetAreaCoherence(TestID, 0.0); //rmSetAreaMix(TestID, "himalayas_a");将设定地形类型语句删除,就算是保留也不会再起任何作用了。 rmSetAreaBaseHeight(TestID, 4.0);//地形高度可加,也可以不加,看你自己想怎样设定。 rmSetAreaElevationOctaves(TestID, 3); rmSetAreaObeyWorldCircleConstraint(TestID, false); rmSetAreaLocation(TestID, 0.5, 0.5); rmBuildArea(TestID);
int TestID=rmCreateArea("Test ID Area"); rmSetAreaSize(TestID, rmAreaTilesToFraction(500), rmAreaTilesToFraction(500)); rmSetAreaWaterType(TestID, "Cinematic Ship Ocean"); rmSetAreaWarnFailure(TestID, true); rmSetAreaSmoothDistance(TestID, 0); rmSetAreaCoherence(TestID, 0.0); //rmSetAreaMix(TestID, "himalayas_a");将设定地形类型语句删除,就算是保留也不会再起任何作用了。 rmSetAreaBaseHeight(TestID, 14.0);//地形高度14 rmSetAreaElevationOctaves(TestID, 3); rmSetAreaObeyWorldCircleConstraint(TestID, false); rmSetAreaLocation(TestID, 0.5, 0.5); rmBuildArea(TestID);
创建水域注意事项:创建水域应避开所有已有单位,包括已有的水域单位,否则会让原有的单位消失。 你有两种选择: 1.优先创建水域,在地图的第一个单位出现前就要创建,另外其他单位(城镇中心、群组等单位)应该避开水域,不然可能会导致无法放置。
2.创建水域时使用放置规则,避开所有单位,注:这种情况不能用rmSetAreaLocation设定定位点,不然可能会导致无法生成。
方法在前面创建森林的时候已经教过你了,这里不再列出,两个教程的相似度是不是高达80%?
另外水域不像河流那样能控制轮廓,所以你想固定轮廓还是用河流吧。
最后补充可以使用 rmSetOceanReveal(true); 来设定开局已探索水域,添加在rmBuildArea下面就行,或者地图最后一句也行。
本次教程结束。