Posted by: Gameanater - Tuesday, October 2, 2018 1:41:38 AM
[code=plain] ;Microwave Ranger weapons ;------------------------------------------------------------------------------ Weapon MicrowaveRangerVehicleDisabler PrimaryDamage = 24.0 PrimaryDamageRadius = 0.0 ; 0 primary radius means "hits only intended victim" AttackRange = 120.0 DamageType = SUBDUAL_VEHICLE DeathType = NORMAL WeaponSpeed = 999999.0 ; dist/sec (huge value == effectively instant) ;WeaponSpeed = 10.0 ; dist/sec (huge value == effectively instant) LaserName = MicrowaveDisableStream LaserBoneName = MuzzleFX RadiusDamageAffects = ALLIES ENEMIES NEUTRALS DelayBetweenShots = 100 ; time between shots, msec ClipSize = 0 ; how many shots in a Clip (0 == infinite) ClipReloadTime = 0 ; how long to reload a Clip, msec AntiAirborneVehicle = No AntiAirborneInfantry = No FireSound = MicrowaveWeaponLoop FireSoundLoopTime = 120 ; loop the firing sound until there's this much delay between shots End ;------------------------------------------------------------------------------ Weapon MicrowaveRangerBuildingDisabler PrimaryDamage = 50.0 PrimaryDamageRadius = 0.0 ; 0 primary radius means "hits only intended victim" AttackRange = 120.0 DamageType = SUBDUAL_BUILDING DeathType = NORMAL WeaponSpeed = 999999.0 ; dist/sec (huge value == effectively instant) ;WeaponSpeed = 10.0 ; dist/sec (huge value == effectively instant) LaserName = MicrowaveDisableStream LaserBoneName = MuzzleFX RadiusDamageAffects = ALLIES ENEMIES NEUTRALS DelayBetweenShots = 100 ; time between shots, msec ClipSize = 0 ; how many shots in a Clip (0 == infinite) ClipReloadTime = 0 ; how long to reload a Clip, msec AntiAirborneVehicle = No AntiAirborneInfantry = No FireSound = MicrowaveWeaponLoop FireSoundLoopTime = 120 ; loop the firing sound until there's this much delay between shots End ;------------------------------------------------------------------------------ ;Instructions: ;Place human within range of the rifle and center of your cross-hairs ;Set weapon to "high" and pull trigger ;Continue until your human is a screaming, flaming husk and enjoy. ;Caution! Product will be hot! Weapon MicrowaveRangerHumanReheater PrimaryDamage = 20.0 ; Toasty PrimaryDamageRadius = 2.0 ; 0 primary radius means "hits only intended victim" AttackRange = 120.0 DamageType = MICROWAVE ;We only wanna shoot humans with this weapon DeathType = BURNED WeaponSpeed = 999999.0 ; dist/sec (huge value == effectively instant) LaserName = MicrowaveDisableStream LaserBoneName = MuzzleFX RadiusDamageAffects = ALLIES ENEMIES NEUTRALS DelayBetweenShots = 100 ; time between shots, msec ClipSize = 0 ; how many shots in a Clip (0 == infinite) ClipReloadTime = 0 ; how long to reload a Clip, msec AntiAirborneVehicle = No AntiAirborneInfantry = No FireSound = MicrowaveWeaponLoop FireSoundLoopTime = 120 ; loop the firing sound until there's this much delay between shots End And the unit itself ;------------------------------------------------------------------------------ ;Microwave Ranger cyborg Object SupW_AmericaInfantryRanger ; *** ART Parameters *** SelectPortrait = SARanger_L ButtonImage = SARanger UpgradeCameo1 = Upgrade_AmericaRangerFlashBangGrenade UpgradeCameo2 = Upgrade_AmericaAdvancedTraining UpgradeCameo3 = Upgrade_InfantryCaptureBuilding UpgradeCameo4 = Upgrade_AmericaChemicalSuits ;UpgradeCameo5 = NONE Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes ; this says "we don't use these condition states at all, so completely ; ignore them for purposes of matchmaking"... this is useful to help ; reduce the number of AliasConditionState clauses you must add in ; order to avoid ambiguity in some cases. IgnoreConditionStates = PREATTACK_A FIRING_A BETWEEN_FIRING_SHOTS_A RELOADING_A ; --- Idle DefaultConditionState Model = AIRngr_SKN IdleAnimation = AIRngr_SKL.AIRngr_STA 0 35 IdleAnimation = AIRngr_SKL.AIRngr_IDA IdleAnimation = AIRngr_SKL.AIRngr_IDB AnimationMode = ONCE WeaponFireFXBone = PRIMARY Muzzle WeaponMuzzleFlash = PRIMARY MuzzleFX WeaponLaunchBone = PRIMARY Muzzle WeaponFireFXBone = SECONDARY Muzzle WeaponMuzzleFlash = SECONDARY MuzzleFX WeaponLaunchBone = SECONDARY Muzzle WeaponFireFXBone = TERTIARY Muzzle WeaponMuzzleFlash = TERTIARY MuzzleFX WeaponLaunchBone = TERTIARY Muzzle TransitionKey = TRANS_Stand End ConditionState = REALLYDAMAGED IdleAnimation = AIRngr_SKL.AIRngr_STB 0 35 IdleAnimation = AIRngr_SKL.AIRngr_IDC IdleAnimation = AIRngr_SKL.AIRngr_IDD AnimationMode = ONCE TransitionKey = TRANS_StandInjured End TransitionState = TRANS_Stand TRANS_StandInjured Animation = AIRngr_SKL.AIRngr_SA2SB AnimationMode = ONCE End ; --- attacking (Machine Gun) ConditionState = USING_WEAPON_A Animation = AIRngr_SKL.AIRngr_ATA AnimationMode = LOOP TransitionKey = TRANS_FiringA End ConditionState = USING_WEAPON_A REALLYDAMAGED Animation = AIRngr_SKL.AIRngr_ATA2 AnimationMode = LOOP TransitionKey = TRANS_FiringAInjured End TransitionState = TRANS_FiringA TRANS_FiringAInjured Animation = AIRngr_SKL.AIRngr_A2WAA AnimationMode = ONCE End TransitionState = TRANS_Stand TRANS_FiringA Animation = AIRngr_SKL.AIRngr_ATAST AnimationMode = ONCE AnimationSpeedFactorRange = 4 4 End TransitionState = TRANS_FiringA TRANS_Stand Animation = AIRngr_SKL.AIRngr_ATAED AnimationMode = ONCE AnimationSpeedFactorRange = 4 4 End TransitionState = TRANS_StandInjured TRANS_FiringAInjured Animation = AIRngr_SKL.AIRngr_S2WAA AnimationMode = ONCE AnimationSpeedFactorRange = 4 4 End TransitionState = TRANS_FiringAInjured TRANS_StandInjured Animation = AIRngr_SKL.AIRngr_WAA2S AnimationMode = ONCE AnimationSpeedFactorRange = 4 4 End TransitionState = TRANS_Stand TRANS_Move Animation = AIRngr_SKL.AIRngr_STA2RNA AnimationMode = ONCE End ; --- attacking (Grenade Launcher) ConditionState = PREATTACK_B Animation = AIRngr_SKL.AIRngr_ATBA AnimationMode = ONCE TransitionKey = TRANS_FiringB End AliasConditionState = PREATTACK_B MOVING AliasConditionState = PREATTACK_B FIRING_B AliasConditionState = PREATTACK_B BETWEEN_FIRING_SHOTS_B ConditionState = FIRING_B Animation = AIRngr_SKL.AIRngr_ATBB AnimationMode = ONCE TransitionKey = TRANS_FiringB End ConditionState = BETWEEN_FIRING_SHOTS_B Animation = AIRngr_SKL.AIRngr_ATBB AnimationMode = MANUAL Flags = START_FRAME_LAST TransitionKey = TRANS_FiringB WaitForStateToFinishIfPossible = TRANS_FiringB End AliasConditionState = RELOADING_B TransitionState = TRANS_Stand TRANS_FiringB Animation = AIRngr_SKL.AIRngr_ATBST1 AnimationMode = ONCE End TransitionState = TRANS_FiringB TRANS_Stand Animation = AIRngr_SKL.AIRngr_ATBST2 AnimationMode = ONCE End ConditionState = PREATTACK_B REALLYDAMAGED Animation = AIRngr_SKL.AIRngr_ATB2A AnimationMode = ONCE TransitionKey = TRANS_FiringBInjured End AliasConditionState = PREATTACK_B MOVING REALLYDAMAGED AliasConditionState = PREATTACK_B FIRING_B REALLYDAMAGED AliasConditionState = PREATTACK_B BETWEEN_FIRING_SHOTS_B REALLYDAMAGED ConditionState = FIRING_B REALLYDAMAGED Animation = AIRngr_SKL.AIRngr_ATB2B AnimationMode = ONCE TransitionKey = TRANS_FiringBInjured End ConditionState = BETWEEN_FIRING_SHOTS_B REALLYDAMAGED Animation = AIRngr_SKL.AIRngr_ATB2B AnimationMode = MANUAL Flags = START_FRAME_LAST TransitionKey = TRANS_FiringBInjured WaitForStateToFinishIfPossible = TRANS_FiringBInjured End AliasConditionState = RELOADING_B REALLYDAMAGED TransitionState = TRANS_StandInjured TRANS_FiringBInjured Animation = AIRngr_SKL.AIRngr_ATB2ST1 AnimationMode = ONCE End TransitionState = TRANS_FiringBInjured TRANS_StandInjured Animation = AIRngr_SKL.AIRngr_ATB2ST2 AnimationMode = ONCE End ; --- attacking (Third weapon) ConditionState = USING_WEAPON_C Animation = AIRngr_SKL.AIRngr_ATA AnimationMode = LOOP TransitionKey = TRANS_FiringC End ConditionState = USING_WEAPON_C REALLYDAMAGED Animation = AIRngr_SKL.AIRngr_ATA2 AnimationMode = LOOP TransitionKey = TRANS_FiringCInjured End TransitionState = TRANS_FiringC TRANS_FiringCInjured Animation = AIRngr_SKL.AIRngr_A2WAA AnimationMode = ONCE End TransitionState = TRANS_Stand TRANS_FiringC Animation = AIRngr_SKL.AIRngr_ATAST AnimationMode = ONCE AnimationSpeedFactorRange = 4 4 End TransitionState = TRANS_FiringC TRANS_Stand Animation = AIRngr_SKL.AIRngr_ATAED AnimationMode = ONCE AnimationSpeedFactorRange = 4 4 End TransitionState = TRANS_StandInjured TRANS_FiringCInjured Animation = AIRngr_SKL.AIRngr_S2WAA AnimationMode = ONCE AnimationSpeedFactorRange = 4 4 End TransitionState = TRANS_FiringCInjured TRANS_StandInjured Animation = AIRngr_SKL.AIRngr_WAA2S AnimationMode = ONCE AnimationSpeedFactorRange = 4 4 End TransitionState = TRANS_Stand TRANS_Move Animation = AIRngr_SKL.AIRngr_STA2RNA AnimationMode = ONCE End ; -- cross-attack transitions TransitionState = TRANS_FiringA TRANS_FiringB Animation = AIRngr_SKL.AIRngr_ATA2AB AnimationMode = ONCE AnimationSpeedFactorRange = 4 4 End TransitionState = TRANS_FiringB TRANS_FiringA Animation = AIRngr_SKL.AIRngr_ATA2AB AnimationMode = ONCE_BACKWARDS AnimationSpeedFactorRange = 4 4 End ;-- TransitionState = TRANS_FiringA TRANS_FiringC Animation = AIRngr_SKL.AIRngr_ATA2AB AnimationMode = ONCE AnimationSpeedFactorRange = 4 4 End TransitionState = TRANS_FiringB TRANS_FiringC Animation = AIRngr_SKL.AIRngr_ATA2AB AnimationMode = ONCE_BACKWARDS AnimationSpeedFactorRange = 4 4 End ;-- TransitionState = TRANS_FiringC TRANS_FiringB Animation = AIRngr_SKL.AIRngr_ATA2AB AnimationMode = ONCE AnimationSpeedFactorRange = 4 4 End TransitionState = TRANS_FiringC TRANS_FiringA Animation = AIRngr_SKL.AIRngr_ATA2AB AnimationMode = ONCE_BACKWARDS AnimationSpeedFactorRange = 4 4 End ; --- moving ConditionState = MOVING Animation = AIRngr_SKL.AIRngr_RNA 30 AnimationMode = LOOP Flags = RANDOMSTART TransitionKey = TRANS_Move ParticleSysBone = None InfantryDustTrails End AliasConditionState = MOVING ATTACKING ConditionState = MOVING REALLYDAMAGED Animation = AIRngr_SKL.AIRngr_RNB 30 AnimationMode = LOOP Flags = RANDOMSTART TransitionKey = TRANS_Move End AliasConditionState = MOVING REALLYDAMAGED ATTACKING ; --- dying anims ConditionState = DYING Animation = AIRngr_SKL.AIRngr_DTA Animation = AIRngr_SKL.AIRngr_DTB AnimationMode = ONCE TransitionKey = None End TransitionState = TRANS_Dying TRANS_Flailing Animation = AIRngr_SKL.AIRngr_ADTF1 AnimationMode = ONCE End ConditionState = DYING EXPLODED_FLAILING Animation = AIRngr_SKL.AIRngr_ADTF2 AnimationMode = LOOP TransitionKey = TRANS_Flailing End ConditionState = DYING EXPLODED_BOUNCING Animation = AIRngr_SKL.AIRngr_ADTF3 AnimationMode = ONCE TransitionKey = None End AliasConditionState = DYING SPLATTED ; --- cheering ConditionState = SPECIAL_CHEERING Animation = AIRngr_SKL.AIRngr_CHA AnimationMode = LOOP End ConditionState = SPECIAL_CHEERING REALLYDAMAGED Animation = AIRngr_SKL.AIRngr_CHB AnimationMode = LOOP End ; ----- PARACHUTING ANIMATIONS ConditionState = FREEFALL Animation = AIRngr_SKL.AIRngr_PFL AnimationMode = LOOP TransitionKey = TRANS_Falling End AliasConditionState = FREEFALL REALLYDAMAGED AliasConditionState = FREEFALL DYING ConditionState = PARACHUTING Animation = AIRngr_SKL.AIRngr_PHG AnimationMode = LOOP Flags = PRISTINE_BONE_POS_IN_FINAL_FRAME ; our bone positions should come from the last frame, rather than the first TransitionKey = TRANS_Chute End AliasConditionState = PARACHUTING REALLYDAMAGED AliasConditionState = PARACHUTING DYING TransitionState = TRANS_Falling TRANS_Chute Animation = AIRngr_SKL.AIRngr_POP AnimationMode = ONCE Flags = PRISTINE_BONE_POS_IN_FINAL_FRAME ; our bone positions should come from the last frame, rather than the first End TransitionState = TRANS_Chute TRANS_Stand Animation = AIRngr_SKL.AIRngr_PTD AnimationMode = ONCE End TransitionState = TRANS_Chute TRANS_StandInjured Animation = AIRngr_SKL.AIRngr_PTD AnimationMode = ONCE End ; ------- Bldg-capture ConditionState = UNPACKING Model = AIRngr_F_SKN Animation = AIRngr_F_SKL.AIRngr_F_FDP1 AnimationMode = ONCE End AliasConditionState = UNPACKING REALLYDAMAGED ConditionState = RAISING_FLAG Model = AIRngr_F_SKN Animation = AIRngr_F_SKL.AIRngr_F_FDP2 AnimationMode = ONCE TransitionKey = TRANS_Raising End AliasConditionState = RAISING_FLAG REALLYDAMAGED ConditionState = PACKING Model = AIRngr_F_SKN Animation = AIRngr_F_SKL.AIRngr_F_FDP1 AnimationMode = ONCE_BACKWARDS Flags = START_FRAME_LAST TransitionKey = TRANS_Packing End AliasConditionState = PACKING REALLYDAMAGED TransitionState = TRANS_Raising TRANS_Packing Model = AIRngr_F_SKN Animation = AIRngr_F_SKL.AIRngr_F_FDP2 AnimationMode = ONCE_BACKWARDS Flags = START_FRAME_LAST End ; --- RAPPELLING ANIMATIONS ConditionState = RAPPELLING Animation = AIRngr_SKL.AIRngr_RPL1 ;30 AnimationMode = LOOP Flags = RANDOMSTART TransitionKey = TRANS_Rappelling End AliasConditionState = MOVING RAPPELLING TransitionState = TRANS_Rappelling TRANS_Stand Animation = AIRngr_SKL.AIRngr_RPL2 AnimationMode = ONCE End TransitionState = TRANS_Rappelling TRANS_StandInjured Animation = AIRngr_SKL.AIRngr_RPL2 AnimationMode = ONCE End End ; ***DESIGN parameters *** DisplayName = OBJECT:Ranger Side = AmericaSuperWeaponGeneral EditorSorting = INFANTRY TransportSlotCount = 1 ;how many "slots" we take in a transport (0 == not transportable) WeaponSet Conditions = None Weapon = PRIMARY MicrowaveRangerVehicleDisabler Weapon = SECONDARY MicrowaveRangerBuildingDisabler Weapon = TERTIARY MicrowaveRangerHumanReheater End ;Grenades may be moved to a new Grenadier unit - JCD ;WeaponSet ; Conditions = PLAYER_UPGRADE ; Weapon = PRIMARY RangerAdvancedCombatRifle ; Weapon = SECONDARY RangerFlashBangGrenadeWeapon ; AutoChooseSources = PRIMARY FROM_SCRIPT FROM_AI DEFAULT_SWITCH_WEAPON ; AutoChooseSources = SECONDARY FROM_SCRIPT FROM_AI ; WeaponLockSharedAcrossSets = Yes ; This set is so similar to the default set that it can hold the weapon lock ; End ArmorSet Conditions = None Armor = HumanArmor DamageFX = InfantryDamageFX End ArmorSet Conditions = PLAYER_UPGRADE Armor = ChemSuitHumanArmor DamageFX = None End VisionRange = 100 ShroudClearingRange = 400 Prerequisites Object = SupW_AmericaBarracks End BuildCost = 225 BuildTime = 5.0 ;in seconds ExperienceValue = 20 20 40 60 ;Experience point value at each level ExperienceRequired = 0 40 60 120 ;Experience points needed to gain each level IsTrainable = Yes ;Can gain experience CrushableLevel = 0 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles CommandSet = SupW_AmericaInfantryRangerCommandSet ; *** AUDIO Parameters *** VoiceSelect = RangerVoiceSelect VoiceMove = RangerVoiceMove VoiceGuard = RangerVoiceMove VoiceAttack = RangerVoiceAttack VoiceFear = RangerVoiceFear VoiceTaskComplete = RangerVoiceCaptureComplete UnitSpecificSounds VoiceEnter = RangerVoiceMove VoiceEnterHostile = RangerVoiceMove VoiceGarrison = RangerVoiceGarrison VoiceCreate = RangerVoiceCreate VoiceSubdue = RangerVoiceSubdue VoiceClearBuilding = RangerVoiceClearBuilding VoiceGetHealed = RangerVoiceMove VoicePrimaryWeaponMode = RangerVoiceModeGun VoiceSecondaryWeaponMode = RangerVoiceModeFlashBang End UnitSpecificFX ; These have the syntax of SomeNameSomewhereInCode = SomeNameSomewhereInLookupINIs CombatDropKillFX = FX_RangerCombatDropKill End ; *** ENGINEERING Parameters *** RadarPriority = UNIT KindOf = PRELOAD SELECTABLE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT CAN_CAST_REFLECTIONS INFANTRY CAN_RAPPEL SCORE Behavior = CommandButtonHuntUpdate ModuleTag_02 End Body = ActiveBody ModuleTag_03 MaxHealth = 180.0 InitialHealth = 180.0 End Behavior = ExperienceScalarUpgrade ModuleTag_04 TriggeredBy = Upgrade_AmericaAdvancedTraining AddXPScalar = 1.0 ;Increases experience gained by an additional 100% End Behavior = AutoFindHealingUpdate ModuleTag_05 ; This update will have the unit go to a healing station if injured. jba ScanRate = 1000 ; once a second. ScanRange = 300 ; NeverHeal = 0.85 ; don't heal if we are > 85% healthy. AlwaysHeal = 0.25 ; if we get below 25%, find healing right away. End Behavior = AIUpdateInterface ModuleTag_06 AutoAcquireEnemiesWhenIdle = Yes End Locomotor = SET_NORMAL BasicHumanLocomotor Behavior = PhysicsBehavior ModuleTag_07 Mass = 5.0 End Behavior = ProductionUpdate ModuleTag_08 ; nothing End Behavior = CommandButtonHuntUpdate ModuleTag_09 ; allows use of command button hunt script with this unit. End ;Behavior = WeaponSetUpgrade ModuleTag_10 ; TriggeredBy = Upgrade_AmericaRangerFlashBangGrenade ;End ; --- begin Death modules --- Behavior = SlowDeathBehavior ModuleTag_Death01 DeathTypes = ALL -CRUSHED -SPLATTED -EXPLODED -BURNED -POISONED -POISONED_BETA -POISONED_GAMMA SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_RangerDie End Behavior = SlowDeathBehavior ModuleTag_Death02 DeathTypes = NONE +CRUSHED +SPLATTED SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_GIDieCrushed End Behavior = SlowDeathBehavior ModuleTag_Death03 DeathTypes = NONE +EXPLODED SinkDelay = 3000 SinkRate = 0.5 ; in Dist/Sec DestructionDelay = 8000 FX = INITIAL FX_RangerDie FlingForce = 8 FlingForceVariance = 3 FlingPitch = 60 FlingPitchVariance = 10 End Behavior = SlowDeathBehavior ModuleTag_Death04 DeathTypes = NONE +BURNED DestructionDelay = 0 FX = INITIAL FX_DieByFireUSA OCL = INITIAL OCL_FlamingInfantry End Behavior = SlowDeathBehavior ModuleTag_Death05 DeathTypes = NONE +POISONED DestructionDelay = 0 FX = INITIAL FX_DieByToxinUSA OCL = INITIAL OCL_ToxicInfantry End Behavior = SlowDeathBehavior ModuleTag_Death06 ; don't forget to give it a new, unique module tag DeathTypes = NONE +POISONED_BETA DestructionDelay = 0 FX = INITIAL FX_DieByToxinUSA OCL = INITIAL OCL_ToxicInfantryBeta ;you'll have to create this OCL and make it use the blue guys instead of green ones End Behavior = SlowDeathBehavior ModuleTag_Death07 DeathTypes = NONE +POISONED_GAMMA DestructionDelay = 0 FX = INITIAL FX_DieByToxinGLA OCL = INITIAL OCL_ToxicInfantryGamma End ; --- end Death modules --- Behavior = SquishCollide ModuleTag_12 ;nothing End Behavior = ArmorUpgrade ModuleTag_Armor01 TriggeredBy = Upgrade_AmericaChemicalSuits End Behavior = PoisonedBehavior ModuleTag_17 PoisonDamageInterval = 100 ; Every this many msec I will retake the poison damage dealt me... PoisonDuration = 3000 ; ... for this long after last hit by poison damage End Behavior = SpecialAbility ModuleTag_18 SpecialPowerTemplate = SpecialAbilityRangerCaptureBuilding UpdateModuleStartsAttack = Yes StartsPaused = Yes ; Unpaused by upgrade module InitiateSound = RangerVoiceCapture End Behavior = SpecialAbilityUpdate ModuleTag_19 SpecialPowerTemplate = SpecialAbilityRangerCaptureBuilding StartAbilityRange = 5.0 UnpackTime = 3000 ; (changing this will scale anim speed) PreparationTime = 20000 ; time to complete hack once prepared (changing this will scale anim speed) PackTime = 2000 ; (changing this will scale anim speed) DoCaptureFX = Yes AwardXPForTriggering = 15 ;SkillPointsForTriggering = ??? -- Dustin, fill me out if you want different balance values. End Behavior = UnpauseSpecialPowerUpgrade ModuleTag_20 SpecialPowerTemplate = SpecialAbilityRangerCaptureBuilding TriggeredBy = Upgrade_InfantryCaptureBuilding End ;Behavior = LockWeaponCreate ModuleTag_21 ; SlotToLock = PRIMARY ; Prevents indeterminate state plus two unpickable weapons equaling no attack. ;End Geometry = CYLINDER GeometryMajorRadius = 7.0 GeometryMinorRadius = 7.0 GeometryHeight = 13.0 GeometryIsSmall = Yes Shadow = SHADOW_DECAL ShadowSizeX = 14; ShadowSizeY = 14; ShadowTexture = ShadowI; BuildCompletion = APPEARS_AT_RALLY_POINT End [/code]

Posted by: SkyMix_RMT - Tuesday, October 2, 2018 1:51:55 PM
Try replacing "LaserBoneName = MuzzleFX" with "LaserBoneName = Muzzle01" to fix the first issue.

Posted by: Gameanater - Wednesday, October 3, 2018 2:04:06 AM
Well that solved the drawing issue. I guess it's been so long since I've done modding that I forgot what I usually did for laser weapons. XD I almost found a workaround for the garrison issue... But the Microwave Ranger is still helpless against them. He can technically attack garrisons but can't actually kill anything after I added "AllowAttackGarrisonedBldgs = Yes" I honestly didn't expect it to do anything but I'm surprised it can technically attack since it deals zero damage to buildings. I am having so much issue getting this guy to attack garrisons... I tried cloning the Dragon Tank weapon but that weapon hates hates hates being used by infantry even after replacing the locomotor with that of a missile's, and trying to make infantry vulnerable to KILL_GARRISONED damage KindOf just crashed the game. I didn't foresee having this much trouble with creating a Ranger with a Microwave Tank weapon but I should have figured since it already has three weapons that's why it has a burning field as its counter to infantry. If I can get this guy to attack garrisons though I might try and make a copy of the successful weapon for the normal Microwave Tanks, which I've made able to disable vehicles already. Being able to directly attack infantry AND clear garrisons, AND diable vehicles, AND disable buildings might make the thing a worthwhile support unit. EDIT: I'm honestly thinking maybe creating an invisible turret attached to his gun that does the building clearing? The only issues with that approach might be that he could fire at a garrison while moving and he also can't clear a building while garrisoned himself or inside a Humvee? And... I just remembered, I hear turrets and their parents occupying a Firebase does not end well...

Posted by: SkyMix_RMT - Wednesday, October 3, 2018 4:54:15 AM
What if you try creating a DamageType just for you ranger, equal to MICROWAVE but with a different name. I believe the armor from buildings takes 0% damage from MICROWAVE DamageType, so all you gotta do is use one with a different name so that it uses the default value of 100% damage taken.

Posted by: Gameanater - Wednesday, October 3, 2018 6:46:36 PM
I didn't even know you could create new damage types. Sweet. Wouldn't your suggestion make the building itself take damage, though? What I want is for the weapon to just clear out the units in a garrison, not destroy it outright.

Posted by: SkyMix_RMT - Wednesday, October 3, 2018 8:39:10 PM
oh, I can't help you then, I don't know how garrison clearing weapons work. Good luck tho and I hope you find a solution.

Posted by: klingondragon - Thursday, October 4, 2018 5:23:20 AM
I'd take a look at the tokin tank. Not sure how it does it, but there may be something there. (walking home from work now, I'll take a look myself when I get home)

Posted by: Gameanater - Thursday, October 4, 2018 11:04:41 PM
[code=plain] Behavior = MissileAIUpdate ModuleTag_05 TryToFollowTarget = No FuelLifetime = 350 DetonateOnNoFuel = Yes InitialVelocity = 120 ; in dist/sec IgnitionDelay = 0 DistanceToTravelBeforeTurning = 2 GarrisonHitKillRequiredKindOf = INFANTRY GarrisonHitKillForbiddenKindOf = NONE GarrisonHitKillCount = 2 GarrisonHitKillFX = FX_DragonFlameGarrisonBuildingHit DistanceToTargetForLock = 0 ; If it gets within 100 of the target, it kills the target. End [/code]

Posted by: Gameanater - Friday, October 5, 2018 12:33:47 AM
So I am in the process of doing this, and creating new EMPEffectSpheroids in System.ini. And oh my gosh... EMPs are way more complicated than I thought and all this weapon and object code is starting to make my head hurt. Heheheh. I think I'm going to create my EMP Defender first since there's far less tweaking I gotta do with that. Then I'll come back and perfect my Microwave Ranger and redone Microwave Tanks. I shall update this thread with my results with the Microwave stuffs.

Posted by: Zatsupachi - Tuesday, October 9, 2018 3:10:23 PM
Have you taken a look at the actual weapon objects? Try to look at flashbang and add that property to the laser?

Posted by: Gameanater - Wednesday, October 10, 2018 11:10:10 AM
[Code=plain] ;------------------------------------------------------------------------------ Weapon MicrowaveRangerBuildingDisabler PrimaryDamage = 50.0 PrimaryDamageRadius = 0.0 ; 0 primary radius means "hits only intended victim" AttackRange = 120.0 DamageType = SUBDUAL_BUILDING DeathType = BURNED WeaponSpeed = 999999.0 ; dist/sec (huge value == effectively instant) ;WeaponSpeed = 10.0 ; dist/sec (huge value == effectively instant) LaserName = MicrowaveRangerAttackStream ;MicrowaveDisableStream LaserBoneName = Muzzle01 RadiusDamageAffects = ALLIES ENEMIES NEUTRALS DelayBetweenShots = 100 ; time between shots, msec ClipSize = 0 ; how many shots in a Clip (0 == infinite) ClipReloadTime = 0 ; how long to reload a Clip, msec AntiAirborneVehicle = No AntiAirborneInfantry = No FireSound = MicrowaveWeaponLoop FireSoundLoopTime = 120 ; loop the firing sound until there's this much delay between shots End ;------------------------------------------------------------------------------ ;Instructions: ;Place human within range of the rifle and center of your cross-hairs ;Set weapon to "high" and pull trigger ;Continue until your human is a screaming, flaming husk and enjoy. ;Caution! Product will be hot! Weapon MicrowaveRangerHumanReheater PrimaryDamage = 20.0 ; Toasty PrimaryDamageRadius = 2.0 ; 0 primary radius means "hits only intended victim" AttackRange = 120.0 DamageType = MICROWAVE ;We only wanna shoot humans with this weapon DeathType = BURNED WeaponSpeed = 999999.0 ; dist/sec (huge value == effectively instant) LaserName = MicrowaveRangerAttackStream ;MicrowaveDisableStream LaserBoneName = Muzzle01 RadiusDamageAffects = ALLIES ENEMIES NEUTRALS DelayBetweenShots = 100 ; time between shots, msec ClipSize = 0 ; how many shots in a Clip (0 == infinite) ClipReloadTime = 0 ; how long to reload a Clip, msec AntiAirborneVehicle = No AntiAirborneInfantry = No FireSound = MicrowaveWeaponLoop FireSoundLoopTime = 120 ; loop the firing sound until there's this much delay between shots AllowAttackGarrisonedBldgs = Yes End - WeaponObjects.ini - ;------------------------------------------------------------------------------ Object MicrowaveRangerAttackStream ; *** ART Parameters *** Draw = W3DLaserDraw ModuleTag_01 Texture = EXSineWave.tga Tile = Yes TilingScalar = .5 ScrollRate = -10 ;Scrolls the texture offset this fast -- towards(-) away(+) NumBeams = 1 ;Number of overlapping cylinders that make the beam. 1 beam will just use inner data. Current max: 10 InnerBeamWidth = 8 ;The total width of beam InnerColor = R:100 G:200 B:100 A:50 ;The inside color of the laser (hot) OuterBeamWidth = 5.0 ;The total width of beam OuterColor = R:96 G:255 B:96 A:5 ;The outside color of the laser (cool) End KindOf = IMMOBILE ClientUpdate = LaserUpdate ModuleTag_02 MuzzleParticleSystem = GenericGreenLaserFlare TargetParticleSystem = HackFlare End Behavior = DeletionUpdate ModuleTag_03 MinLifetime = 126 ; min lifetime in msec MaxLifetime = 126 ; max lifetime in msec End Behavior = MissileAIUpdate ModuleTag_05 ;TryToFollowTarget = Yes ;No ;FuelLifetime = 350 ;DetonateOnNoFuel = Yes ;InitialVelocity = 120 ; in dist/sec ;IgnitionDelay = 0 ;DistanceToTravelBeforeTurning = 2 GarrisonHitKillRequiredKindOf = INFANTRY GarrisonHitKillForbiddenKindOf = NONE GarrisonHitKillCount = 2 GarrisonHitKillFX = FX_DragonFlameGarrisonBuildingHit DistanceToTargetForLock = 0 ; If it gets within 100 of the target, it kills the target. End End ;------------------------------------------------------------------------------ Object MicrowaveRangerInfantryWeaponProjectile1 ; Explanation - Particles can't do damage, so this is a fast shooting low ; damage invisible missile launcher with a Microwave Tank beam trail for exhaust ; This is a modified version of DragonTankFlameProjectileUpgraded ; *** ART Parameters *** Draw = W3DModelDraw ModuleTag_01 OkToChangeModelColor = Yes ConditionState = NONE Model = NULL End End ; Must have a draw module to be allowed to draw detonation FX ; ***DESIGN parameters *** EditorSorting = SYSTEM VisionRange = 0.0 ArmorSet Conditions = None Armor = ProjectileArmor DamageFX = None End ; *** ENGINEERING Parameters *** KindOf = PROJECTILE Body = ActiveBody ModuleTag_02 MaxHealth = 100.0 InitialHealth = 100.0 End Behavior = DestroyDie ModuleTag_03 ;nothing End Behavior = PhysicsBehavior ModuleTag_04 Mass = 1 AllowCollideForce = No ; flames collide, but never apply forces when they do so End Behavior = MissileAIUpdate ModuleTag_05 TryToFollowTarget = Yes ;No FuelLifetime = 350 DetonateOnNoFuel = Yes InitialVelocity = 120 ; in dist/sec IgnitionDelay = 0 DistanceToTravelBeforeTurning = 2 GarrisonHitKillRequiredKindOf = INFANTRY GarrisonHitKillForbiddenKindOf = NONE GarrisonHitKillCount = 2 GarrisonHitKillFX = FX_DragonFlameGarrisonBuildingHit DistanceToTargetForLock = 0 ; If it gets within 100 of the target, it kills the target. End Locomotor = SET_NORMAL PatriotMissileLocomotorReallyFast ;DragonTankFlameLocomotor Behavior = BoneFXUpdate ModuleTag_06 PristineParticleSystem1 = bone:NULL OnlyOnce:Yes 0 0 PSys:GenericGreenLaserFlare ; Covers gap at beginning of line PristineParticleSystem2 = bone:NULL OnlyOnce:Yes 0 0 PSys:HackFlare PristineParticleSystem3 = bone:NULL OnlyOnce:Yes 0 0 PSys:MicrowaveRangerTrail ;PristineParticleSystem4 = bone:NULL OnlyOnce:Yes 0 0 PSys:FlameThrowerTrail04Upgraded ;PristineParticleSystem5 = bone:NULL OnlyOnce:Yes 0 0 PSys:FlameThrowerTrail06Upgraded ;PristineParticleSystem6 = bone:NULL OnlyOnce:Yes 0 0 PSys:FlameThrowerSmoke01 End Behavior = BoneFXDamage ModuleTag_07 ;nothing End Geometry = Sphere GeometryIsSmall = Yes GeometryMajorRadius = 2.0 End [/code]

Posted by: Zatsupachi - Wednesday, October 10, 2018 2:31:39 PM
this is the actual weapon from the microwave tank [code] ;------------------------------------------------------------------------------ Weapon MicrowaveTankBuildingClearer PrimaryDamage = 1.0 ; Number of passengers to kill with each shot PrimaryDamageRadius = 0.0 ; 0 primary radius means "hits only intended victim" AttackRange = 125.0 DamageType = KILL_GARRISONED DeathType = NORMAL WeaponSpeed = 999999.0 ; dist/sec (huge value == effectively instant) LaserName = MicrowaveDisableStream LaserBoneName = WEAPON02 RadiusDamageAffects = ALLIES ENEMIES NEUTRALS DelayBetweenShots = 100 ; time between shots, msec ClipSize = 0 ; how many shots in a Clip (0 == infinite) ClipReloadTime = 0 ; how long to reload a Clip, msec AntiAirborneVehicle = No AntiAirborneInfantry = No ; FireSound = AngryMobAmbientLoop ; FireSoundLoopTime = 120 ; loop the firing sound until there's this much delay between shots End [/code] checking microwave tank code, they don't disable vehicles, so you should have a weapon slot available maybe as a third firing mode?