Powers: Difference between revisions
pc>Brw316 Replaced content with "To edit a power definition ("powerset_name".powers) and apply those edits to a server environment, you need the definition files themselves found in faptastic.7z (https://..." |
No edit summary |
||
(5 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
To edit a power definition ("powerset_name".powers) and apply those edits to a server environment, you need the definition files themselves found in faptastic.7z (https:// | To edit a power definition ("powerset_name".powers) and apply those edits to a server environment, you need the definition files themselves found in faptastic.7z or the Volume 2 binning setup ([[Magnet Links]]) and (https://git.ourodev.com/CoX/i2401-bin-server) respectively, and a server to test the changes on. OuroDev primarily focuses only on Volume 2 servers, though i25p2 data files can be found here: https://git.ourodev.com/score/i25p2-bin-server. | ||
==Basic Power Modification:== | ==Basic Power Modification:== | ||
# | #Open serverdata/Defs/powers | ||
#Find the appropriate power definitions you want to change .e. (Blaster_Ranged_Archery.powers) | |||
#Open in Notepad++ | |||
#CTRL+F for the power you are looking to change | |||
#Scroll down to the attribute(s) that you wish to change. | |||
*Range, Endurance cost, Recharge, etc. are found in the top block with the power name. | |||
<nowiki> | |||
Name "Dark_Blast" | |||
DisplayName "P369601562" | |||
ModesDisallowed kDisable_All, kSynergist_Transform_Mode | |||
Type kClick | |||
Accuracy 1 | |||
AttackTypes kRanged_Attack, kNegative_Energy_Attack | |||
EntsAffected kFoe | |||
EntsAutoHit kNone | |||
Target kFoe | |||
Range 80 | |||
EnduranceCost 5.2 | |||
IdeaCost 0 | |||
TravelSuppression 3 | |||
InterruptTime 0 | |||
TimeToActivate 1 | |||
RechargeTime 4 | |||
ActivatePeriod 0 | |||
EffectArea kCharacter | |||
Radius 0 | |||
Arc 0 | |||
BoostsAllowed kAccuracy_Boost, kDamage_Boost, kRecharge_Boost, kEnduranceDiscount_Boost, kRange_Boost, kDebuff_ToHit_Boost | |||
VisualFX "menu\Powers\AnimFX\PlayerPowers\DominatorAssault_DarknessAssault_DarkBlast.PFX" | |||
include menu\Powers\AnimFX\PlayerPowers\DominatorAssault_DarknessAssault_DarkBlast.PFX | |||
DisplayShortHelp "P4219235673" | |||
DisplayHelp "P2499574216" | |||
IconName "DarknessAssault_DarkBlast.tga" | |||
TimeToConfirm 0 | |||
DisplayTargetShortHelp "P2190949330" | |||
DisplayTargetHelp "P2735666026" | |||
</nowiki> | |||
*Damage, secondary effects, heals, defense, resistances etc. are located in "AttribMod" blocks for those specific effects. | |||
<nowiki> | |||
AttribMod | |||
{ | |||
Name "Damage" | |||
Table "Ranged_Damage" | |||
Aspect kAbs | |||
Attrib knegative_Energy | |||
Target kTarget | |||
Scale 1 | |||
Type kMagnitude | |||
AllowStrength kTrue | |||
AllowResistance kTrue | |||
Delay 0 | |||
Duration 0 | |||
Magnitude 1 | |||
Period 0 | |||
Chance 1.00 | |||
NearGround kFalse | |||
CancelOnMiss kFalse | |||
DisplayAttackerHit "P1568870839" | |||
DisplayVictimHit "P4203961982" | |||
StackType kStack | |||
Requires enttype target> critter eq | |||
} | |||
</nowiki> | |||
:6. Find the aspect that you wish to change and edit the integer or string to the desired value. | |||
:7. Save the file. | |||
:8. Run mapserver.exe. As long as you have not changed any geos, the executable should recognize the change in the definition file and re-bin powers.bin. | |||
:9. Test your change--preferably using a different server--by copying your new powers.bin to data/bin and data/server/bin. | |||
===Notes:=== | |||
*All times (Duration, Recharge, Activation, Period, etc.) are in seconds. | |||
*Damage and Heal are scale values that get multiplied by archetype-specific modifiers and a generic base damage that scales with level. | |||
*Resistance, Defense, and other buffs/debuffs are percentages in decimal format (50% = 0.50). | |||
==Advanced Power Modification and Creation:== | |||
The world of COH is now your sandbox, but if you desire to maintain a similar balance philosophy as the original developers used, the guidelines below will help to do so. | |||
===Modifying Accuracy and ToHit=== | |||
Accuracy is the multiplier to the ToHit attribute in the equation to determine final hit chance. You may place any integer here, but are limited to a final result of min 0.05, max 0.95 as the result is clamped to those values. | |||
Hit chance equation for players: | |||
<nowiki> | |||
(minmax((kCur.Accuracy char>*(1+kStr.Accuracy char>))*minmax((kCur.ToHit char> + kStr.ToHit char> - (kCur.Defense target> + kStr.Defense target>)) 0.05, 0.95) 0.05, 0.95) | |||
</nowiki> | |||
Where: | |||
*kCur.Accuracy = Power accuracy | |||
*kStr.Accuracy = accuracy mods from (de)buffs | |||
**For critters this includes bonuses from rank and level adjustments | |||
*kCur.ToHit = base ToHit for the entity type | |||
**Critter v. Player = 0.50 | |||
**Player v Player = 0.50 | |||
**Player v. Critter = 0.75 | |||
*kStr.ToHit = ToHit mods from (de)buffs | |||
*kCur.Defense = target defense | |||
*kStr.Defense = defense mods from (de)buffs | |||
===Modifying Endurance Costs=== | |||
Endurance cost is how much absolute Endurance is drained when the power is cast. It is a function of Damage and Area (for damage powers) or a function of Control Effect and Duration: | |||
:Endurance Cost for Damage powers | |||
<nowiki> | |||
(Scale*10*((1+(Radius*0.15))-(((Radius/6)*0.011)/5)*(360-Arc)))*0.8</nowiki> | |||
:<nowiki>*Rule of thumb: Double endurance cost or halve damage for each 20 points of Radius.</nowiki> | |||
:Endurance Cost for Control powers | |||
<nowiki> | |||
Duration*Strength(%)*Multiplier</nowiki> | |||
{| class="wikitable" | |||
!Effect | |||
!Dur | |||
!% | |||
!End | |||
!Multiplier | |||
|- | |||
|Snare | |||
|10 | |||
|0.50 | |||
|7.5 | |||
|1.50 | |||
|- | |||
|Slow | |||
|10 | |||
|0.50 | |||
|8.5 | |||
|1.75 | |||
|- | |||
|Immobilize (100% Snare) | |||
|10 | |||
|1.00 | |||
|15 | |||
|1.50 | |||
|- | |||
|Sleep | |||
|10 | |||
|1.00 | |||
|10 | |||
|1.00 | |||
|- | |||
|Stun (100% Slow) | |||
|10 | |||
|1.00 | |||
|17.5 | |||
|1.75 | |||
|- | |||
|Hold | |||
|10 | |||
|1.00 | |||
|25 | |||
|2.50 | |||
|} | |||
===Modifying Recharge Time=== | |||
RechargeTime is the time it takes before a power can be activated again. It can either be a variable in a function of '''Damage''' and '''AreaFactor''' where '''Scale''' is calculated based on it, or vice versa. | |||
:''Recharge calculation'' | |||
<nowiki> | |||
((((Scale*10)/2)-1.8)/0.8)*((1+(Radius*0.15))-(((Radius/6)*0.011)/5)*(360-Arc))</nowiki> | |||
===Modifying Damage for PVE=== | |||
Damage is an attribute modification that modifies the '''HitPoints''' attribute. It is applied by the game engine as a negative number, however the number that is seen onscreen is the resulting value after a series of calculations that originate with a generic HitPoints table. [Link to modifying HitPoints]. | |||
:''Damage Equation'' | |||
<nowiki> | <nowiki> | ||
@StdResult*Scale</nowiki> | |||
@StdResult = value of the corresponding archetype-specific damage table (Melee_Damage, Melee_TempDamage, Ranged_Damage, or Ranged_TempDamage) at a given level. | |||
https://docs.google.com/spreadsheets/d/1MayhxCH_n0F396ad_cFz2dvqmEydpGUWHKHfeeXKO8A/edit?usp=drivesdk | |||
Scale = the modifier for a given damage type. May be set manually or determined as a result of the '''RechargeTime equation''': | |||
<nowiki> | <nowiki> | ||
(((RechargeTime*0.8+1.8)*2)/((1+(Radius*0.15))-(((Radius/6)*0.011)/5)*(360-Arc)))/10</nowiki> | |||
</nowiki> | |||
===Modifying Damage for PVP=== | |||
Design philosophy for PVP damage is a bit different than for PVE. Rather than basing damage around Recharge and AreaFactor, PVP damage is calculated based on Cast Time and Recharge, then modified by a PVP-specific table. | |||
:''Damage scale equation for PVP'' | |||
<nowiki> | |||
(CastTime*0.7+RechargeTime*0.04+0.4)*AdjustedATDamageMod*DamageType%*(1/3.25)</nowiki> | |||
*Note: DamageType% is used for powers that deal multiple types of Damage and simply multiplies the total Scale by the percentage that the given type accounts for. | |||
{| class="wikitable" | |||
!PVP Damage Modifiers | |||
!Normal damage offset | |||
!Activation Time damage adjustment | |||
!Recharge damage adjustment | |||
!AT Mod damage adjustment | |||
|- | |||
|Tanker | |||
|0.4 | |||
|0.7 | |||
|0.04 | |||
|1.267988141 | |||
|- | |||
|Scrapper | |||
|0.4 | |||
|0.7 | |||
|0.04 | |||
|1.147593307 | |||
|- | |||
|Blaster | |||
|0.4 | |||
|0.7 | |||
|0.04 | |||
|1.229564258 | |||
|- | |||
|Defender | |||
|0.4 | |||
|0.7 | |||
|0.04 | |||
|1.560600789 | |||
|- | |||
|Controller | |||
|0.4 | |||
|0.7 | |||
|0.04 | |||
|1.676678533 | |||
|- | |||
|Brute | |||
|0.4 | |||
|0.7 | |||
|0.04 | |||
|1.352520684 | |||
|- | |||
|Stalker | |||
|0.4 | |||
|0.7 | |||
|0.04 | |||
|1.014390513 | |||
|- | |||
|Corrupter | |||
|0.4 | |||
|0.7 | |||
|0.04 | |||
|1.352520684 | |||
|- | |||
|Dominator | |||
|0.4 | |||
|0.7 | |||
|0.04 | |||
|1.4 | |||
|- | |||
|Mastermind | |||
|0.4 | |||
|0.7 | |||
|0.04 | |||
|1.50901068 | |||
|- | |||
|Kheld | |||
|0.4 | |||
|0.7 | |||
|0.04 | |||
|1.2 | |||
|- | |||
|Veat | |||
|0.4 | |||
|0.7 | |||
|0.04 | |||
|1.014390513 | |||
|- | |||
|Pet | |||
|0.4 | |||
|0.7 | |||
|0.04 | |||
|1 | |||
|} | |||
===Modifying Armor=== | |||
===Modifying (De)Buffs=== | |||
===Modifying HitPoints=== |
Latest revision as of 11:57, 6 July 2022
To edit a power definition ("powerset_name".powers) and apply those edits to a server environment, you need the definition files themselves found in faptastic.7z or the Volume 2 binning setup (Magnet Links) and (https://git.ourodev.com/CoX/i2401-bin-server) respectively, and a server to test the changes on. OuroDev primarily focuses only on Volume 2 servers, though i25p2 data files can be found here: https://git.ourodev.com/score/i25p2-bin-server.
Basic Power Modification:
- Open serverdata/Defs/powers
- Find the appropriate power definitions you want to change .e. (Blaster_Ranged_Archery.powers)
- Open in Notepad++
- CTRL+F for the power you are looking to change
- Scroll down to the attribute(s) that you wish to change.
- Range, Endurance cost, Recharge, etc. are found in the top block with the power name.
Name "Dark_Blast" DisplayName "P369601562" ModesDisallowed kDisable_All, kSynergist_Transform_Mode Type kClick Accuracy 1 AttackTypes kRanged_Attack, kNegative_Energy_Attack EntsAffected kFoe EntsAutoHit kNone Target kFoe Range 80 EnduranceCost 5.2 IdeaCost 0 TravelSuppression 3 InterruptTime 0 TimeToActivate 1 RechargeTime 4 ActivatePeriod 0 EffectArea kCharacter Radius 0 Arc 0 BoostsAllowed kAccuracy_Boost, kDamage_Boost, kRecharge_Boost, kEnduranceDiscount_Boost, kRange_Boost, kDebuff_ToHit_Boost VisualFX "menu\Powers\AnimFX\PlayerPowers\DominatorAssault_DarknessAssault_DarkBlast.PFX" include menu\Powers\AnimFX\PlayerPowers\DominatorAssault_DarknessAssault_DarkBlast.PFX DisplayShortHelp "P4219235673" DisplayHelp "P2499574216" IconName "DarknessAssault_DarkBlast.tga" TimeToConfirm 0 DisplayTargetShortHelp "P2190949330" DisplayTargetHelp "P2735666026"
- Damage, secondary effects, heals, defense, resistances etc. are located in "AttribMod" blocks for those specific effects.
AttribMod { Name "Damage" Table "Ranged_Damage" Aspect kAbs Attrib knegative_Energy Target kTarget Scale 1 Type kMagnitude AllowStrength kTrue AllowResistance kTrue Delay 0 Duration 0 Magnitude 1 Period 0 Chance 1.00 NearGround kFalse CancelOnMiss kFalse DisplayAttackerHit "P1568870839" DisplayVictimHit "P4203961982" StackType kStack Requires enttype target> critter eq }
- 6. Find the aspect that you wish to change and edit the integer or string to the desired value.
- 7. Save the file.
- 8. Run mapserver.exe. As long as you have not changed any geos, the executable should recognize the change in the definition file and re-bin powers.bin.
- 9. Test your change--preferably using a different server--by copying your new powers.bin to data/bin and data/server/bin.
Notes:
- All times (Duration, Recharge, Activation, Period, etc.) are in seconds.
- Damage and Heal are scale values that get multiplied by archetype-specific modifiers and a generic base damage that scales with level.
- Resistance, Defense, and other buffs/debuffs are percentages in decimal format (50% = 0.50).
Advanced Power Modification and Creation:
The world of COH is now your sandbox, but if you desire to maintain a similar balance philosophy as the original developers used, the guidelines below will help to do so.
Modifying Accuracy and ToHit
Accuracy is the multiplier to the ToHit attribute in the equation to determine final hit chance. You may place any integer here, but are limited to a final result of min 0.05, max 0.95 as the result is clamped to those values.
Hit chance equation for players:
(minmax((kCur.Accuracy char>*(1+kStr.Accuracy char>))*minmax((kCur.ToHit char> + kStr.ToHit char> - (kCur.Defense target> + kStr.Defense target>)) 0.05, 0.95) 0.05, 0.95)
Where:
- kCur.Accuracy = Power accuracy
- kStr.Accuracy = accuracy mods from (de)buffs
- For critters this includes bonuses from rank and level adjustments
- kCur.ToHit = base ToHit for the entity type
- Critter v. Player = 0.50
- Player v Player = 0.50
- Player v. Critter = 0.75
- kStr.ToHit = ToHit mods from (de)buffs
- kCur.Defense = target defense
- kStr.Defense = defense mods from (de)buffs
Modifying Endurance Costs
Endurance cost is how much absolute Endurance is drained when the power is cast. It is a function of Damage and Area (for damage powers) or a function of Control Effect and Duration:
- Endurance Cost for Damage powers
(Scale*10*((1+(Radius*0.15))-(((Radius/6)*0.011)/5)*(360-Arc)))*0.8
- *Rule of thumb: Double endurance cost or halve damage for each 20 points of Radius.
- Endurance Cost for Control powers
Duration*Strength(%)*Multiplier
Effect | Dur | % | End | Multiplier |
---|---|---|---|---|
Snare | 10 | 0.50 | 7.5 | 1.50 |
Slow | 10 | 0.50 | 8.5 | 1.75 |
Immobilize (100% Snare) | 10 | 1.00 | 15 | 1.50 |
Sleep | 10 | 1.00 | 10 | 1.00 |
Stun (100% Slow) | 10 | 1.00 | 17.5 | 1.75 |
Hold | 10 | 1.00 | 25 | 2.50 |
Modifying Recharge Time
RechargeTime is the time it takes before a power can be activated again. It can either be a variable in a function of Damage and AreaFactor where Scale is calculated based on it, or vice versa.
- Recharge calculation
((((Scale*10)/2)-1.8)/0.8)*((1+(Radius*0.15))-(((Radius/6)*0.011)/5)*(360-Arc))
Modifying Damage for PVE
Damage is an attribute modification that modifies the HitPoints attribute. It is applied by the game engine as a negative number, however the number that is seen onscreen is the resulting value after a series of calculations that originate with a generic HitPoints table. [Link to modifying HitPoints].
- Damage Equation
@StdResult*Scale
@StdResult = value of the corresponding archetype-specific damage table (Melee_Damage, Melee_TempDamage, Ranged_Damage, or Ranged_TempDamage) at a given level.
Scale = the modifier for a given damage type. May be set manually or determined as a result of the RechargeTime equation:
(((RechargeTime*0.8+1.8)*2)/((1+(Radius*0.15))-(((Radius/6)*0.011)/5)*(360-Arc)))/10
Modifying Damage for PVP
Design philosophy for PVP damage is a bit different than for PVE. Rather than basing damage around Recharge and AreaFactor, PVP damage is calculated based on Cast Time and Recharge, then modified by a PVP-specific table.
- Damage scale equation for PVP
(CastTime*0.7+RechargeTime*0.04+0.4)*AdjustedATDamageMod*DamageType%*(1/3.25)
- Note: DamageType% is used for powers that deal multiple types of Damage and simply multiplies the total Scale by the percentage that the given type accounts for.
PVP Damage Modifiers | Normal damage offset | Activation Time damage adjustment | Recharge damage adjustment | AT Mod damage adjustment |
---|---|---|---|---|
Tanker | 0.4 | 0.7 | 0.04 | 1.267988141 |
Scrapper | 0.4 | 0.7 | 0.04 | 1.147593307 |
Blaster | 0.4 | 0.7 | 0.04 | 1.229564258 |
Defender | 0.4 | 0.7 | 0.04 | 1.560600789 |
Controller | 0.4 | 0.7 | 0.04 | 1.676678533 |
Brute | 0.4 | 0.7 | 0.04 | 1.352520684 |
Stalker | 0.4 | 0.7 | 0.04 | 1.014390513 |
Corrupter | 0.4 | 0.7 | 0.04 | 1.352520684 |
Dominator | 0.4 | 0.7 | 0.04 | 1.4 |
Mastermind | 0.4 | 0.7 | 0.04 | 1.50901068 |
Kheld | 0.4 | 0.7 | 0.04 | 1.2 |
Veat | 0.4 | 0.7 | 0.04 | 1.014390513 |
Pet | 0.4 | 0.7 | 0.04 | 1 |