单机游戏首页>游戏攻略 > 游戏攻略 > 哥萨克3基础mod教程 单位属性修改方法

哥萨克3基础mod教程 单位属性修改方法

时间:2016-10-31 00:06:19 来源:小皮单机游戏 作者:Fledgling 我要评论

  哥萨克3描写了在17世纪到18世纪的欧洲大规模战斗。游戏中的势力将包括法国、英格兰、等12个势力,丰富的AI和自动生成的地图将在对战方面带给玩家更好体验,今天为大家带来哥萨克3基础mod教程。

哥萨克3基础mod教程 单位属性修改方法

  《哥萨克3》很多玩家会修改单位属性,那么下面小编就为大家带来《哥萨克3》基础mod教程,告诉大家单位属性修改方法,快来一起看看吧。

  无聊研究了一下哥萨克的MOD制作,由于官方论坛上也没有给出完整的教程所以,这算是第一篇教程了吧。无聊可以改改单位数据自己用地图编辑器玩。

  由于哥萨克3是用Delphi开发的,因此和平常用C++开发的游戏完全不一样,你需要一点Delphi的基本语法知识免得出现代码错误。

  推荐使用notepad++或者其他能够高亮Pascal语言的编辑器

  MOD工具帖(有老外发布的各种MOD制作相关的工具如模型查看什么的):点击进入

  新增单位教程(还未完工所以我懒得翻译和搬运了,需要自己用谷歌翻译看下):点击进入

  单位属性修改教程:

  目前我还没研究出如何修改单位移动速度,不过你可以修改单位的攻击力、生命、护甲、射程、射速和散布等属性。

  首先打开X:\steam\steamapps\common\Cossacks 3\data\scripts\lib文件夹,盗版自己找下对应的目录。这里是存储的游戏基本数据,根据文件名称可以判断文件的功能。

  打开unit.script文件,搜索你需要修改的单位名称,这里以“阿尔及利亚弓箭手”为例objbase.maxhp := 30;为单位的生命值

  找到SetObjBaseWeapon(objprop, objbase, 0, 199, 295, 300, 500, 0, 100000, gc_obj_weapon_kind_arrow, True);

  这个就是阿尔及利亚弓箭手的主武器,即普通弓箭如果你不知道非数字文字的意思,你不深入就不要去改了,你也可以自行去研究相关脚本关联的关键字。

  橙色文字对应的属性从左到右为“武器索引”、“伤害”、“攻击间隔”、“最小射程”、“最大射程”、“最小搜敌范围”、“最大搜敌范围”

  范围有关的单位都是像素,攻击间隔单位为帧

  往下有3个属性

  objprop.weapon[0].weaponsid := 'STRELA';

  objbase.weapon[0].dispertion := _misc_PixelsToTiles(250);

  objprop.weapon[0].addradius := _misc_PixelsToTiles(32);

  以上3个属性,0对应的武器索引

  第一个为声音即武器音效,不建议修改除非你知道关联名称

  第二个为武器散布程度250像素

  第三个为附加范围,估计是指的武器的碰撞体积单位也是像素

  阿尔及利亚弓箭手有两种武器,第二种是对付建筑使用的火箭

  objprop.weapon[1].attmask := objprop.weapon[1].attmask or (1 shl gc_obj_material_building);

  objprop.weapon[1].attmask := objprop.weapon[1].attmask or (1 shl gc_obj_material_wood);

  objprop.weapon[1].attmask := objprop.weapon[1].attmask or (1 shl gc_obj_material_woodwall);

  这里只介绍以上3个新的属性

  这是武器筛选遮罩,即限定第二种武器可以攻击建筑、木头和木头城墙

  以上就是基本武器数值修改

  SetObjBasePrice(objbase, 10, 2, 0, 0, 0, 0);

  为设定单位成本,数字对应游戏的6种资源,顺序木头、粮草、石头、金子、铁、煤炭

  SetObjBaseSearchBuildVisionScore(objprop, objbase, 550, 25, 2, 15);

  为设定搜索范围(像素),建造时间(毫秒),单位视野和得分

  SetObjBaseProtection(objbase, 2, 2, 5, 255, 1, 7);

  设置单位护甲,弓箭手没有这条因此所有属性都是0

  数值对应 劈砍防护、长矛防护、火枪防护、葡萄弹防护、弓箭防护和炮弹防护

  if (bmercenary) then至else区块内的函数为设置佣兵单位的属性,佣兵可以通过bmercenary进行判断。

  以上就是修改的基本教程,你也许发现了修改完毕后4种弓箭手都变了。没错哥萨克把4种弓箭手放在了一个定义里。

  你可以通过拆分的方式将4种弓箭手拆分为多个过程进行,这需要一点Pascal语言的语法了。你可以参照其他单位的设定进行修改。

  特别注意的是国家判断只能判断后缀带有国家后缀的单位比如archertur后面的tur就是土耳其的代码可以通过case nation of进行判断。

  但是如果单位没有那种后缀是没法进行国家判定的。

  科技修改放到下一篇去讲,那个非常复杂,简单的修改还行,复杂修改需要等官方MOD工具或者详细教程了

相关阅读
相关下载