火车逻辑详细教程——在你的MOD中添加火车
林氏狂人吧
全部回复
仅看楼主
level 5
不准回帖!只准看!
2007年09月20日 04点09分 1
level 5
首先添加火车这个单位。打开rulesmd.ini,找到[VehicleTypes],注册新单位。[VehicleTypes]...135=SAMTK ;这是火车头136=SAMBAG ;这是火车货物车厢137=SAMCOACH ;这是火车乘客车厢...
2007年09月20日 04点09分 2
level 5
然后定义火车。[SAMTK]UIName=Name:AMTKName=Amtrak F40PHNominal=yesCategory=TransportStrength=400Armor=lightTurret=noTechLevel=-1Sight=5Speed=8Owner=British,French,Germans,Americans,Alliance,Russians,Confederation,Africans,Arabs,YuriCountry,China,IceClanAllowedToStartInMultiplayer=noCost=800Points=25ROT=5Crusher=yesCrewed=noExplosion=TWLT070,S_BANG48,S_BRNL58,S_CLSN58,S_TUMU60VoiceSelect=CivAllSelectVoiceMove=VoiceAttack=CivAllAttackCommandVoiceFeedback=DieSound=GenVehicleDieLocomotor={4A582741-9839-11d1-B709-00A024DDAFD1}Weight=6MovementZone=NormalThreatPosed=0; This value MUST be 0 for all building addonsDamageParticleSystems=SparkSys,SmallGreySSysMaxDebris=5DebrisTypes=TIRE,STAXLEDebrisMaximums=4,2Size=6Trainable=noDeployTime=.022;PipScale=Passengers;Passengers=2IsTrain=yesMovementRestrictedTo=RailroadImmuneToPsionics=yesImmuneToRadiation=yesSlowdownDistance=700DeaccelerationFactor=0.001AccelerationFactor=0.01[SAMBAG]UIName=Name:BAGName=Amtrak Baggage CarNominal=yesCategory=TransportStrength=400Armor=lightTurret=noTechLevel=-1Sight=5Speed=8Owner=British,French,Germans,Americans,Alliance,Russians,Confederation,Africans,Arabs,YuriCountry,China,IceClanAllowedToStartInMultiplayer=noCost=800Points=25ROT=5Crusher=yesCrewed=noExplosion=TWLT070,S_BANG48,S_BRNL58,S_CLSN58,S_TUMU60VoiceSelect=CivAllSelectVoiceMove=VoiceAttack=CivAllAttackCommandVoiceFeedback=DieSound=GenVehicleDieLocomotor={4A582741-9839-11d1-B709-00A024DDAFD1}Weight=6MovementZone=NormalThreatPosed=0; This value MUST be 0 for all building addonsDamageParticleSystems=SparkSys,SmallGreySSysMaxDebris=5DebrisTypes=TIRE,STAXLEDebrisMaximums=4,2Size=6Trainable=noDeployTime=.022PipScale=PassengersPassengers=3SizeLimit=2IsTrain=yesMovementRestrictedTo=RailroadImmuneToPsionics=yesImmuneToRadiation=yes[SAMCOACH]UIName=Name:CoachName=Amtrak Passenger CarNominal=yesCategory=TransportStrength=400Armor=lightTurret=noTechLevel=-1Sight=5Speed=8Owner=British,French,Germans,Americans,Alliance,Russians,Confederation,Africans,Arabs,YuriCountry,China,IceClanAllowedToStartInMultiplayer=noCost=800Points=25ROT=5Crusher=yesCrewed=noExplosion=TWLT070,S_BANG48,S_BRNL58,S_CLSN58,S_TUMU60VoiceSelect=CivAllSelectVoiceMove=VoiceAttack=CivAllAttackCommandVoiceFeedback=DieSound=GenVehicleDieLocomotor={4A582741-9839-11d1-B709-00A024DDAFD1}Weight=6MovementZone=NormalThreatPosed=0; This value MUST be 0 for all building addonsDamageParticleSystems=SparkSys,SmallGreySSysMaxDebris=5DebrisTypes=TIRE,STAXLEDebrisMaximums=4,2Size=6Trainable=noDeployTime=.022PipScale=PassengersPassengers=4SizeLimit=2IsTrain=yesMovementRestrictedTo=RailroadImmuneToPsionics=yesImmuneToRadiation=yes
2007年09月20日 04点09分 3
level 5
注意看上面的代码,3个单位中都有如下代码:IsTrain=yesMovementRestrictedTo=RailroadImmuneToPsionics=yes这几条语句定义了火车的行为,让它只能在铁轨上行走,而且不能逆行。由于某些原因,人类玩家控制的火车会导致一些你不希望看到的结果,因此火车也免疫心灵控制。(但这依然无法阻止你去控制它,心灵震荡就可以控制它。因为心灵震荡是如此之强以至于所有免疫心灵控制的单位,甚至英雄,都难逃它的魔掌……)
2007年09月20日 04点09分 6
level 5
至于火车头,我还添加了如下代码:SlowdownDistance=700DeaccelerationFactor=0.001AccelerationFactor=0.01这样能够让火车呈现加速和减速的过程,比较像真实的火车。
2007年09月20日 04点09分 7
level 5
还有,火车必须拥有如下代码:Locomotor={4A582741-9839-11d1-B709-00A024DDAFD1} MovementZone=Normal这也是为了保证火车能够在铁轨上正常行驶。
2007年09月20日 04点09分 8
level 5
这样,火车就做好了。但是,怎么能够让火车在地图上行驶呢?首先火车是不可建造的,无论是人类玩家还是AI都不能建造,因此必须在制作地图的时候就把火车添加进去,让它作为平民单位出现。其次,地图上必须存在能够让火车行走的铁轨。所以,下一步就该编辑地图了。
2007年09月20日 05点09分 9
level 5
自己用FA2做一个地图。首先铺设铁轨。展开“特殊/覆盖”,然后展开“全部覆盖图”,如果你已经正确安装了TX的话,你会看到这里多出来好多东西。例如Tracks??。这就是铁轨!找到你希望的铁轨,然后在地图上铺上吧。注意,铁轨只能放在陆地上,海面和桥梁上不能铺设铁轨。虽然这里的覆盖图中的确存在桥梁铁轨,但是很不幸的,这个功能已经被禁用掉了,因为很容易导致BUG。总之你不要在桥梁上铺设铁轨。此外,隧道铁轨是可以使用的。
2007年09月20日 05点09分 10
level 5
最后就是设置触发让火车跑起来了!首先在铁轨上放置一个路径点(假设为11),这个路径点将作为火车产生的地点。为了视觉效果,你可以在旁边放一个建筑当作“火车站”。注意路径点一定要在铁轨上放置,否则火车产生出来之后无法移动!然后再在铁轨的另一地方放置一个路径点(假设为12),这个路径点将作为火车的终点。当然你也可以放一个建筑……如果你的铁轨是闭合,那么这个终点就可以随意放置。当然,依然也得放置在铁轨上。开始写脚本:3号动作(移动到路径点):路径点115号动作(范围警戒):15帧3号动作(移动到路径点):路径点125号动作(范围警戒):15帧这个脚本将导致这样的动作:火车产生出来之后立即移动到11号路径点,也就是它的诞生地点,然后停顿15帧的时间(开始发车),然后沿着轨道移动到12号路径点,再停顿15帧(火车进站)。然后火车就停在了12号路径点不动了。如果你的轨道是闭合的话,那么你可以在最后再添加上一条脚本:6号动作(脚本跳转):跳到第1行这样当火车进站之后,停顿了15帧,然后脚本就跳转到了第1行,于是火车又开始移动到11号路径点,也就是首发站。依此循环,于是火车就绕着轨道不断运动了。如果你在铁轨沿线放了很多车站,那么相应的放上几个路径点,多写几条脚本,就可以模拟火车进出站了。如果你还不满意,再利用触发和脚本搞出几个平民来,让火车进站之后,平民进入车厢。这就更NX了。
2007年09月20日 05点09分 11
level 5
有了以上的脚本,火车就可以移动了。但现在火车尚未“实体化”,也就是说地图上还没有“火车”这个单位。我们必须让火车出现在地图上。注意这一步,如果你的火车只有一节,那么火车不能直接放在地图上,而必须用触发产生。如果你的火车后面拖着车厢,那么就要在地图的某个玩家看不到的角落,比如地图外面,放置你的火车头和所有的车厢。方法如下:首先双击火车头,探出一个对话框。你会看到有个属性“附属ID”。这里填上第一节车厢的ID。同样,双击第一节车厢,这里填上第二节车厢的ID。依此类推。最后一节车厢后面没有东西了,那么这里就填-1。然后创建一个特遣部队,随便起名。里面包含1个你刚才定义的火车。注意,这个火车必须只能是你的火车头,车厢不能放进去。然后创建一个作战小队,名称任意。路径点设为火车产生的路径点(也就是11),参战方设为火车所在的参战方。一般是平民。然后把下面的复选框全部钩掉,一个都不选,最后关联上你刚才设置的特遣部队和脚本。然后创建一个触发,名称任意,触发先决条件什么的就不用我说了,你自己按照自己的想法设定,Action添加上如下一条:4号Action(创建小队,使用地图上已经存在的单位组成小队):(这里填上你刚才创建的作战小队)。
2007年09月20日 05点09分 12
level 5
最后,保存一切,运行游戏。火车就华丽的在轨道上转悠了~~~~
2007年09月20日 05点09分 13
level 5
注意:由于IsTrain=yes的作用,一切挡道的单位都会被火车一头撞死!因为IsTrain=yes这条语句实际上蕴含了C4=yes这条语句~~~~由于火车只能在轨道上跑,所以一旦火车脱离轨道,将会立刻爆炸。比如你用磁电波把火车举起来,放到地面上,在火车接触地面的那一刹那,火车就爆了~~~虽然火车可以被设置为运输单位,但是玩家控制下的火车,行为非常怪异。因此我建议你不要把它设置成为能运载人,即使设置了,也不要把你的人装进去,如果你非要装人,用触发把平民装进去。
2007年09月20日 05点09分 14
level 5
以上就是创建火车逻辑的方法。若是还有不懂,请下载某些有火车在内的MOD,然后抄袭人家的代码和地图。
2007年09月20日 05点09分 15
level 6
小遥回来了,那我们应该有mod玩了吧?
2007年09月22日 04点09分 16
level 8
他是飘过来的,又飘走了~
2007年09月23日 00点09分 17
level 6
这要是周星驰会怎么说呢, 这么嚣张,说飘走就飘走了!
2007年09月23日 05点09分 18
level 0
过分!这么多代码一年都找不完!再说135,136,137那里是没有137的1
2007年10月05日 12点10分 19
level 1

2013年05月13日 17点05分 21
level 3
大神。。。
2013年05月30日 06点05分 22
1