2007

EverQuest Emulator Server code changes for year 2007

12/06/2007

  • KLS Fixed logic on duration 7 formula.. again.

12/02/2007

  • KLS Reworked buff duration formula 7 calculations.

  • KLS (Cripp)Added (Missing?) pathing z rules.

11/30/2007

  • FatherNitwit Reworked pathing z code to be rules based instead of built time options.

11/29/2007

  • FatherNitwit (Derision) Fix BestZ pathing cleanup code top stop hopping.

  • FatherNitwit (Derision) New fix-z-on-load feature.

11/28/2007

  • Rogean Fixed another no-drop trade hack.

11/26/2007

  • KLS Dynamic zones will now not attempt to boot up more than one instance of the zone if two or more clients request it in quick succession.

  • KLS Fixed: qglobals will now not be exported for npcs that do not have the qglobal flag set in the perl parser.

  • KLS Added a new npc special attack 'H' for immune to aggro, mobs with this set should not aggro no matter what a person does to them.

  • KLS Fixed ATK loading in item bonuses

  • KLS AEDuration calculation will now take target type into account correctly

  • KLS Player pets should now persist through a teleport spell

  • KLS Players will now be able to target themselves for group spells if they are not in a group

  • KLS Fixed some buff duration oddities.

  • KLS Level should have somewhat less of an impact for players in the resist code.

11/14/2007

  • KLS Swarm pets should be forced to correctly depop after their owner disappears.

  • KLS NPCs should be able to use swarm pets correctly now.

  • KLS #traindisc should no longer learn disciplines over already known disciplines.

  • KLS Added a few more known spell effects to spdat.h, not implemented any yet

  • KLS Rez experience should now only goto regular experience, not AA experience.

11/07/2007

  • KLS Reworked swarm pets a bit

  • KLS Swarm pets should no longer crash zones(I hope)

  • KLS Swarm pets will now gain all their information from the normal pet tables and the spell data, as a result the aa_swarmpets table is now obsolete.

11/06/2007

  • KLS Reverted client timeouts.

  • KLS Fixed NPC HP and Mana Regen not loading from DB for NPCs

11/05/2007

  • WildcardX Fixed a bug that prevented player corpse summoning spells from working on Linux platforms.

11/04/2007

  • WildcardX The spell "Reanimation" will no longer restore any player experience. This is a 0% experience resurrection.

  • WildcardX Corpses moved by a consented player will now remember where it was moved to, even after a zone restart.

  • WildcardX Necromancers and Shadowknights can now summon corpses belonging to other players.

  • WildcardX Corrected a bug that would have allowed Necromancers and Shadownights to summon corpses belonging to non-grouped party members.

11/03/2007

  • WildcardX (Cavedude) Implemented perl wrappers for new quest methods supporting the Shadowrest zone implementation.

  • WildcardX Fixed a bug that prevented a player from experiencing resurrection effects in designated no combat zones.

  • WildcardX Fixed a bug in graveyard system that could leave a player corpse in the database, but without a location.

  • WildcardX Fixed a bug that could prevent the corpse decay timer from expiring because the graveyard timer would reset before.

  • WildcardX Implemented support for the Shadowrest zone. This is configured to be disabled by default.

  • WildcardX Implemented the command #summonburriedplayercorpse.

  • WildcardX Implemented the command #getplayerburriedcorpsecount.

  • WildcardX Implemented the quest function bool summonburriedplayercorpse(int32 char_id, float dest_x, float dest_y, float dest_z, float dest_heading).

  • WildcardX Implemented the quest function int32 getplayerburriedcorpsecount(int32 char_id).

Required SQL: alter table player_corpses add column IsBurried TINYINT(3) NOT NULL default 0; alter table player_corpses add column WasAtGraveyard TINYINT(3) NOT NULL default 0; insert into rule_values values(0, 'Zone:EnableShadowrest', 0);

11/01/2007

  • WildcardX (TheLieka) Bug fix to discontinue player invisibility when the player loots.

  • WildcardX (TheLieka) Bug fix to remove a type from the #npcedit loottable command.

  • WildcardX Implemented corpse graveyard support for all zones. Once a zone is configured for a graveyard, a zone restart is necessary.

  • WildcardX Zone shutdown and restart will result in all player corpses within the zone to be subject to the graveyard corpse timer.

  • WildcardX Implemented the command #setgraveyard [zone name]. This command will create a graveyard for the designated zone based on your target's LOC.

  • WildcardX Implemented the command #deletegraveyard [zone name]. This command will remove the graveyard for the designated zone (does not delete any corpses!).

Required SQL: alter table zone add column graveyard_id float NOT NULL default '0' after safe_z;

DROP TABLE IF EXISTS graveyard; CREATE TABLE graveyard ( id int(11) NOT NULL auto_increment, zone_id int(4) NOT NULL default '0', x float NOT NULL default '0', y float NOT NULL default '0', z float NOT NULL default '0', heading float NOT NULL default '0', PRIMARY KEY (id), UNIQUE KEY zone_id (zone_id) ) ENGINE=InnoDB DEFAULT CHARSET=latin1;

insert into rule_values values(0, 'Zone:GraveyardTimeMS', 1200000);

10/19/2007

  • WildcardX (Bleh) Enhancement to avoid a zone crash by avoiding a null pointer.

  • WildcardX (UrbeIT) Bug fix to allow pet spells to effect players in PVP.

  • WildcardX (UrbeIT) Bug fix to allow players to remain invisible while in PVP.

  • WildcardX (Foin) Bug fix to display the correct pet for Ogre and Iksar beastlords.

  • WildcardX (slowglass) Bug fix to properly update LDoN points.

  • WildcardX (cbodmer) Bug fix to allow the bank change button to properly work.

  • WildcardX (zydria) Bug fix to allow players to meditate while mounted.

  • WildcardX (Cavedude) Enhancement to allow berserkers and rangers the chance to triple attack.

  • WildcardX (Cavedude) Enhancement to quest::movepc method to accept a heading value.

10/17/2007

  • KLS Quick fix to quest::movegrp

10/11/2007

  • KLS Familiars should fall under the pet system instead of their own system now, familiars should act in a much more behaved fashion when it comes to functionality shared with normal pets.

  • KLS Added a network timeout for clients in zone, clients should linkdead from zone when their connection is suddenly severed.

  • KLS (AiliaMorisato) Added some checks for item bonuses, bonuses should not calculate if the item is not equipable.

  • KLS NPCs should now accept signals while engaged in combat.

10/10/2007

  • FatherNitwit Quick fix for Divine Aura on pets exploit (KingMort)

10/09/2007

  • KLS Tweaked my AC system a bit, should get less default defense and the system should be much more lienent overall,

    goal is to allow people to see more of a benefit from having AC.

09/24/2007

  • FatherNitwit (sfisque) Quick adjustment to item fishing probability.

09/07/2007

  • KLS Fixed melee mitigation and tweaks and a small fix to AC.

  • KLS Small changes to the order in the getweapondamage code to make it a little more efficient

  • KLS Added a field that allows you to override a factions innate desire to assist their own faction in battle to the npc_faction table

Required SQL: alter table npc_faction add column ignore_primary_assist tinyint(3) not null default 0;

08/31/2007

  • KLS (gernblan) Added spawn group info to #npcstats

  • KLS (TheLieka) Fix for zone exp modifiers not being used

  • KLS (inkubus) Lull and harmony spells should land on enemy targets and not cause any aggro, still some work to be done on the AE portion.

  • KLS (cbodmer) Pet aggro changed, owner will no longer gain more aggro from proximity than the pet

  • KLS (cbodmer) Support for LDoN style boxes (class 62 + body type 33) implemented

  • KLS The error in acmod() should no longer complain as much.

    Required: Opcode files have changed, be sure to update to the latest .conf files.

08/30/2007

  • KLS Reworked Mob::GetWeaponDamage(), it will now return damage done by any item and NULL and will return a

    value zero or less if we can't hit a mob with said item

  • KLS Applied new GetWeaponDamage() to Attack and Special Attack code

  • KLS Seperated Finishing Blow code to it's own function

  • KLS Spell procs and innate procs should now function once again

  • KLS NPC Weapons have more of an impact on NPC attack code now

  • KLS Some NPC equipped items should correctly add bonuses to NPCs now

  • KLS NPCs should no longer be able to dual wield with two-handed weapons

  • KLS NPC weapons should properly show up if the item model is particularly high

  • KLS Changed NPC_DW_CHANCE in features.h to 100% as default as opposed to the previous 5%

  • KLS Archery will be affected by various crit AA effects and spell bonuses

  • KLS Applied haste and slow modifiers to basic NPC special attacks such as kick and bash.

08/26/2007

  • KLS Fixed a misplaced field in the titanium spawn structure that was causing some spawn display issues on titanium.

08/16/2007

  • KLS Some cleaning up on autofire code

  • KLS Reintroduction of item animation for archery

08/15/2007

  • KLS Fixed an /autofire crash

  • KLS Added some conditions to RangedAttack() for now. Should keep from using ranged attacks when we shouldn't be allowed to attack.

08/14/2007

  • KLS Added /autofire

  • KLS Fixed up SetAttackTimer() calculations a bit, especially when it comes to ranged attacks. Hopefully fewer instances where ranged attacks will be wasted because of the attack timer.

  • KLS Ranged attack crits will now work no matter your chance to hit, also changed the appearances a tiny bit and added a min range check for /autofire.

  • KLS Removed ReadBook packet size checking for now.. it was checking a wrong size and canceling out legitimate book requests

    Make sure to update your .conf files to get /autoattack to work.

08/12/2007

  • KLS A little bit more tinkering with how potions and stacks work.

08/11/2007

  • KLS Fixed stackable potions in the item packet, they should now appear to have 1 charge instead of 0.

  • KLS Added support for stackable items above 20.

  • KLS Fixed forage, it will no longer overwrite slot 30 to create it's item, instead it will push the item onto the cursor like it should.

08/10/2007

  • KLS Fixed a stacking issue and made res effects not count to normal stacking rules.

  • KLS Implemented a few more passive AA effects.

  • KLS Added CanThisClassBlock() for the avoid code

  • KLS Addressed some inconsistancies in the CanThisClass line of functions, GM classes should be able to do everything their base class can now.

08/01/2007

  • FatherNitwit (cavedude) Fix Iksar BL pet appearance.

07/30/2007

  • Rogean Fixed an item dupe exploit.

07/28/2007

  • Rogean Put in checks for No Drop Trading Hacks

07/26/2007

  • KLS Updated AA_Data.sql, still work to be done but should now be more complete than older AA sources.

07/22/2007

  • FatherNitwit Fixed another memory leak in world and zone.

  • KLS Fixed up some message types so they match the client correctly.

07/21/2007

  • Rogean Fixed LDoN Merchant Item Inspect

07/20/2007

  • FatherNitwit (Striat) Fix for typos in perlparser.cpp to fix quest::me and quest::echo.

  • FatherNitwit (Striat) Fix argument type in quest::setguild.

  • FatherNitwit Fixed quest::settime

  • Rogean Fixed up strikethrough a little

  • Rogean Removed ability to proc on a riposte attack

  • Rogean Implimented HoTT (Health of Target's Target) Functionality. This will only work for people with HoTT Built into their interface.

    To get UI Files for a Target Window, see http://www.eqemulator.net/forums/showthread.php?p=135291‚Äč

  • FatherNitwit Fix a few memory leaks.

    Changes to opcode files:

    patch_Titanium.conf: OP_TargetHoTT=0x6a12

    patch_6.2.conf: OP_TargetHoTT=0x3ef6

07/16/2007

  • FatherNitwit (Glather) Fix for mobs showing weapons

  • FatherNitwit (Cbodmer) Notify owner when buffs wear off pets.

6/06/2007

  • KLS (Darkonig) Change to the way tradeskill containers are handled.

  • KLS (Darkonig) Change to item->isStackable() implementation, should let certain items that the client lets stack also stack server-side.

6/01/2007

  • KLS Addressed a memory leak in spell code and a memory leak in NPC destruction code.

4/13/2007

  • KLS Fixed an issue with buff duration inc. that was causing buffs to lose their effects (I hope)

4/08/2007

  • KLS Added support for the skill Frenzy.

  • KLS Various tweaks and changes to some passive AA abilities.

  • KLS Added #traindisc to train disciplines on the target player, #scribespells should no longer memorize disciplines to the spellbook.

  • KLS Fixed an issue with spells that require components that use item ids higher than 32k

  • KLS Fixed an issue with AAs and focus effects that increase buff duration not appearing correctly for clients until they zone.

4/02/2007

  • KLS Implemented number6 inspired item cooldown timers.

  • KLS Added rules: NPC:MinorNPCCorpseDecayTimeMS & NPC:MajorNPCCorpseDecayTimeMS to set the decay time in millisecond of mobs below 55 and greater or equal to 55 respectively

  • KLS Addressed an issue that caused some beneficial spells to generate incorrect aggro amounts.

  • KLS Implemented some more passive PoP AA skills.

  • KLS Fixed an problem with avoidance AAs adding chance to be hit instead of subtracting it.

  • KLS Small change to the way pets and familiars initially aggro, familiars should never aggro now.

  • KLS Fixed an issue where the combat code was checking for warrior triple attack but the skill check would always fail.

  • KLS Critical hits should now be filterable as critical hits.

  • KLS Redid hp and mana calculations based on magelo formulas, should be much more accurate, especially when using AA that increase hp.

  • KLS Made mend skill checks more lienent, shouldn't ever fail after 200 skill, shouldn't ever hurt you after 150

  • KLS Initial implementation of hp balance spell effect.

  • KLS Focus effects that limit max level should now correctly reduce the effect by a percentage if the spell is over the level cap

3/26/2007

  • FatherNitwit Optimized the merchantlist_temp query on boot.

3/14/2007

  • KLS Put in FNW's requested changes to tradeskill combines from the other day that I almost forgot about

  • KLS Tradeskill combines should check for container type now.

3/11/2007

  • KLS Attack() will not set our target unless we have no target now.

  • KLS Tweaked some invis and hide stuff to hopefully catch more situations where it should break correctly.

  • KLS Fixed the spell critical hit ratio to be accurate.

  • KLS Spell Casting Deftness and Quick Buff should now work with spells that have duration formulas.

  • KLS NPCs will no longer be restricted by the number of targets on their AE spells.

  • KLS Spells base_1 will load as a 32 bit signed int instead of a 16 bit signed int, should correct some oddities with certain spells. For example certain summon spells using large item ids.

  • KLS Fixed a tradeskill exploit with tradeskill containers and experimentation.

3/10/2007

  • Rogean Fixed #si and minstatus

3/3/2007

  • FatherNitwit Finally rewrote 'make depend' to properly track dependencies in linux builds

2/22/2007

  • KLS Some more changes to AA system:

  • KLS altadv_vars.cost_inc will now be unsigned to allow your skills to cost less per level

  • KLS Client side aa effects are now loaded from the database once again

  • KLS Updated AA_data.sql to include AAs up to planes of power.

  • KLS Added #refundaa as a way for server GMs to refund a players alt ability points and give them back their points.

  • KLS Implemented limited numbered hits on buffs.

  • KLS Root and charm will now act as partial capable spells.

  • KLS Vampires will act as undead, which is consistant with what the client thinks is undead.

Required SQL: CREATE TABLE aa_effects ( id int(10) unsigned NOT NULL auto_increment, aaid mediumint(8) unsigned NOT NULL default '0', slot tinyint(3) unsigned NOT NULL default '0', effectid mediumint(8) unsigned NOT NULL default '0', base1 mediumint(8) unsigned NOT NULL default '0', base2 mediumint(8) unsigned NOT NULL default '0', PRIMARY KEY (id), UNIQUE KEY NewIndex (aaid,slot) ) TYPE=MyISAM;

Optional SQL: Resource AA_Data.sql

2/18/2007

  • WildcardX Player casted area of effect detrimental spells will not longer have an affect on players not engaged in PvP.

  • WildcardX Fixed spawnlimit setting to control the maximum times a given npc_type can spawn in the same zone.

  • WildcardX (Bleh) Fixed player emote animations.

  • WildcardX Implemented a server-side check of a Client object's target to avoid it being null.

  • WildcardX Fixed a zone crash that could occurr during a monk special attack or a rogue's backstab attack.

  • WildcardX Area of effect beneficial spells will no longer affect non-player characters.

2/16/2007

  • KLS Updating Changelog AA work to be more clear as well as the required SQL.

Required SQL: alter table altadv_vars add column cost_inc tinyint(4) not null default 0;

Optionally: Source in AA_data.sql

2/15/2007

  • WildcardX Commented out the code supporting the deprecated OP_CloseContainer opcode.

  • WildcardX Fixed world containers so when one player has closed a world container, another player can open it without the need for the first player to leave the zone.

  • KLS Initial release of ongoing AA work

  • KLS Most(Not all) Alternate Advancement abilities up to SoL Class working correctly with correct costs and client side effects

  • KLS Fixed many many AA related bugs

  • KLS Fixed Activatable AA buttons on titanium

  • KLS Added #altactivate command to facilitate the new AA work

  • KLS Added Character:ConsumptionMultiplier rule.

  • KLS Server wont send a eat/drink message unless the player forces the client to eat/drink

  • KLS Fixed an issue with TGB working in a backwards manner.

  • KLS Fixed an issue with AE bard spells hitting the bard instead of the targets around him.

  • KLS Fixed an issue with cancel magic spells that made them act as completely beneficial spells.

  • KLS Added many missing spell effects into spdat.h

  • KLS Fixed a beneficial aggro issue that was resulting in certain clicky items giving significant amounts of aggro.

  • KLS MOBs with pets or familiars already out will not attempt to cast pet spells.

  • KLS Curse, Poison, and Disease counters will go past 256 and all be active but will reset on zoning

  • KLS Curse counters will work now.

  • KLS Intimidation should work under the new skill cap rules.

  • KLS Killing something will no longer clear your server side target unless you killed your target.

  • KLS Fixed a int to float conversion issue in CalcRecommendedLevelBonus() (as per slowglass' post)

  • KLS Fixed a crash issue related to resists, should help those crashing after zoning with a spell that has a heartbeat resist such as root.

  • KLS Removed an unused spell function that didn't make much sense.

2/14/2007

  • WildcardX Implemented a cap of 4 mobs affected by targeted area of effect spells. This is consistent with EQ live.

  • WildcardX Implemented the succor line of spells.

  • WildcardX Specific mobs can now be toggled as findable or not findable by the track skill. Mobs which are not findable will not appear on any track lists.

Required SQL: alter table npc_types add column trackable tinyint(4) not null default 1;

2/13/2007

  • WildcardX Fixed bug that broke #zone command.

2/11/2007

  • WildcardX Further enhancements to zone weather system to reduce the amount of work necessary to perform weather and to make it more logical.

  • WildcardX Added a new opcode for both 6.2 and Titanium clients, OP_ZonePlayerToBind=0x385e. Please be sure to update your .conf files.

  • WildcardX Implemented the beginnings of what will become a new "system" to deal with zoning.

  • WildcardX Titanium clients will now zone correctly upon death and will not go link dead and get sent to character select screen.

  • WildcardX Both 6.2 and Titanium clients will now return character view to first person from corpse hover after completing zone to bind point after death.

  • WildcardX Group member camping will now auto-disband upon an actual logout.

  • WildcardX Disbanding a link dead group member will no longer crash the zone.

  • WildcardX Link dead group members will now automatically remove themselves from group.

  • WildcardX Many zoning situations will now use "heading". This was largely being ignored before. However, there are still a couple more situations where this needs to be implemented. I will continue implementing "heading" as i continue to work on the zoning code.

  • WildcardX (Cavedude) Implemented yet another container type to perform even more quest combines.

  • WildcardX Added additional logging to zone "debug" and "error" to support zoning and intra-zone movement.

  • WildcardX Group members disbanding in another zone will still fail to appear as removed from group from other group members, but disbanding this group member when he/she rejoins group in zone will no longer crash the zone and you will be able to re-add this former group member without having to destroy the whole group.

2/10/2007

  • FatherNitwit Reworked NPC Idle spell casting to avoid extra LOS checks (based on KLS's observations)

  • FatherNitwit Reworked NPC spell casting timers to be more consistent.

2/9/2007

  • Doodman Fixed AdventurePoints_Update_Struct to be the correct struct. Same structure for both 6.2 and Ti. Changed core structure.

2/1/2007

  • WildcardX (Bleh) Fixed quest globals.

  • WildcardX Fixed the common error message MakeNameUnique() has been recording in logs about being unable to make a unique name for mobs greater than 100 in a zone.

Required SQL: ALTER TABLE quest_globals CHANGE expdate expdate INT;

1/29/2007

  • WildcardX Cleaned up zone weather code for better efficiency. Weather checks will be more frequent when their is snow or rain and less frequent when the sun is out.

  • WildcardX Made weather log messages more consistent and informative.

  • WildcardX Druids are now replace bards has the second best tracker in the game. This is consistent with live.

  • WildcardX Fixed tracking skill. Tracking will now return a full list of every mob within the tracker's skill range, not just the first 100 mobs.

  • WildcardX Clients will now see their coins update from quests or player trades. No zoning is required anymore.

  • WildcardX The server is now using the OP_MoneyUpdate opcode, instead of OP_MoneyOnCorpse opcode for coin updates.

  • WildcardX Clients entering a zone will now receive a weather packet. This will ensure all clients in the same zone will experience the same weather.

1/23/2007

  • KLS Fixed the change log so the current entries are correct

  • KLS Fixed a small but significant crash.

1/15/2007

  • KLS Fixed an issue with storing timers.

  • KLS Added in hide and basic support of hide improving AAs later

  • KLS Some more changes to how procs work, perma procs will not be influenced by mob stats, should make them easier to balance.

  • KLS Some internal changes to critical hits with some future spell effects in mind shouldn't change functionality.

  • KLS WildCardX's key changes, keys should now work even if they're not on your cursor and no matter where in your inventory it's on you, including your bank

  • KLS Pickpocket should work considerably better.

  • KLS Removed some obsolete discipline code that I ran across.

  • KLS Character:ExpMultiplier rule should work correctly now.

  • KLS Fixed an issue with the client position update code that should see the server sending fewer redundant client position update packets.

    Required SQL:

    ALTER TABLE npc_types ADD see_hide tinyint(4) NOT NULL default '0';

    ALTER TABLE npc_types ADD see_improved_hide tinyint(4) NOT NULL default '0';

    Optional SQL:

    UPDATE npc_types SET see_hide = 1 WHERE see_invis = '1';

    UPDATE npc_types SET see_hide = 1 WHERE see_invis_undead = '1';

1/07/2007

  • KLS action_struct unknown06 renamed to instrument_mod to reflect it's behavior

  • KLS WildCardX inspired weapon proc rate changes, proc rates should now load as a signed int instead of an unsigned int and should correctly calculate.

  • KLS Some changes to the expired function of ptimers, it should return if the timer is expired whether or not the timer is enabled. This avoids certain situations where timers are disabled and then run down without ever being reenabled and essentially being locked down forever unless the database admin resets it manually.

  • KLS Also fixed a small ptimer expire bug where if the timer just reached zero it would return expired until it was one second past zero.

  • KLS Evade will no longer set the rogue's hate to 0, but instead will lower the hate by some amount based on level and the current hate of the monster. May need tweaking as don't know exact values.

  • KLS Combat Range has been redone a bit so it no longer mixes ints and floats and also correctly factors in the size of the enemy you're fighting. Should prevent exploits where you can hit something rooted/permarooted but they cannot hit you back.

  • KLS Rampage and enrage have been reworked and should work correctly, rampage will now carry a rampage list of 20 by default that does not get wiped until the monster stops fighting.

  • KLS Fixed up spell fields and spell loading to make more sense, identified some fields. It should load in order now.

  • KLS Sneak should now break when you deal / are dealt damage.

  • KLS Hide should succeed a bit more and use the correct messages: "You have hidden your self from view", "You have failed to hide your self from view"

  • KLS CalcAC() and CalcATK() now use signed values instead of unsigned.

  • KLS When a mob returns to their guard point they should now correctly assume their guard heading.

  • KLS Succor should fully wipe you from hate lists now, as should zoning.

  • KLS Spin effects are now correctly capped at a max of level 55, all targets above this cannot be affected.

  • KLS SE_LimitEffect should now correctly deal with any effect type the spell has and not just the ones hard coded into the server.

  • KLS (Cripp)Fix for zone heading