原帖由 优化伴侣 于 2011-7-30 22:18 发表
---------------------------------------------------------------------------
首先说下,游戏中的都市攻防关系是个[50][6]的数组(为什么是6呢?当看到这段代码的时候,我很生气,39的程序员很抠门),数组的使用情况请参考都市攻防关系表.txt。
增加新的都市关系,必须重新分配内存和增加代码。
我个人不赞同你修改都市关系的想法。因为都市攻防关系是给电脑AI用的,不是给玩家用的。
举个例子,电脑从晋阳攻打武威,这显然太远了,所谓兵贵神速,等你到地方,人家防御兵力早就集结好了,就等你来攻了。
这样设计只会使AI更弱,给玩家更多可乘之机.
太好了!!!原来优化兄你已经发现定义攻防关系的数组。那就是说每个城市最多有6个敌对城市(或者0-6是7个,我发现长安有七个敌对城市),现在很多城市只用到了2个3个敌对关系,就是说还有好几个空位增加新的!六七个敌对城市也够了,基本能覆盖那个战区的大部分城市了,就如你所言太远的没必要。
至于优化兄你说城市间太远,是对原地图而言的。之所以要求增加攻防关系,我的理由是:
(1)为了给做新剧本的(修改城市位置和地图那种)提供更高的自由度,现在移动城市之后攻防关系的匮乏,攻防关系是对城市移动的最大限制。就像730版本增加的安定的2个攻防关系,就是给改地图的同学用的啊。现有的剧本和mod都是受限于san9pk定义的都市攻防关系表,不能自由发挥,太苦恼了!如果能突破都市攻防关系,将会有一系列新剧本出现。
(2)即使是给原版剧本用,还是很大用处的。比如西城和梓潼,虽然2个城市很远,但他们所属的据点是相邻的啊(上庸和巴西)。城市攻防关系也决定了据点的攻防,如果不是敌对的,据点相互也不攻击,就导致即使相邻的据点也不攻击的现象。
(3)增加野战几率,现在大部分敌对关系是严格相邻的城市间,所以大部分就是来打城。如果中距离的城市间也有敌对关系,不等敌人来了就出城迎战,野战几率就会增加。另外通过调整据点位置,据点和敌对据点间的战斗也会增加。
所以我建议在都市设置里面把额外的(7-n)个攻防关系数组的空位留出来(比如“羌”还有3个空位),给玩家自己填额外的敌对都市编号(0-49),或者勾选已有选项。不需要的玩家不去设置他就行了。如果能让玩家填写额外敌对都市编号的话,那么城市移动的限制就消除了!!!这将是优化伴侣对san9最具革命性的改变。
请看我改都市位置的剧本 san9【增加主战区5座城市】改自san9纵横天下剧本(河北+2城,中原+2城,荆州+1城)
正是苦恼于有限的定死了的都市攻防关系,做这个的时候束手束脚。而且发现了 [城市及据点攻击条件] 以间接增加攻击关系。
感谢优化兄,如果工作量不是太大,请做一下自定义攻防关系表吧,充分利用这个[50][6]你已发现的数组!或者告知我怎么做(我有一些c/cpp编程经验),做新mod新剧本太需要这个增加攻防关系的功能了。拜托了。
另外,有2个出错的存档(730版优化), 同样的剧本使用529版优化,运行十几年都没问题。仅供参考.
[ 本帖最后由 vonleibniz 于 2011-7-31 03:54 编辑 ]