有人做最高指挥官的MOD 么 ?(MOD制作联系贴)

[
我在研究让巡航导弹从水面亚迪兰提斯的鱼雷发射孔中打出来。:L

[

这个很容易,但出来的很可能也是横着发射~

[
怎么改?:handshake 快告诉我。横着发射也成。

[

拿T2SubKiller作例:

XRS0204_unit.bp


UnitBlueprint {
   AI = {
   GuardReturnRadius = 130,
   TargetBones = {
   'XRS0204',
   },
   },
   Audio = {
   AmbientMove = Sound {
   Bank = 'XRS',
   Cue = 'XRS0204_Move_Loop',
   LodCutoff = 'UnitMove_LodCutoff',
   },
   AmbientMoveSub = Sound {
   Bank = 'XRS',
   Cue = 'XRS0204_Move_Loop_UW',
   LodCutoff = 'UnitMove_LodCutoff',
   },
   Killed = Sound {
   Bank = 'URSDestroy',
   Cue = 'URS0203_Destroy',
   LodCutoff = 'UnitMove_LodCutoff',
   },
   StartMove = Sound {
   Bank = 'XRS',
   Cue = 'XRS0204_Move_Start',
   LodCutoff = 'UnitMove_LodCutoff',
   },
   StartMoveSub = Sound {
   Bank = 'XRS',
   Cue = 'XRS0204_Move_Start_UW',
   LodCutoff = 'UnitMove_LodCutoff',
   },
   StopMove = Sound {
   Bank = 'XRS',
   Cue = 'XRS0204_Move_Stop',
   LodCutoff = 'UnitMove_LodCutoff',
   },
   StopMoveSub = Sound {
   Bank = 'XRS',
   Cue = 'XRS0204_Move_Stop_UW',
   LodCutoff = 'UnitMove_LodCutoff',
   },
   SubmergeStart = Sound {
   Bank = 'URS',
   Cue = 'URS_Sub_Submerge',
   LodCutoff = 'UnitMove_LodCutoff',
   },
   SurfaceStart = Sound {
   Bank = 'URS',
   Cue = 'URS_Sub_Surface',
   LodCutoff = 'UnitMove_LodCutoff',
   },
   UISelection = Sound {
   Bank = 'Interface',
   Cue = 'Cybran_Select_Sub',
   LodCutoff = 'UnitMove_LodCutoff',
   },
   },
   Buffs = {
   Regen = {
   Level1 = 2,
   Level2 = 4,
   Level3 = 6,
   Level4 = 8,
   Level5 = 10,
   },
   },
   BuildIconSortPriority = 20,
   Categories = {
   'PRODUCTFA',
   'SELECTABLE',
   'BUILTBYTIER2FACTORY',
   'BUILTBYTIER3FACTORY',
   'CYBRAN',
   'MOBILE',
   'NAVAL',
   'TECH2',
   'DIRECTFIRE',
   'ANTIMISSILE',
   'SUBMERSIBLE',
   'VISIBLETORECON',
   'RECLAIMABLE',
   'T2SUBMARINE',
   'OVERLAYSONAR',
   'OVERLAYDEFENSE',
   'OVERLAYANTINAVY',
   },
   CollisionOffsetY = -0.25,
   Defense = {
   AirThreatLevel = 0,
   ArmorType = 'Normal',
   EconomyThreatLevel = 0,
   Health = 1430,
   MaxHealth = 1430,
   RegenRate = 0,
   SubThreatLevel = 9,
   SurfaceThreatLevel = 0,
   },
   Description = '<LOC xrs0204_desc>Submarine Killer',
   Display = {
   Abilities = {
   '<LOC ability_personalstealth>Personal Stealth',
   '<LOC ability_sonar>Sonar',
   '<LOC ability_submersible>Submersible',
   '<LOC ability_torpedo>Torpedoes',
   '<LOC ability_torpedodef>Torpedo Defense',
   },
   IdleEffects = {
   Sub = {
   Effects = {
   {
   Bones = {
   'Torpedo_Muzzle02',
   'XRS0204',
   },
   Type = 'UnderWater01',
   },
   },
   },
   Water = {
   Effects = {
   {
   Bones = {
   'XRS0204',
   },
   Scale = 0.4,
   Type = 'SeaIdle01',
   },
   },
   },
   },
   Mesh = {
   IconFadeInZoom = 130,
   LODs = {
   {
   LODCutoff = 100,
   ShaderName = 'Insect',
   },
   {
   AlbedoName = 'xrs0204_lod1_albedo.dds',
   LODCutoff = 215,
   ShaderName = 'Insect',
   SpecularName = 'xrs0204_lod1_specteam.dds',
   },
   },
   },
   MotionChangeEffects = {
   SubBottomUp = {
   Effects = {
   {
   Bones = {
   'XRS0204',
   },
   Type = 'Surface01',
   },
   },
   },
   WaterTopDown = {
   Effects = {
   {
   Bones = {
   'XRS0204',
   },
   Type = 'Submerge01',
   },
   },
   },
   },
   MovementEffects = {
   Sub = {
   Effects = {
   {
   Bones = {
   'Flare_Muzzle04',
   },
   Scale = 2,
   Type = 'BackWake',
   },
   },
   },
   Water = {
   Effects = {
   {
   Bones = {
   'Torpedo_Muzzle01',
   },
   Scale = 0.7,
   Type = 'LeftFrontWake',
   },
   {
   Bones = {
   'Torpedo_Muzzle02',
   },
   Scale = 0.7,
   Type = 'RightFrontWake',
   },
   {
   Bones = {
   'Flare_Muzzle04',
   },
   Offset = {
   0,
   0,
   -0.3,
   },
   Scale = 0.5,
   Type = 'BackWake',
   },
   },
   },
   },
   PlaceholderMeshName = 'UXS0001',
   SpawnRandomRotation = true,
   UniformScale = 0.04,
   },
   Economy = {
   BuildCostEnergy = 8800,
   BuildCostMass = 1100,
   BuildTime = 4400,
   MaintenanceConsumptionPerSecondEnergy = 30,
   },
   Footprint = {
   SizeX = 2,
   SizeY = 0.5,
   SizeZ = 3,
   },
   General = {
   Category = 'Submarine',
   Classification = 'RULEUC_MilitaryShip',
   CommandCaps = {
   RULEUCC_Attack = true,
   RULEUCC_CallTransport = false,
   RULEUCC_Capture = false,
   RULEUCC_Dive = true,
   RULEUCC_Guard = true,
   RULEUCC_Move = true,
   RULEUCC_Nuke = false,
   RULEUCC_Patrol = true,
   RULEUCC_Reclaim = false,
   RULEUCC_Repair = false,
   RULEUCC_RetaliateToggle = true,
   RULEUCC_Stop = true,
   RULEUCC_Transport = false,
   },
   FactionName = 'Cybran',
   Icon = 'sea',
   OrderOverrides = {
   RULEUTC_StealthToggle = {
   bitmapId = 'stealth-personal',
   helpText = 'toggle_stealth_personal',
   },
   },
   TechLevel = 'RULEUTL_Basic',
   ToggleCaps = {
   RULEUTC_StealthToggle = true,
   },
   UnitName = '<LOC xrs0204_name>Barracuda',
   UnitWeight = 1,
   },
   Intel = {
   RadarStealth = true,
   SonarRadius = 60,
   SonarStealth = true,
   VisionRadius = 32,
   WaterVisionRadius = 32,
   },
   Interface = {
   HelpText = '<LOC xrs0204_help>Submarine Killer',
   },
   LifeBarHeight = 0.075,
   LifeBarOffset = 1.2,
   LifeBarSize = 0.75,
   Physics = {
   BackUpDistance = 5,
   BankingSlope = 0,
   BuildOnLayerCaps = {
   LAYER_Air = false,
   LAYER_Land = false,
   LAYER_Orbit = false,
   LAYER_Seabed = false,
   LAYER_Sub = true,
   LAYER_Water = false,
   },
   CatchUpAcc = 10,
   DragCoefficient = 0.2,
   Elevation = -1.5,
   MaxAcceleration = 6.5,
   MaxBrake = 6.5,
   MaxSpeed = 6.5,
   MaxSpeedReverse = 6.5,
   MaxSteerForce = 5,
   MinSpeedPercent = 0,
   MotionType = 'RULEUMT_SurfacingSub',
   TurnRadius = 5,
   TurnRate = 80,
   },
   SelectionSizeX = 0.6,
   SelectionSizeZ = 1.8,
   SelectionThickness = 0.37,
   SizeX = 0.6,
   SizeY = 0.5,
   SizeZ = 3,
   StrategicIconName = 'icon_sub2_antinavy',
   StrategicIconSortPriority = 165,
   Veteran = {
   Level1 = 8,
   Level2 = 16,
   Level3 = 24,
   Level4 = 32,
   Level5 = 40,
   },
   Weapon = {
   {
   Audio = {
   Fire = Sound {
   Bank = 'XRS_Weapon',
   Cue = 'XRS0204_Torpedo_Nanite',
   LodCutoff = 'Weapon_LodCutoff',
   },
   },
   BallisticArc = 'RULEUBA_None',
   CollideFriendly = false,
   Damage = 15,
   DamageType = 'Normal',
   DisplayName = 'Nanite Torpedo',
   DoTPulses = 5,
   DoTTime = 0.5,
   FireTargetLayerCapsTable = {
   Sub = 'Seabed|Sub|Water',
   Water = 'Seabed|Sub|Water',
   },
   FiringTolerance = 2,
   Label = 'Torpedo01',
   MaxRadius = 45,
   MuzzleSalvoDelay = 0.4,
   MuzzleSalvoSize = 6,
   MuzzleVelocity = 5,
   ProjectileId = '/projectiles/CANTorpedoNanite01/CANTorpedoNanite01_proj.bp',
   ProjectileLifetime = 7,
   ProjectilesPerOnFire = 3,
   RackBones = {
   {
   MuzzleBones = {
   'Torpedo_Muzzle01',
   'Torpedo_Muzzle02',
   'Torpedo_Muzzle03',
   },
   RackBone = 'Torpedo_Muzzle01',
   },
   },
   RackFireTogether = false,
   RackRecoilDistance = 0,
   RackReloadTimeout = 10,
   RackSalvoChargeTime = 0,
   RackSalvoReloadTime = 0,
   RackSalvoSize = 1,
   RackSlavedToTurret = false,
   RangeCategory = 'UWRC_AntiNavy',
   RateOfFire = 0.25,
   SlavedToBody = true,
   SlavedToBodyArcRange = 10,
   TargetCheckInterval = 0.4,
   TargetPriorities = {
   'SPECIALHIGHPRI',
   'MOBILE',
   'STRUCTURE DEFENSE',
   'SPECIALLOWPRI',
   'ALLUNITS',
   },
   TargetRestrictDisallow = 'UNTARGETABLE, HOVER',
   TrackingRadius = 1.15,
   Turreted = false,
   WeaponCategory = 'Anti Navy',
   },
   {
   Audio = {
   Fire = Sound {
   Bank = 'XRS_Weapon',
   Cue = 'XRS0204_Anti_Torpedo_Flare',
   LodCutoff = 'Weapon_LodCutoff',
   },
   },
   BallisticArc = 'RULEUBA_None',
   CollideFriendly = false,
   Damage = 2,
   DamageType = 'Normal',
   DepthCharge = {
   Radius = 5,
   },
   DisplayName = 'Anti-Torpedo Flare',
   FireTargetLayerCapsTable = {
   Sub = 'Seabed|Sub|Water',
   },
   FiringTolerance = 2,
   Label = 'AntiTorpedo01',
   MaxRadius = 25,
   MuzzleSalvoDelay = 0.2,
   MuzzleSalvoSize = 4,
   MuzzleVelocity = 5,
   ProjectileId = '/projectiles/CIMAntiTorpedo01/CIMAntiTorpedo01_proj.bp',
   ProjectileLifetime = 3,
   RackBones = {
   {
   MuzzleBones = {
   'Flare_Muzzle01',
   'Flare_Muzzle02',
   'Flare_Muzzle03',
   'Flare_Muzzle04',
   },
   RackBone = 'Flare_Muzzle01',
   },
   },
   RackFireTogether = false,
   RackRecoilDistance = 0,
   RackReloadTimeout = 0,
   RackSalvoChargeTime = 0,
   RackSalvoReloadTime = 0,
   RackSalvoSize = 1,
   RackSlavedToTurret = false,
   RangeCategory = 'UWRC_Countermeasure',
   RateOfFire = 0.2,
   TargetCheckInterval = 0.4,
   TargetRestrictDisallow = 'UNTARGETABLE',
   TargetRestrictOnlyAllow = 'TORPEDO',
   TargetType = 'RULEWTT_Projectile',
   TrackingRadius = 1.5,
   TurretDualManipulators = false,
   TurretPitch = 0,
   TurretPitchRange = 0,
   TurretPitchSpeed = 0,
   TurretYaw = 0,
   TurretYawRange = 0,
   TurretYawSpeed = 0,
   Turreted = false,
   WeaponCategory = 'Defense',
   WeaponRepackTimeout = 0,
   WeaponUnpacks = false,
   },
   {
   Audio = {
   Fire = Sound {
   Bank = 'URLWeapon',
   Cue = 'URL0111_Missile_Cruise',
   LodCutoff = 'Weapon_LodCutoff',
   },
   },
   BallisticArc = 'RULEUBA_None',
   CollideFriendly = false,
   CountedProjectile = false,
   Damage = 200,
   DamageFriendly = true,
   DamageRadius = 4,
   DamageType = 'Normal',
   DisplayName = 'Loa Tactical Missile',
   FireTargetLayerCapsTable = {
   Water = 'Land|Water|Seabed',
   },
   FiringTolerance = 0,
   Label = 'CruiseMissile1',
   MaxRadius = 120,
   MinRadius = 30,
   MuzzleSalvoDelay = 0.2,
   MuzzleSalvoSize = 4,
   MuzzleVelocity = 5,
   ProjectileId = '/projectiles/CIFMissileTactical01/CIFMissileTactical01_proj.bp',
   ProjectileLifetime = 50,
   ProjectilesPerOnFire = 1,
   RackBones = {
   {
   MuzzleBones = {
   'Flare_Muzzle01',
   'Flare_Muzzle02',
   'Flare_Muzzle03',
   'Flare_Muzzle04',
   },
   RackBone = 'Flare_Muzzle01',
   },
   },
   RackFireTogether = false,
   RackRecoilDistance = 0,
   RackReloadTimeout = 10,
   RackSalvoChargeTime = 0,
   RackSalvoReloadTime = 0,
   RackSalvoSize = 1,
   RackSlavedToTurret = false,
   RangeCategory = 'UWRC_IndirectFire',
   RateOfFire = 0.2,
   TrackingRadius = 1.15,
   TargetCheckInterval = 1,
   TargetPriorities = {
   'SPECIALHIGHPRI',
   'STRUCTURE DEFENSE',
   'SPECIALLOWPRI',
   'ALLUNITS',
   },
   TargetRestrictDisallow = 'UNTARGETABLE',
   Turreted = false,
   WeaponCategory = 'Missile',
   },
   },
}

XRS0204_script.lua


local CSubUnit = import('/lua/cybranunits.lua').CSubUnit
local WeaponsFile = import('/lua/cybranweapons.lua')
local CANNaniteTorpedoWeapon = WeaponsFile.CANNaniteTorpedoWeapon
local CIFSmartCharge = WeaponsFile.CIFSmartCharge
local CybranWeapons = import('/lua/cybranweapons.lua')
local CIFMissileLoaWeapon = CybranWeapons.CIFMissileLoaWeapon
XRS0204 = Class(CSubUnit) {
   DeathThreadDestructionWaitTime = 0,
   Weapons = {
   Torpedo01 = Class(CANNaniteTorpedoWeapon) {},
   AntiTorpedo01 = Class(CIFSmartCharge) {},
   AntiTorpedo02 = Class(CIFSmartCharge) {},
   CruiseMissile1 = Class(CIFMissileLoaWeapon){},
   CruiseMissile2 = Class(CIFMissileLoaWeapon){},
   },
   OnCreate = function(self)
   CSubUnit.OnCreate(self)
   self:SetMaintenanceConsumptionActive()
   end,
}
TypeClass = XRS0204

能不能对各段代码做一解读,培训一下初学者。

这强的护盾。。。。。牛
最希望的是有提升AI的mod!

据香港媒体uucall网络电话报道,杨千嬅昨天(8月31日)在香港如常开工,对于奉子成婚传言,她拍肚子证明自己没有怀孕。千嬅的工作安排得很紧,她估计要到明年下半年才有空
档筹办婚事。