 |
Forum Info
|
 |
Forum Members: 18,644
Total Threads: 8,746
Posts: 95,530
Administrators:
DeeZire, Redemption
There are currently 25 users online.
|
 |
Partner Links
|
 |
 |
Advertisements
|
 |
|
| Generals & Zero Hour Editing Discuss any modding related issues to do with Generals and Zero Hour here. |
01-06-2006, 01:38 AM
|
#1 (permalink)
|
|
Senior Member
Join Date: Apr 2003
Location: Derby, UK / Den Haag, NL
Posts: 590
|
Special Power - small mistake?
Hi all. I've been playing with a simple special power that fires from the USA airfield - an airstrike of sorts as you'll see from what's posted below. However it won't fire - the Invalid cursor displays permanently, so there's a small error here somewhere. If anyone can spot it, I'd appreciate it, I've been playing for a little while now. (I'm so blind to these things, lol).
thanks,
AmberZ
Command Button
Code:
CommandButton Command_RaptorStrike
Command = SPECIAL_POWER
SpecialPower = SuperweaponRaptorStrike
Options = NEED_TARGET_POS CONTEXTMODE_COMMAND
TextLabel = CONTROLBAR:RaptorStrike
ButtonImage = SNFirestorm
ButtonBorderType = ACTION ; Identifier for the User as to what kind of button this is
DescriptLabel = CONTROLBAR:TempDescription
RadiusCursorType = NAPALMSTRIKE
InvalidCursorName = GenericInvalid
End
Command Set
Code:
CommandSet AmericaAirfieldCommandSet
1 = Command_ConstructAmericaJetRaptor
2 = Command_ConstructAmericaVehicleComanche
3 = Command_ConstructAmericaJetAurora
4 = Command_ConstructAmericaJetStealthFighter
5 = Command_RaptorStrike
; 6 = Command_RaptorStrike
7 = Command_UpgradeComancheRocketPods
8 = Command_UpgradeAmericaLaserMissiles
11 = Command_SetRallyPoint
12 = Command_Sell
End
|
|
|
01-06-2006, 01:38 AM
|
#2 (permalink)
|
|
Senior Member
Join Date: Apr 2003
Location: Derby, UK / Den Haag, NL
Posts: 590
|
OCL
Code:
ObjectCreationList SUPERWEAPONRaptorStrike
DeliverPayload
Transport = AmericaJetRaptorStriker
FormationSize = 5
FormationSpacing = 30
StartAtPreferredHeight = Yes
StartAtMaxSpeed = Yes
MaxAttempts = 1
DropOffset = X:0 Y:0 Z:-10
DropDelay = 500
Payload = RaptorJetMissileWeapon 6
FireWeapon = Yes
DeliveryDistance = 450
WeaponConvergenceFactor = 0.5
DeliveryDecalRadius = 50
DeliveryDecal
Texture = SCCNapalmStrike_China
Style = SHADOW_ALPHA_DECAL
OpacityMin = 25%
OpacityMax = 50%
OpacityThrobTime = 500
Color = R:156 G:0 B:255 A:255
OnlyVisibleToOwningPlayer = No
End
End
End
Special Power
Code:
SpecialPower SuperweaponRaptorStrike
Enum = SPECIAL_NAPALM_STRIKE
ReloadTime = 300000 ; in milliseconds
PublicTimer = No
SharedSyncedTimer = Yes
ViewObjectDuration = 30000
ViewObjectRange = 250
RadiusCursorRadius = 50
End
Air Field Entry
Code:
Behavior = OCLSpecialPower ModuleTag_16
SpecialPowerTemplate = SuperweaponRaptorStrike
OCL = SUPERWEAPONRaptorStrike
End
Faction Unit
Code:
Object AmericaJetRaptorStriker
; *** ART Parameters ***
SelectPortrait = SACRaptor_L
ButtonImage = SACRaptor
UpgradeCameo1 = Upgrade_AmericaLaserMissiles
UpgradeCameo2 = Upgrade_AmericaAdvancedTraining
;UpgradeCameo3 = NONE
;UpgradeCameo4 = NONE
;UpgradeCameo5 = NONE
Draw = W3DModelDraw ModuleTag_01
DefaultConditionState
Model = AVRaptor
HideSubObject = BurnerFX01 BurnerFX02
WeaponLaunchBone = PRIMARY WeaponA
End
ConditionState = JETEXHAUST
; exhaust
ParticleSysBone = Wingtip01 JetContrail
ParticleSysBone = Wingtip02 JetContrail
End
ConditionState = JETEXHAUST JETAFTERBURNER
; exhaust
ParticleSysBone = Wingtip01 JetContrail
ParticleSysBone = Wingtip02 JetContrail
; afterburner
ShowSubObject = BurnerFX01 BurnerFX02
ParticleSysBone = Engine01 JetLenzflare
ParticleSysBone = Engine02 JetLenzflare
End
ConditionState = REALLYDAMAGED
Model = AVRaptor_D
; damage
ParticleSysBone = Smoke01 JetSmoke
ParticleSysBone = Engine01 JetEngineDamagedSmoke
End
ConditionState = REALLYDAMAGED JETEXHAUST
Model = AVRaptor_D
; damage
ParticleSysBone = Smoke01 JetSmoke
ParticleSysBone = Engine01 JetEngineDamagedSmoke
; exhaust
ParticleSysBone = Wingtip01 JetContrail
ParticleSysBone = Wingtip02 JetContrail
End
ConditionState = REALLYDAMAGED JETEXHAUST JETAFTERBURNER
Model = AVRaptor_D
; damage
ParticleSysBone = Smoke01 JetSmoke
ParticleSysBone = Engine01 JetEngineDamagedSmoke
; afterburner
ShowSubObject = BurnerFX01 BurnerFX02
ParticleSysBone = Engine01 JetLenzflare
ParticleSysBone = Engine02 JetLenzflare
; exhaust
ParticleSysBone = Wingtip01 JetContrail
ParticleSysBone = Wingtip02 JetContrail
End
ConditionState = RUBBLE
Model = AVRaptor_D1B
HideSubObject = None
ShowSubObject = None
End
ConditionState = RUBBLE JETEXHAUST JETAFTERBURNER
Model = AVRaptor_D1B
;HideSubObject is needed cause there're inherited from default condition state
HideSubObject = None
ShowSubObject = None
ParticleSysBone = Engine01 JetExhaust
ParticleSysBone = Engine02 JetExhaust
; exhaust
ParticleSysBone = Wingtip01 JetContrail
ParticleSysBone = Wingtip02 JetContrail
End
OkToChangeModelColor = Yes
End
; ***DESIGN parameters ***
DisplayName = OBJECT:Raptor
EditorSorting = VEHICLE
Side = America
TransportSlotCount = 0 ;how many "slots" we take in a transport (0 == not transportable)
VisionRange = 180.0
ShroudClearingRange = 400
Prerequisites
Object = AmericaAirfield
End
WeaponSet
Conditions = None
Weapon = PRIMARY RaptorJetMissileWeapon
End
WeaponSet
Conditions = PLAYER_UPGRADE
Weapon = PRIMARY RaptorJetLaserGuidedMissileWeapon
End
ArmorSet
Conditions = None
Armor = AirplaneArmor
DamageFX = None
End
BuildCost = 200
BuildTime = 10
ExperienceValue = 50 50 100 150 ;Experience point value at each level
ExperienceRequired = 0 100 200 400 ;Experience points needed to gain each level
IsTrainable = Yes ;Can gain experience
CrusherLevel = 1 ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles
CrushableLevel = 2 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles
CommandSet = AmericaJetRaptorCommandSet
; *** AUDIO Parameters ***
VoiceSelect = RaptorVoiceSelect
VoiceMove = RaptorVoiceMove
VoiceAttack = RaptorVoiceAttack
VoiceAttackAir = RaptorVoiceAttackAir
VoiceGuard = RaptorVoiceAirPatrol
SoundDie = RaptorVoiceFalling
SoundAmbient = RaptorAmbientLoop
SoundAmbientRubble = NoSound
; For now, it is better to have some sound than no sound cause there is a bug in
; what triggers the sound move loop sound, and the multiplayer test is only days away
; SoundMoveLoop = RaptorAmbientLoop ; don't want sound while sitting at airfield
; SoundAmbient = NoSound
UnitSpecificSounds
VoiceCreate = RaptorVoiceCreate
SoundEject = PilotSoundEject
VoiceEject = PilotVoiceEject
Afterburner = RaptorAfterburner
VoiceLowFuel = RaptorVoiceLowFuel
VoiceGarrison = RaptorVoiceMove
End
; *** ENGINEERING Parameters ***
RadarPriority = UNIT
KindOf = PRELOAD CAN_CAST_REFLECTIONS CAN_ATTACK SELECTABLE VEHICLE SCORE AIRCRAFT
Body = ActiveBody ModuleTag_02
MaxHealth = 160.0
InitialHealth = 160.0
End
Behavior = WeaponSetUpgrade ModuleTag_03
TriggeredBy = Upgrade_AmericaLaserMissiles
End
Behavior = ExperienceScalarUpgrade ModuleTag_04
TriggeredBy = Upgrade_AmericaAdvancedTraining
AddXPScalar = 1.0 ;Increases experience gained by an additional 100%
End
Behavior = JetSlowDeathBehavior ModuleTag_05
FXOnGroundDeath = FX_JetOnGroundDeath
OCLOnGroundDeath = OCL_RaptorDeathFinalBlowUp
DestructionDelay = 99999999; destruction will happen when we
RollRate = 0.2
RollRateDelta = 100% ;each frame, rollrate = rollrate * rollrateDelta
PitchRate = 0.0
FallHowFast = 110.0% ;Bigger is faster (can be over 100%,it's a fraction of gravity)
FXInitialDeath = FX_JetDeathInitial
OCLInitialDeath = OCL_RaptorDeathInitial
DelaySecondaryFromInitialDeath = 500 ; in milliseconds
FXSecondary = FX_JetDeathSecondary
OCLSecondary = OCL_RaptorDeathSecondary
FXHitGround = FX_JetDeathHitGround
OCLHitGround = OCL_RaptorDeathHitGround
DelayFinalBlowUpFromHitGround = 200 ; in milliseconds
FXFinalBlowUp = FX_JetDeathFinalBlowUp
OCLFinalBlowUp = OCL_RaptorDeathFinalBlowUp
; DeathLoopSound = MICAL NEEDS TO MAKE ME
End
Behavior = PhysicsBehavior ModuleTag_07
Mass = 500.0
End
Behavior = TransitionDamageFX ModuleTag_08
ReallyDamagedParticleSystem1 = Bone:Smoke RandomBone:Yes Psys:SmokeSmallContinuous01
ReallyDamagedFXList1 = Loc: X:0 Y:0 Z:0 FXList:FX_MIGDamageTransition
End
Behavior = JetAIUpdate ModuleTag_09
OutOfAmmoDamagePerSecond = 10% ; amount of damage to take per SEC (not per frame) when out of ammo
; note that it's expressed as a percent of max health, not an absolute
TakeoffSpeedForMaxLift = 100% ; smaller numbers give more lift sooner when taking off
TakeoffPause = 500
MinHeight = 5
ParkingOffset = 3 ; scooch it a little forward so the tail doesn't hit the doors
ReturnToBaseIdleTime = 10000 ; if idle for this long, return to base, even if not out of ammo
End
Locomotor = SET_NORMAL RaptorJetLocomotor
Locomotor = SET_TAXIING BasicJetTaxiLocomotor
Behavior = FlammableUpdate ModuleTag_21
AflameDuration = 5000 ; If I catch fire, I'll burn for this long...
AflameDamageAmount = 3 ; taking this much damage...
AflameDamageDelay = 500 ; this often.
End
Behavior = SpecialPowerCompletionDie ModuleTag_03
SpecialPowerTemplate = SuperweaponRaptorStrike
End
Geometry = Box
GeometryIsSmall = Yes
GeometryMajorRadius = 14.0
GeometryMinorRadius = 7.0
GeometryHeight = 5.0
Shadow = SHADOW_VOLUME
ShadowSizeX = 89 ; minimum elevation angle above horizon. Used to limit shadow length.
End
|
|
|
01-06-2006, 08:45 AM
|
#3 (permalink)
|
|
Senior Member
Join Date: Jun 2003
Location: Germany
Posts: 363
|
were shall the raptor strike be launched from? from off-map or from the airfiled itself?
|
|
|
01-06-2006, 10:49 AM
|
#4 (permalink)
|
|
Senior Member
Join Date: Apr 2003
Location: Derby, UK / Den Haag, NL
Posts: 590
|
Off map - have I missed a line somewhere to explicity state that? I wasn't aware it was necessary 0_o
|
|
|
01-06-2006, 01:19 PM
|
#5 (permalink)
|
|
Senior Member
Join Date: Jun 2003
Location: Germany
Posts: 363
|
yes, I think you need the DeliverPayloadAIUpdate and TransportContain modules like the ChinaJetMIGNapalmStriker has for your raptor jet. Copy them at best and replace your JetAIUpdate with the other one.
Code:
Behavior = DeliverPayloadAIUpdate ModuleTag_AIUpdate
DoorDelay = 0
End
Behavior = TransportContain ModuleTag_TransportContain
Slots = 100 ; hey, it's a BIG transport
ScatterNearbyOnExit = No
OrientLikeContainerOnExit = Yes
KeepContainerVelocityOnExit = Yes
ExitPitchRate = 30
ExitBone = WeaponA
AllowInsideKindOf = PROJECTILE
DoorOpenTime = 0 ; this prevents the Contain module from messing with the doors, since we want DeliverPayload to handle 'em
NumberOfExitPaths = 0
DestroyRidersWhoAreNotFreeToExit = Yes ; 'destroy' as opposed to 'kill'
End
|
|
|
01-06-2006, 02:31 PM
|
#6 (permalink)
|
|
Senior Member
Join Date: Apr 2003
Location: Derby, UK / Den Haag, NL
Posts: 590
|
Thanks, I'll give it a go 
|
|
|
01-08-2006, 09:32 AM
|
#7 (permalink)
|
|
Senior Member
Join Date: Apr 2003
Location: Derby, UK / Den Haag, NL
Posts: 590
|
Damn, still no luck. The power is still unable to fire.
|
|
|
01-08-2006, 10:00 AM
|
#8 (permalink)
|
|
Senior Member
Join Date: Jun 2003
Location: Germany
Posts: 363
|
hm try to overwrite the "Options" tag in the SpecialPower.ini with this:
Options = NEED_SPECIAL_POWER_SCIENCE NEED_TARGET_POS CONTEXTMODE_COMMAND
I guess, you need NEED_SPECIAL_POWER_SCIENCE although you have not triggered any science with the ability.
|
|
|
01-08-2006, 11:34 AM
|
#9 (permalink)
|
|
Senior Member
Join Date: Apr 2003
Location: Derby, UK / Den Haag, NL
Posts: 590
|
Hmm, tried that too, no avail. I'm stumped on this one. I also tried seeng if I'd maxed out my units, OCLs or special powers, but it doesn't seem so.
|
|
|
01-08-2006, 03:36 PM
|
#10 (permalink)
|
|
Senior Member
Join Date: Oct 2004
Location: Alaska (Hell Frozen Over)
Posts: 375
|
I'm still thinking that you need to add CreateLocation=CREATE_AT_EDGE_NEAR_SOURCE to your OCLSpecialPower module in order to get the thing to work. I'm not sure about any default setting for OCLSpecialPower's CreateLocation tag, but I know that OCLUpdate calls the OCL at the parent object's location unless otherwise specified.
|
|
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
All times are GMT -4. The time now is 10:25 PM.
|