关于《Incoming》游戏修改方法的详细研究
2022年12月30日 更新
开启更多功能,提升办公效能

【游戏秘籍】


在游戏开始后的第一个菜单界面上输入以下的英文(小写):


numberonedacrestreet


假如没有反应,就说明您可能按错了、或者提前按了多余的键(例如:回车键)。


在这种情况下,您需要先进入任意菜单选项,再按ESC键返回主菜单并重新输入。


——————————


如果输入成功,那么您就会看到这个菜单界面:



建议您先把最下方的第七项“CHEAT KEYS”设为“ON”(用左/右方向键切换)。



这样您就能在游戏中使用以下的快捷键,并且开启即时存档功能:


F2 开启/关闭武器自动瞄准(仅限主要武器)

F3 开启/关闭无敌(仅限玩家)

F4 开启/关闭无限生命

F5 开启/关闭无限武器

F6 开启/关闭全灭敌人(仅限主要武器)

F7 当前战役胜利

F8 即时存档

F9 即时读档

F10 切换“标准”和“Frame Wait”模式(用途不明)

F11 重新开始当前关卡


——————————


秘籍菜单的其它选项的功能如下:


第一项:选关


0 [EXTRA] 玩一个小游戏:控制炮塔消灭奶牛(背景音乐是《玛丽和小羊羔》)。

1 [EXTRA] 玩一个小游戏:驾驶战斗机在限定时间内飞过圆环。

2 [EXTRA] 显示一段动画:异形入侵部队开始飞向地球。

3 [EXTRA] 显示一段动画:游戏胜利,玩家摧毁了异形星球。

4 [EXTRA] 显示一段动画:游戏失败,异形摧毁了地球。


0 [CAMPAIGN ACTION] 战役行动模式第1关-非洲

1 [CAMPAIGN ACTION] 战役行动模式第2关-南极

2 [CAMPAIGN ACTION] 战役行动模式第3关-大西洋

3 [CAMPAIGN ACTION] 战役行动模式第4关-美国

4 [CAMPAIGN ACTION] 战役行动模式第5关-月球

5 [CAMPAIGN ACTION] 战役行动模式第6关-异形星球

6 [CAMPAIGN ACTION] 战役行动模式第1附加关-非洲

7 [CAMPAIGN ACTION] 战役行动模式第2附加关-南极

8 [CAMPAIGN ACTION] 战役行动模式第3附加关-大西洋

9 [CAMPAIGN ACTION] 战役行动模式第4附加关-美国


0 [CAMPAIGN TACTICS] 战役战术模式第1关-非洲

1 [CAMPAIGN TACTICS] 战役战术模式第2关-南极

2 [CAMPAIGN TACTICS] 战役战术模式第3关-大西洋

3 [CAMPAIGN TACTICS] 战役战术模式第4关-美国

4 [CAMPAIGN TACTICS] 战役战术模式第5关-月球

5 [CAMPAIGN TACTICS] 战役战术模式第6关-异形星球


——————


只要您开启了第七项就能随时在游戏中使用以下的选项:


第二项:无敌


第三项:无限生命


第四项:无限武器


第五项:发射主要武器后全灭敌人


第六项:主要武器自动瞄准


————————————————————


【启动参数】


本游戏拥有开发者模式、以及用于排除常见问题的限定启动模式。


您需要在游戏的快捷方式中添加特定的参数,示例如下:



以下是所有可用参数的列表:


-1mb

-1.5mb

-2mb

-3mb

-4mb

-8mb

-16bit

-alpha

-alias

-debug

-fileout

-framerate

-gameindex

-invalpha

-lowdef

-mouse

-no3dsound

-no3dx

-noa3d

-noalphastipple

-nobilinear

-nocd

-nodither

-nofog

-nolensflare

-nolighting

-nomipmap

-nonetwork

-noshadows

-nosky

-nosound

-network

-notauto

-notfullscreen

-notrilinear

-notsc

-primary

-quickbreak

-reducedtexture

-resetoptions

-screenmode

-secondary



————————————————————


【修改方法】


本游戏的兵器数据、场景物体、以及作战单位的行动规律等文件都存放在安装目录中的asc文件夹内,建议您在修改前先备份这个文件夹。


您可使用任何文本编辑工具(例如:系统自带的记事本)直接打开后缀名为mdlodlwdl的文件,它们的内容如下:


mdl文件:当前战役的关卡设计,包括每个单位的武器装备和移动路线。


odl文件:当前战役中使用的物体模型数据(包括生命值、高度、各种速度)。另外,战役地形(land)的文件路径和天空贴图(sky)的数据(包括RGB颜色、雾化效果)放在这个文件的开头部分。


wdl文件:静态物体(建筑物、树木等)在战役地图上的坐标位置和方向。


除了上述的三种格式外,还有用于记录战役地形设定的bin文件。但它们并不重要,而且也无法直接修改。


——————————


asc的子文件夹的内容如下:


africa文件夹:包括非洲地图的战役行动(africa_action)、战役行动附加关(africa_virus)、以及战役战术模式(africa)的三种文件。


Arcade文件夹:包括街机模式的六个战场的mdl文件。


arctic文件夹:包括南极地图的所有游戏模式的三种文件。


canaveral文件夹:包括美国地图的所有游戏模式、以及第一个隐藏小游戏(canaveral_cows)的三种文件。


egypt文件夹:包括异形星球地图的所有游戏模式、以及胜利结局(egypt_victory)的三种文件。


language文件夹:包括游戏中所有的剧情文本。


misc文件夹:包括游戏中的所有武器装备、街机模式的强化物品(ianextra.odl)、以及异形战斗单位的odl文件。提示:玩家控制的战斗单位数据存放在各个战役的地图文件夹中。


moon文件夹:包括月球地图的所有游戏模式、第二个隐藏小游戏(moon_race)、异形入侵动画(moon_intro)、以及失败结局(moon_defeat)的三种文件。


multi文件夹:包括多人游戏模式的六个战场的mdl文件。


oceanic文件夹:包括北大西洋地图的所有游戏模式的三种文件。


pads文件夹:包括CTL格式的文件。它们的用途不明,而且无法直接修改。


setup文件夹:包括游戏在菜单背景上显示的演示动画的三种文件。


levels.txt:记录了游戏战役和菜单界面需要读取的mdl、odl、wdl、以及剧情文本的文件名称和路径。您一般不需要修改这里的内容,否则可能会造成游戏无法启动。


——————————


修改战斗单位的性能数据


玩家可使用的地球战斗单位的数据存放在各个战的odl文件中。


玩家可使用或不可使用的异形战斗单位的数据存放在misc文件夹中。


——————


以直升机的数据为例:


type "helicopter"

name "commanche"

schematic "schmatics\comanche-s.ppm"

objfile "pweapons\pcexport\comanche.ian" scale 10.2

objfile lod 1 "pweapons\pcexport\low\comanche.ian"

texture "pweapons\dsrtcam2.ppm" transparent

group "human"

hitpoints 150

points 500

sfx "helicopt" min 1000 max 12000 loop

dynamics "helicopter"

mass 200

max altitude 4500

max vel 80

yaw acc 3

pitch acc 4

roll acc 3

linear acc 5

up thrust 10

bank stability 20%

angular drag 25%

cockpit 0 27 88

cannons

pos 0 72 132

secondary_cannons

pos 50 52 20

pos -50 52 20


shadow "effects\comanche shd 1.ppm" transparent alpha low


child "HELI FLW"

  objfile "pweapons\pcexport\Comflwhl.ian" scale 10.2

texture "pweapons\dsrtcam2.ppm" transparent

drawtype double sided

position -15 -20 0


——————


每行代码的意义:


type "helicopter" 这是游戏可识别的物体类型。更换战斗单位的时候,请使用这个名称。


name "commanche" 这是开发者对这个物体的实际命名,但不能用于更换战斗单位。


schematic 这是在战斗画面右上角显示的物体轮廓图的文件名称和路径(无需修改)。


objfile 这是游戏加载的物体模型文件的名称和路径(无需修改)。


texture 这是物体模型对应的贴图文件的名称和路径(无需修改)。


group 表示该物体所属的阵营。人类是"human"、异形是"aliens"、武器装备是"weapon",中立物体不需要添加这一行。


hitpoints 表示该物体的生命值


points 表示摧毁该物体后,玩家可增加或减少的分数


sfx 这是物体本身的固定音效的名称和音量范围,末尾的loop表示无限循环播放。


dynamics 表示当前物体的物理数据:


mass - 物体的质量(这一项可决定两个物体相撞时的受损程度)

max altitude - 最大飞行高度

max vel - 最大速度

yaw acc - 垂直升降速度

pitch acc - 水平转向速度

roll acc - 翻转速度

linear acc - 不明

up thrust - 最大加速

bank stability - 转向稳定性

angular drag - 角度阻力


dynamics右侧的双引号是该物体的性质:


"helicopter" 直升机

"vtol" 垂直起降机

"plane" 飞机(包括A-10、F-22、C-17等)

"alien" 反重力飞行器

"tank" 履带式坦克

"hovercraft" 悬浮式坦克

"bigship" 水面舰艇、潜艇、冰山、巨型飞行母舰(北大西洋最终关)和水下基地

"gun" 固定炮塔(包括舰艇上的固定武器)

"weapon" 武器装备

"cow" 跳跃的牛

"gravity" 无法移动的物体(包括无人机、建筑物等)


cockpit 表示座舱的位置,也就是玩家控制这个单位时的视角位置。


cannons 表示主要武器的发射位置。


secondary_cannons 表示次要武器的发射位置。


shadow 这是物体使用的阴影文件的名称和路径(无需修改),末尾的transparent表示透明度。


child 这些是当前物体附带的其它动态物体(例如:指示灯、牵引索、发动机、起落架)的模型、贴图和位置数据。


——————


飞机的物理数据:


min altitude - 最小飞行高度(仅限AI控制时)

min vel - 最小速度(垂直起降机是0)

linear drag - 直线阻力


——————


悬浮式坦克的物理数据:


max altitude - 离地高度


——————


炮塔的物理数据:


max ang - 最大仰角

min ang - 最小俯角


——————


武器装备的数据有所不同:


type "PLASMA BOLT 1"

name "HEAVY PLASMA"

sprite u=0 v=191 w=64 h=64

texture "smoke.ppm" transparent alpha

group "weapon"

hitpoints 30

sfx "plasma1" channels 2 min 300 max 15000

dynamics "weapon"

max vel 180

range 90

size 256

Fire Angle 8


这里的hitpoints并不是生命值,而是该武器的攻击力。另外,物理数据中的max vel表示最大飞行速度range表示射程、size表示尺寸(攻击判定范围)、Fire Angle表示发射角。


——————


为了增加一个战斗单位的生命值,您可修改hitpoints


更改type可直接改变物体的类型。如果您想使用当前战役中没有的单位(例如:在非洲使用异形星球的飞艇),请把它从type开始的所有代码都复制到战役对应的游戏模式的odl文件中,位置不限(建议直接复制到Player Craft)。


游戏可识别的所有武器装备和战斗单位的类型:

https://shimo.im/docs/gJd6HDGpGRV3vkvq



假如您想控制一个无法移动的单位(例如:非洲第2关的无人机),请把其它飞行单位的dynamics数据复制到它的对应区域,同时保持下方的child不变。例如:


type "recpod2"

objfile "backgrnd\pcexport\level1\recpod2.ian" scale 14

objfile lod 1 "backgrnd\pcexport\low\recpod2.ian"

texture "pweapons\dsrtcam2.ppm" transparent

group "human"

hitpoints 200

dynamics "alien"

mass 115

max altitude 9000

min altitude 500

max vel 80

min vel 0

pitch acc 2.2

yaw acc 1.6

roll acc 3.5

linear acc 5

bank stability 60%

linear drag 40%

angular drag 40%


child "podlight"


用这个方法可以把游戏中的任意物体改为可飞行和攻击的战斗单位,包括建筑物和导弹:



——————————


修改游戏关卡的单位指令


事先说明:由于没有办法查看游戏的地图坐标,所以您无法更改每关的战斗单位的起始地点。


您能够修改的只有单位的类型、数量、武器装备和行动指令,它们存放在对应游戏模式的mdl文件中。


——————


以下是玩家即将控制的单位:


create hero "tank2"

label "banstyle"

position 37200 on ground 42201

forward -0.8 0 -0.5 up 0 1 0

armed_with "ROCKET 1" rate 32

secondary_armed_with "GUIDED MISSILE" rate 64 rounds 20

inert

task

wait_until flag 0 set

playercontrols

break_task_if flag 31 set

end


——————


每行代码的意义:


create 创建单位(hero表示由玩家控制),这里必须输入物体的类型。


label 这是代表该单位的标签。以后的任务会直接调用这个标签,不用再创建一个单位(例如:玩家在非洲战役第3关驾驶的坦克数据其实放在第1关)。


position 表示该单位在地图上的坐标位置。


forward 表示该单位在地图上的方向。


armed_with 表示该单位的主要武器类型射速(rate)


secondary_armed_with 表示该单位的次要武器类型射速弹数(rounds)。如果您想把武器改为无限,删除射速后面的rounds就行了。


inert 表示该单位为无敌状态。


task 这是该单位执行的指令您一定要用end作为指令的结尾,否则游戏会出错。


(另注:towards表示该单位向某个物体前进)


——————


常用的指令如下:


attack 自行攻击附近的敌人。


attack group 只攻击某个特定的组。


attack "hero" 只攻击玩家。


shoot 朝一个固定地点射击。


注意:如果执行上述指令的单位没有配备任何武器,就将导致游戏出错!


goto 前往地图的某个坐标位置。


patrol 设置该单位的巡逻路线。


提示:如果您想把上述的移动指令设为无限循环,请在最终坐标的下一行加上forever


playercontrols 表示这个单位被玩家控制。


slave_to 表示该单位附属于另一个物体(例如:导弹发射器附属于激光炮塔)。


do 执行这以下的所有指令。


until 直到某个设定或开关被触发之前都执行这以上的所有指令。


wait_until 等待其它的指令、设定或开关执行完毕。


break_task_if 如果某个设定或开关被触发,则停止执行当前的指令。


kill 当前单位消失。


explode 当前单位自爆。


hurt "" * 对双引号内的物体造成*点损伤。


——————


修改end_procedure terminate after * loops中的数字*可决定敌方攻击编队所包含的单位数量。


建议您参考游戏的mdl文件设计来了解其它的指令及其用途。


————————————————————