New Force Moves
Posted: Wed Oct 04, 2006 7:11 pm
by MasterSaitek009
Since this is my topic and I need to post another force power, I figured bumping was justified.
Here are the originals.
Force Freeze - Majorly overbalanced. But fun to play around with all the same. When you use this move on a unit, the unit will be frozen and become unfrozen when you stop holding the button down.
Force Heal - Gives the targeted unit a health buff for a short amount of time.
The new one is force stasis.
Force Stasis - Freezes the targeted unit for 2(can be adjusted) seconds.
To use this ability you'll need to add some code into your lua.
If you use this move be sure to credit Zerted and Maveritchell as well as myself, since they helped create/troubleshoot a lot of this code.
Have fun!
Original Post:
Here are the originals.
Force Freeze - Majorly overbalanced. But fun to play around with all the same. When you use this move on a unit, the unit will be frozen and become unfrozen when you stop holding the button down.
Force Heal - Gives the targeted unit a health buff for a short amount of time.
The new one is force stasis.
Force Stasis - Freezes the targeted unit for 2(can be adjusted) seconds.
To use this ability you'll need to add some code into your lua.
Hidden/Spoiler:
--New Hero Assault
-- Copyright (c) 2005 Pandemic Studios, LLC. All rights reserved.
--
-- Mos Eisley Hero Deathmatch (uses Space Assault rules)
-- First team to reach 100 kills wins
--
ScriptCB_DoFile("setup_teams")
ScriptCB_DoFile("ObjectiveTDM")
--ADD THIS AFTER THE ScriptCB_DoFile SECTION
count = 0
--END
---------------------------------------------------------------------------
-- ScriptPostLoad
---------------------------------------------------------------------------
function ScriptPostLoad()
EnableSPHeroRules()
-- This is the actual objective setup
TDM = ObjectiveTDM:New{teamATT = 1, teamDEF = 2,
multiplayerScoreLimit = 100,
textATT = "game.modes.tdm",
textDEF = "game.modes.tdm2", multiplayerRules = true, isCelebrityDeathmatch = true}
TDM:Start()
-- ADD THIS IN THE ScriptPostLoad SECTION
OnObjectDamage(
function(object, damager)
if GetObjectHealth(object) > 900000 then return end
if GetObjectLastHitWeaponClass(object) == "com_weap_inf_stasis" then
FreezeFor(object,2)
end
end
)
--END
AddAIGoal(1, "Deathmatch", 100)
AddAIGoal(2, "Deathmatch", 100)
end
--ADD THIS AFTER THE ScriptPostLoad SECTION
function FreezeFor(object, timercount)
--Freeze
print("--Freeze")
count = count + 1
health = GetObjectHealth(object)
SetProperty(object, "CurHealth", 1000000)
DeactivateObject(object)
-- Wait for timercount
print("-- Wait for timercount")
CreateTimer("timer" .. count)
SetTimerValue("timer" .. count, timercount)
StartTimer("timer" .. count)
OnTimerElapse(
function(timer)
--Unfreeze
print("--Unfreeze")
ActivateObject(object)
SetProperty(object, "CurHealth", (GetObjectHealth(object) - 1000000) + health)
end,
"timer" .. count
)
DestroyTimer("timer" .. count)
end
--END
---------------------------------------------------------------------------
-- ScriptInit
---------------------------------------------------------------------------
function ScriptInit()
ReadDataFile("dC:Load\\common.lvl")
SetMemoryPoolSize ("ClothData",20)
SetMemoryPoolSize ("Combo",70) -- should be ~ 2x number of jedi classes
SetMemoryPoolSize ("Combo::State",850) -- should be ~12x #Combo
SetMemoryPoolSize ("Combo::Transition",850) -- should be a bit bigger than #Combo::State
SetMemoryPoolSize ("Combo::Condition",850) -- should be a bit bigger than #Combo::State
SetMemoryPoolSize ("Combo::Attack",750) -- should be ~8-12x #Combo
SetMemoryPoolSize ("Combo::DamageSample",8000) -- should be ~8-12x #Combo::Attack
SetMemoryPoolSize ("Combo::Deflect",140) -- should be ~1x #combo -- should be ~1x #combo
[...]
-- Copyright (c) 2005 Pandemic Studios, LLC. All rights reserved.
--
-- Mos Eisley Hero Deathmatch (uses Space Assault rules)
-- First team to reach 100 kills wins
--
ScriptCB_DoFile("setup_teams")
ScriptCB_DoFile("ObjectiveTDM")
--ADD THIS AFTER THE ScriptCB_DoFile SECTION
count = 0
--END
---------------------------------------------------------------------------
-- ScriptPostLoad
---------------------------------------------------------------------------
function ScriptPostLoad()
EnableSPHeroRules()
-- This is the actual objective setup
TDM = ObjectiveTDM:New{teamATT = 1, teamDEF = 2,
multiplayerScoreLimit = 100,
textATT = "game.modes.tdm",
textDEF = "game.modes.tdm2", multiplayerRules = true, isCelebrityDeathmatch = true}
TDM:Start()
-- ADD THIS IN THE ScriptPostLoad SECTION
OnObjectDamage(
function(object, damager)
if GetObjectHealth(object) > 900000 then return end
if GetObjectLastHitWeaponClass(object) == "com_weap_inf_stasis" then
FreezeFor(object,2)
end
end
)
--END
AddAIGoal(1, "Deathmatch", 100)
AddAIGoal(2, "Deathmatch", 100)
end
--ADD THIS AFTER THE ScriptPostLoad SECTION
function FreezeFor(object, timercount)
--Freeze
print("--Freeze")
count = count + 1
health = GetObjectHealth(object)
SetProperty(object, "CurHealth", 1000000)
DeactivateObject(object)
-- Wait for timercount
print("-- Wait for timercount")
CreateTimer("timer" .. count)
SetTimerValue("timer" .. count, timercount)
StartTimer("timer" .. count)
OnTimerElapse(
function(timer)
--Unfreeze
print("--Unfreeze")
ActivateObject(object)
SetProperty(object, "CurHealth", (GetObjectHealth(object) - 1000000) + health)
end,
"timer" .. count
)
DestroyTimer("timer" .. count)
end
--END
---------------------------------------------------------------------------
-- ScriptInit
---------------------------------------------------------------------------
function ScriptInit()
ReadDataFile("dC:Load\\common.lvl")
SetMemoryPoolSize ("ClothData",20)
SetMemoryPoolSize ("Combo",70) -- should be ~ 2x number of jedi classes
SetMemoryPoolSize ("Combo::State",850) -- should be ~12x #Combo
SetMemoryPoolSize ("Combo::Transition",850) -- should be a bit bigger than #Combo::State
SetMemoryPoolSize ("Combo::Condition",850) -- should be a bit bigger than #Combo::State
SetMemoryPoolSize ("Combo::Attack",750) -- should be ~8-12x #Combo
SetMemoryPoolSize ("Combo::DamageSample",8000) -- should be ~8-12x #Combo::Attack
SetMemoryPoolSize ("Combo::Deflect",140) -- should be ~1x #combo -- should be ~1x #combo
[...]
Have fun!
Original Post:
Hidden/Spoiler:
I have some new force moves here if anyone wants 'em.
Force Freeze: with this force move you can stop other units from moving.
[code][WeaponClass]
ClassLabel = "areaeffectweapon"
[Properties]
HUDTag = "hud_force_push"
GeometryName = ""
HighResGeometry = ""
//MuzzleFlash = "med_muzzle_flash"
FlashColor = "80 80 255 255"
FlashLength = 0.025
FlashLightColor = "220 220 255 175"
Discharge = "med_smoke_effect"
//RoundsPerClip = "32"
RoundsPerClip = "0"
ReloadTime = "0.0"
HeatPerShot = "0.0" // only allow player to fire every 5 seconds
HeatRecoverRate = "0.2"
HeatThreshold = "0.01"
DisplayRefire = "0"
EnergyDrain = "40.0"
EnergyDrainRate = "15.0"
FireType = "Hold"
InitialSalvoDelay = "0.5"
//ChargeMaxTime = "0.0"
//ChargeMinStrength = "0.0"
MaxTargets = "1"
AreaType = "Ray"
AreaRange = "10.0"
AreaRadius = "10.0" // -> 20 degree arc
AreaHeight = "4.0"
EffectDamage = "0.0"
EffectType = "Choke"
EffectStrength = "10.0"
EffectFalloff = "1.0"
ThrustFactor = "0.5" // when firing, move at half speed
// I don't think this is used in the code at all -> TargetLock = "1" // when firing, activate target lock
SoldierAnimation = "idle_emote_full"
OffhandWeapon = 1
InstantPlayFireAnim = 1
TriggerSingle = "1" // if FireType = "Hold" this will work correctly now - Mike Z
LockOnRange = "64.0"
LockTime = "0.0"
AutoAimSize = "2.0"
TargetEnemy = "1"
TargetNeutral = "0"
TargetFriendly = "0"
TargetPerson = "1"
TargetAnimal = "1"
TargetDroid = "1"
TargetVehicle = "0"
TargetBuilding = "0"
ChargeRateLight = "1.0"
MaxChargeStrengthLight = "1.0"
ChargeDelayLight = "0.0"
ChargeRateHeavy = "1.0"
MaxChargeStrengthHeavy = "0.5"
ChargeDelayHeavy = "2.2"
RecoilLengthHeavy = "0.25"
RecoilStrengthHeavy = "2"
RecoilDecayHeavy = "0.0"
FireSound = "force_choke_fire"
//ReloadSound = ""
WeaponChangeSound = ""
ChangeModeSound = ""
FireEmptySound = ""
ChargeSound = ""
ChargeSoundPitch = "0.05"
OverheatSound = ""
OverheatSoundPitch = "0.5"
OverheatStopSound = ""[/code]
Force Heal: You fire this at your teamates and it gives them regen for a little while.
[code][WeaponClass]
ClassLabel = "cannon"
[Properties]
OrdnanceName = "Rep_weap_inf_force_heal_ord"
HUDTag = "hud_health_regen"
RoundsPerClip = "0"
ReloadTime = "0.3"
HeatRecoverRate = "0.2"
HeatThreshold = "0.0"
TriggerSingle = "1"
ShotDelay = "0.5"
HeatPerShot = "0.0"
MaxPressedTime = "0.0"
ZoomMin = "0.0"
ZoomMax = "0.0"
ZoomRate = "0.0"
MinRange = "0"
OptimalRange = "5"
MaxRange = "8"
//Use the offhand shoot_secondary2 anim: (grenade throw, overridden by buff anim)
EnergyDrain = 100.0
InstantPlayFireAnim = 1
OffhandWeapon = 1
LockOnRange = "64.0"
LockTime = "0.0"
AutoAimSize = "2.0"
SalvoCount = "1"
ShotsPerSalvo = "1"
SalvoDelay = "0.0"
SalvoTime = "0.0"
InitialSalvoDelay = "0.5" // must have one or no animation - Mike Z
TargetEnemy = "0"
TargetNeutral = "0"
TargetFriendly = "1"
TargetPerson = "1"
TargetAnimal = "1"
TargetDroid = "1"
TargetVehicle = "0"
TargetBuilding = "0"
FireSound = "force_push_fire"
[/code]
And the ord file for force heal
[code][OrdnanceClass]
ClassLabel = "emitterordnance"
[Properties]
BuffHealthTimer = "3"
BuffHealthRate = "100"
//PlayEffectOnOwner = "com_sfx_buff_regen"
AffectEnemies = "0"
ConeLength = "15"
ConeAngle = "120"
FirstRadius = "0.0"
MaxTargets = "1" // Max number of targets to hit. Chaining is off so the damage will be split between the number of targets
NoChaining = "1" // No chaining - all bolts coming from the attacker
ApplyOnOwnerIfOnOthers = "0"
VehicleScale = "0.0"
ShieldScale = "1.0"
PersonScale = "1.0"
AnimalScale = "1.0"
DroidScale = "1.0"
BuildingScale = "0.0"[/code]
Let me know if you like them and if you use them in a mod map please give me credit.
MasterSaitek009
Force Freeze: with this force move you can stop other units from moving.
[code][WeaponClass]
ClassLabel = "areaeffectweapon"
[Properties]
HUDTag = "hud_force_push"
GeometryName = ""
HighResGeometry = ""
//MuzzleFlash = "med_muzzle_flash"
FlashColor = "80 80 255 255"
FlashLength = 0.025
FlashLightColor = "220 220 255 175"
Discharge = "med_smoke_effect"
//RoundsPerClip = "32"
RoundsPerClip = "0"
ReloadTime = "0.0"
HeatPerShot = "0.0" // only allow player to fire every 5 seconds
HeatRecoverRate = "0.2"
HeatThreshold = "0.01"
DisplayRefire = "0"
EnergyDrain = "40.0"
EnergyDrainRate = "15.0"
FireType = "Hold"
InitialSalvoDelay = "0.5"
//ChargeMaxTime = "0.0"
//ChargeMinStrength = "0.0"
MaxTargets = "1"
AreaType = "Ray"
AreaRange = "10.0"
AreaRadius = "10.0" // -> 20 degree arc
AreaHeight = "4.0"
EffectDamage = "0.0"
EffectType = "Choke"
EffectStrength = "10.0"
EffectFalloff = "1.0"
ThrustFactor = "0.5" // when firing, move at half speed
// I don't think this is used in the code at all -> TargetLock = "1" // when firing, activate target lock
SoldierAnimation = "idle_emote_full"
OffhandWeapon = 1
InstantPlayFireAnim = 1
TriggerSingle = "1" // if FireType = "Hold" this will work correctly now - Mike Z
LockOnRange = "64.0"
LockTime = "0.0"
AutoAimSize = "2.0"
TargetEnemy = "1"
TargetNeutral = "0"
TargetFriendly = "0"
TargetPerson = "1"
TargetAnimal = "1"
TargetDroid = "1"
TargetVehicle = "0"
TargetBuilding = "0"
ChargeRateLight = "1.0"
MaxChargeStrengthLight = "1.0"
ChargeDelayLight = "0.0"
ChargeRateHeavy = "1.0"
MaxChargeStrengthHeavy = "0.5"
ChargeDelayHeavy = "2.2"
RecoilLengthHeavy = "0.25"
RecoilStrengthHeavy = "2"
RecoilDecayHeavy = "0.0"
FireSound = "force_choke_fire"
//ReloadSound = ""
WeaponChangeSound = ""
ChangeModeSound = ""
FireEmptySound = ""
ChargeSound = ""
ChargeSoundPitch = "0.05"
OverheatSound = ""
OverheatSoundPitch = "0.5"
OverheatStopSound = ""[/code]
Force Heal: You fire this at your teamates and it gives them regen for a little while.
[code][WeaponClass]
ClassLabel = "cannon"
[Properties]
OrdnanceName = "Rep_weap_inf_force_heal_ord"
HUDTag = "hud_health_regen"
RoundsPerClip = "0"
ReloadTime = "0.3"
HeatRecoverRate = "0.2"
HeatThreshold = "0.0"
TriggerSingle = "1"
ShotDelay = "0.5"
HeatPerShot = "0.0"
MaxPressedTime = "0.0"
ZoomMin = "0.0"
ZoomMax = "0.0"
ZoomRate = "0.0"
MinRange = "0"
OptimalRange = "5"
MaxRange = "8"
//Use the offhand shoot_secondary2 anim: (grenade throw, overridden by buff anim)
EnergyDrain = 100.0
InstantPlayFireAnim = 1
OffhandWeapon = 1
LockOnRange = "64.0"
LockTime = "0.0"
AutoAimSize = "2.0"
SalvoCount = "1"
ShotsPerSalvo = "1"
SalvoDelay = "0.0"
SalvoTime = "0.0"
InitialSalvoDelay = "0.5" // must have one or no animation - Mike Z
TargetEnemy = "0"
TargetNeutral = "0"
TargetFriendly = "1"
TargetPerson = "1"
TargetAnimal = "1"
TargetDroid = "1"
TargetVehicle = "0"
TargetBuilding = "0"
FireSound = "force_push_fire"
[/code]
And the ord file for force heal
[code][OrdnanceClass]
ClassLabel = "emitterordnance"
[Properties]
BuffHealthTimer = "3"
BuffHealthRate = "100"
//PlayEffectOnOwner = "com_sfx_buff_regen"
AffectEnemies = "0"
ConeLength = "15"
ConeAngle = "120"
FirstRadius = "0.0"
MaxTargets = "1" // Max number of targets to hit. Chaining is off so the damage will be split between the number of targets
NoChaining = "1" // No chaining - all bolts coming from the attacker
ApplyOnOwnerIfOnOthers = "0"
VehicleScale = "0.0"
ShieldScale = "1.0"
PersonScale = "1.0"
AnimalScale = "1.0"
DroidScale = "1.0"
BuildingScale = "0.0"[/code]
Let me know if you like them and if you use them in a mod map please give me credit.
MasterSaitek009