mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-12 01:11:29 +00:00
Combat Revamp -- BREAKING CHANGES -- see changelog
Changelog updated for combat revamp
This commit is contained in:
parent
8f21b01b7e
commit
f614c35f6e
@ -1,5 +1,18 @@
|
||||
EQEMu Changelog (Started on Sept 24, 2003 15:50)
|
||||
-------------------------------------------------------
|
||||
== 01/17/2017 ==
|
||||
Mackal: Combat Revamp
|
||||
- This change brings melee combat into line with how combat is done on live.
|
||||
- This correctly applies the PC damage tables and corrects stacking order of many spells
|
||||
- Given the scope of what had to be rewritten, it was not feasible to preserve the old combat system.
|
||||
This means you will likely have to rebalance your server, which sucks, but this is very
|
||||
accurate so shouldn't require any more changes, at least none that would cause you to have
|
||||
to rebalance your server again.
|
||||
- For rebalancing, I would recommend running the optional SQL and tweaking from there.
|
||||
- To help with rebalancing there is a simulator included at utils/combat-sim.
|
||||
- You can enter the mitigation or offense values you would like to balance around (#showstats will show you them)
|
||||
a 1 on the sim is min damage 20 is max.
|
||||
- Quick recommendations for best ways to improve PC DPS, give them some worn (or AA) SE_DamageModifier and/or SE_MinDamageModifier
|
||||
== 12/03/2016 ==
|
||||
Uleat: Added hack detection to trade code
|
||||
- If illegal items are found in trade slots when the 'trade' button is clicked, the trade is cancelled and a message is sent to the offending player
|
||||
@ -28,7 +41,7 @@ take into account that rogue was sneaking. Now sneaking rogues can see full
|
||||
inventory on merchants (well, unless an item requires a + faction value).
|
||||
|
||||
== 09/12/2016 ==
|
||||
Akkadius: Massive overhaul of the update system and EQEmu Server management utility framework
|
||||
Akkadius: Massive overhaul of the update system and EQEmu Server management utility framework
|
||||
(known as eqemu_update.pl) now known as eqemu_server.pl
|
||||
- eqemu_server.pl is now a general EQEmu Server management utiltiy framework that can be used
|
||||
to extend to many purposes. It's main purpose is to simplify server management
|
||||
@ -49,7 +62,7 @@ Akkadius: Massive overhaul of the update system and EQEmu Server management util
|
||||
- Regular bots database schema changes now happen automatically similarily to the above
|
||||
- Database checks can also be ran manually via the script menu
|
||||
- CLI Arguments
|
||||
- Arguments passed to eqemu_server.pl can execute the same name-based operations that
|
||||
- Arguments passed to eqemu_server.pl can execute the same name-based operations that
|
||||
are present in the interactive menu
|
||||
- Example: "perl eqemu_server.pl opcodes" will download opcodes
|
||||
- Example: "perl eqemu_server.pl backup_player_tables" will backup and export player tables
|
||||
@ -64,7 +77,7 @@ Akkadius: Massive overhaul of the update system and EQEmu Server management util
|
||||
- server_start_dev.sh
|
||||
- server_start.sh
|
||||
- server_status.sh
|
||||
- server_stop.sh
|
||||
- server_stop.sh
|
||||
- Usage analytics
|
||||
- eqemu_server.pl now collects usage analytics, this is very helpful for our developers
|
||||
- Example: We can see how many installs have been performed:
|
||||
@ -76,10 +89,10 @@ Akkadius: Massive overhaul of the update system and EQEmu Server management util
|
||||
- 'New Server' Utility
|
||||
- Running 'new_server' from the main menu or 'perl eqemu_server.pl new_server' while in
|
||||
a completely new folder with just the script present, will allow a server operator
|
||||
to initiate a full clean PEQ install in that folder. Pulling down all assets and
|
||||
installing a PEQ database with the name the server operator gives the prompts in the
|
||||
to initiate a full clean PEQ install in that folder. Pulling down all assets and
|
||||
installing a PEQ database with the name the server operator gives the prompts in the
|
||||
script
|
||||
|
||||
|
||||
== 09/10/2016 ==
|
||||
noudess: Task system experience based on a % of a level did not take into
|
||||
account the hell levels rule. Now it does.
|
||||
@ -133,7 +146,7 @@ Kinglykrab: Implemented optional avoidance cap rules.
|
||||
- Rule Names:
|
||||
- Character:EnableAvoidanceCap (default is false)
|
||||
- Character:AvoidanceCap (default is 750, beyond 1,000 seems to make characters dodge all attacks)
|
||||
|
||||
|
||||
== 08/02/2016 ==
|
||||
Uleat: Changed 'SendZoneSpawnsBulk' behavior to use near/far criteria (live-like) when sending packets.
|
||||
- Zone-to-Zone client loading will see a small decrease in time (less than 10~15%)
|
||||
@ -171,7 +184,7 @@ mackal: Fix up the SpellBuff struct
|
||||
Uleat: Important fix for mob pathing
|
||||
- This should fix failed pathing issues (and high cpu usage for zone.exe) for mobs in affect zones
|
||||
- Changed variable 'gridno' type from int16 to int32 to reflect actual return value of fetch (values do exceed 32767 aka int16.max)
|
||||
- Precision loss from int32 to int16 conversion was causing grid id to be changed to quest controlled movement in cases where (gridno & 0x8000 == true)
|
||||
- Precision loss from int32 to int16 conversion was causing grid id to be changed to quest controlled movement in cases where (gridno & 0x8000 == true)
|
||||
|
||||
== 06/28/2016 ==
|
||||
Noudess: Resurrection effects now block certain buffs like on live.
|
||||
@ -240,7 +253,7 @@ Uleat: Moved database query code out of bot.cpp and into the new BotDatabase cla
|
||||
|
||||
== 03/25/2016 ==
|
||||
Uleat: Fix for heal rotation 'Stack Overflow' error
|
||||
Kayen: Defensive procs will now only proc once per attack round (instead of every attack chance).
|
||||
Kayen: Defensive procs will now only proc once per attack round (instead of every attack chance).
|
||||
Live like modifier added that decreases defensive proc chance if you are higher level then your attacker.
|
||||
|
||||
== 03/24/2016 ==
|
||||
@ -283,7 +296,7 @@ Kinglykrab: Modified #flag so you can refresh your target's account status (GM s
|
||||
- Just target the person whose flag you want to refresh and type #flag.
|
||||
Uleat: Added itemlink functionality to the #summonitem command. Current use is limited to extracting the item id from the link.
|
||||
- Invoking by item link '#summonitem Arrow' produces the same result as by item id '#summonitem 8005'
|
||||
|
||||
|
||||
== 01/12/2016 ==
|
||||
Athrogate: Adding ClearCompassMark() to Lua.
|
||||
- Lua didn't have ClearCompassMark(). Perl already had this.
|
||||
@ -313,7 +326,7 @@ Kinglykrab: Added GetInstanceTimer() to Perl and Lua.
|
||||
- Note: If you do not provide an instance id in the method it defaults to instance id 0 and returns 0 for time remaining.
|
||||
- Added UpdateZoneHeader(type, value) to Perl and Lua.
|
||||
- Note: UpdateZoneHeader allows you to manipulate fog color, fog density, and many other zone header settings on the fly in Perl and Lua.
|
||||
|
||||
|
||||
== 12/21/2015 ==
|
||||
Natedog: Updated item table fields and added a few missing fields for evolving items
|
||||
-DO NOT implement Heirloom items till the inventory code is fixed to allow placing NO DROP
|
||||
@ -322,7 +335,7 @@ Natedog: Updated item table fields and added a few missing fields for evolving i
|
||||
100% 2HSlashing (Max 50) - can only increase 2hslash by 50 MAX! (item field located though)
|
||||
Kinglykrab: Added GetMeleeMitigation() for NPCs and Clients in Perl and Lua.
|
||||
- This allows you to check total item, spell, and AA melee mitigation contribution.
|
||||
|
||||
|
||||
== 12/19/2015 ==
|
||||
Kinglykrab: Added many methods to Perl and Lua, list below:
|
||||
- SeeInvisible()
|
||||
@ -344,7 +357,7 @@ Kinglykrab: Added many methods to Perl and Lua, list below:
|
||||
- HasPet()
|
||||
- IsSilenced()
|
||||
- IsAmnesiad()
|
||||
|
||||
|
||||
== 12/16/2015 ==
|
||||
Noudess: Repaired issue with Bind Wounds on someone else. Message was not coming out on client (hold still) and a bind wounds on someone already binding their wounds would interrupt their bind and make them stand. Also removed some duplicate messaging.
|
||||
|
||||
@ -353,7 +366,7 @@ Kinglykrab: Added IsBlind() and IsFeared() functionality to Perl and Lua.
|
||||
- Note: Both methods are Mob methods and may be used on NPCs or PCs.
|
||||
Natedog: Added Discipline functions, UpdateInstanceTimer function, and UnmemSpellBySpellID to lua and perl
|
||||
-Examples: http://wiki.eqemulator.org/i?M=Pastebin&Paste=BJ0ygmNM
|
||||
|
||||
|
||||
== 12/07/2015 ==
|
||||
Uleat: Command aliases are no longer handled through the command_add() function.
|
||||
- To add a command alias, edit the database table `command_settings` - here, you will find three columns: `command`, `access` and `aliases`
|
||||
@ -366,7 +379,7 @@ Uleat: Command aliases are no longer handled through the command_add() function.
|
||||
- If you need need more name space for aliases, simply edit the `command_settings` table and increase the size of the `aliases` column
|
||||
- The old `commands` table has been renamed to `commands_old` for reference
|
||||
- All of the current 'standard' commands have been added to the new `command_settings` table
|
||||
|
||||
|
||||
- YOU WILL NEED TO VERIFY/IMPORT OLD ACCESS VALUES AS THIS CHANGE REVERTS ALL COMMAND ACCESS VALUES TO THEIR PEQDB DEFAULTS
|
||||
|
||||
== 11/30/2015 ==
|
||||
@ -388,7 +401,7 @@ Akkadius: Performance boost (exponential) - Adjusted default idle cast check tim
|
||||
- Database version 9089 will take care of this update automatically only if you used the default values
|
||||
- The CPU cost of NPC's checking the entire entity list to cast beneficial spells (Heals/Buffs) becomes extremely high when higher NPC count zones exist (Based off of process profiling)
|
||||
- Distance checks for every single NPC to every single other NPC who are casting beneficial spells occur every .5 - 2 seconds unless npc_spells dictates other values, which most of the time it does not
|
||||
- Zones that once fluctuated from 1-8% CPU with no activity (Idle but players present) now idle at .5% based on my testings due
|
||||
- Zones that once fluctuated from 1-8% CPU with no activity (Idle but players present) now idle at .5% based on my testings due
|
||||
to this change in conjunction with the past few performance commits, these are zones that have 600-800 NPC's in them
|
||||
- These values normally are overidden by the spells table (npc_spells), fields (idle_no_sp_recast_min, idle_no_sp_recast_max)
|
||||
|
||||
@ -396,7 +409,7 @@ Akkadius: Performance boost (exponential) - Adjusted default idle cast check tim
|
||||
Akkadius: Made many performance optimizing oriented code changes in the source
|
||||
- Added Rate limit the rate in which signals are processed for NPC's (.5 seconds instead of .01 seconds)
|
||||
Akkadius: Added Perl Export Settings which should heavily reduce the Perl footprint
|
||||
- Normally when any sub EVENT_ gets triggered, all kinds of variables have to get exported every single time an event is triggered and
|
||||
- Normally when any sub EVENT_ gets triggered, all kinds of variables have to get exported every single time an event is triggered and
|
||||
this can make Perl very slow when events are triggered constantly
|
||||
- The two most taxing variable exports are the item variables ($itemcount{} $hasitem{} $oncursor{}) and qglobals ($qglobals{})
|
||||
- qglobals can pose to be an issue quickly when global qglobals build up, it is highly recommend to use the GetGlobal() and SetGlobal()
|
||||
@ -424,7 +437,7 @@ Akkadius: Added Perl Export Settings which should heavily reduce the Perl footpr
|
||||
| 4 | EVENT_ATTACK | 0 | 1 | 1 | 0 | 1 |
|
||||
| 5 | EVENT_COMBAT | 1 | 1 | 1 | 0 | 1 |
|
||||
+----------+-----------------------------------------+-----------------+------------+-------------+-------------+--------------+
|
||||
|
||||
|
||||
- If a change is made to this table while the server is live and running, you can hot reload all zone process settings via:
|
||||
#reloadperlexportsettings
|
||||
- For those who wonder what "exports" are, they are reference to variables that are made available at runtime of the sub event, such as:
|
||||
@ -433,7 +446,7 @@ Akkadius: Added Perl Export Settings which should heavily reduce the Perl footpr
|
||||
(export_zone) : $zoneid, $instanceid, $zoneln etc. https://github.com/EQEmu/Server/blob/master/zone/embparser.cpp#L1083
|
||||
(export_mob) : $x, $y, $z, $h, $hpratio etc. https://github.com/EQEmu/Server/blob/master/zone/embparser.cpp#L1032
|
||||
(export_event) : (event specific) IE: EVENT_SAY ($text) https://github.com/EQEmu/Server/blob/master/zone/embparser.cpp#L1141
|
||||
|
||||
|
||||
== 10/16/2015 ==
|
||||
Uleat: Added command '#bot clearfollowdistance [ <target> | spawned | all ]' to coincide with the activation of the load/save feature for follow_distance
|
||||
|
||||
@ -465,7 +478,7 @@ rules:
|
||||
commands:
|
||||
'#invsnapshot' - Takes a snapshot of target client's inventory (feature active or inactive)
|
||||
'#clearinvsnapshots [use rule]' - Clears snapshot entries based on bool argument ([true] - honors the 'InvSnapshotHistoryD' rule, [false] - erases all)
|
||||
|
||||
|
||||
== 08/02/2015 ==
|
||||
Shendare: VS2013 query StringFormat glitches when "%f" is passed for the int GetRunSpeed().
|
||||
Shendare: In CreateNewNPCCommand(), the npc_type_id and spawngroupid are created in the database, but never set in the spawn class, so later it can't delete them with #npcspawn remove or #npcspawn delete.
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user