* [Skills] Exponential Decay Skill Up Formula
Added an exponential decay skill up formula option.
The current, linear, formula results in negative chances to skill up, which
have been mitigated via a multiplier and minimum of 1%
* [Skills]Configurable Exponential Decay Formala for Skill Up
What this fixes:
The existing formula for determining whether or not to skill up could result
in negative chances, and made an assumption around the number 252.
This would ultimately result in an override that would set the chance to 1.
My fix:
I created 2 new rules:
Character:SkillUpMaximumChancePercentage
Character:SkillUpMinimumChancePercentage
I changed the forumla to:
chance = ((max - min + skill_modification) * (.99^skill)) + min
This results in an exponential decay that starts at skill-modified maximum
and approaches minimum.
I decided that max-min+skill_modification should never be less than min
I also decided to continue to apply the Character:SkillUpModifier rule
post-calculation. I do not really think this is necessary anymore, given
this new formula, but we can discuss removing it.
I chose 25 and 2 as default maximum and minimum based on feel.
Related method signature fix:
Client::mod_increase_skill_chance was changed to return a double and
accept a double as an input for chance. This matches the actual data types
provided while calling the method and eliminates some type coersion and
resultant truncation. Right now, this method doesn't do anything, but in the
future we could implement skill-specific training dummies that accelerate
skill ups. I deduce that this is the purpose of this method call.
* [Skills]Configurable Exponential Decay Formula for Skill Up
What this fixes:
The existing formula for determining whether or not to skill up could result
in negative chances, and made an assumption around the number 252.
This would ultimately result in an override that would set the chance to 1.
My fix:
I created 2 new rules:
Character:SkillUpMaximumChancePercentage
Character:SkillUpMinimumChancePercentage
I changed the forumla to:
chance = ((max - min + skill_modification) * (.99^skill)) + min
This results in an exponential decay that starts at skill-modified maximum
and approaches minimum.
I decided that max-min+skill_modification should never be less than min
I also decided to continue to apply the Character:SkillUpModifier rule
post-calculation. I do not really think this is necessary anymore, given
this new formula, but we can discuss removing it.
I chose 25 and 2 as default maximum and minimum based on feel.
Related method signature fix:
Client::mod_increase_skill_chance was changed to return a double and
accept a double as an input for chance. This matches the actual data types
provided while calling the method and eliminates some type coersion and
resultant truncation. Right now, this method doesn't do anything, but in the
future we could implement skill-specific training dummies that accelerate
skill ups. I deduce that this is the purpose of this method call.
* fixup! [Skills]Configurable Exponential Decay Formula for Skill Up
* fixup! [Skills]Configurable Exponential Decay Formula for Skill Up
* test
* complete
* Update effects.cpp
* Update spells.cpp
* Update effects.cpp
* [Spells] Support for bards using Disciplines while casting or /melody.
Support for spell field 'cast not standing' not allow casting from divine aura
* [Spells] Support for bards using Disciplines while casting or /melody.
DA bypass logic for spells with field 'cast_not_standing'
* updates
* stun and mez bypass
* Update spdat.cpp
* Update spdat.cpp
* Update spells.cpp
* start of rework
* reworked v2 no timer
* fix
* more mechanics
* Update pets.cpp
* move to pet.cpp
* [Spells] Updates and fixes to Target Locked Pets
* [Spells] Updates and fixes to Target Locked Pets
* [Commands] Cleanup #who Command.
- Cleanup messages and logic.
- Add GetAccountStatusMap() and GetAccountStatusName() helpers for account status stuff.
- Use Chat::Who instead of Chat::Magenta so you can more easily see saylinks.
- Add a summon saylink to the list of saylinks so you can summon the player.
* New line.
- Disallows multiple augments via #augmentitem or otherwise.
- Added ItemInstance::ContainsAugmentByID(item_id) helper method for finding an augment in an item instance.
* Change default expansion values for ALL to -1 from 0
* Adjust content_filter_criteria
* Refactor content filtering logic
* Allow flag strings to also just be empty instead of null
* Formatting
* Editor oops
Added 1 rule per class that defines tracking distance multiplier for that class
Kept the defaults of 12 for ranger, 10 for druid, and 7 for bard
Created 1 method for determining class tracking distance multiplier
Created 1 method for determining if a class can track, based on multiplier
Updated tracking logic to use these methods to determine whether a tracking
packet should and can be sent or not.
- Cleanup messages and logic.
- Adds GetGuildNameByID, GetGuildRankName, GetGuildIDByCharacterID, and IsCharacterInGuild helper methods for guild stuff.
- Convert #guild info message to a popup display to tidy it up and make it more legible.
* start
* working
* Update perl_mob.cpp
* updates
* Update perl_mob.cpp
* illusion behavior
* rework start
* fix later
* Update mob.cpp
* rework
* updates
* Update mob.cpp
* update
* gm command updates
* updates
* Update CMakeLists.txt
* [Features] Appearance Effects will now be sent to clients upon zone in. GM commands.
remove debugs
* [Features] Appearance Effects will now be sent to clients upon zone in. GM commands.
perl fix
* [Features] Appearance Effects will now be sent to clients upon zone in. GM commands.
space fix
* [Features] Appearance Effects will now be sent to clients upon zone in. GM commands.
minor fix
* Update CMakeLists.txt
* [Features] Appearance Effects will now be sent to clients upon zone in. GM commands.
cleaned up some inconsistency
* [Features] Appearance Effects will now be sent to clients upon zone in. GM commands.
- Invisibility vs. Undead and Invisibility vs. Animals were not breaking charm.
- Add Invisibility enumerator.
- Add special identifier for Invisibility vs. Undead and Invisibility vs. Animals.
* [Spells] SPA 310 SE_ReduceReuseTimer will now work on spell recast time
[Spells] SPA 310 SE_ReduceReuseTimer will now work on spell recast time
* [Spells] SPA 310 SE_ReduceReuseTimer will now work on spell recast time
[Spells] SPA 310 SE_ReduceReuseTimer will now work on spell recast time
* start
* bind sight fixed
* Update spdat.h
* Update spells.cpp
* Search or jump to… Pull requests Issues Marketplace Explore @KayenEQ EQEmu / Server Public 60 338 290 Code Issues 106 Pull requests 11 Actions Projects 1 Wiki Security Insights [Bug Fix] Bind Sight will now function properly #1825 Open KayenEQ wants to merge 4 commits into EQEmu:master from KayenEQ:bindsightfix2 Open [Bug Fix] Bind Sight will now function properly
- Cleanup messages and logic.
- Add RULE_INT(Zone, PEQZoneHPRatio, 75, "Required HP Ratio to use #peqzone")
- Modify #peqzone Timer rule to allow it to be disabled.
* [Cleanup] Make use of AccountStatus constants wherever status is checked or used.
- Cleanup all instances of SendEmoteMessage.
- Cleanup all instances of SendEmoteMessageRaw.
- Cleanup all instances of MessageStatus.
- Convert Quest API method defaults to use constants.
* Cleanup constant names.
* [Commands] Cleanup #stun Command.
- Cleanup message.
- Add ConvertSecondsToTime() to string_util.h and convert Quest API Methods to use helper.
* Add days to ConvertSecondsToTime() and cleanup logic.
* Cleanup.
* Typo.
* Cleanup.
* Cleanup.
* [Commands] Cleanup #zonelock Command.
- Add support for Zone IDs.
- Cleanup messages and display.
- Fix dangling pointer in ZoneLongName() helper method so name is displayed properly.
* Add account status enum.
* Typo.
* Typo.
* Convert list to constants.
* Cleanup.
* Update command.cpp
* Fix compile.
* Sanitize bad words in server names
* Add config options and enforcement for dev/test servers and servers starting with a special character
* Refine bad word logic
* Add installer to dev/test servers
* Change server prefixes
* Special char prefix
* Formatting
* Remove multi words
* Add server types enum
* Add error constants
* Remove sanitize from world level
* Use strn0cpy
- Add RULE_BOOL(Combat, ArcheryConsumesAmmo, true, "Set to false to disable Archery Ammo Consumption")
- Add RULE_BOOL(Combat, ThrowingConsumesAmmo, true, "Set to false to disable Throwing Ammo Consumption")
* Rules to negate /tgb, /autofire, and /melody
Created new rules to negate server and client side effects of commands: /tgb, /autofire, and /melody. These commands are enabled by default and can be disabled to enforce a classic EQ experience if using progression style play for example.
Rules
--------------
RULE_BOOL(Character, EnableBardMelody, true, "Enable Bard /melody by default, to disable change to false for a classic experience.")
RULE_BOOL(Character, EnableRangerAutoFire, true, "Enable Ranger /autofire by default, to disable change to false for a classic experience.")
RULE_BOOL(Character, EnableTGB, true, "Enable /tgb (Target Group Buff) by default, to disable change to false for a classic experience.")
* Removed sql query for rules per Mackal recommendation.