网站首页 单机图文攻略 单机视频攻略 单机游戏攻略 单机游戏问答 游戏常见问题 游戏心得体会 手游图文攻略 手游视频攻略 手游图鉴攻略 手游软件教程 手游攻略问题 网游图文攻略 网游综合攻略 网游游戏问答
当前位置:欢乐游戏吧 > 单机图文攻略 > 

哥萨克3基础MOD教程 哥萨克3单位属性修改教程

栏目: 单机图文攻略 / 发布于: / 人气:9.19K

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

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

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

哥萨克3单位属性修改教程

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

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

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

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

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

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

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

哥萨克3基础MOD教程 哥萨克3单位属性修改教程

往下有3个属性

on[0]onsid := 'STRELA';

on[0]ertion := _misc_PixelsToTiles(250);

on[0]adius := _misc_PixelsToTiles(32);

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

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

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

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

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

on[1]ask := on[1]ask or (1 shl gc_obj_material_building);

on[1]ask := on[1]ask or (1 shl gc_obj_material_wood);

on[1]ask := on[1]ask or (1 shl gc_obj_material_woodwall);

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

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

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

哥萨克3基础MOD教程 哥萨克3单位属性修改教程 第2张

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进行判断。

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


就是这样,祝大家游戏开心,万事顺意。

哥萨克3基础MOD教程 哥萨克3单位属性修改教程 第3张