Well,
(this will hit sourceforge CVS by 10/15/04)
The thing that everybody has been waiting for...
(even if you didnt know about it).
The Winter's Roar Merge is finally here.... After hundreds of hours
of coding and testing, I have merged in a ton of features from
Winter's Roar. While I was doing that, I coded up a ton more
features of my own, as well as general code cleanup and reorganization.
A HUGE thanks goes out to wiz for letting me have his source
to facilitate this merge.
Another huge thanks goes to the people involved in testing
this code from project EQ and their players (Celestial).
DB updates:
all together:
http://www.eqemulator.net/sql/wr_update.sql
Individuals:
ALTER TABLE items ADD attuneable tinyint(3) unsigned NOT NULL default '0';
http://www.eqemulator.net/sql/aa_actions.sql
http://www.eqemulator.net/sql/aa_swarmpets.sql
http://www.eqemulator.net/sql/fishing.sql
http://www.eqemulator.net/sql/timers.sql (might not be needed)
http://www.eqemulator.net/sql/traps.sql
Here is my best attempt at a change log. This is NOT complete,
much more was done, but I cant possibly list it all.
Code:
WR Merges:
- An innumerable number of small bug fixes and tweaks all over
- A TON of AAs and related effects
- FISHING!!!!!!!!!
- Many timers enforced by server, not just client.
- Trap support.
- Sense trap and disarm trap
- Group linking
- Zone-crossing pets (lose their buffs though, for now)
- Voice graft
- poison and disease counters (in progress)
- hunger and thirst (in progress)
- stat food
- NPC door opening!
- Optimized idle zones to not eat the CPU
- Items tints display properly
- shielding other players (in progress)
- pick pocket
- Optional EXP scaling based on CON level
- Instill Doubt
- Made auto-putting items into bags respect size constraints.
- heal/buff aggro.
- reclaim pet gives you mana back.
- enforce undead and summoned targets spells
- reworked bard songs a bit
- implemented camping properly
- made alcohol tolerance gain skill (dunno if it does anything yet)
- better checking of lore items during trades and merchant buying
- prevent interaction with merchants on basis of bad faction
- pets should actually taunt now.
- rouge pets should backstab now.
- optional: group buffs hit group pets now.
- fixed memory blur chances
- several minor group tweaks, should make groups more stable
- improved duel messages
- optional random luclin attributes for NPCs with boring faces
- AGI adjustments based on encumbrance
- AC bonuses for iskars and monks
FatherNitwit Improvements:
- Made most member timers instances, not pointers.
- Rewrote focus effects system, spells that give focus effect should work too.
- Reagent reduction focus implemeneted
- Rewrote activateable AAs and swarm pets based on Brank's work
- AA spell effects are now in the DB, easily editable
- Added a bunch of simple GoD AAs
- Consolidated many #define options into features.h
- Fixed crash in world when starting zone dosent exist
- Fixed dual weild with hand-to-hand
- Extended fishing to allow mobs to spawn when items are fished up.
- Made item skill modifiers work.
- Identified meaning of old Skill field of common items.
- made bind wounds actually consume bandaids.
- Made archery and throwing consume ammo
- Archery weapons proc now
- Fixed bard item bonuses to apply to all a bard's spell effects.
- rewrote perl HasQuestFile function to behave properly.
- modified perl quest system to fit better into the virtual parser scheme.
- enforce spell/skill components being on the player, not in bank.
- fixed container loading from DB.
- implemented item skill bonuses
- prevent merchant purchases when inventory full.
- safe fall implemented, but the formula is wrong
- initial implementation of client rampaging
- eliminated a lot of sqrt calls
- added an optional packet profiler to EQ network to count opcodes
- fixed NPC-casted targeted AE spells affecting the caster
- fixed monk special attack damage to be skill based.
- most NPC classes do their special attacks now.
- fixed multi-dose potions (not 100% sure they were broken)
- implemented Percental Heal spells
- put caps on haste, HP, and mana regeneration items
- Changed HP regen to work without client's regen packet, which it dosent send anymore.
- Updated natural HP regen to be closer to live.
- corrected AC calculations
- Implemented new discipline interface.
- Added new perl function (traindisc(itemid)) to facilitate training disciplines
- changed discipline reuse timer to a ptimer, since it is long.
- implemented a ton of new spell effects to support disciplines.
- implemented PoP item attributes like shielding, accuracy, etc...
- rewrote much of group system to better support multi-zone groups.
- groups given world-wide IDs instead of zone local.
- group disbanding when split between zones works.
- Fixed warrior/monk triple attack
- Fixed NPC AE spells to respect faction
- Tweaked NPC non-caster mobs being able to cast 'proc' spells.
- Fixed base resistance calculations to match the client.
- Cleaned up NPC spell interruption messages when they were not needed.
- DOTs no longer make you stand every tic.
- Fixed mob immunities special flags
- Added new mob immunities: snare, magic, meele
- Immunity to stuns now includes spin effects as well
- Trading with NPCs should correctly handle no drop items.
- fixed AA EXP setting
- allow starting items to include books and empty bags
- Fixed starting zones problem on char creation.
- Allow bards to move and use clicky items.
- Make NPC casters send stop moving packet when they cast.
- Fixed archery ammo searching to fall over to inventory.
- mobs now dual-weild based on a chance instead of garunteed
- groups do not grant EXP if the mob is green to any group members
- some NPC combat tweaks to balance it over the levels better. Needs through testing.
- EXP is now awarded to the top damaging player/group instead of killer
- fixed donal's complete heal
- fixed AC calculations for high-agi players
- Changed mobs with primary faction = 0 to be indifferent.
- If a player logs/zones in to a Z below the world, they are placed at a valid Z if possible.
- labeled new item field as attuneable, updated DB code for it
Enjoy folks.
please dont post bugs in this thread!
A bunch of new files were added, so if you get link errors on windows,
you need to add them to your project. New files:
Code:
aggro.cpp
bonuses.cpp
client_mods.cpp
effects.cpp
features.h
guilds.cpp
inventory.cpp
pets.cpp
spdat.cpp
spell_effects.cpp
tradeskills.cpp
trading.cpp
trap.cpp
trap.h
waypoints.cpp