Zululu 0 Posted December 26, 2015 (edited) Hello to the entire community of cncnz. I'm Zululu and i'm quite new to the world of C&C Generals modding. I can do some stuff, like creazting new unit and weapons. I wanted to improve my skill and i recently decided to work on a personal (mod, just for training, I don't really know if i'm ever gonna publish it). I just started to modify the USA faction: i'm working on their infantry now. I wanted to add a new unit, the Engineer: he's supposed to work pretty much as the Soviet combat engineer (i dont know the unit name in english), exept for the bunker building and the fact that he's armed with a shotgun. So, in my concept, he should come with the capture building ability already unlocked. For that reason i created a new SpecialPower, called SpecialAbilityEngeneeringCaptureBuilding, and a dedicated CommandButton, the Command_AmericaEngineerCaptureBuilding. The problem is that the Engineer in-game has the ability unlocked but he cant use it! It's selectable but he can't select the target. Can any body give me any suggestion? i'm gonna post the codes down belov UNIT CODE: ; *** ART Parameters *** SelectPortrait = AmericaEngineer ButtonImage = AmericaEngineer UpgradeCameo1 = Upgrade_AmericaAdvancedTraining UpgradeCameo2 = Upgrade_AmericaChemicalSuits ;UpgradeCameo3 = NONE ;UpgradeCameo4 = NONE ;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 WeaponFireFXBone = SECONDARY Muzzle WeaponLaunchBone = SECONDARY 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 ; --- 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:Engineer Side = America EditorSorting = INFANTRY TransportSlotCount = 1 ;how many "slots" we take in a transport (0 == not transportable) WeaponSet Conditions = None Weapon = PRIMARY RangerAdvancedCombatRifle End ArmorSet Conditions = None Armor = HumanArmor DamageFX = InfantryDamageFX End ArmorSet Conditions = PLAYER_UPGRADE Armor = ChemSuitHumanArmor DamageFX = None End VisionRange = 100 ShroudClearingRange = 400 Prerequisites Object = 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 = AmericaInfantryEngineerCommandSet ; *** 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 = SpecialAbility ModuleTag_04 SpecialPowerTemplate = SpecialAbilityEngineerCaptureBuilding UpdateModuleStartsAttack = Yes InitiateSound = RangerVoiceClearBuilding End 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 ; --- 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_DieByToxinUSA 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 COMMANDBUTTON CODE: ; Unit commands ----------------------------------------------------------------------------------- CommandButton Command_AmericaEngineerCaptureBuilding Command = SPECIAL_POWER SpecialPower = SpecialAbilityRangerCaptureBuilding Options = OK_FOR_MULTI_SELECT NEED_TARGET_ENEMY_OBJECT NEED_TARGET_NEUTRAL_OBJECT TextLabel = CONTROLBAR:CaptureBuilding ButtonImage = SSCaptureBuilding CursorName = CaptureBuilding InvalidCursorName = GenericInvalid ButtonBorderType = ACTION ; Identifier for the User as to what kind of button this is DescriptLabel = CONTROLBAR:ToolTipUSARangerCaptureBuilding End SPECIAL POWER CODE: ;----------------------------------------------------------------------------- ;The engineer captures control of a building. ;Author: ZULULU-- December 2015 ;----------------------------------------------------------------------------- SpecialPower SpecialAbilityEngineerCaptureBuilding Enum = SPECIAL_INFANTRY_CAPTURE_BUILDING ReloadTime = 15000 ; in milliseconds PublicTimer = No End COMMANDSET CODE: CommandSet AmericaInfantryRangerCommandSet 1 = Command_AmericaRangerCaptureBuilding 2 = Command_AmericaRangerSwitchToMachineGun 4 = Command_AmericaRangerSwitchToFlagBangGrenades 11 = Command_AttackMove 13 = Command_Guard 14 = Command_Stop I' ve searched in every forum but i've found nothing useful. If theri is already a topic for this argument, i'm sorry if i missed it and i will be glad if you could redirect me on it. Did i miss some animation work?(Which i can't do actually since i'm unable to run gmax) Or is any script editing needed? Also i apologize for my terrible english and my forum/topic editing error(i'm quit a noob). If i've done any mistake i'll be glad if you can point them out and help me to correct them. Many thanks. Zululu. Edited December 26, 2015 by Sonic Share this post Link to post
Ravendark 43 Posted December 26, 2015 (edited) Not sure what you are trying to do tbh. You seem to use the ranger commandset but dont add a commandbutton to it. Command_AmericaEngineerCaptureBuilding needs to be added to the ranger commandset..if that is indeed the commandset you are using for your engineer unit else add that to its commandset. CommandSet AmericaInfantryRangerCommandSet ; change into AmericaEngineerCommandSet and add this to CommandSet = AmericaInfantryEngineerCommandSet under DESIGN 1 = Command_AmericaRangerCaptureBuilding ; change into this Command_AmericaEngineerCaptureBuilding 2 = Command_AmericaRangerSwitchToMachineGun 4 = Command_AmericaRangerSwitchToFlagBangGrenades 11 = Command_AttackMove 13 = Command_Guard 14 = Command_Stop End You created a specialpower trigger in the unit doesnt trigger anything : Behavior = SpecialAbility ModuleTag_04 SpecialPowerTemplate = SpecialAbilityEngineerCaptureBuilding UpdateModuleStartsAttack = Yes ; ON switch InitiateSound = RangerVoiceClearBuilding End This is basicly nothing more then a ON switch...you need to connect this with a WIRE to the LAMP: Behavior = SpecialAbilityUpdate ModuleTag_19 SpecialPowerTemplate = SpecialAbilityRangerCaptureBuilding ; WIRE change into SpecialAbilityEngineerCaptureBuilding 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 and this should make the lamp turn on if all goes well. or are you trying to copy the existing ranger coding? Not sure if you made a new unit or just duplicated the ranger. In theory you could just reuse the existig ranger specialpower and commands if you wanted. Edited December 26, 2015 by Ravendark 1 Share this post Link to post
Zululu 0 Posted December 27, 2015 Thank you sir for help. I noticed that i posted the wrong CommandSet. I had already created the propper command set for the enginner. This one here: CommandSet AmericaInfantryEngineerCommandSet 1 = Command_AmericaEngineerCaptureBuilding 11 = Command_AttackMove 13 = Command_Guard 14 = Command_Stop End I've done all what you sed and now the unit code look like this: ;------------------------------------------------------------------------------ Object AmericaInfantryEngineer ; *** ART Parameters *** SelectPortrait = AmericaEngineer ButtonImage = AmericaEngineer UpgradeCameo1 = Upgrade_AmericaAdvancedTraining UpgradeCameo2 = Upgrade_AmericaChemicalSuits ;UpgradeCameo3 = NONE ;UpgradeCameo4 = NONE ;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 = US_RNGR5 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 WeaponFireFXBone = SECONDARY Muzzle WeaponLaunchBone = SECONDARY 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 ; -- 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 ; --- 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:Engineer Side = America EditorSorting = INFANTRY TransportSlotCount = 1 ;how many "slots" we take in a transport (0 == not transportable) WeaponSet Conditions = None Weapon = PRIMARY EngineerShotGun End ArmorSet Conditions = None Armor = HumanArmor DamageFX = InfantryDamageFX End ArmorSet Conditions = PLAYER_UPGRADE Armor = ChemSuitHumanArmor DamageFX = None End VisionRange = 100 ShroudClearingRange = 400 Prerequisites Object = AmericaBarracks End BuildCost = 300 BuildTime = 8.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 = AmericaInfantryEngineerCommandSet ; *** 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 = 150.0 InitialHealth = 150.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 ; --- 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_DieByToxinUSA 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 = SpecialAbilityEngineerCaptureBuilding UpdateModuleStartsAttack = Yes ; ON switch InitiateSound = RangerVoiceCapture End Behavior = SpecialAbilityUpdate ModuleTag_19 SpecialPowerTemplate = SpecialAbilityEngineerCaptureBuilding 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 = 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 The US_RNGR5 model is from namman2. In the beginning it didn't wor but that was for the fact that i was still using the wrong CommandButton Code: ; Unit commands -----------------------------------------------------------------------------------CommandButton Command_AmericaEngineerCaptureBuilding Command = SPECIAL_POWER SpecialPower = SpecialAbilityRangerCaptureBuilding; this was the main cause of trouble Options = OK_FOR_MULTI_SELECT NEED_TARGET_ENEMY_OBJECT NEED_TARGET_NEUTRAL_OBJECT TextLabel = CONTROLBAR:CaptureBuilding ButtonImage = SSCaptureBuilding CursorName = CaptureBuilding InvalidCursorName = GenericInvalid ButtonBorderType = ACTION ; Identifier for the User as to what kind of button this is DescriptLabel = CONTROLBAR:ToolTipUSARangerCaptureBuildingEnd Now it looks like: CommandButton Command_AmericaEngineerCaptureBuilding Command = SPECIAL_POWER SpecialPower = SpecialAbilityEngineerCaptureBuilding Options = OK_FOR_MULTI_SELECT NEED_TARGET_ENEMY_OBJECT NEED_TARGET_NEUTRAL_OBJECT TextLabel = CONTROLBAR:CaptureBuilding ButtonImage = SSCaptureBuilding CursorName = CaptureBuilding InvalidCursorName = GenericInvalid ButtonBorderType = ACTION ; Identifier for the User as to what kind of button this is DescriptLabel = CONTROLBAR:ToolTipUSARangerCaptureBuilding End I didn't reaused the SpecialAbilityRangerCaptureBuilding because it need an upgrade and my engineer was supposed to have it as is basic ability, somewhat close to the classic C&C enginers. Now it work really well. Can i ask what was unclear about the post? I will try to explain better. Also i'll may end up with other question in close future, so i was thinking to change the topic title with my mod title. Should i do it? Also any other suggestion for code posted above? Like cleaning eventual unecessary code lines... Thak you again. Sorry for my bad English. Zululu. Share this post Link to post
Ravendark 43 Posted December 27, 2015 The thing that was unclear was that you basicly posted a hybrid of your engineercpture and the rangercapture, so i wasnt sure you wanted a whole new commandset +sp etc or if you where re using the ranger stuff. But that is sorted now. 1 Share this post Link to post
Zululu 0 Posted December 28, 2015 (edited) I've another question for modding: i would like to use a different tech sistem in my modification. At least for vanilla factions. It's inspired by the game "Act of War": basically, in that game USA faction update his tech level developing every time a more advanced "Defcon Level", kinda like what you do in Age of Empires with the various ages. Is it possible to do that in Generals? And if possible, did somebody already done something similar? EDIT: i got also a little problem. I just re added the AmericaDetentionCamp as a building. I wanted it to be a tech for the Defcon 2 level and i transfered some uppgrade from other buildings in it but when i click on their icons, the uprede doesn't start. Here the codes: BUILDING CODE: Object AmericaDetentionCamp ; *** ART Parameters *** SelectPortrait = SAPrison_L ButtonImage = SAPrison Draw = W3DModelDraw ModuleTag_01 ExtraPublicBone = PRISONYARD OkToChangeModelColor = Yes ; day **************************************** ConditionState = NONE Model = ABPrison Animation = ABPrison.ABPrison AnimationMode = LOOP End ConditionState = DAMAGED Model = ABPrison_D Animation = ABPrison_D.ABPrison_D AnimationMode = LOOP ParticleSysBone = Smoke01 SmolderingSmoke ParticleSysBone = Smoke02 SmolderingSmoke ParticleSysBone = Smoke03 SmolderingSmoke ParticleSysBone = Smoke04 SmolderingSmoke ParticleSysBone = Smoke05 SmolderingSmoke ParticleSysBone = Smoke06 SmolderingSmoke ParticleSysBone = Smoke01 SmolderingFire ParticleSysBone = Smoke02 SmolderingFire ParticleSysBone = Smoke03 SmolderingFire ParticleSysBone = Smoke04 SmolderingFire ParticleSysBone = Smoke05 SmolderingFire ParticleSysBone = Smoke06 SmolderingFire End ConditionState = REALLYDAMAGED RUBBLE Model = ABPrison_E Animation = ABPrison_E.ABPrison_E AnimationMode = LOOP ParticleSysBone = Smoke01 SmolderingSmoke ParticleSysBone = Smoke02 SmolderingSmoke ParticleSysBone = Smoke03 SmolderingSmoke ParticleSysBone = Smoke04 SmolderingSmoke ParticleSysBone = Smoke05 SmolderingSmoke ParticleSysBone = Smoke06 SmolderingSmoke ParticleSysBone = Smoke07 SmolderingSmoke ParticleSysBone = Smoke08 SmolderingSmoke ParticleSysBone = Smoke01 SmolderingFire ParticleSysBone = Smoke02 SmolderingFire ParticleSysBone = Smoke03 SmolderingFire ParticleSysBone = Smoke04 SmolderingFire ParticleSysBone = Smoke05 SmolderingFire ParticleSysBone = Smoke06 SmolderingFire ParticleSysBone = Smoke07 SmolderingFire ParticleSysBone = Smoke08 SmolderingFire End ; night *************************************** ConditionState = NIGHT Model = ABPrison_N Animation = ABPrison_N.ABPrison_N AnimationMode = LOOP End ConditionState = DAMAGED NIGHT Model = ABPrison_DN Animation = ABPrison_DN.ABPrison_DN AnimationMode = LOOP ParticleSysBone = Smoke01 SmolderingSmoke ParticleSysBone = Smoke02 SmolderingSmoke ParticleSysBone = Smoke03 SmolderingSmoke ParticleSysBone = Smoke04 SmolderingSmoke ParticleSysBone = Smoke05 SmolderingSmoke ParticleSysBone = Smoke06 SmolderingSmoke ParticleSysBone = Smoke01 SmolderingFire ParticleSysBone = Smoke02 SmolderingFire ParticleSysBone = Smoke03 SmolderingFire ParticleSysBone = Smoke04 SmolderingFire ParticleSysBone = Smoke05 SmolderingFire ParticleSysBone = Smoke06 SmolderingFire End ConditionState = REALLYDAMAGED RUBBLE NIGHT Model = ABPrison_EN Animation = ABPrison_EN.ABPrison_EN AnimationMode = LOOP ParticleSysBone = Smoke01 SmolderingSmoke ParticleSysBone = Smoke02 SmolderingSmoke ParticleSysBone = Smoke03 SmolderingSmoke ParticleSysBone = Smoke04 SmolderingSmoke ParticleSysBone = Smoke05 SmolderingSmoke ParticleSysBone = Smoke06 SmolderingSmoke ParticleSysBone = Smoke07 SmolderingSmoke ParticleSysBone = Smoke08 SmolderingSmoke ParticleSysBone = Smoke01 SmolderingFire ParticleSysBone = Smoke02 SmolderingFire ParticleSysBone = Smoke03 SmolderingFire ParticleSysBone = Smoke04 SmolderingFire ParticleSysBone = Smoke05 SmolderingFire ParticleSysBone = Smoke06 SmolderingFire ParticleSysBone = Smoke07 SmolderingFire ParticleSysBone = Smoke08 SmolderingFire End ; day snow **************************************** ConditionState = SNOW Model = ABPrison_S Animation = ABPrison_S.ABPrison_S AnimationMode = LOOP End ConditionState = DAMAGED SNOW Model = ABPrison_DS Animation = ABPrison_DS.ABPrison_DS AnimationMode = LOOP ParticleSysBone = Smoke01 SmolderingSmoke ParticleSysBone = Smoke02 SmolderingSmoke ParticleSysBone = Smoke03 SmolderingSmoke ParticleSysBone = Smoke04 SmolderingSmoke ParticleSysBone = Smoke05 SmolderingSmoke ParticleSysBone = Smoke06 SmolderingSmoke ParticleSysBone = Smoke01 SmolderingFire ParticleSysBone = Smoke02 SmolderingFire ParticleSysBone = Smoke03 SmolderingFire ParticleSysBone = Smoke04 SmolderingFire ParticleSysBone = Smoke05 SmolderingFire ParticleSysBone = Smoke06 SmolderingFire End ConditionState = REALLYDAMAGED RUBBLE SNOW Model = ABPrison_ES Animation = ABPrison_ES.ABPrison_ES AnimationMode = LOOP ParticleSysBone = Smoke01 SmolderingSmoke ParticleSysBone = Smoke02 SmolderingSmoke ParticleSysBone = Smoke03 SmolderingSmoke ParticleSysBone = Smoke04 SmolderingSmoke ParticleSysBone = Smoke05 SmolderingSmoke ParticleSysBone = Smoke06 SmolderingSmoke ParticleSysBone = Smoke07 SmolderingSmoke ParticleSysBone = Smoke08 SmolderingSmoke ParticleSysBone = Smoke01 SmolderingFire ParticleSysBone = Smoke02 SmolderingFire ParticleSysBone = Smoke03 SmolderingFire ParticleSysBone = Smoke04 SmolderingFire ParticleSysBone = Smoke05 SmolderingFire ParticleSysBone = Smoke06 SmolderingFire ParticleSysBone = Smoke07 SmolderingFire ParticleSysBone = Smoke08 SmolderingFire End ; night snow *************************************** ConditionState = NIGHT SNOW Model = ABPrison_NS Animation = ABPrison_NS.ABPrison_NS AnimationMode = LOOP End ConditionState = DAMAGED NIGHT SNOW Model = ABPrison_DNS Animation = ABPrison_DNS.ABPrison_DNS AnimationMode = LOOP ParticleSysBone = Smoke01 SmolderingSmoke ParticleSysBone = Smoke02 SmolderingSmoke ParticleSysBone = Smoke03 SmolderingSmoke ParticleSysBone = Smoke04 SmolderingSmoke ParticleSysBone = Smoke05 SmolderingSmoke ParticleSysBone = Smoke06 SmolderingSmoke ParticleSysBone = Smoke01 SmolderingFire ParticleSysBone = Smoke02 SmolderingFire ParticleSysBone = Smoke03 SmolderingFire ParticleSysBone = Smoke04 SmolderingFire ParticleSysBone = Smoke05 SmolderingFire ParticleSysBone = Smoke06 SmolderingFire End ConditionState = REALLYDAMAGED RUBBLE NIGHT SNOW Model = ABPrison_ENS Animation = ABPrison_ENS.ABPrison_ENS AnimationMode = LOOP ParticleSysBone = Smoke01 SmolderingSmoke ParticleSysBone = Smoke02 SmolderingSmoke ParticleSysBone = Smoke03 SmolderingSmoke ParticleSysBone = Smoke04 SmolderingSmoke ParticleSysBone = Smoke05 SmolderingSmoke ParticleSysBone = Smoke06 SmolderingSmoke ParticleSysBone = Smoke07 SmolderingSmoke ParticleSysBone = Smoke08 SmolderingSmoke ParticleSysBone = Smoke01 SmolderingFire ParticleSysBone = Smoke02 SmolderingFire ParticleSysBone = Smoke03 SmolderingFire ParticleSysBone = Smoke04 SmolderingFire ParticleSysBone = Smoke05 SmolderingFire ParticleSysBone = Smoke06 SmolderingFire ParticleSysBone = Smoke07 SmolderingFire ParticleSysBone = Smoke08 SmolderingFire End ;************************************************************************************************************************** ;This block handles every possible case with construction process, selling process, awaiting construction, and sold states ;for this draw module ConditionState = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED Model = ABPrison Animation = ABPrison.ABPrison AnimationMode = LOOP Flags = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT End ConditionState = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED DAMAGED Model = ABPrison_D Animation = ABPrison_D.ABPrison_D AnimationMode = LOOP Flags = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT End ConditionState = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED REALLYDAMAGED Model = ABPrison_E Animation = ABPrison_E.ABPrison_E AnimationMode = LOOP Flags = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT End ConditionState = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT Model = ABPrison_N Animation = ABPrison_N.ABPrison_N AnimationMode = LOOP Flags = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT End ConditionState = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT DAMAGED Model = ABPrison_DN Animation = ABPrison_DN.ABPrison_DN AnimationMode = LOOP Flags = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT End ConditionState = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT REALLYDAMAGED Model = ABPrison_EN Animation = ABPrison_EN.ABPrison_EN AnimationMode = LOOP Flags = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT End ConditionState = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED SNOW Model = ABPrison_S Animation = ABPrison_S.ABPrison_S AnimationMode = LOOP Flags = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT End ConditionState = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED SNOW DAMAGED Model = ABPrison_DS Animation = ABPrison_DS.ABPrison_DS AnimationMode = LOOP Flags = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT End ConditionState = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED SNOW REALLYDAMAGED Model = ABPrison_ES Animation = ABPrison_ES.ABPrison_ES AnimationMode = LOOP Flags = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT End ConditionState = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT SNOW Model = ABPrison_NS Animation = ABPrison_NS.ABPrison_NS AnimationMode = LOOP Flags = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT End ConditionState = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT SNOW DAMAGED Model = ABPrison_DNS Animation = ABPrison_DNS.ABPrison_DNS AnimationMode = LOOP Flags = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT End ConditionState = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED NIGHT SNOW REALLYDAMAGED Model = ABPrison_ENS Animation = ABPrison_ENS.ABPrison_ENS AnimationMode = LOOP Flags = ADJUST_HEIGHT_BY_CONSTRUCTION_PERCENT End ConditionState = AWAITING_CONSTRUCTION Model = NONE End AliasConditionState = AWAITING_CONSTRUCTION DAMAGED AliasConditionState = AWAITING_CONSTRUCTION REALLYDAMAGED AliasConditionState = AWAITING_CONSTRUCTION NIGHT AliasConditionState = AWAITING_CONSTRUCTION NIGHT DAMAGED AliasConditionState = AWAITING_CONSTRUCTION NIGHT REALLYDAMAGED AliasConditionState = AWAITING_CONSTRUCTION SNOW AliasConditionState = AWAITING_CONSTRUCTION SNOW DAMAGED AliasConditionState = AWAITING_CONSTRUCTION SNOW REALLYDAMAGED AliasConditionState = AWAITING_CONSTRUCTION NIGHT SNOW AliasConditionState = AWAITING_CONSTRUCTION NIGHT SNOW DAMAGED AliasConditionState = AWAITING_CONSTRUCTION NIGHT SNOW REALLYDAMAGED AliasConditionState = SOLD AliasConditionState = SOLD DAMAGED AliasConditionState = SOLD REALLYDAMAGED AliasConditionState = SOLD NIGHT AliasConditionState = SOLD NIGHT DAMAGED AliasConditionState = SOLD NIGHT REALLYDAMAGED AliasConditionState = SOLD SNOW AliasConditionState = SOLD SNOW DAMAGED AliasConditionState = SOLD SNOW REALLYDAMAGED AliasConditionState = SOLD NIGHT SNOW AliasConditionState = SOLD NIGHT SNOW DAMAGED AliasConditionState = SOLD NIGHT SNOW REALLYDAMAGED ;************************************************************************************************************************** End ; ------------ construction-zone fence ----------------- Draw = W3DModelDraw ModuleTag_02 AnimationsRequirePower = No DefaultConditionState Model = None TransitionKey = DOWN_DEFAULT End ConditionState = NIGHT Model = None TransitionKey = DOWN_DEFAULT End ConditionState = SNOW Model = None TransitionKey = DOWN_DEFAULT End ConditionState = SNOW NIGHT Model = None TransitionKey = DOWN_DEFAULT End ConditionState = AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED Model = ABPrison_A4 Animation = ABPrison_A4.ABPrison_A4 AnimationMode = MANUAL Flags = START_FRAME_LAST TransitionKey = UP_DAY ParticleSysBone = SmokeS01 SmokeBuildingSmall ParticleSysBone = SparksS01 LiveWireSparks02 End ConditionState = NIGHT AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED Model = ABPrison_A4N Animation = ABPrison_A4N.ABPrison_A4N AnimationMode = MANUAL Flags = START_FRAME_LAST TransitionKey = UP_NIGHT ParticleSysBone = SmokeS01 SmokeBuildingSmall ParticleSysBone = SparksS01 LiveWireSparks02 End ConditionState = SNOW AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED Model = ABPrison_A4S Animation = ABPrison_A4S.ABPrison_A4S AnimationMode = MANUAL Flags = START_FRAME_LAST TransitionKey = UP_SNOW ParticleSysBone = SmokeS01 SmokeBuildingSmall ParticleSysBone = SparksS01 LiveWireSparks02 End ConditionState = SNOW NIGHT AWAITING_CONSTRUCTION PARTIALLY_CONSTRUCTED ACTIVELY_BEING_CONSTRUCTED Model = ABPrison_A4SN Animation = ABPrison_A4SN.ABPrison_A4SN AnimationMode = MANUAL Flags = START_FRAME_LAST TransitionKey = UP_SNOWNIGHT ParticleSysBone = SmokeS01 SmokeBuildingSmall ParticleSysBone = SparksS01 LiveWireSparks02 End TransitionState = DOWN_DEFAULT UP_DAY Model = ABPrison_A4 Animation = ABPrison_A4.ABPrison_A4 AnimationMode = ONCE AnimationSpeedFactorRange = 1.0 1.0 Flags = START_FRAME_FIRST End TransitionState = DOWN_DEFAULT UP_NIGHT Model = ABPrison_A4N Animation = ABPrison_A4N.ABPrison_A4N AnimationMode = ONCE AnimationSpeedFactorRange = 1.0 1.0 Flags = START_FRAME_FIRST End TransitionState = DOWN_DEFAULT UP_SNOW Model = ABPrison_A4S Animation = ABPrison_A4S.ABPrison_A4S AnimationMode = ONCE AnimationSpeedFactorRange = 1.0 1.0 Flags = START_FRAME_FIRST End TransitionState = DOWN_DEFAULT UP_SNOWNIGHT Model = ABPrison_A4SN Animation = ABPrison_A4SN.ABPrison_A4SN AnimationMode = ONCE AnimationSpeedFactorRange = 1.0 1.0 Flags = START_FRAME_FIRST End TransitionState = UP_DAY DOWN_DEFAULT Model = ABPrison_A4 Animation = ABPrison_A4.ABPrison_A4 AnimationMode = ONCE_BACKWARDS AnimationSpeedFactorRange = 2.0 2.0 ; play teardown animations more quickly Flags = START_FRAME_LAST End TransitionState = UP_NIGHT DOWN_DEFAULT Model = ABPrison_A4N Animation = ABPrison_A4N.ABPrison_A4N AnimationMode = ONCE_BACKWARDS AnimationSpeedFactorRange = 2.0 2.0 ; play teardown animations more quickly Flags = START_FRAME_LAST End TransitionState = UP_SNOW DOWN_DEFAULT Model = ABPrison_A4S Animation = ABPrison_A4S.ABPrison_A4S AnimationMode = ONCE_BACKWARDS AnimationSpeedFactorRange = 2.0 2.0 ; play teardown animations more quickly Flags = START_FRAME_LAST End TransitionState = UP_SNOWNIGHT DOWN_DEFAULT Model = ABPrison_A4SN Animation = ABPrison_A4SN.ABPrison_A4SN AnimationMode = ONCE_BACKWARDS AnimationSpeedFactorRange = 2.0 2.0 ; play teardown animations more quickly Flags = START_FRAME_LAST End End ; ------------ under-construction scaffolding ----------------- Draw = W3DModelDraw ModuleTag_03 AnimationsRequirePower = No MinLODRequired = MEDIUM DefaultConditionState Model = None TransitionKey = DOWN_DEFAULT End ConditionState = NIGHT Model = None TransitionKey = DOWN_DEFAULT End ConditionState = SNOW Model = None TransitionKey = DOWN_DEFAULT End ConditionState = SNOW NIGHT Model = None TransitionKey = DOWN_DEFAULT End ConditionState = PARTIALLY_CONSTRUCTED Model = ABPrison_A6 Animation = ABPrison_A6.ABPrison_A6 AnimationMode = MANUAL Flags = START_FRAME_LAST TransitionKey = UP_DAY ParticleSysBone = Sparks01 BuildUpBlueSpark ParticleSysBone = Sparks02 BuildUpBlueSpark ParticleSysBone = Sparks03 BuildUpBlueSpark ParticleSysBone = Sparks04 BuildUpBlueSpark ParticleSysBone = Sparks05 BuildUpBlueSpark ParticleSysBone = Sparks06 BuildUpBlueSpark End ConditionState = NIGHT PARTIALLY_CONSTRUCTED Model = ABPrison_A6N Animation = ABPrison_A6N.ABPrison_A6N AnimationMode = MANUAL Flags = START_FRAME_LAST TransitionKey = UP_NIGHT ParticleSysBone = Sparks01 BuildUpBlueSpark ParticleSysBone = Sparks02 BuildUpBlueSpark ParticleSysBone = Sparks03 BuildUpBlueSpark ParticleSysBone = Sparks04 BuildUpBlueSpark ParticleSysBone = Sparks05 BuildUpBlueSpark ParticleSysBone = Sparks06 BuildUpBlueSpark End ConditionState = SNOW PARTIALLY_CONSTRUCTED Model = ABPrison_A6S Animation = ABPrison_A6S.ABPrison_A6S AnimationMode = MANUAL Flags = START_FRAME_LAST TransitionKey = UP_SNOW ParticleSysBone = Sparks01 BuildUpBlueSpark ParticleSysBone = Sparks02 BuildUpBlueSpark ParticleSysBone = Sparks03 BuildUpBlueSpark ParticleSysBone = Sparks04 BuildUpBlueSpark ParticleSysBone = Sparks05 BuildUpBlueSpark ParticleSysBone = Sparks06 BuildUpBlueSpark End ConditionState = SNOW NIGHT PARTIALLY_CONSTRUCTED Model = ABPrison_A6SN Animation = ABPrison_A6SN.ABPrison_A6SN AnimationMode = MANUAL Flags = START_FRAME_LAST TransitionKey = UP_SNOWNIGHT ParticleSysBone = Sparks01 BuildUpBlueSpark ParticleSysBone = Sparks02 BuildUpBlueSpark ParticleSysBone = Sparks03 BuildUpBlueSpark ParticleSysBone = Sparks04 BuildUpBlueSpark ParticleSysBone = Sparks05 BuildUpBlueSpark ParticleSysBone = Sparks06 BuildUpBlueSpark End TransitionState = DOWN_DEFAULT UP_DAY Model = ABPrison_A6 Animation = ABPrison_A6.ABPrison_A6 AnimationMode = ONCE AnimationSpeedFactorRange = 1.0 1.0 Flags = START_FRAME_FIRST End TransitionState = DOWN_DEFAULT UP_NIGHT Model = ABPrison_A6N Animation = ABPrison_A6N.ABPrison_A6N AnimationMode = ONCE AnimationSpeedFactorRange = 1.0 1.0 Flags = START_FRAME_FIRST End TransitionState = DOWN_DEFAULT UP_SNOW Model = ABPrison_A6S Animation = ABPrison_A6S.ABPrison_A6S AnimationMode = ONCE AnimationSpeedFactorRange = 1.0 1.0 Flags = START_FRAME_FIRST End TransitionState = DOWN_DEFAULT UP_SNOWNIGHT Model = ABPrison_A6SN Animation = ABPrison_A6SN.ABPrison_A6SN AnimationMode = ONCE AnimationSpeedFactorRange = 1.0 1.0 Flags = START_FRAME_FIRST End TransitionState = UP_DAY DOWN_DEFAULT Model = ABPrison_A6 Animation = ABPrison_A6.ABPrison_A6 AnimationMode = ONCE_BACKWARDS AnimationSpeedFactorRange = 2.0 2.0 ; play teardown animations more quickly Flags = START_FRAME_LAST End TransitionState = UP_NIGHT DOWN_DEFAULT Model = ABPrison_A6N Animation = ABPrison_A6N.ABPrison_A6N AnimationMode = ONCE_BACKWARDS AnimationSpeedFactorRange = 2.0 2.0 ; play teardown animations more quickly Flags = START_FRAME_LAST End TransitionState = UP_SNOW DOWN_DEFAULT Model = ABPrison_A6S Animation = ABPrison_A6S.ABPrison_A6S AnimationMode = ONCE_BACKWARDS AnimationSpeedFactorRange = 2.0 2.0 ; play teardown animations more quickly Flags = START_FRAME_LAST End TransitionState = UP_SNOWNIGHT DOWN_DEFAULT Model = ABPrison_A6SN Animation = ABPrison_A6SN.ABPrison_A6SN AnimationMode = ONCE_BACKWARDS AnimationSpeedFactorRange = 2.0 2.0 ; play teardown animations more quickly Flags = START_FRAME_LAST End End ; ------------ being-constructed crane ----------------- Draw = W3DModelDraw ModuleTag_04 AnimationsRequirePower = No DefaultConditionState Model = None TransitionKey = DOWN_DEFAULT End ConditionState = NIGHT Model = None TransitionKey = DOWN_DEFAULT End ConditionState = SNOW Model = None TransitionKey = DOWN_DEFAULT End ConditionState = SNOW NIGHT Model = None TransitionKey = DOWN_DEFAULT End ConditionState = SOLD Model = NONE End ConditionState = ACTIVELY_BEING_CONSTRUCTED Model = ABPrison_A5 Animation = ABPrison_A5.ABPrison_A5 AnimationMode = LOOP TransitionKey = UP_DAY End ConditionState = NIGHT ACTIVELY_BEING_CONSTRUCTED Model = ABPrison_A5N Animation = ABPrison_A5N.ABPrison_A5N AnimationMode = LOOP TransitionKey = UP_NIGHT End ConditionState = SNOW ACTIVELY_BEING_CONSTRUCTED Model = ABPrison_A5S Animation = ABPrison_A5S.ABPrison_A5S AnimationMode = LOOP TransitionKey = UP_SNOW End ConditionState = SNOW NIGHT ACTIVELY_BEING_CONSTRUCTED Model = ABPrison_A5SN Animation = ABPrison_A5SN.ABPrison_A5SN AnimationMode = LOOP TransitionKey = UP_SNOWNIGHT End TransitionState = DOWN_DEFAULT UP_DAY Model = ABPrison_AB Animation = ABPrison_AB.ABPrison_AB AnimationMode = ONCE AnimationSpeedFactorRange = 1.0 1.0 Flags = START_FRAME_FIRST End TransitionState = DOWN_DEFAULT UP_NIGHT Model = ABPrison_ABN Animation = ABPrison_ABN.ABPrison_ABN AnimationMode = ONCE AnimationSpeedFactorRange = 1.0 1.0 Flags = START_FRAME_FIRST End TransitionState = DOWN_DEFAULT UP_SNOW Model = ABPrison_ABS Animation = ABPrison_ABS.ABPrison_ABS AnimationMode = ONCE AnimationSpeedFactorRange = 1.0 1.0 Flags = START_FRAME_FIRST End TransitionState = DOWN_DEFAULT UP_SNOWNIGHT Model = ABPrison_ABSN Animation = ABPrison_ABSN.ABPrison_ABSN AnimationMode = ONCE AnimationSpeedFactorRange = 1.0 1.0 Flags = START_FRAME_FIRST End TransitionState = UP_DAY DOWN_DEFAULT Model = ABPrison_AB Animation = ABPrison_AB.ABPrison_AB AnimationMode = ONCE_BACKWARDS AnimationSpeedFactorRange = 2.0 2.0 ; play teardown animations more quickly Flags = START_FRAME_LAST End TransitionState = UP_NIGHT DOWN_DEFAULT Model = ABPrison_ABN Animation = ABPrison_ABN.ABPrison_ABN AnimationMode = ONCE_BACKWARDS AnimationSpeedFactorRange = 2.0 2.0 ; play teardown animations more quickly Flags = START_FRAME_LAST End TransitionState = UP_SNOW DOWN_DEFAULT Model = ABPrison_ABS Animation = ABPrison_ABS.ABPrison_ABS AnimationMode = ONCE_BACKWARDS AnimationSpeedFactorRange = 2.0 2.0 ; play teardown animations more quickly Flags = START_FRAME_LAST End TransitionState = UP_SNOWNIGHT DOWN_DEFAULT Model = ABPrison_ABSN Animation = ABPrison_ABSN.ABPrison_ABSN AnimationMode = ONCE_BACKWARDS AnimationSpeedFactorRange = 2.0 2.0 ; play teardown animations more quickly Flags = START_FRAME_LAST End End PlacementViewAngle = -45 ; ***DESIGN parameters *** DisplayName = OBJECT:DetentionCamp Side = America EditorSorting = STRUCTURE Prerequisites Object = AmericaPowerPlant End BuildCost = 1000 BuildTime = 30.0 ; in seconds EnergyProduction = 0 VisionRange = 200.0 ; Shroud clearing distance ShroudClearingRange = 200 ArmorSet Conditions = None Armor = StructureArmor DamageFX = StructureDamageFXNoShake End CommandSet = AmericaDetentionCampCommandSet ExperienceValue = 100 100 100 100 ; Experience point value at each level ; *** AUDIO Parameters *** VoiceSelect = DetentionCampSelect SoundOnDamaged = BuildingDamagedStateLight SoundOnReallyDamaged = BuildingDestroy UnitSpecificSounds UnderConstruction = UnderConstructionLoop End ; *** ENGINEERING Parameters *** RadarPriority = STRUCTURE KindOf = PRELOAD STRUCTURE SELECTABLE IMMOBILE SCORE CAPTURABLE FS_TECHNOLOGY MP_COUNT_FOR_VICTORY Body = StructureBody ModuleTag_05 MaxHealth = 2000.0 InitialHealth = 2000.0 End Behavior = BaseRegenerateUpdate ModuleTag_08 ;<NO DATA> End Behavior = DestroyDie ModuleTag_10 ;<NO DATA> End Behavior = CreateObjectDie ModuleTag_12 CreationList = OCL_ABPowerPlantExplode End Behavior = CreateObjectDie ModuleTag_13 CreationList = OCL_AmericanRangerDebris08 ExemptStatus = UNDER_CONSTRUCTION End Behavior = FXListDie ModuleTag_14 DeathFX = FX_StructureMediumDeath End Behavior = SpyVisionSpecialPower ModuleTag_15 SpecialPowerTemplate = SuperweaponCIAIntelligence BaseDuration = 30000 ;in milliseconds BonusDurationPerCaptured = 10000 ;in milliseconds MaxDuration = 240000 ;in milliseconds End Behavior = SpyVisionUpdate ModuleTag_16 ;<NO DATA> End Behavior = FlammableUpdate ModuleTag_18 AflameDuration = 5000 ; If I catch fire, I'll burn for this long... AflameDamageAmount = 5 ; taking this much damage... AflameDamageDelay = 500 ; this often. End Behavior = TransitionDamageFX ModuleTag_19 ;-------------DESIGNED FOR MEDIUM SIZED FACTION BUILDING TRANSITIONS------------------- DamagedParticleSystem1 = Bone:None RandomBone:No PSys:StructureTransitionMediumSmoke ;--------------------------------------------------------------------------------------- ReallyDamagedParticleSystem1 = Bone:None RandomBone:No PSys:StructureTransitionMediumSmoke ReallyDamagedParticleSystem2 = Bone:None RandomBone:No PSys:StructureTransitionMediumExplosion ReallyDamagedParticleSystem3 = Bone:None RandomBone:No PSys:StructureTransitionMediumShockwave End Geometry = BOX GeometryMajorRadius = 49.0 GeometryMinorRadius = 63.0 GeometryHeight = 35.0 GeometryIsSmall = No Shadow = SHADOW_VOLUME BuildCompletion = PLACED_BY_PLAYER End COMMANDSET CODE: CommandSet AmericaDetentionCampCommandSet 1 = Command_Upgrade_AmericaExo 2 = Command_UpgradeAmericaDroneArmor 3 = Command_UpgradeAmericaSupplyLines 4 = Command_UpgradeAmericaSentryDroneGun 14 = Command_Sell End Thanks for help and sorry for eventual errors. Zululu. Edited December 29, 2015 by Zululu Share this post Link to post
Lauren 77 Posted January 24, 2016 You actually didn't need to copy the special power as the upgrade needed is set in the SpecialAbility behavior with the line "StartsPaused = Yes" removing that would have had the intentioned effect (and removing the UnpauseSpecialPowerUpgrade behavior as it isn't needed anymore) Share this post Link to post