Jump to content

Build Planner with exact %


irtsiam

Recommended Posts

Too bad we don’t have an App for this. I would love to work on builds away from the computer.

 

If you have the means, then talk to the creators at Titan about it. From what I've read it might be a headache.

OG Server: Pinnacle  <||>  Current Primary Server: Torchbearer  ||  Also found on the others if desired  <||> Generally Inactive


Installing CoX:  Windows  ||  MacOS  ||  MacOS for M1  <||>  Migrating Data from an Older Installation


Clubs: Mid's Hero Designer  ||  PC Builders  ||  HC Wiki  ||  Jerk Hackers


Old Forums  <||>  Titan Network  <||>  Heroica! (by @Shenanigunner)

 

Link to comment
Share on other sites

I just looked at the code itself, it would indeed NOT be a simple process. Every power doesn't just exist like in an Excel sheet with a bunch of columns for each attribute. No, each power is its own C object, and has MULTIPLE attributes called AttribMods under them. These are structures that describe ONE attribute of a power. And each power has MANY MANY attributes. Here's one example, Defender's Personal Force Field (every character type has their own copy with a similar structure):

 

Power Defender_Buff.Force_Field.Personal_Force_Field
{
CRCFullName 2071994066
Name Personal_Force_Field
SourceName Defender_Buff.Force_Field.Personal_Force_Field
DisplayName P3978803010
DisplayHelp P1475204497
DisplayShortHelp P3032934705
DisplayAttackerHit P3782792257
IconName ForceField_PersonalForceField.tga
Type kToggle
NumAllowed 1
Accuracy 1
TargetNearGround false
ToggleIgnoreHold true
ToggleIgnoreSleep true
ToggleIgnoreStun true
BoxOffset  0,  0,  0
BoxSize  0,  0,  0
TimeToActivate 2.03
RechargeTime 15
ActivatePeriod 0.5
EnduranceCost 0.13
DestroyOnLimit true
Target kCaster
EntsAutoHit  kCaster
EntsAffected  kCaster
BoostsAllowed  kBio_Group,  kRecharge_Boost,  kSprintRoot_Group
GroupMembership  ANIM_TURNLEFT
ModesDisallowed  kStealth_Group
AttribMod
{
	Name Ones
	ShowFloaters true
	Attrib SEQBITS_TELEPORT
	Target kCaster
	Table Melee_Ones
	Scale 0.75
	Type kDuration
	Chance 1
	CancelEvents  Held,  Stunned,  Sleep
	AllowStrength false
	AllowResistance false
	UseMagnitudeResistance false
	UseDurationResistance false
	AllowCombatMods true
	UseMagnitudeCombatMods false
	UseDurationCombatMods true
	StackType kReplace
	StackLimit 2
	StackKey -1
	Duration 0
	Magnitude kToHit
	RadiusInner -1
	RadiusOuter -1
	Suppress MissionObjectClick 10 Always
}


AttribMod
{
	Name Buff_Def
	ShowFloaters true
	Attrib ANIM_THROWSTAR
	Target kCaster
	Table Melee_Buff_Def
	Scale 7.5
	Type kMagnitude
	Chance 1
	CancelEvents  Held,  Stunned,  Sleep
	AllowStrength true
	AllowResistance false
	UseMagnitudeResistance false
	UseDurationResistance false
	AllowCombatMods true
	UseMagnitudeCombatMods true
	UseDurationCombatMods false
	Requires  isPVPMap?,  !
	StackType kReplace
	StackLimit 2
	StackKey -1
	Duration 0.75
	Magnitude ANIM_FORWARD
	RadiusInner -1
	RadiusOuter -1
	Suppress MissionObjectClick 10 Always
}


AttribMod
{
	Name Res_Dmg
	ShowFloaters true
	Aspect kResistance
	Target kCaster
	Table Melee_Res_Dmg
	Scale 4
	Type kMagnitude
	Chance 1
	CancelEvents  Held,  Stunned,  Sleep
	AllowStrength false
	AllowResistance false
	UseMagnitudeResistance false
	UseDurationResistance false
	AllowCombatMods true
	UseMagnitudeCombatMods true
	UseDurationCombatMods false
	Requires  isPVPMap?,  !
	StackType kReplace
	StackLimit 2
	StackKey -1
	Duration 0.75
	Magnitude ANIM_FORWARD
	RadiusInner -1
	RadiusOuter -1
	Suppress MissionObjectClick 10 Always
}


AttribMod
{
	Name Res_Dmg
	ShowFloaters true
	Attrib kFlyingRoot_Group
	Aspect kResistance
	Target kCaster
	Table Melee_Res_Dmg
	Scale 4
	Type kMagnitude
	Chance 1
	CancelEvents  Held,  Stunned,  Sleep
	AllowStrength false
	AllowResistance false
	UseMagnitudeResistance false
	UseDurationResistance false
	AllowCombatMods true
	UseMagnitudeCombatMods true
	UseDurationCombatMods false
	Requires  isPVPMap?,  !
	StackType kReplace
	StackLimit 2
	StackKey -1
	Duration 0.75
	Magnitude ANIM_FORWARD
	RadiusInner -1
	RadiusOuter -1
	Suppress MissionObjectClick 10 Always
}


AttribMod
{
	Name Res_Dmg
	ShowFloaters true
	Attrib kDisable_Pool
	Aspect kResistance
	Target kCaster
	Table Melee_Res_Dmg
	Scale 4
	Type kMagnitude
	Chance 1
	CancelEvents  Held,  Stunned,  Sleep
	AllowStrength false
	AllowResistance false
	UseMagnitudeResistance false
	UseDurationResistance false
	AllowCombatMods true
	UseMagnitudeCombatMods true
	UseDurationCombatMods false
	Requires  isPVPMap?,  !
	StackType kReplace
	StackLimit 2
	StackKey -1
	Duration 0.75
	Magnitude ANIM_FORWARD
	RadiusInner -1
	RadiusOuter -1
	Suppress MissionObjectClick 10 Always
}


AttribMod
{
	Name Res_Dmg
	ShowFloaters true
	Attrib kStealth_Group
	Aspect kResistance
	Target kCaster
	Table Melee_Res_Dmg
	Scale 4
	Type kMagnitude
	Chance 1
	CancelEvents  Held,  Stunned,  Sleep
	AllowStrength false
	AllowResistance false
	UseMagnitudeResistance false
	UseDurationResistance false
	AllowCombatMods true
	UseMagnitudeCombatMods true
	UseDurationCombatMods false
	Requires  isPVPMap?,  !
	StackType kReplace
	StackLimit 2
	StackKey -1
	Duration 0.75
	Magnitude ANIM_FORWARD
	RadiusInner -1
	RadiusOuter -1
	Suppress MissionObjectClick 10 Always
}


AttribMod
{
	Name Res_Dmg
	ShowFloaters true
	Attrib kAscendant_Group
	Aspect kResistance
	Target kCaster
	Table Melee_Res_Dmg
	Scale 4
	Type kMagnitude
	Chance 1
	CancelEvents  Held,  Stunned,  Sleep
	AllowStrength false
	AllowResistance false
	UseMagnitudeResistance false
	UseDurationResistance false
	AllowCombatMods true
	UseMagnitudeCombatMods true
	UseDurationCombatMods false
	Requires  isPVPMap?,  !
	StackType kReplace
	StackLimit 2
	StackKey -1
	Duration 0.75
	Magnitude ANIM_FORWARD
	RadiusInner -1
	RadiusOuter -1
	Suppress MissionObjectClick 10 Always
}


AttribMod
{
	Name Res_Dmg
	ShowFloaters true
	Attrib ANIM_COMBAT
	Aspect kResistance
	Target kCaster
	Table Melee_Res_Dmg
	Scale 4
	Type kMagnitude
	Chance 1
	CancelEvents  Held,  Stunned,  Sleep
	AllowStrength false
	AllowResistance false
	UseMagnitudeResistance false
	UseDurationResistance false
	AllowCombatMods true
	UseMagnitudeCombatMods true
	UseDurationCombatMods false
	Requires  isPVPMap?,  !
	StackType kReplace
	StackLimit 2
	StackKey -1
	Duration 0.75
	Magnitude ANIM_FORWARD
	RadiusInner -1
	RadiusOuter -1
	Suppress MissionObjectClick 10 Always
}


AttribMod
{
	Name Res_Dmg
	ShowFloaters true
	Attrib kDamageType06
	Aspect kResistance
	Target kCaster
	Table Melee_Res_Dmg
	Scale 4
	Type kMagnitude
	Chance 1
	CancelEvents  Held,  Stunned,  Sleep
	AllowStrength false
	AllowResistance false
	UseMagnitudeResistance false
	UseDurationResistance false
	AllowCombatMods true
	UseMagnitudeCombatMods true
	UseDurationCombatMods false
	Requires  isPVPMap?,  !
	StackType kReplace
	StackLimit 2
	StackKey -1
	Duration 0.75
	Magnitude ANIM_FORWARD
	RadiusInner -1
	RadiusOuter -1
	Suppress MissionObjectClick 10 Always
}


AttribMod
{
	Name Ones
	ShowFloaters true
	Attrib ANIM_TARANTULAPSIBOLT
	Aspect kStrength
	Target kCaster
	Table Melee_Ones
	Scale 0.5
	Type kMagnitude
	Chance 1
	AllowStrength false
	AllowResistance false
	UseMagnitudeResistance false
	UseDurationResistance false
	AllowCombatMods true
	UseMagnitudeCombatMods true
	UseDurationCombatMods false
	Requires  isPVPMap?
	StackType kReplace
	StackLimit 2
	StackKey -1
	Duration 0.75
	Magnitude ANIM_FORWARD
	RadiusInner -1
	RadiusOuter -1
	Suppress MissionObjectClick 10 Always
}


AttribMod
{
	Name Buff_Def
	ShowFloaters true
	Attrib ANIM_DIVE
	Target kCaster
	Table Melee_Buff_Def
	Scale 7.5
	Type kMagnitude
	Chance 1
	AllowStrength true
	AllowResistance false
	UseMagnitudeResistance false
	UseDurationResistance false
	AllowCombatMods true
	UseMagnitudeCombatMods true
	UseDurationCombatMods false
	Requires  isPVPMap?
	StackType kReplace
	StackLimit 2
	StackKey -1
	Duration 0.75
	Magnitude ANIM_FORWARD
	RadiusInner -1
	RadiusOuter -1
	Suppress MissionObjectClick 10 Always
}


AttribMod
{
	Name Buff_Def
	ShowFloaters true
	Attrib kDefenseType04
	Target kCaster
	Table Melee_Buff_Def
	Scale 7.5
	Type kMagnitude
	Chance 1
	AllowStrength true
	AllowResistance false
	UseMagnitudeResistance false
	UseDurationResistance false
	AllowCombatMods true
	UseMagnitudeCombatMods true
	UseDurationCombatMods false
	Requires  isPVPMap?
	StackType kReplace
	StackLimit 2
	StackKey -1
	Duration 0.75
	Magnitude ANIM_FORWARD
	RadiusInner -1
	RadiusOuter -1
	Suppress MissionObjectClick 10 Always
}


AttribMod
{
	Name Buff_Def
	ShowFloaters true
	Attrib kDefenseType06
	Target kCaster
	Table Melee_Buff_Def
	Scale 7.5
	Type kMagnitude
	Chance 1
	AllowStrength true
	AllowResistance false
	UseMagnitudeResistance false
	UseDurationResistance false
	AllowCombatMods true
	UseMagnitudeCombatMods true
	UseDurationCombatMods false
	Requires  isPVPMap?
	StackType kReplace
	StackLimit 2
	StackKey -1
	Duration 0.75
	Magnitude ANIM_FORWARD
	RadiusInner -1
	RadiusOuter -1
	Suppress MissionObjectClick 10 Always
}


AttribMod
{
	Name Buff_Def
	ShowFloaters true
	Attrib kDefenseType05
	Target kCaster
	Table Melee_Buff_Def
	Scale 7.5
	Type kMagnitude
	Chance 1
	AllowStrength true
	AllowResistance false
	UseMagnitudeResistance false
	UseDurationResistance false
	AllowCombatMods true
	UseMagnitudeCombatMods true
	UseDurationCombatMods false
	Requires  isPVPMap?
	StackType kReplace
	StackLimit 2
	StackKey -1
	Duration 0.75
	Magnitude ANIM_FORWARD
	RadiusInner -1
	RadiusOuter -1
	Suppress MissionObjectClick 10 Always
}


AttribMod
{
	Name Buff_Def
	ShowFloaters true
	Attrib ANIM_WHIP
	Target kCaster
	Table Melee_Buff_Def
	Scale 7.5
	Type kMagnitude
	Chance 1
	AllowStrength true
	AllowResistance false
	UseMagnitudeResistance false
	UseDurationResistance false
	AllowCombatMods true
	UseMagnitudeCombatMods true
	UseDurationCombatMods false
	Requires  isPVPMap?
	StackType kReplace
	StackLimit 2
	StackKey -1
	Duration 0.75
	Magnitude ANIM_FORWARD
	RadiusInner -1
	RadiusOuter -1
	Suppress MissionObjectClick 10 Always
}


AttribMod
{
	Name Buff_Def
	ShowFloaters true
	Attrib kEnergy_Attack
	Target kCaster
	Table Melee_Buff_Def
	Scale 7.5
	Type kMagnitude
	Chance 1
	AllowStrength true
	AllowResistance false
	UseMagnitudeResistance false
	UseDurationResistance false
	AllowCombatMods true
	UseMagnitudeCombatMods true
	UseDurationCombatMods false
	Requires  isPVPMap?
	StackType kReplace
	StackLimit 2
	StackKey -1
	Duration 0.75
	Magnitude ANIM_FORWARD
	RadiusInner -1
	RadiusOuter -1
	Suppress MissionObjectClick 10 Always
}


AttribMod
{
	Name Buff_Def
	ShowFloaters true
	Attrib kDefenseType08
	Target kCaster
	Table Melee_Buff_Def
	Scale 7.5
	Type kMagnitude
	Chance 1
	AllowStrength true
	AllowResistance false
	UseMagnitudeResistance false
	UseDurationResistance false
	AllowCombatMods true
	UseMagnitudeCombatMods true
	UseDurationCombatMods false
	Requires  isPVPMap?
	StackType kReplace
	StackLimit 2
	StackKey -1
	Duration 0.75
	Magnitude ANIM_FORWARD
	RadiusInner -1
	RadiusOuter -1
	Suppress MissionObjectClick 10 Always
}


AttribMod
{
	Name Res_Dmg
	ShowFloaters true
	Aspect kResistance
	Target kCaster
	Table Melee_Res_Dmg
	Scale 4
	Type kMagnitude
	Chance 1
	AllowStrength false
	AllowResistance false
	UseMagnitudeResistance false
	UseDurationResistance false
	AllowCombatMods true
	UseMagnitudeCombatMods true
	UseDurationCombatMods false
	Requires  isPVPMap?
	StackType kReplace
	StackLimit 2
	StackKey -1
	Duration 0.75
	Magnitude ANIM_FORWARD
	RadiusInner -1
	RadiusOuter -1
	Suppress MissionObjectClick 10 Always
}


AttribMod
{
	Name Res_Dmg
	ShowFloaters true
	Attrib kFlyingRoot_Group
	Aspect kResistance
	Target kCaster
	Table Melee_Res_Dmg
	Scale 4
	Type kMagnitude
	Chance 1
	AllowStrength false
	AllowResistance false
	UseMagnitudeResistance false
	UseDurationResistance false
	AllowCombatMods true
	UseMagnitudeCombatMods true
	UseDurationCombatMods false
	Requires  isPVPMap?
	StackType kReplace
	StackLimit 2
	StackKey -1
	Duration 0.75
	Magnitude ANIM_FORWARD
	RadiusInner -1
	RadiusOuter -1
	Suppress MissionObjectClick 10 Always
}


AttribMod
{
	Name Res_Dmg
	ShowFloaters true
	Attrib kDisable_Pool
	Aspect kResistance
	Target kCaster
	Table Melee_Res_Dmg
	Scale 4
	Type kMagnitude
	Chance 1
	AllowStrength false
	AllowResistance false
	UseMagnitudeResistance false
	UseDurationResistance false
	AllowCombatMods true
	UseMagnitudeCombatMods true
	UseDurationCombatMods false
	Requires  isPVPMap?
	StackType kReplace
	StackLimit 2
	StackKey -1
	Duration 0.75
	Magnitude ANIM_FORWARD
	RadiusInner -1
	RadiusOuter -1
	Suppress MissionObjectClick 10 Always
}


AttribMod
{
	Name Res_Dmg
	ShowFloaters true
	Attrib kStealth_Group
	Aspect kResistance
	Target kCaster
	Table Melee_Res_Dmg
	Scale 4
	Type kMagnitude
	Chance 1
	AllowStrength false
	AllowResistance false
	UseMagnitudeResistance false
	UseDurationResistance false
	AllowCombatMods true
	UseMagnitudeCombatMods true
	UseDurationCombatMods false
	Requires  isPVPMap?
	StackType kReplace
	StackLimit 2
	StackKey -1
	Duration 0.75
	Magnitude ANIM_FORWARD
	RadiusInner -1
	RadiusOuter -1
	Suppress MissionObjectClick 10 Always
}


AttribMod
{
	Name Res_Dmg
	ShowFloaters true
	Attrib kAscendant_Group
	Aspect kResistance
	Target kCaster
	Table Melee_Res_Dmg
	Scale 4
	Type kMagnitude
	Chance 1
	AllowStrength false
	AllowResistance false
	UseMagnitudeResistance false
	UseDurationResistance false
	AllowCombatMods true
	UseMagnitudeCombatMods true
	UseDurationCombatMods false
	Requires  isPVPMap?
	StackType kReplace
	StackLimit 2
	StackKey -1
	Duration 0.75
	Magnitude ANIM_FORWARD
	RadiusInner -1
	RadiusOuter -1
	Suppress MissionObjectClick 10 Always
}


AttribMod
{
	Name Res_Dmg
	ShowFloaters true
	Attrib ANIM_COMBAT
	Aspect kResistance
	Target kCaster
	Table Melee_Res_Dmg
	Scale 4
	Type kMagnitude
	Chance 1
	AllowStrength false
	AllowResistance false
	UseMagnitudeResistance false
	UseDurationResistance false
	AllowCombatMods true
	UseMagnitudeCombatMods true
	UseDurationCombatMods false
	Requires  isPVPMap?
	StackType kReplace
	StackLimit 2
	StackKey -1
	Duration 0.75
	Magnitude ANIM_FORWARD
	RadiusInner -1
	RadiusOuter -1
	Suppress MissionObjectClick 10 Always
}


AttribMod
{
	Name Res_Dmg
	ShowFloaters true
	Attrib kDamageType06
	Aspect kResistance
	Target kCaster
	Table Melee_Res_Dmg
	Scale 4
	Type kMagnitude
	Chance 1
	AllowStrength false
	AllowResistance false
	UseMagnitudeResistance false
	UseDurationResistance false
	AllowCombatMods true
	UseMagnitudeCombatMods true
	UseDurationCombatMods false
	Requires  isPVPMap?
	StackType kReplace
	StackLimit 2
	StackKey -1
	Duration 0.75
	Magnitude ANIM_FORWARD
	RadiusInner -1
	RadiusOuter -1
	Suppress MissionObjectClick 10 Always
}


AttribMod
{
	Name Ones
	ShowFloaters true
	Attrib ANIM_COMBO2
	Aspect kResistance
	Target kCaster
	Table Melee_Ones
	Scale 1
	Type kMagnitude
	Chance 1
	CancelEvents  Held,  Stunned,  Sleep
	AllowStrength true
	AllowResistance false
	UseMagnitudeResistance false
	UseDurationResistance false
	AllowCombatMods true
	UseMagnitudeCombatMods true
	UseDurationCombatMods false
	StackType kReplace
	StackLimit 2
	StackKey -1
	Duration 0.75
	Magnitude ANIM_FORWARD
	RadiusInner -1
	RadiusOuter -1
	Suppress MissionObjectClick 10 Always
}


ShowBuffIcon true
ShowInInventory true
ShowInManage true
ShowInInfo true
MaxBoosts 6
BoostTradeable true
BoostCombinable true
BoostLicenseLevel 999
MinSlotLevel -3
MaxSlotLevel 49
MaxBoostLevel 50
HighlightRing  0,  0,  0,  0
PreferenceMultiplier 1
ForceLevelBought -1
AbusiveBuff true
FaceTarget true
VisualFX MENU/POWERS/ANIMFX/PLAYERPOWERS/DEFENDERBUFF_FORCEFIELD_PERSONALFORCEFIELD.PFX
ActivationBits  ANIM_COMBAT,  ANIM_RADIUSEFFECT,  ANIM_NOTROOTED
ActivationFX POWERS/FORCEFIELD/FORCEBUBBLE.FX
FramesBeforeHit 25
AttackFrames 61
InitialFramesBeforeHit 25
ProjectileSpeed 3.403e+038
CustomFX Bright
	ActivationBits  ANIM_COMBAT,  ANIM_RADIUSEFFECT,  ANIM_NOTROOTED
	ActivationFX CUSTOMIZEABLEPOWERS/FORCEFIELD/FORCEBUBBLE.FX
	FramesBeforeHit 25
	AttackFrames 61
	InitialFramesBeforeHit 25
	ProjectileSpeed 3.403e+038
	Palette Additive
End


CustomFX Dark
	ActivationBits  ANIM_COMBAT,  ANIM_RADIUSEFFECT,  ANIM_NOTROOTED
	ActivationFX CUSTOMIZEABLEPOWERS/FORCEFIELD/SUBTRACTIVE/FORCEBUBBLE.FX
	FramesBeforeHit 25
	AttackFrames 61
	InitialFramesBeforeHit 25
	ProjectileSpeed 3.403e+038
	Palette Subtractive
End


}

 

...and that's ONE power. Now, someone with more time than I've got could make a parsing program that could go through all of these AttribMods, and collect the list of all attributes, and then build a UI that could show all of these attributes... in fact I'd LOVE it if I had the time to do that. But unless I'm getting paid for it... I kinda have to work a little bit to keep my current job as a programmer...

I'm out.
Link to comment
Share on other sites

Hmmm. I'm surprised they didn't use the database to store this stuff. So it's in what, one of the Piggs?

 

I'm a developer that builds and maintains billing apps for my company and have used SQL server for years. It surprised me how small the initial database was, relatively speaking.

Link to comment
Share on other sites

Considering when this game was made (late 90s/early 2000s) it's not surprising each power/spell is a C object. That's how a lot of games in that period implemented spells.

 

See Neverwinter Nights for an example that is accessible to the public (altho that is a bit different in that each power is a C method, not an object).

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...