zybxx2002 zybxx2002
关注数: 12 粉丝数: 44 发帖数: 966 关注贴吧数: 67
修改方法--LUA语言中AI单位的默认属性 1. 单位在地图上是静止的。 2. 只有当敌人进入它们的火力射程或视野范围后才起作用。 3. 当敌人被消灭后,它们立即回到初始位置上。 4. 当一个地面或空中的单位发现敌人后,炮兵立即开火。也就是说想隐藏炮兵阵地默认是不行的。 5. 如果卡车被放置在火炮旁边,那么附近必有一个仓库并自动提供补给。 6. 如果用地图编辑器为飞机定义了一“appear point”,侦察机将多次侦察这一区域,且轰炸机可尾随其后。也就是说侦察机出动后,轰炸机随后就可以运用了。 CMD CMD命令,这是新版地图编辑器中的内容。 格式为:CMD(iAction,iScriptID[params,…]) iAction:是动作指令,其它的两参数在老版本中我都讲过了。 它允许执行以下动作:命令从0开始,没有的数字,表示此命令我不清楚。 当iAction=0,形式为CMD(0,iScriptID,x,y) l 向特定单位发出向(X,Y)点移动的命令 l 保持队形不变,除非使用ChangeFormation()命令。 l 在运动过程中,GetUnitState()命令对装甲和步兵单位返回32位值。 l 在运动过程中,GetUnitState()命令对火炮单位返回值为0。 当iAction=1,形式为CMD(1,iScriptID, iScriptID_Cible) l 命令iScriptID 单位攻击iScriptID_Cible单位。 当iAction=3,形式为CMD(3,iScriptID, X,Y) l 命令单位在移动攻击模式下,前进到(X,Y)点,攻击一切拦其路的敌军单位。相当于在游戏中按下A键一样。 l 保持队形不变。 l GetUnitState()命令返回值为11。 当iAction=4,形式为CMD(4,iScriptID, iScriptID_Cible) l 命令iScriptID步兵进入iScriptID_Cible的车辆内。 l 在步兵进入车辆后,GetUnitState()命令返回值为3。 当iAction=5,形式为CMD(5,iScriptID, X,Y) l 命令iScriptID的车辆在(X,Y)点卸载所关联单位。 当iAction=6,形式为CMD(6,iScriptID, iScriptID_Cible) l 命令iScriptID的步兵进入iScriptID_Cible的建筑内。 l 在没有命令步兵离开第一个建筑的情况下,可进入另外一个建筑内。 l 保持队形不变。 l 在进入建筑过程中,GetUnitState()命令返回值为6 l 在进入建筑后,GetUnitState()命令返回值为8。 l 注意,目标建筑iScriptID值不得低于100。 当iAction=7,形式为CMD(7,iScriptID, x,y) l 命令iScriptID步兵离开当前建筑并移动到(x,y)点。
修改方法--地图脚本命令详解 单位指令动作代码: (联系下文Cmd与QCmd) 0 – 强制移动(Q) 1 – 攻击单位 2 – 攻击非单位物体 3 – 移动攻击(A) 4 – 装载单位 5 – 卸下单位 6 – 进入建筑/堑壕 7 – 离开建筑/堑壕 8 – 旋转 9 – 停止所有动作 13 – 停止并进入戒备状态 50 – 站岗 14 – 埋伏 15 – 校准射击(X) 16 – 火力压制(Z) 19 – 召唤轰炸机 20 – 召唤战斗机 21 – 召唤侦察机 22 – 召唤伞兵机 36 – 召唤攻击机 23 – 补给单位 24 – 修理单位 29 – 使用双筒望远镜 31 – 挂载火炮 32 – 部署火炮 34 – 解散步兵班 35 – 形成编队 39 – 跟随 43 – 补给士兵 45 – 筑垒防护 46 – 切换弹药种类 脚本文件举例: (我们必须用“Base”给敌军单位定义脚本区域,我们用脚本代码100来消灭所有单位。) function ToWin() if ( GetNUnitsInScriptGroup(100) <= 0) then Win(0); Suicide(); end; end; function TobeDefeated() if ( GetNUnitsInArea(1, "Base") > 1) then Loose(); Suicide(); end; end; function Init() RunScript( "ToWin", 3000); RunScript( "TobeDefeated", 3000); end; 自定义函数详细讲解: RunScript RunScript (脚本函数名称(字串), 运行周期(单位毫秒), [,重复执行次数(可以不定义,即默认为无限循环)]; 举例: RunScript ("Objective12", 3000, 3); Suicide Suicide (); 如果在通过RunScript执行的函数主体调用Suicide,此函数在完成后将不再重复运行。 KillScript KillScript (脚本函数名称); 消除已激活(至少执行一次)的特定脚本函数名称的脚本语句。 GetNUnitsInCircle GetNUnitsInCircle (iPlayer, X, Y, Radius) iPlayer:玩家代码,X、Y为坐标上的圆心值,Radius是半径大小。 返回以坐标X,Y的点为圆心,Radius为半径的圆形区域内特定玩家的单位数量。 GetNUnitsInArea GetNUnitsInArea (iPlayer, strScriptAreaName) strScriptAreaName脚本区域名称(字串——在地图编辑器中设置),iPlayer:玩家代码。 GetNScriptUnitsInArea GetNScriptUnitsInArea (iScriptID, strScriptAreaName) iScriptID:脚本代码,strScriptAreaName字符串形式的脚本区域名称。 返回特定脚本区域内具有特定脚本代码的部队(组)单位数量。 GetNUnitsInScriptGroup GetNUnitsInScriptGroup (iScriptID [, iPlayer]) iScriptID:脚本代码,iPlayer:玩家代码。 返回特定脚本代码部队(组)的单位数量。玩家代码为备选项,(可以不设定)但比如部队组中包含炮兵单位,设置玩家代码参数就有用途。(如果炮手全部阵亡,火炮变为中立单位——玩家代码2)。 例: a = GetNUnitsInScriptGroup(102, 1);a=玩家1脚本代码为102的部队组单位数量。 LandReinforcement LandReinforcement (iReinfID); iReinfID:增援组代码 放出特定增援组代码的援军。(事先于地图编辑器设定)。 Win Win (iParty); iParty:玩家方代码 单人游戏中特定玩家方代码的玩家胜利。 多人游戏中特定玩家方代码的玩家胜利,另一方自动得到已战败通知。 Draw Draw (); 多人游戏中,所有玩家获得平局。 Loose Loose ();
修改方法--任务编辑教程(不完全版) 第一步:编辑地图 1.打开地图编辑器mapeditor,选择新建地图,选择地图模式(no any Mod),(在这里我举例制作一张地图,名称为illustrate)。地图编辑好后注意要设置脚本文件,点击工具栏上的脚本图标,然后选择你需要的脚本(你必须事先建立一个脚本文件,但可以是空文件,待编好地图后再慢慢编写也不迟。脚本文件后缀名为*.lua可以用文本编辑器来编辑。脚本文件可以放置在任何目录,起任意名字,但为了规范,一般脚本文件都和地图放置在同一目录并起与地图名同样的名字。) 2.保存:将地图保存为bzm格式即可(也可以通过点击工具栏上的磁盘图标来实现)。地图要保存在data\maps\下。(这样在data\maps\目录下就可以看到illustrate.bzm文件) 3.至于产生缩略地图(通过点击小地图的create按钮来产生),可要也可不要,根据个人喜好。(产生缩略地图文件只是方便编辑地图统观全局使用的,在游戏中根本用不到) 第二步:用文件编辑器(reseditor)导出任务文件(1.xml)1.在使用reseditor之前先一个目录作为文件的发源地,它的作用是产生任务编辑文件和存放任务标题文件、任务描述文件、目标标题文件、目标描述文件等(这些文件都是文本文件,也可以没有但在游戏中就看不到相关的任务信息了)的地点,并在导出1.xml文件时将任务信息文件(*.txt)一并发送到目标文件夹中。(它可建立在任意地方,一般建立在游戏的安装目录下)。 举例:我在“燃”的目录下建立一个名为Complete的文件夹,这个就是需要用到的文件夹,因为自定义任务文件是放在data\scenarios\Custom\missions\任务名称\下的(“任务名称”任起),所以还要在Complete\下建立相应的目录data\scenarios\Custom\missions\illustrate\(我在这里举例将任务名定为illustrate),然后把所有的任务说明文件(*.txt)移至该目录下,这样在Complete\data\scenarios\Custom\missions\illustrate\目录下就有了所需的任务说明文件。为了统一规范,一般任务标题文件名用header.txt,任务副标题文件名用SubHeader.txt,任务描述文件名description.txt,任务目标标题文件名用0h.txt、1h.txt、2h.txt......(表示第一号目标、第二号目标、第三号目标........),任务目标描述文件名用0.txt、1.txt、2.txt.......表示第一号目标描述、第二号目标描述、第三号目标描述........)。 1。打开Res编辑器, 2。新建New Project,选择建立mip文件3。设置好各个目标位置与名称,描述4。输出结果(Export Result)成1.xml文件 2.打开reseditor点击菜单栏上的File项目,在其下拉菜单中选择MOD Settings。在弹出的对话框中做MOD设置。具体如下:MOD export栏目中选择MOD的目录,MOD name:栏目中填写MOD的名字,接下来是填写MOD的版本号,再下来是填写MOD的描述内容。当然以上内容都可以不填,只是在游戏的读起模式中看不到相应MOD的信息文字。推荐最保险的方法,点击对话框右边的“Defaults”按纽,其他内容均不填写点击OK按纽即可。
修改方法--核心单位修改 以原版德军战役为例: 先要找到历史战役的第一个章节,例如德裹战役的第一个章节是Poland(“波兰”),用解压程序如WinRAR打开data.pak文件,找到Scenarios\Chapters\German\Poland\Script.lua文件,用文本编辑器打开它,你会在文件的前半部分找到这样一小段命令:AddNewSlot ("Sdkfz_222");AddNewSlot ("Pz_Kpfw_II_Ausf_F");AddNewSlot ("Pz_Kpfw_II_Ausf_F"); AddNewSlot ("10_5mmLeFh18");AddNewSlot ("10_5mmLeFh18");AddNewSlot ("10_5mmLeFh18");这就是增加核心单位的命令语句,你可以增加或修改。例如将第一句AddNewSlot ("Sdkfz_222");改为AddNewSlot ("Pz_Kpfw_VI_Tiger_Ausf_A_H");(改为增加一辆“虎I”作为核心单位)或者将AddNewSlot ("10_5mmLeFh18");改为AddNewSlot ("17cmk18");(将105轻型榴弹炮改为17cm重炮)。再或者直接增加命令语句来增多你的核心单位也可以,但你的每一种核心部队超过6个,那么超出部分将不会在地图上显示出来,除非你在每张地图上增加核心单位。 把狙击手加入核心单位: 要想把狙击手加入核心单位就要在编队(squad)模式外(在单个单位unit形式下)再定义一下狙击手就可以了。。简单的说也就是objects文件里面再把狙击手单独的定义一下然后在地图里面还要添加狙击手为蓝色预备单位!!!没张地图都要(很麻烦,而且不喜欢这样玩,所以不实践,这里仅仅是谈下理论操作)虽然没实践过但是看了中国MOD中的机枪手核心单位,这可以实现
修改方法--TDA(浩劫之后) 首先我们用winrar打开TDA\Data的data.pak文件.打开units\,文件中和闪1一样分人Humans和设备Technics.之后分四个阵营,再打开Aviation 飞行工具Artillery 火炮tanks坦克spg自行火炮auto 车辆找你向改的单位吧然后开改,数值的修改方法和闪1的一样,不同的是多了个油料值的数据:fuel-tank-capacity-coeff="....." fuel-per-second-coeff="....."前面一个值是总油量,越大带的油越多,跑得更远。后面那个指每秒耗油量,值越大耗油越快,没油越快。 第三个fuel不重要不理会它。最好解压出来做成pak包,方法同闪1,在此不再重述 购买隐藏武器: 在战略版面下按"~"键输入以下代码可以得到购买隐藏武器的能力,这样就不用去改文件了!@superunit(140329) T-98@superunit(549845) BLACKEGLE@superunit(387546) LEOPARD@superunit(874653) M-1 设定车辆,火炮,伞兵这些平时装载在车辆或飞机里的人员构成: 比如TDA下partys.xml苏联的部分<item><PartyName>USSR</PartyName><GeneralPartyName>USSR</GeneralPartyName><GunCrewSquad>ussr_gunner</GunCrewSquad>翻译过来是<火炮成员>苏联炮手></火炮成员><HowitzerGunCrewSquad>ussr_gunner</HowitzerGunCrewSquad><HeavyMachinegunSquad>ussr_gunner</HeavyMachinegunSquad><ParatrooperSoldier>USSR_Paratrooper</ParatrooperSoldier>伞兵成员 苏联伞兵 伞兵成员<ResupplyEngineerSquad(补给车)>ussr_reload_squad补给兵</ResupplyEngineerSquad><RHBZSquad防化车>ussr_nbc_squad防化兵</RHBZSquad><HParatrooperSoldier>Ussr_infantery_AK47</HParatrooperSoldier> </item>可以调整如USSR_Paratrooper苏联伞兵变为其他小队(如狙击手小队)应该是可以的。另附 MOD-浩劫之后 中国超级起始补丁详细修改教程 TDA三项资源修改法:进入游戏目录,如Cuban Missile Crisis\Data\Scenarios\Chapters.找到 consts.lua用记事本打开,比如你在游戏里选择的苏联,寻找USSR ussr = { chapter1 = { player = { starting = { AMMO = 118000 , FUEL = 70000 , SPARES = 29000 这三个便是起始弹药油料和零部件量.直接在每个后面加两个0,之后就不用为资源发愁了.在下面per_turn是每回合给的 robot则表示敌人的起始弹药油料和零部件量,你要想虐自己也可以都加00,敌人不会浪费给你制造麻烦的机会的 另美 欧 中 分别查找eng_usa , ger_fr, china 建议打pak包,别改原件
修改方法--添加新单位 闪电战秘籍使用方法方法1:在游戏中按下~键(键盘左上,数字键1的左边),输入下面的字母回车即可开启秘籍:  @Password( "Panzerklein" )  上帝模式: @God(0,1)  胜利模式:@Win(0)  选关:SetIGlobalVar( "Cheat.Enable.Chapters", 1 )TDA秘籍首先,游戏中按~键,然后输入@Password("HardTruck")——开启秘籍模式然后,游戏中输入以下秘籍可得到对应效果:@Win(1) ——失败 @God(0,1) ——无敌模式 @God(0,0) ——关闭无敌模式 @God(0,2) ——无敌模式且一击必杀 @Win(0) ——胜利   备注:   欺骗模式必须首先启动,另外两个模式才可以启动。上帝模式可以让你的全部单位无敌;胜利模式可以直接取得当前地图的胜利。 方法2: 在run资料夹下建立一个autoexec.cfg用notepad开启后,输入以下文字@Password( 'Panzerklein' )@ChangeWarFog(1)SetIGlobalVar( 'Cheat.Enable.Chapters', 1 )SetIGlobalVar( 'Cheat.Enable.Missions', 1 ) 修改残骸保留时间去Blitzkrieg/Run/data找data.pak解压缩data.pak内的consts.xml寻找TimeToDisappear会找到TimeToDisappear="60000"60000=1分钟,喜欢改多久便多久 射程修改假设要增加1.5倍射程打开consts.xml搜索MaxFireRangeToShootByLine原版中规定数值为1056修改为:MaxFireRangeToShootByLine="1660" (1660/32=55 ) ... ... 解方程了把改好的consts.xml放在Blitzkrieg/Run/data内,想还原便删除了改好的consts.xml 武器修改:以75mm_kwk42_l70为例子:到data.pak文件的Weapons文件夹里面Weapons\Technics\Germany\75mm_kwk42_l70里面,打开文件,搜索里面的<Piercing>就是穿透力<PiercingRandom>随机穿透,<DamagePower>杀伤力<DamageRandom>随机杀伤,<Dispersion>散布(就是精度)<AimingTime>瞄准时间,<RangeMax>最大射程DetonationPower="5" 屏幕震动幅度AimingTime="0.5" 瞄准时间 AmmoPerBurst="1" 弹药爆炸范围 RangeMax="65" 平地最大射程 RangeMin="5" 平地最小射程 Ceiling="10600" 射击高度 DeltaAngle="10" 发射角度 Piercing="136" 穿甲 PiercingRandom="50"穿甲随机 DamagePower="110" 伤害 DamageRandom="55" 伤害随机 ProjectileSpeed="200"炮弹速度
1 下一页