Edited by Nazgûl, 05 April 2007 - 05:23 PM.
Nazgûls "Special Extended Edition"
#501
Posted 05 April 2007 - 05:21 PM
// C}{riZ
"Do not come between the Nazgûl and his mod!"
----------------------------------------------------------------------------------------------------
>>>>>>>>>>>>>>>>>>>>>>> I S.E.E. YOU! <<<<<<<<<<<<<<<<<<<<<<<
----------------------------------------------------------------------------------------------------
#502
Posted 08 April 2007 - 03:28 AM
I've given some units crush. Some for only units, and some for bigger things like trees. I've done that for Shelob and FireDrakes for instance... and Ive tried to do it for trolls, and it worked too, but then I decided to remove it and only keep crushing on units for the trolls. Anyway... I want to have the "tree crush" for Giants though since they're so big now - but despite me doing things the same way, they refuse to knock down trees??? Any idea what I might need?
These are my codes for Giants...
CrushableLevel = 2 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles CrusherLevel = 2 ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles CrushWeapon = GiantCrush
Why won't it work?
// C}{riZ
"Do not come between the Nazgûl and his mod!"
----------------------------------------------------------------------------------------------------
>>>>>>>>>>>>>>>>>>>>>>> I S.E.E. YOU! <<<<<<<<<<<<<<<<<<<<<<<
----------------------------------------------------------------------------------------------------
#503
Posted 08 April 2007 - 03:57 PM
only one quwestion is this mod also for rotwk because i love it !!!1
#504
Posted 08 April 2007 - 05:03 PM
Axed Head and A.I. Coder for S.E.E. and ... stuff
".. coding is basically boring. What's fun is finding out how things work, take them apart and then put them together in ways that were not intended nor even conceived."
#505
Posted 08 April 2007 - 05:18 PM
Why? Cause I HATE that expansion
Increasing damage or something like that won't do it. Either they crush trees or not, they can't just "nudge" them unfortionately, hehe
This is normally determined by the "CrusherLevel" value, and with a weapon. Like this one...
Weapon GiantCrush LeechRangeWeapon = Yes AttackRange = 9999999.0 MeleeWeapon = No DelayBetweenShots = 0 ; time between shots, msec PreAttackDelay = 0;PreAttackDelay+FiringDuration = UseWeaponTiming = Yes duration PreAttackType = PER_SHOT FiringDuration = 0 FireFX = FX_GenericCrushImpactSound DamageNugget ; A basic Nugget that just does damage Damage = M_GIANT_CRUSH_DAMAGE ; A whole lot of damage. Radius = 0.0 DelayTime = 0 DamageType = CRUSH DeathType = CRUSHED End End
But nothing. They crush units fine - but not trees??? HELP? :s
// C}{riZ
"Do not come between the Nazgûl and his mod!"
----------------------------------------------------------------------------------------------------
>>>>>>>>>>>>>>>>>>>>>>> I S.E.E. YOU! <<<<<<<<<<<<<<<<<<<<<<<
----------------------------------------------------------------------------------------------------
#506
Posted 08 April 2007 - 09:30 PM
#507
Posted 09 April 2007 - 01:40 AM
[codebox]
;------------------------------------------------------------------------------;
Object WildMountainGiant
; *** ART Parameters ***
ButtonImage = BWFissure_Giant
SelectPortrait = UPWild_Giant
Draw = W3DScriptedModelDraw ModuleTag_01
WadingParticleSys = EntRipples
WadingParticleSys = EntSplash
OkToChangeModelColor = Yes
StaticModelLODMode = Yes ; Will append M or L to the skin name depending on GameLOD
ExtraPublicBone = B_HANDR
ExtraPublicBone = B_PASSENGER01
DefaultModelConditionState
Model = WUMntGnt_SKN
WeaponLaunchBone = PRIMARY ROCK
WeaponLaunchBone = SECONDARY ROCK
End
IdleAnimationState
StateName = Idle
AllowRepeatInRandomPick = Yes
Flags = RESTART_ANIM_WHEN_COMPLETE
Animation = stand
AnimationName = WUMntGnt_SKL.WUMntGnt_IDLB
AnimationMode = ONCE
AnimationPriority = 60
End
Animation = tugarmour
AnimationName = WUMntGnt_SKL.WUMntGnt_IDLD
AnimationMode = ONCE
AnimationPriority = 10
End
Animation = scratchbutt
AnimationName = WUMntGnt_SKL.WUMntGnt_IDLC
AnimationMode = ONCE
AnimationPriority = 5
End
Animation = bugstep
AnimationName = WUMntGnt_SKL.WUMntGnt_IDLE
AnimationMode = ONCE
AnimationPriority = 5
End
BeginScript
Prev = CurDrawablePrevAnimationState()
if Prev == "STATE_Selected"
then CurDrawableSetTransitionAnimState("TRANS_SelectedToBored")
elseif Prev == "STATE_Tied"
then CurDrawableSetTransitionAnimState("TRANS_SelectedFromTied")
end
EndScript
End
AnimationState = STUNNED_STANDING_UP WEAPONSET_TOGGLE_1
StateName = STATE_StandingUpWithRock
Animation
AnimationName = WUMntGnt_SKL.WUMntGnt_RGRBA
AnimationMode = ONCE
AnimationSpeedFactorRange = 1.67 1.67
End
LuaEvent = Frame:20 Data: show_rock
FXEvent = Frame:22 Name: FX_GiantRockGrab
FXEvent = Frame:38 Name: FX_GiantRockYank
BeginScript
Prev = CurDrawablePrevAnimationState()
if Prev ~= "STATE_StandingUpWithRock" and Prev ~= "TRANS_GetUpWithRock"
then CurDrawableSetTransitionAnimState("TRANS_GetUpWithRock") end
EndScript
End
AnimationState = STUNNED_STANDING_UP
Animation
AnimationName = WUMntGnt_SKL.WUMntGnt_GTPA
AnimationMode = ONCE
End
End
AnimationState = USER_4 ; This is a special for being tied up.
StateName = STATE_Tied
Animation
AnimationName = WUMntGnt_SKL.WUMntGnt_SPCA
AnimationMode = LOOP
End
; BeginScript
; CurDrawableHideSubObjectPermanently("ROCK")
; EndScript
End
AnimationState = STUNNED_FLAILING
Animation = StunFlail
AnimationName = WUMntGnt_SKL.WUMntGnt_FLYA
AnimationMode = LOOP
End
Flags = MAINTAIN_FRAME_ACROSS_STATES2
End
AnimationState = STUNNED
Animation
AnimationName = WUMntGnt_SKL.WUMntGnt_LNDA
AnimationMode = ONCE
End
End
AnimationState = DYING DEATH_3
Animation
AnimationName = WUMntGnt_SKL.WUMntGnt_IDLA
AnimationMode = LOOP
End
End
ModelConditionState = DYING SPLATTED DECAY DEATH_1
Model = WUMntGnt_DISA
RetainSubObjects = Yes
End
AnimationState = DYING SPLATTED DECAY DEATH_1
Animation
AnimationName = WUMntGnt_DISA.WUMntGnt_DISA
AnimationMode = ONCE
End
BeginScript
CurDrawableHideSubObjectPermanently("ROCK")
EndScript
End
AnimationState = DYING SPLATTED DEATH_1
Animation
AnimationName = WUMntGnt_SKL.WuMntGnt_LNDA
AnimationMode = ONCE
End
BeginScript
CurDrawableHideSubObjectPermanently("ROCK")
EndScript
End
ModelConditionState = DYING DECAY DEATH_1
Model = WUMntGnt_DISA
RetainSubObjects = Yes
End
AnimationState = DYING DECAY DEATH_1 WEAPONSET_TOGGLE_1
Animation = dead1
AnimationName = WUMntGnt_DISA.WUMntGnt_DISA
AnimationMode = ONCE
End
End
AnimationState = DYING DECAY DEATH_1
Animation = dead1
AnimationName = WUMntGnt_DISA.WUMntGnt_DISA
AnimationMode = ONCE
End
BeginScript
CurDrawableHideSubObjectPermanently("ROCK")
EndScript
End
AnimationState = DYING WEAPONSET_TOGGLE_1
Animation
AnimationName = WUMntGnt_SKL.WUMntGnt_RDIEA
AnimationMode = ONCE
End
End
AnimationState = DYING
Animation
AnimationName = WUMntGnt_SKL.WUMntGnt_DIEA
AnimationMode = ONCE
End
// DIEB falls forward and cannot be used until there is an equivalent RDIEB so that the DeathWeapon can match properly
//Animation
// AnimationName = WUMntGnt_SKL.WUMntGnt_DIEB
// AnimationMode = ONCE
//End
End
AnimationState = PARALYZED
Animation
AnimationName = WUMntGnt_SKL.WUMntGnt_IDLB
AnimationMode = LOOP
End
End
AnimationState = SPECIAL_WEAPON_ONE
FrameForPristineBonePositions = 64
Animation
AnimationName = WUMntGnt_SKL.WUMntGnt_UGRBB
AnimationMode = ONCE
End
End
AnimationState = SPECIAL_WEAPON_TWO
Animation
AnimationName = WUMntGnt_SKL.WUMntGnt_ATKF
AnimationMode = ONCE
End
End
AnimationState = RELOADING_A WEAPONSET_TOGGLE_1 ; Pull rock out of the ground.
Animation
AnimationName = WUMntGnt_SKL.WUMntGnt_RGRBA
AnimationMode = ONCE
End
FXEvent = Frame:22 Name: FX_GiantRockGrab
FXEvent = Frame:38 Name: FX_GiantRockYank
End
// Throw rock close range
AnimationState = FIRING_OR_PREATTACK_B WEAPONSET_TOGGLE_1
Animation
AnimationName = WUMntGnt_SKL.WUMntGnt_RTHRC
AnimationMode = ONCE
AnimationBlendTime = 10
End
FrameForPristineBonePositions = 37 ; Just as the rock leaves his hands.
End
// Throw rock
AnimationState = FIRING_OR_PREATTACK_A WEAPONSET_TOGGLE_1
Animation
AnimationName = WUMntGnt_SKL.WUMntGnt_RTHRA
AnimationMode = ONCE
AnimationBlendTime = 10
End
FrameForPristineBonePositions = 37 ; Just as the rock leaves his hands.
End
// ATKA - Left arm swat
AnimationState = FIRING_OR_PREATTACK_A
Animation
AnimationName = WUMntGnt_SKL.WUMntGnt_ATKA
AnimationMode = ONCE
UseWeaponTiming = Yes
AnimationBlendTime = 10
End
End
// ATKB - Right backhand
AnimationState = FIRING_OR_PREATTACK_B
Animation
AnimationName = WUMntGnt_SKL.WUMntGnt_ATKB
AnimationMode = ONCE
UseWeaponTiming = Yes
AnimationBlendTime = 10
End
End
// ATKD - Right football kick
AnimationState = FIRING_OR_PREATTACK_C
Animation
AnimationName = WUMntGnt_SKL.WUMntGnt_ATKD
AnimationMode = ONCE
UseWeaponTiming = Yes
AnimationBlendTime = 10
End
End
// ATKE - Left forward kick
AnimationState = FIRING_OR_PREATTACK_D ; The anti-structure weapon
Animation
AnimationName = WUMntGnt_SKL.WUMntGnt_ATKE
AnimationMode = ONCE
UseWeaponTiming = Yes
AnimationBlendTime = 10
End
End
// ATRA - Right backhand while moving
AnimationState = FIRING_OR_PREATTACK_E
Animation
AnimationName = WUMntGnt_SKL.WUMntGnt_ATRA
AnimationMode = ONCE
UseWeaponTiming = Yes
AnimationBlendTime = 10
End
FXEvent = Frame:3 FireWhenSkipped Name:FX_GiantRightFootStep
FXEvent = Frame:20 FireWhenSkipped Name:FX_GiantLeftFootStep
End
AnimationState = TURN_LEFT WEAPONSET_TOGGLE_1
Animation
AnimationName = WUMntGnt_SKL.WUMntGnt_RTRNL
AnimationMode = LOOP
AnimationBlendTime = 10 ;20
End
End
AnimationState = TURN_RIGHT WEAPONSET_TOGGLE_1
Animation
AnimationName = WUMntGnt_SKL.WUMntGnt_RTRNR
AnimationMode = LOOP
AnimationBlendTime = 10 ;20
End
End
AnimationState = MOVING WEAPONSET_TOGGLE_1
Animation
AnimationName = WUMntGnt_SKL.WUMntGnt_RWLKA
AnimationMode = LOOP
Distance = 175
End
FXEvent = Frame:21 FireWhenSkipped Name:FX_GiantLeftFootStep
FXEvent = Frame:43 FireWhenSkipped Name:FX_GiantRightFootStep
FXEvent = Frame:63 FireWhenSkipped Name:FX_GiantLeftFootStep
FXEvent = Frame:85 FireWhenSkipped Name:FX_GiantRightFootStep
FXEvent = Frame:103 FireWhenSkipped Name:FX_GiantLeftFootStep
FXEvent = Frame:127 FireWhenSkipped Name:FX_GiantRightFootStep
End
AnimationState = ENGAGED WEAPONSET_TOGGLE_1 ; 'Ready' pose with rock. This is to smooth out the reload/attacking anims.
Animation
AnimationName = WUMntGnt_SKL.WUMntGnt_RIDLA
AnimationMode = LOOP
AnimationBlendTime = 10
End
Flags = RANDOMSTART
End
AnimationState = ATTACKING WEAPONSET_TOGGLE_1 ; 'Ready' pose with rock. This is to smooth out the reload/attacking anims.
Animation
AnimationName = WUMntGnt_SKL.WUMntGnt_RIDLA
AnimationMode = LOOP
AnimationBlendTime = 10
End
Flags = RANDOMSTART
End
;AnimationState = MOVING ATTACKING
; Animation
; AnimationName = WUMntGnt_SKL.WUMntGnt_RUNA
; AnimationMode = LOOP
; UseWeaponTiming = Yes
; End
;End
AnimationState = TURN_LEFT
Animation
AnimationName = WUMntGnt_SKL.WUMntGnt_TRNL
AnimationMode = LOOP
AnimationBlendTime = 10
End
End
AnimationState = TURN_RIGHT
Animation
AnimationName = WUMntGnt_SKL.WUMntGnt_TRNR
AnimationMode = LOOP
AnimationBlendTime = 10
End
End
AnimationState = MOVING PANICKING
Animation
AnimationName = WUMntGnt_SKL.WUMntGnt_MFDA
AnimationMode = LOOP
AnimationSpeedFactorRange = 0.55 0.55 ; Feet slide a lot, so slow the anim down.
End
Flags = RANDOMSTART
End
AnimationState = MOVING
Animation
AnimationName = WUMntGnt_SKL.WUMntGnt_WLKA
AnimationMode = LOOP
AnimationBlendTime = 10
Distance = 175
End
Flags = RANDOMSTART
FXEvent = Frame:21 FireWhenSkipped Name:FX_GiantLeftFootStep
FXEvent = Frame:43 FireWhenSkipped Name:FX_GiantRightFootStep
FXEvent = Frame:63 FireWhenSkipped Name:FX_GiantLeftFootStep
FXEvent = Frame:85 FireWhenSkipped Name:FX_GiantRightFootStep
FXEvent = Frame:103 FireWhenSkipped Name:FX_GiantLeftFootStep
FXEvent = Frame:127 FireWhenSkipped Name:FX_GiantRightFootStep
End
AnimationState = SWAPPING_TO_WEAPONSET_1 ; This is required so we get a nice pose to blend from when reloading the rock.
Animation ; must be before SELECTED
AnimationName = WUMntGnt_SKL.WUMntGnt_ATNB
End
End
;;------------------ Selected with Rock
AnimationState = SELECTED WEAPONSET_TOGGLE_1
StateName = STATE_SelectedRock
Animation
AnimationName = WUMntGnt_SKL.WUMntGnt_RATNB
AnimationMode = LOOP
End
Flags = RANDOMSTART
BeginScript
Prev = CurDrawablePrevAnimationState()
if Prev ~= "STATE_SelectedRock" and Prev ~= "TRANS_IdleToSelectedRock"
then CurDrawableSetTransitionAnimState("TRANS_IdleToSelectedRock") end
EndScript
End
;;------------------ Idle with Rock
AnimationState = WEAPONSET_TOGGLE_1
StateName = STATE_RockIdle
Animation
AnimationName = WUMntGnt_SKL.WUMntGnt_RIDLB
AnimationMode = LOOP
End
Flags = RANDOMSTART
BeginScript
Prev = CurDrawablePrevAnimationState()
if Prev == "STATE_Tied" then
CurDrawableSetTransitionAnimState("TRANS_SelectedFromTied")
elseif Prev ~= "STATE_RockIdle" and Prev ~= "TRANS_SelectedRockToIdle" then
CurDrawableSetTransitionAnimState("TRANS_SelectedRockToIdle")
end
EndScript
End
;;------------------ Attacking
AnimationState = ATTACKING ; Between attacks we need to go to this idle since it's the base for the attack animations (needs to be before SELECTED)
Animation
AnimationName = WUMntGnt_SKL.WUMntGnt_IDLA
AnimationMode = LOOP
AnimationBlendTime = 10
End
End
;;------------------ Selected
AnimationState = SELECTED
StateName = STATE_Selected
Animation
AnimationName = WUMntGnt_SKL.WUMntGnt_ATNB
End
BeginScript
Prev = CurDrawablePrevAnimationState()
if Prev == "Idle" then CurDrawableSetTransitionAnimState("TRANS_IdleToSelected") end
EndScript
End
AnimationState = ENGAGED
Animation
AnimationName = WUMntGnt_SKL.WUMntGnt_IDLB
AnimationMode = LOOP
End
End
;;------------------ Hit Reaction
AnimationState = HIT_REACTION
Animation
AnimationName = WUMntGnt_SKL.WUMntGnt_HITA
AnimationMode = ONCE
End
End
;;------------------ Emotions
// Emotions must be beneath WEAPONSET_TOGGLE_1 default idle because there are no
// emotions-with-rock animations
AnimationState = EMOTION_TAUNTING
Animation
AnimationName = WUMntGnt_SKL.WUMntGnt_TNTA
AnimationMode = LOOP
End
End
AnimationState = EMOTION_CELEBRATING
Animation
AnimationName = WUMntGnt_SKL.WUMntGnt_CHRA
AnimationMode = ONCE
End
End
;;------------------ Transitions
TransitionState = TRANS_GetUpWithRock
Animation
AnimationName = WUMntGnt_SKL.WUMntGnt_GTPA
AnimationMode = ONCE
AnimationSpeedFactorRange = 1.5 1.5
End
End
TransitionState = TRANS_IdleToSelectedRock
Animation
AnimationName = WUMntGnt_SKL.WUMntGnt_RATNA
AnimationMode = ONCE
End
End
TransitionState = TRANS_SelectedRockToIdle
Animation
AnimationName = WUMntGnt_SKL.WUMntGnt_RATNC
AnimationMode = ONCE
End
End
TransitionState = TRANS_IdleToSelected
Animation
AnimationName = WUMntGnt_SKL.WUMntGnt_ATNA
AnimationMode = ONCE
End
End
TransitionState = TRANS_SelectedToBored
Animation
AnimationName = WUMntGnt_SKL.WUMntGnt_ATNC
AnimationMode = ONCE
End
End
TransitionState = TRANS_SelectedFromTied
Animation
AnimationName = WUMntGnt_SKL.WUMntGnt_GTPB
AnimationMode = ONCE
End
ParticleSysBone = B_FOOTL GiantRopesBreak
ParticleSysBone = B_FOOTR GiantRopesBreak
ParticleSysBone = B_HANDL GiantRopesBreak
ParticleSysBone = B_HANDR GiantRopesBreak
ParticleSysBone = B_NECK01 GiantRopesBreak
ParticleSysBone = B_FOOTL GiantRopesDust
ParticleSysBone = B_FOOTR GiantRopesDust
ParticleSysBone = B_HANDL GiantRopesDust
ParticleSysBone = B_HANDR GiantRopesDust
ParticleSysBone = B_NECK01 GiantRopesDust
End
End ;Draw Module
;-----------------------------------------------------------------------------------------------------
Draw = W3DScriptedModelDraw ModuleTag_RopesDraw ; Special draw module just for the USER_4 tied up state.
DefaultModelConditionState
Model = None
End
ModelConditionState = USER_4
Model = WUMntGnt_Ropes
End
AnimationState = USER_4
Animation
AnimationName = WUMntGnt_Ropes.WUMntGnt_Ropes
AnimationMode = LOOP
End
End
End
Draw = W3DScriptedModelDraw DustEffects
DefaultModelConditionState
Model = None
End
IdleAnimationState
End
AnimationState = MOVING WADING
ParticleSysBone = None FootstepSlash
End
AnimationState = MOVING ACCELERATE
ParticleSysBone = None GenericSiegeTrailDust
End
AnimationState = MOVING ACCELERATE
ParticleSysBone = None GenericSiegeTrailDust
End
AnimationState = MOUNTED MOVING
End
End
#include "..\..\..\includes\StunDrawModuleLarge.inc"
;-----------------------------------------------------------------------------------------------------
; ***DESIGN parameters ***
Side = Wild
EditorSorting = UNIT
ThreatLevel = M_MOUNTAIN_GIANT_THREAT_LEVEL
ThreatBreakdown MordorCatapult_DetailedThreat
AIKindOf = SIEGEWEAPON
End
ThingClass = MEDIUM_MONSTER
ShockwaveResistance = M_SHOCKWAVE_RESISTANCE_STRONG
TransportSlotCount = M_TRANSPORTSLOTCOUNT_MONSTER
Scale = 1.2 //20% bigger for SEE!
WeaponSet
Conditions = None
DefaultWeaponChoiceCritera = SELECT_AT_RANDOM
ReadyStatusSharedWithinSet = Yes
Weapon = PRIMARY WildMountainGiantPunch1 // ATKA - Left arm swat
Weapon = SECONDARY WildMountainGiantPunch2 // ATKB - Right backhand
Weapon = TERTIARY WildMountainGiantPunch3 // ATKD - Right football kick
Weapon = QUATERNARY GiantBuildingTeardown // ATKE - Left forward kick
OnlyAgainst = QUATERNARY MONSTER STRUCTURE BLOCKING_GATE
Weapon = QUINARY WildMountainGiantMovingPunch // ATRA - Right backhand while moving
OnlyInCondition = QUINARY MOVING
End
WeaponSet
Conditions = WEAPONSET_TOGGLE_1
DefaultWeaponChoiceCritera = PREFER_LEAST_MOVEMENT
Weapon = PRIMARY GiantRockThrow
Weapon = SECONDARY GiantRockThrowCloseRange
End
ArmorSet
Conditions = None
Armor = MountainGiantArmor
DamageFX = EntDamageFX
End
VisionRange = M_WILD_MOUNTAIN_GIANT_VISION_RADIUS
ShroudClearingRange = M_WILD_MOUNTAIN_GIANT_SHROUD_RADIUS
VisionSide = 35%
VisionRear = 25%
MaxVisionBonusPercent = 300%
VisionBonusTestRadius = 200
VisionBonusPercentPerFoot = 2.0%
DisplayName = OBJECT:WildMountainGiant
CrushableLevel = 2 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles
CrusherLevel = 2 ;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles
CrushWeapon = GiantCrush
; MinCrushVelocityPercent = 30 ;// Has to be moving at at least 30% of full speed.
; CrushDecelerationPercent = 10
UseCrushAttack = No ; Don't attack using crush, just crush when you walk through.
CommandSet = WildMountainGiantCommandSet
CommandPoints = 80
RamPower = 20
RamZMult = 0.5
CrushKnockback = 30
CrushZFactor = 1.0
; *** AUDIO Parameters ***;
VoiceAttack = MountainGiantVoxAttack
VoiceAttackCharge = MountainGiantVoxAttack
VoiceAttackMachine = MountainGiantVoxAttack
VoiceAttackStructure = MountainGiantVoxAttack
VoiceCreated = EVA:GiantCreated
VoiceCreated = +SOUND:MountainGiantVoxCreated
VoiceFullyCreated = EVA:GiantCreated
VoiceFullyCreated = +SOUND:MountainGiantVoxCreated
VoiceGuard = MountainGiantVoxMove
VoiceMove = MountainGiantVoxMove
VoicePriority = 35
VoiceSelect = MountainGiantVoxSelectMS
VoiceSelectBattle = MountainGiantVoxSelectMS
SoundAmbient = MountainGiantVoxAmbientLoop
SoundImpact = ImpactHorse
UnitSpecificSounds
VoiceEnterUnitEvilMenTransportShip = MountainGiantVoxMove
VoiceEnterUnitMordorMumakil = MountainGiantVoxMove
VoiceEnterUnitSlaughterHouse = MountainGiantVoxMove
VoiceGarrison = MountainGiantVoxMove
VoiceInitiateCaptureBuilding = MountainGiantVoxMove
End
#include "..\..\..\includes\StandardUnitEvaEvents.inc"
;Behavior = LargeGroupAudioUpdate ModuleTag_LGAU ; Tie into LargeGroupAudio system
; Key = Ent Unit Infantry
; UnitWeight = 2 ; Ents count as 2 infantry when computing group size
;End
ClientBehavior = AnimationSoundClientBehavior ModuleTag_AnimAudioBehavior
MaxUpdateRangeCap = 800
AnimationSound = Sound:MountainGiantFootstep ExcludedMC:WADING Animation:WUMNTGNT_SKL.WUMNTGNT_ATKF Frames:40
AnimationSound = Sound:MountainGiantFootstep ExcludedMC:WADING Animation:WUMNTGNT_SKL.WUMNTGNT_ATRA Frames:22 43
AnimationSound = Sound:MountainGiantFootstep ExcludedMC:WADING Animation:WUMNTGNT_SKL.WUMNTGNT_MFDA Frames:14 28 39 54 66 79 90 103
AnimationSound = Sound:MountainGiantFootstep ExcludedMC:WADING Animation:WUMNTGNT_SKL.WUMNTGNT_BMBA Frames:38
AnimationSound = Sound:MountainGiantFootstep ExcludedMC:WADING Animation:WUMNTGNT_SKL.WUMNTGNT_RTHRA Frames:42
AnimationSound = Sound:MountainGiantFootstep ExcludedMC:WADING Animation:WUMNTGNT_SKL.WUMNTGNT_RTRNL Frames:14 29
AnimationSound = Sound:MountainGiantFootstep ExcludedMC:WADING Animation:WUMNTGNT_SKL.WUMNTGNT_RTRNR Frames:14 29
AnimationSound = Sound:MountainGiantFootstep ExcludedMC:WADING Animation:WUMntGnt_SKL.WUMntGnt_RUNA Frames:15 30 45 61
AnimationSound = Sound:MountainGiantFootstep ExcludedMC:WADING Animation:WUMNTGNT_SKL.WUMNTGNT_RWLKA Frames:20 42 65 87 108 129
AnimationSound = Sound:MountainGiantFootstep ExcludedMC:WADING Animation:WUMNTGNT_SKL.WUMNTGNT_TRNL Frames:14 29
AnimationSound = Sound:MountainGiantFootstep ExcludedMC:WADING Animation:WUMNTGNT_SKL.WUMNTGNT_TRNR Frames:14 29
AnimationSound = Sound:MountainGiantFootstep ExcludedMC:WADING Animation:WUMNTGNT_SKL.WUMNTGNT_WLKA Frames:20 42 65 87 108 129
AnimationSound = Sound:MountainGiantVoxCheer Animation:WUMntGnt_SKL.WUMntGnt_CHRA Frames:51
AnimationSound = Sound:MountainGiantVoxCheer Animation:WUMntGnt_SKL.WUMntGnt_TNTA Frames:25
AnimationSound = Sound:MountainGiantGenericChestBeatImpact Animation:WUMntGnt_SKL.WUMntGnt_TNTA Frames:44 59 73
AnimationSound = Sound:MountainGiantBodyfall Animation:WUMntGnt_SKL.WUMntGnt_DIEA Frames:104
AnimationSound = Sound:MountainGiantBodyfall Animation:WUMNTGNT_SKL.WUMNTGNT_DIEB Frames:89
AnimationSound = Sound:MountainGiantBodyfall Animation:WUMNTGNT_SKL.WUMNTGNT_LNDA Frames:6
AnimationSound = Sound:MountainGiantBodyfall Animation:WUMNTGNT_SKL.WUMNTGNT_RDIEA Frames:104
AnimationSound = Sound:MountainGiantBoulderImpacts Animation:WUMNTGNT_SKL.WUMNTGNT_RDIEA Frames:6
AnimationSound = Sound:MountainGiantBoulderImpacts Animation:WUMNTGNT_SKL.WUMNTGNT_RTHRB Frames:39
;----------- water footsteps below -------------
AnimationSound = Sound:GiantFootstepWater RequiredMC:WADING Animation:WUMNTGNT_SKL.WUMNTGNT_ATKF Frames:40
AnimationSound = Sound:GiantFootstepWater RequiredMC:WADING Animation:WUMNTGNT_SKL.WUMNTGNT_ATRA Frames:22 43
AnimationSound = Sound:GiantFootstepWater RequiredMC:WADING Animation:WUMNTGNT_SKL.WUMNTGNT_MFDA Frames:14 28 39 54 66 79 90 103
AnimationSound = Sound:GiantFootstepWater RequiredMC:WADING Animation:WUMNTGNT_SKL.WUMNTGNT_BMBA Frames:38
AnimationSound = Sound:GiantFootstepWater RequiredMC:WADING Animation:WUMNTGNT_SKL.WUMNTGNT_RTHRA Frames:42
AnimationSound = Sound:GiantFootstepWater RequiredMC:WADING Animation:WUMNTGNT_SKL.WUMNTGNT_RTRNL Frames:14 29
AnimationSound = Sound:GiantFootstepWater RequiredMC:WADING Animation:WUMNTGNT_SKL.WUMNTGNT_RTRNR Frames:14 29
AnimationSound = Sound:GiantFootstepWater RequiredMC:WADING Animation:WUMntGnt_SKL.WUMntGnt_RUNA Frames:15 30 45 61
AnimationSound = Sound:GiantFootstepWater RequiredMC:WADING Animation:WUMNTGNT_SKL.WUMNTGNT_RWLKA Frames:20 42 65 87 108 129
AnimationSound = Sound:GiantFootstepWater RequiredMC:WADING Animation:WUMNTGNT_SKL.WUMNTGNT_TRNL Frames:14 29
AnimationSound = Sound:GiantFootstepWater RequiredMC:WADING Animation:WUMNTGNT_SKL.WUMNTGNT_TRNR Frames:14 29
AnimationSound = Sound:GiantFootstepWater RequiredMC:WADING Animation:WUMNTGNT_SKL.WUMNTGNT_WLKA Frames:20 42 65 87 108 129
; ----- tied up escape -----
AnimationSound = Sound:MountainGiantFreedMS Animation:WUMNTGNT_SKL.WUMNTGNT_GTPB Frames:1
End
; *** ENGINEERING Parameters ***
RadarPriority = UNIT
KindOf = PRELOAD SELECTABLE HEAVY_MELEE_HITTER CAN_CAST_REFLECTIONS MONSTER SCORE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT PATH_THROUGH_INFANTRY CAN_ATTACK_WALLS SCARY BIG_MONSTER NO_FREEWILL_ENTER
BuildCost = M_WILD_MOUNTAIN_GIANT_BUILDCOST
BuildTime = M_WILD_MOUNTAIN_GIANT_BUILDTIME
BountyValue = M_WILD_MOUNTAIN_GIANT_BOUNTYVALUE
Body = ActiveBody ModuleTag_Body
CheerRadius = M_EMOTION_CHEER_RADIUS
MaxHealth = M_WILD_MOUNTAIN_GIANT_HEALTH
MaxHealthDamaged = M_WILD_MOUNTAIN_GIANT_HEALTH_DAMAGED
End
Behavior = AutoHealBehavior ModuleTag_MarksModMountainGiantHealing
StartsActive = Yes
HealingAmount = M_MARKSMOD_HEAL_AMOUNT_LOW
HealingDelay = 2000
StartHealingDelay = M_MARKSMOD_HEAL_DELAY
HealOnlyIfNotInCombat = Yes
UnitHealPulseFX = FX_SpellHealUnitHealBuff
End
Behavior = StancesBehavior ModuleTag_StancesBehavior
StanceTemplate = Artillery
End
Behavior = AIUpdateInterface ModuleTag_03
AutoAcquireEnemiesWhenIdle = Yes ATTACK_BUILDINGS
AILuaEventsList = MountainGiantFunctions
End
Behavior = FireWeaponWhenDeadBehavior FireDeadTag
RequiredStatus = DEATH_1
StartsActive = Yes
DelayTime = 3400
DeathWeapon = MountainGiantDeath
WeaponOffset = X:-68 Y:0 Z:0 ;Fire the death weapon right behind the object.
End
LocomotorSet
Locomotor = GiantLocomotor //RohanTreeBeardLocomotor
Condition = SET_NORMAL
Speed = M_NORMAL_WILD_INFANTRY_MEMBER_SPEED
End
Behavior = PhysicsBehavior ModuleTag_04
GravityMult = 1.0
ShockStandingTime = 3600 ; tuned to mountain giant's GTPA anim
End
Behavior = SlowDeathBehavior ModuleTag_50
DeathTypes = ALL -FADED
DestructionDelay = 40000
DecayBeginTime = 7000
SinkDelay = 14000
SinkRate = 1.3 ; in Dist/Sec
Sound = INITIAL MountainGiantVoxDie
DeathFlags = DEATH_1 ; Controls animation and weapon choice. Sets BOTH model condition and object status bits.
End
Behavior = SquishCollide ModuleTag_06
;nothing
End
Behavior = NotifyTargetsOfImminentProbableCrushingUpdate ModuleTag_NotifyCrushScan
End
Behavior = EmotionTrackerUpdate Module_EmotionTracker ; required for faramir's wounding arrow
TauntAndPointDistance = 500
TauntAndPointUpdateDelay = 1000
AddEmotion = Terror_Base
AddEmotion = Doom_Base
// AddEmotion = BraceForBeingCrushed_Base
// AddEmotion = UncontrollableFear_Base
// AddEmotion = FearIdle_Base
// AddEmotion = FearBusy_Base
AddEmotion = Point_Base
AddEmotion = Taunt_Base
AddEmotion = CheerIdle_Base
AddEmotion = CheerBusy_Base
AddEmotion = HeroCheerIdle_Base
AddEmotion = HeroCheerBusy_Base
AddEmotion = Alert_Base
AddEmotion = CheerForAboutToCrush_Base
End
;----------------------------------------
Behavior = HitReactionBehavior HitReactionBehaviorModuleTag
HitReactionLifeTimer1 = 2500
HitReactionThreshold1 = 50.0
End
Behavior = AimWeaponBehavior AimWeaponModuleTag
AimNearDistance = 40.0 ; If target closer than this, give Near flag. This and IsAimingWeapon combine to give extra model condition flags
End
;;; STOMP SPECIAL ABILITY ;;;
Behavior = SpecialPowerModule ModuleTag_StompStarter
SpecialPowerTemplate = SpecialAbilityWildMountainGiantStomp
UpdateModuleStartsAttack = Yes
StartsPaused = No
End
Behavior = WeaponFireSpecialAbilityUpdate ModuleTag_StompWeaponFireUpdate
SpecialPowerTemplate = SpecialAbilityWildMountainGiantStomp
WhichSpecialWeapon = 2 ; SPECIAL_WEAPON_TWO
SkipContinue = Yes
UnpackTime = 1367 //Frames 1-41 (of 97)
PackTime = 1867 //Remaining frames 41-97
;FreezeAfterTriggerDuration = 2500 ; Hold AI for this long after we fire.
AwardXPForTriggering = 0
StartAbilityRange = 80.0
SpecialWeapon = WildMountainGiantStomp
End
Behavior = AutoAbilityBehavior ModuleTag_AutoAbilityBehavior
End
//Toggle CommandSet Based on Weaponset condition flags
Behavior = MonitorConditionUpdate ModuleTag_CommandSetSwapper
ModelConditionFlags = ATTACKING_POSITION
ModelConditionCommandSet = WildMountainGiantRockCommandSetStopBombard
WeaponSetFlags = WEAPONSET_TOGGLE_1
WeaponToggleCommandSet = WildMountainGiantRockCommandSet
End
// When created, automatically switch to rock-throwing
Behavior = DoCommandUpgrade Module_DoCommandUpgrade
TriggeredBy = Upgrade_SwitchToRockThrowing
GetUpgradeCommandButtonName = Command_ToggleMountainGiantRockThrow
End
;///////////////////
; AISpecialPowers
;///////////////////
Behavior = AISpecialPowerUpdate ToggleSiegeModeAI
CommandButtonName = Command_ToggleMountainGiantRockThrow
SpecialPowerAIType = AI_SPECIAL_POWER_TOGGLE_SIEGE
End
Geometry = CYLINDER
GeometryMajorRadius = 15
GeometryHeight = 56.0
GeometryIsSmall = No
Shadow = SHADOW_VOLUME_NON_SELF_2; volumetric shadow that doesn't cast onto all objects using SHADOW_VOLUME_NON_SELF_2
ShadowSizeX = 36; clamp the angle so shadow isn't as long.
End
;---------------------------------------------------------------------------------------------------------------
;---------------------------------------------------------------------------------------------------------------
ChildObject WildMountainGiantSentry WildMountainGiant
Draw = W3DScriptedModelDraw ModuleTag_01
StaticModelLODMode = Yes
OkToChangeModelColor = Yes
ExtraPublicBone = IMPACT
ExtraPublicBone = ROCK
StaticModelLODMode = yes ; Will append M or L to the skin name depending on GameLOD
DefaultModelConditionState
Model = WUMntGnt_SKN
Skeleton = WUMntGnt_SKL
WeaponLaunchBone = PRIMARY ROCK
WeaponLaunchBone = SECONDARY ROCK
End
IdleAnimationState
StateName = Idle
Animation = Breathe
AnimationName = WUMntGnt_FIDLA
AnimationMode = ONCE
AnimationBlendTime = 10
AnimationPriority = 40
End
Animation = BellyScratch
AnimationName = WUMntGnt_FIDLB
AnimationMode = ONCE
AnimationBlendTime = 10
AnimationPriority = 10
End
Flags = RESTART_ANIM_WHEN_COMPLETE
BeginScript
CurDrawableHideSubObjectPermanently("ROCK")
EndScript
End
AnimationState = DYING
Animation
AnimationName = WUMntGnt_FDIEA
AnimationMode = ONCE
End
End
AnimationState = FIRING_OR_PREATTACK_A
Animation
AnimationName = WUMntGnt_FATKA
AnimationMode = ONCE
UseWeaponTiming = Yes
AnimationBlendTime = 0
End
BeginScript
CurDrawableShowSubObjectPermanently("ROCK")
EndScript
FrameForPristineBonePositions = 99
StateName = Throw
End
AnimationState = TURN_LEFT
Animation
AnimationName = WUMntGnt_FTNL
AnimationMode = LOOP
AnimationBlendTime = 10
End
BeginScript
CurDrawableHideSubObjectPermanently("ROCK")
EndScript
End
AnimationState = TURN_RIGHT
Animation
AnimationName = WUMntGnt_FTNR
AnimationMode = LOOP
AnimationBlendTime = 10
End
BeginScript
CurDrawableHideSubObjectPermanently("ROCK")
EndScript
End
End ;//Draw Module
;// No command points for this as it's free.
CommandPoints = 0
ShockwaveResistance = M_SHOCKWAVE_RESISTANCE_ALWAYS
;//Should be the same kindof as the Wild Mountain Giant except with IGNORE_SELECT_ALL
KindOf = PRELOAD SELECTABLE CAN_CAST_REFLECTIONS MONSTER SCORE CAN_ATTACK ATTACK_NEEDS_LINE_OF_SIGHT PATH_THROUGH_INFANTRY CAN_ATTACK_WALLS SCARY BIG_MONSTER IGNORES_SELECT_ALL NO_FREEWILL_ENTER
;// Needs a specialised command set without move based commands.
CommandSet = WildMountainGiantSentryCommandSet
Behavior = MonitorConditionUpdate ModuleTag_CommandSetSwapper
ModelConditionFlags = ATTACKING_POSITION
ModelConditionCommandSet = WildMountainGiantSentryCommandSetStopBombard
End
WeaponSet
Conditions = None
Weapon = PRIMARY WildMountainGiantSentryRockThrow
;Weapon = PRIMARY GondorArcherBow
End
LocomotorSet
Locomotor = FloatingCatapultLocomotor
Condition = SET_NORMAL
Speed = 0
End
; *** AUDIO Parameters ***;
#include "..\..\..\includes\StandardUnitEvaEvents.inc"
VoiceAttack = MountainGiantVoxAttack
VoiceAttackCharge = MountainGiantVoxAttack
VoiceAttackMachine = MountainGiantVoxAttack
VoiceAttackStructure = MountainGiantVoxAttack
VoiceCreated = NoSound
VoiceCreated = +SOUND:MountainGiantVoxCreated
VoiceFullyCreated = NoSound
VoiceFullyCreated = +SOUND:MountainGiantVoxCreated
VoiceGuard = MountainGiantVoxMove
VoiceMove = MountainGiantVoxMove
VoicePriority = 30
VoiceSelect = MountainGiantVoxSelectMS
VoiceSelectBattle = MountainGiantVoxSelectMS
SoundAmbient = MountainGiantVoxAmbientLoop
SoundImpact = ImpactHorse
UnitSpecificSounds
VoiceEnterUnitEvilMenTransportShip = NoSound
VoiceEnterUnitMordorMumakil = NoSound
VoiceEnterUnitSlaughterHouse = NoSound
VoiceGarrison = NoSound
VoiceInitiateCaptureBuilding = NoSound
End
;------------------------------
Behavior = AIUpdateInterface ModuleTag_03
AutoAcquireEnemiesWhenIdle = No
End
//We should die when the expansion does!
Behavior = SlavedUpdate ModuleTag_Slave
DieOnMastersDeath = Yes
MarkUnselectable = No
End
Behavior = SlowDeathBehavior ModuleTag_50
DeathTypes = ALL ;-KNOCKBACK -FADED
DestructionDelay = 1800
SinkDelay = 0
SinkRate = 10.0 ; in Dist/Sec
Sound = INITIAL MountainGiantVoxDie
DeathFlags = DEATH_1 ; Controls animation and weapon choice. Sets BOTH model condition and object status bits.
End
Scale = 1.2 //20% bigger for SEE! //Used to be ".80"
Shadow = SHADOW_VOLUME
End
;-----------------------------
ChildObject WildMountainGiant_Summoned WildMountainGiant
IsTrainable = No
CommandPoints = 0
CommandSet = WildMountainGiantCommandSet
EquivalentTo = WildMountainGiant
Behavior = LifetimeUpdate ModuleTag_LifetimeUpdate
// This one displays the timer, but the one in the uint does the work
MinLifetime = M_CREATE_A_HERO_REINFORCEMENT_LIFETIME
MaxLifetime = M_CREATE_A_HERO_REINFORCEMENT_LIFETIME
DeathType = FADED
End
Behavior = SlowDeathBehavior ModuleTag_FadeDeath
DeathTypes = NONE +FADED
FadeDelay = 0
FadeTime = 5000
DestructionDelay = 5000
DeathFlags = DEATH_3
Sound = INITIAL SpellGenericUnsummonFasterMS
End
End
[/codebox]
U see anything wrong?
// C}{riZ
"Do not come between the Nazgûl and his mod!"
----------------------------------------------------------------------------------------------------
>>>>>>>>>>>>>>>>>>>>>>> I S.E.E. YOU! <<<<<<<<<<<<<<<<<<<<<<<
----------------------------------------------------------------------------------------------------
#509
Posted 09 April 2007 - 10:21 AM
Axed Head and A.I. Coder for S.E.E. and ... stuff
".. coding is basically boring. What's fun is finding out how things work, take them apart and then put them together in ways that were not intended nor even conceived."
#510
Posted 09 April 2007 - 11:12 AM
What I would try is to remove all the extra/unnecessary things from the ini related to crushing. For instance, if you look at the Balrog, ents, or mountain giant in it's default state, there is no crushable level. I've only seen that in cavalry, vehicles, and standard units/hordes (along with the min/decel. % for cavalry). Try losing that and leaving crusher level at 2. Or, since he can crush trees, you'd think he could crush some puny vehicles - try putting crusher level at 4 to match the Balrog, see how that works out. Also, although it appears all crush weapons are the same, perhaps they're referenced elsewhere (somewhere we don't have access to them maybe?) and that reference decides what is affected. If the above doesn't fix it, try changing the crush weapon to something you -know- crushes trees such as the Balrog. Not a great fix, but you can always change the damage modifier if you don't want everything to die when crushed. Plus, just getting it working is a start, right?
watsupcuz,
Although only the value in the horde's ini should matter, did you try changing the crusher level in both the unit's and the horde's ini to a lower, non-tree-crushing value?
#511
Posted 10 April 2007 - 01:32 AM
I just thought it would be more logical that when they walk through a forest, beeing bigger than the trees, and probably weighing in about 10-15 tons, that they'd crush the trees... =p but I give up! We have to live without that I guess...
// C}{riZ
"Do not come between the Nazgûl and his mod!"
----------------------------------------------------------------------------------------------------
>>>>>>>>>>>>>>>>>>>>>>> I S.E.E. YOU! <<<<<<<<<<<<<<<<<<<<<<<
----------------------------------------------------------------------------------------------------
#512
Posted 10 April 2007 - 02:11 AM
#513
Posted 10 April 2007 - 03:28 AM
// C}{riZ
"Do not come between the Nazgûl and his mod!"
----------------------------------------------------------------------------------------------------
>>>>>>>>>>>>>>>>>>>>>>> I S.E.E. YOU! <<<<<<<<<<<<<<<<<<<<<<<
----------------------------------------------------------------------------------------------------
#514
Posted 11 April 2007 - 08:28 PM
1) It should be possible to create a new weapon centered on the hero that will cause meta damage and knock characters down/back, injuring or killing them. This isn't an ideal crush by any means, but perhaps it's better than nothing.
2) Perhaps try using an attribute modifier to trigger an increase in crusher level - since the game seems to disregard the normal method, perhaps this will be more successful?
#515
Posted 11 April 2007 - 08:47 PM
CrushableLevel = 2 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles CrusherLevel = 0 ;What can I crush?: 0 = small animals, 1 = infantry, 2 = trees, 3 = vehiclesthat's from the Catapult code
since the Giant only has one (can't remeber which one) try adding the other one
The 4th Age version 0.8 has been released: Link
#516
Posted 11 April 2007 - 08:56 PM
I'm not anywhere where I can test this, but have tried removing the following line?
UseCrushAttack = No
I don't see it in any of the other objects.
Robert J
#517
Posted 11 April 2007 - 09:22 PM
I can test it later tonight if no one beats me to it.
Edit: it was my understanding that this line was for units the were to crush while simply walking through/over things, whereas if it wasn't present the unit uses a specific crush attack/animation. Hopefully we clear that up with this.
Edited by John Doe, 11 April 2007 - 09:25 PM.
#518
Posted 11 April 2007 - 09:28 PM
If it is in archers, I don't know what this actually does.
#519
Posted 11 April 2007 - 09:38 PM
#520
Posted 12 April 2007 - 07:27 AM
done this?
CrushableLevel = 2;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles CrusherLevel = 0;What can I crush?: 0 = small animals, 1 = infantry, 2 = trees, 3 = vehiclesthat's from the Catapult code
since the Giant only has one (can't remeber which one) try adding the other one
Yes Lauri... like I said:
Right... new strange problem.
I've given some units crush. Some for only units, and some for bigger things like trees. I've done that for Shelob and FireDrakes for instance... and Ive tried to do it for trolls, and it worked too, but then I decided to remove it and only keep crushing on units for the trolls. Anyway... I want to have the "tree crush" for Giants though since they're so big now - but despite me doing things the same way, they refuse to knock down trees??? Any idea what I might need?
These are my codes for Giants...CrushableLevel = 2 ;What am I?: 0 = for infantry, 1 = for trees, 2 = general vehicles CrusherLevel = 2;What can I crush?: 1 = infantry, 2 = trees, 3 = vehicles CrushWeapon = GiantCrush
Why won't it work?
The problem is with crushing TREES only. They DO crush units just fine! But units only!
Hiya,
I'm not anywhere where I can test this, but have tried removing the following line?
UseCrushAttack = No
I don't see it in any of the other objects.
Robert J
Tried that too and it didnt do any difference, and Shelob and FiredrakeHero in this mod has that set to "no". Enabling it (I tried for Sauron for instance) will make the units NOT STOP while attacking and doing it's attack move. The unit instead walks over tropps till they die. So we don't want that. For Shelob I also have a locomotor slowdown when she tubles over them to stop and sting them. So that should be "No" at all times. Would have been great if it did work though. But I'm starting to think there a modifier somewhere which does not allow Giants to crush trees...
// C}{riZ
"Do not come between the Nazgûl and his mod!"
----------------------------------------------------------------------------------------------------
>>>>>>>>>>>>>>>>>>>>>>> I S.E.E. YOU! <<<<<<<<<<<<<<<<<<<<<<<
----------------------------------------------------------------------------------------------------
0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users