Browse Source

Fix incorrect description for `FixAmmoSell`

Previous description understated the effects of the `allowNegativeDosh`
flag. Effects are much more common and significat that previously
thought because of game behavior on filling ammo for one or all weapons.
master
Anton Tarasenko 5 years ago
parent
commit
a5e36dc85a
  1. 25
      config/Acedia.ini
  2. 26
      sources/Features/FixAmmoSelling/FixAmmoSelling.uc

25
config/Acedia.ini

@ -51,16 +51,21 @@ allowSellValueIncrease=true
autoEnable=true autoEnable=true
; Due to how this fix works, players with level below 6 get charged less ; Due to how this fix works, players with level below 6 get charged less
; than necessary by the shop and this fix must take the rest of ; than necessary by the shop and this fix must take the rest of
; the cost by itself. While it's _highly_ unreliable and can only provide ; the cost by itself.
; a minuscule benefit this can potentially be abused by cheaters. ; The problem is, due to how ammo purchase is coded, low-level (<6 lvl)
; To decrease the amount of value they can get from it, this fix can be ; players can actually buy more ammo for "fixed" weapons than they can afford
; allowed to decrease players' money into negative values. ; by filling ammo for one or all weapons.
; The trade off is a small chance that there is a bug in this fix and ; Setting this flag to 'true' will allow us to still take full cost
; an unlucky circumstances can lead to regular players ; from them, putting them in "debt" (having negative dosh amount).
; to have negative dosh values. ; If you don't want to have players with negative dosh values on your server
; Both situations are highly unlikely and whichever one you chose probably ; as a side-effect of this fix, then leave this flag as 'false',
; doesn't matter, but the option is there. ; letting low level players buy ammo cheaper
allowNegativeDosh=true ; (but not cheaper than lvl6 could).
; NOTE: this issue doesn't affect level 6 players.
; NOTE #2: this fix does give players below level 6 some
; technical advantage compared to vanilla game, but this advantage
; cannot exceed benefits of having level 6.
allowNegativeDosh=false
[Acedia.FixInventoryAbuse] [Acedia.FixInventoryAbuse]

26
sources/Features/FixAmmoSelling/FixAmmoSelling.uc

@ -89,15 +89,21 @@ class FixAmmoSelling extends Feature;
// Due to how this fix works, players with level below 6 get charged less // Due to how this fix works, players with level below 6 get charged less
// than necessary by the shop and this fix must take the rest of // than necessary by the shop and this fix must take the rest of
// the cost by itself. While for unreliable and for minuscule benefit, // the cost by itself.
// this can potentially be abused by cheaters. // The problem is, due to how ammo purchase is coded, low-level (<6 lvl)
// To decrease the amount of value they can get from it, this fix can be // players can actually buy more ammo for "fixed" weapons than they can afford
// allowed to decrease players' money into negative values. // by filling ammo for one or all weapons.
// The trade off is a small chance that a some bug in this fix and // Setting this flag to 'true' will allow us to still take full cost
// an unlucky circumstances can lead to regular players // from them, putting them in "debt" (having negative dosh amount).
// having negative dosh values. // If you don't want to have players with negative dosh values on your server
// Both situations are highly unlikely, but the option is there. // as a side-effect of this fix, then leave this flag as 'false',
var private config const bool allowNegativeDosh; // letting low level players buy ammo cheaper
// (but not cheaper than lvl6 could).
// NOTE: this issue doesn't affect level 6 players.
// NOTE #2: this fix does give players below level 6 some
// technical advantage compared to vanilla game, but this advantage
// cannot exceed benefits of having level 6.
var private config const bool allowNegativeDosh;
// This structure records what classes of weapons can be abused // This structure records what classes of weapons can be abused
// and what pickup class we should use to fix the exploit. // and what pickup class we should use to fix the exploit.
@ -373,7 +379,7 @@ event Tick(float delta)
defaultproperties defaultproperties
{ {
allowNegativeDosh = true; allowNegativeDosh = false
rules(0)=(abusableWeapon=class'KFMod.Crossbow',pickupReplacement=class'FixAmmoSellingClass_CrossbowPickup') rules(0)=(abusableWeapon=class'KFMod.Crossbow',pickupReplacement=class'FixAmmoSellingClass_CrossbowPickup')
rules(1)=(abusableWeapon=class'KFMod.PipeBombExplosive',pickupReplacement=class'FixAmmoSellingClass_PipeBombPickup') rules(1)=(abusableWeapon=class'KFMod.PipeBombExplosive',pickupReplacement=class'FixAmmoSellingClass_PipeBombPickup')
rules(2)=(abusableWeapon=class'KFMod.M79GrenadeLauncher',pickupReplacement=class'FixAmmoSellingClass_M79Pickup') rules(2)=(abusableWeapon=class'KFMod.M79GrenadeLauncher',pickupReplacement=class'FixAmmoSellingClass_M79Pickup')