Sid Meier's Civilization 4 - Beyond the Sword - anyfunmod

核心修改说明

1,从V9.B7开始,改变游戏内部单位经验值的数值结构。
从整形改为单精度浮点。
DLL内部都是浮点计算的。python上用getExperienceFloat来取得浮点经验值。

2,从V9.B7开始,改变游戏内部领导特质取值结构。
从原来的单纯从玩家的领导人取数据,改为每个玩家都独立数据。
程序语句使用没变。用setTrait来设值。

3,从V9.B7开始,改变游戏内部玩家数量的取值结构。
从原来固定值改为从外部取值,但该值要求一开始就初始化分配,所以只能在游戏运行前改值。
程序语句使用没变。

4,从V10.B1开始,改变游戏内部城市工作范围取值结构。
从原来固定值改为从外部取值,但该值要求一开始就初始化分配,所以只能在游戏运行前改值。
程序用 getAFM_CITY_PLOTS_RADIUS 来得到当前工作范围半径值。

5,从V10.B8开始,改变游戏内部玩家的单位类型,建筑类型取值结构。
从原来的单纯从玩家的文明取数据
GC.getCivilizationInfo(getCivilizationType()).getCivilizationBuildings/getCivilizationUnits
改成每个玩家,每座城市(启用“保持原来建造体系”才有需要),均有独立数据
GET_PLAYER(getOwnerINLINE()).getUniqueBuildings/getUniqueUnits
pCity->getUniqueBuildings/getUniqueUnits

6,从V10.B12.005开始,将所有自己添加的XML文件独立出来,不再依赖原版的文件,并将文件移到XML\anyfun目录下(TEXT目录除外),目录结构按原版,方便识别。这种结构方便玩家修改原版的文件,一般不需要理会anyfun文件夹里的东西。
文件名定义解释:
例如:AFMCIV4ArtDefines_TerrainAdd.xml
拆开就是:AFM CIV4ArtDefines_Terrain Add.xml,其中CIV4ArtDefines_Terrain就是原来的对应文件
文件读入控制结构以尾为Add的以原版的读入方式,以Update为尾的是新加读入结构,这方面自己看DLL源码。