Commit Graph
186 Commits
Author SHA1 Message Date
Trazom62 6fdaf225f3 Fix creature tapped and lootable dynamic flags => fix creature not lootable.
Fixes issue #1067.

--HG--
branch : trunk
2010-03-14 00:22:53 +01:00
Trazom62 75a63297ca Fix ScriptedAI::SelectUnit to support SELECT_TARGET_NEAREST and SELECT_TARGET_FARTHEST.
Remove duplicate select target function CreatureEventAI::SelectUnit.

--HG--
branch : trunk
2010-03-13 12:15:32 +01:00
raczman 91b8ee104e Added new type-safe cast functions.
This, when properly used, should get rid of most memory corruption issues,
currently, casting types C-style with no checks leads to some abstract crashing.
Functionality is same as with dynamic_cast<>, but with no RTTI check - so when
casting into invalid type you will receive NULL, and most probably crash.
At the same time, i took the liberty to convert most Player* casts to ToPlayer().
Still needs crapload of casts being moved to new facility.

--HG--
branch : trunk
2010-03-07 15:20:19 +01:00
silver1ce f748ea34e3 changes in creature base stats storage
* speedup stats searching
  * no more default stat generation for each class-level pair, there is only one default stat
  * CreatureBaseStats does not contain level and class

--HG--
branch : trunk
2010-03-03 04:32:47 +02:00
silver1ce 9e63454b63 store unit's level in uint8 format
TODO: may be change db format too

--HG--
branch : trunk
2010-03-03 02:48:31 +02:00
Brian 486c00891b * Core switch to client 3.3.2 (11403)
* Credits (in no particular order) to:
* n0n4m3, raczman, manuel, Spp, Malcrom, Teacher, QAston, Tartalo,
* thenecromancer, Xanadu, Trazom, Zor, kiper
* Additional credits to:
* TOM_RUS and NoFantasy from MaNGOS
* Thanks for testing Aokromes and XTElite1
* SoTA still needs some work, but is very playable (huge thanks to raczman and
* kiper)
* To upgrade, you need to apply all SQL from sql/updates/3.2.2a_old from the
* last rev you are on
* and then apply all SQL from sql/updates/3.3.2_old to char / realmd / world
* DBs
* Known problem with guild banks.

--HG--
branch : trunk
2010-02-14 19:13:14 -07:00
Xanadu a5d1bc77ab A great purge of obsolete macros.
--HG--
branch : trunk
2010-02-05 00:31:28 +01:00
QAston ac388e6f21 *Add support for spells in npc_trainer table with multiple SPELL_EFFECT_LEARN_SPELL, this fixes problems with learning such spells from trainers.
--HG--
branch : trunk
2010-01-31 17:24:13 +01:00
Rat f107f9f8eb *finalized basic hard-lootmode defines
-DB devs should stick with lootmode 2,4,8,16 for hardmode loots (use as bitmask)
-and lootmode 1 as default

--HG--
branch : trunk
2010-01-26 11:06:46 +01:00
Brian 7162dcd475 * Backed out changeset c7c6faf26cbd
* A different solution to damage will be implemented
* You will need data from your DB provider if you don't have a backup

--HG--
branch : trunk
2010-01-21 18:38:49 -07:00
win32 2572e9ef8e * Add support for basedmg and baserangeddmg values in creature_classlevelstats.
* Remove mindmg, maxdmg, attackpower and ranged field in creature_template and add Dmg_Mod, Rangeddmg_Mod field.

--HG--
branch : trunk
2010-01-21 13:48:27 +02:00
thenecromancer fbe09a92f9 Allow spells with effect mechanic to allow apply other effects when effect with mechanic would be fail due to effect/state immunity.
--HG--
branch : trunk
2010-01-20 21:10:18 +01:00
n0n4m3 99f66a6bc9 Updated copyright for new year.
--HG--
branch : trunk
2010-01-16 20:19:18 +03:00
n0n4m3 720318e856 Implement option to use delay in ForcedDespawn for creature, allow use delayed forced despawn also in EAI, by NoFantasy.
--HG--
branch : trunk
2010-01-16 19:51:59 +03:00
thenecromancer 8dd67e8bb3 Allow state/effect immunities ignore whole spell when one effect is immuned
(Fixes getting part of CC auras with some immunities)

--HG--
branch : trunk
2010-01-13 10:20:00 +01:00
XTZGZoReX a66152215e * Add support for base armor values in creature_classlevelstats.
* Change the table structure to be more core-friendly.
* Remove armor field in creature_template and add Armor_mod field.
* Also add static CreatureBaseStats::GetBaseStats() function for scripts.

--HG--
branch : trunk
2010-01-10 22:02:03 +01:00
QAston 8e9d2cdf01 Update aura system:
* Change system logic - unify Auras, AreaAuras and PersistentAreaAuras:
  * Aura has now its owner - which is the WorldObject, which applies aura (creates AuraApplication object) dependant on aura radius, and effect type
  * Owner can be Dynobj (DynObjAura class) for PersistentAreaAuras, or Unit (UnitAura class) for Area and nonArea auras
  * Aura data is shared for all units which have AuraApplication of the Aura
   * Because of that AuraEffect handlers , and periodic tick functions can't modify AuraEffect object (they are const now)
  * Remove spell source and AreaAuraEffect classes
  * Add AuraEffect::UpdatePeriodic function, to allow periodic aura object modification (target independant)
  * Add AuraEffect::CalculateAmount and AuraEffect::CalculateSpellMod function, to allow non-default amount calculation
  * AreaAura updates are done in owner _UpdateSpells cycle
  * Since now you don't need to wait an aura update cycle to get area aura applied on it's correct target list
  * And you can access area aura target list
  * Add basic support for aura amount recalculation
  * Save recalculation state and base amount of auras to db
  * Add AuraEffect::CalculatePeriodic function to determine if aura is periodic, and to set correct tick number after aura is loaded from db
  * Add ChangeAmount function in addition to SetAmount function, to allow easy reapplication of AuraEffect handlers on all targets
  * Sort aura effect handlers in SpellAuras.cpp and .h by their use
  * Add check for already existing aura of that type to some AuraEffect handlers, to prevent incorrect effect removal
  * SPELL_AURA_CONVERT_RUNE and MOD_POWER_REGEN and MOD_REGEN hacky handlers are now implemented correctly
  * Send aura application client update only once per unit update - prevent unnecesary packet spam
 * Fix ByteBuffer::appendPackGUID function - it added additionall 0s at the end of the packet
 * Fix memory leak at player creation (not deleted auras)
 * Updated some naming conventions (too many to mention)
 * Added Unit::GetAuraOfRankedSpell() function
 * Remove procflags on aura remove, use Aura::HandleAuraSpecificMods instead
 * Added functions to maintain owned auras (GetOwnedAuras, GetOwnedAura, RemoveOwnedAura, etc)
 * Implement AURA_INTERRUPT_FLAG_LANDING
 * Implement EffectPlayerNotification (thanks to Spp)
 * Remove wrong aura 304 handler
 * Add better handler for death runes
 * Remove unnecesary variables from DynamicObject class, and cleanup related code, link dynobj duration with aura
 * Add GetAuraEffectTriggerTarget function in CreatureAi for special target selection for periodic trigger auras used in a script
 * Add many assert() procection from idiots using some functions in wrong way
 * I am to lazy to write here anything more
Thanks to Visagalis for testing this patch
PS: Do not make patches like this, please

--HG--
branch : trunk
2010-01-10 01:23:15 +01:00
_manuel_ 0e18bc37c2 Removed moveflags column from creature_addon and creature_template_addon. Thanks to Zor and raczman.
--HG--
branch : trunk
2010-01-02 19:52:08 -03:00
n0n4m3 2fa14abf42 Move some grid object functions into one parent class
--HG--
branch : trunk
2009-12-26 11:38:30 +01:00
n0n4m3 250a00cc1c Temporary revert 6743 commit. I fix this patch across 1-2 days.
--HG--
branch : trunk
2009-12-24 10:20:15 +01:00
n0n4m3 3fe0bc5254 Replaced time(NULL) on sGameTime.GetGameTime() this is used for better performance.
Original Timer.h divided into 2 parts. Shared project has no need to know about GameTime Singleton.
2 Identical structures with different types are now replaced with one generic templated structure and 2 typedefs.

--HG--
branch : trunk
2009-12-23 08:04:10 +01:00
Brian 36d30faabf * Add support for RewSpellCast=-1. If -1 remove all auras applied to player at
* quest start.
* Patch by Kudlaty -- THANK YOU!

--HG--
branch : trunk
2009-12-21 14:48:30 -07:00
Brian 5300226fee * Added support for using a lookup table for creature mana / health
* As long as creature level, class, and the proper expansion they are from are
* set in creature_template, you will have 100% accurate health and mana.
* Research and base stats table done by Malcrom -- THANK YOU!
* Original patch by Kudlaty -- THANK YOU!
* Updated and enhanced by Machiavelli - THANK YOU!
* Optimizations by w12x, MrSmite, and XTZGZoReX -- THANK YOU!
* Final code updating for current rev by XTZGZoReX -- THANK YOU!

--HG--
branch : trunk
2009-12-20 20:23:18 -07:00
win32 7c9f6b4bc3 Merge MaNGOS, Gossip System. Autor NoFantasy.
* DB support required
* Closes #859

--HG--
branch : trunk
2009-12-20 13:35:08 +02:00
n0n4m3 2925dfcfc4 Add own function to send AI_Reaction packet. by NoFantasy
--HG--
branch : trunk
2009-12-19 17:43:47 +01:00
n0n4m3 40255a660b Some fixes for GameObject, Chat, Creature, update DuelHandler for 322a
--HG--
branch : trunk
2009-12-17 11:06:50 +01:00
Brian 7d754c3f7f * Added support for questItem5 and questItem6 in creature and gameobject
* templates.
*
* Thanks to Malcrom for doing the research.

--HG--
branch : trunk
2009-11-26 12:23:33 -07:00
maximius 02eeffd22f *Add two new functions GetHomePosition() and GetRelativeAngle(x, y)
--HG--
branch : trunk
2009-11-19 18:20:34 -08:00
maximius b257a28fa9 *Cleanup, fix many cases of unoptimized loops, potential crashes, excessively large data types, unnecessary or wrong casts, non-standardized function calls, and so on..
*Proper Maexxna Web Spray locations (old locations sent players flying into the air)

--HG--
branch : trunk
2009-11-01 17:53:07 -08:00
maximius f4d76b8216 *Implement new LootMode system, and add some basic support in boss_sartharion.cpp. Requires database support.
--HG--
branch : trunk
2009-10-28 16:31:19 -07:00
maximius e585187b24 *Backed out changeset 3be01fb200a5
--HG--
branch : trunk
2009-10-17 15:51:44 -07:00
maximius 26b5e033ff *Massive cleanup (\n\n -> \n, *\n -> \n, cleanup for(...) to for (...), and some other cleanups by hand)
*Fix a possible crash in Spell::DoAllEffectOnTarget

--HG--
branch : trunk
2009-10-17 15:35:07 -07:00
maximius 4b79217bef *Passive targets under attack by players are not ideal targets for hostile creatures, so avoid them.
--HG--
branch : trunk
2009-09-29 15:13:46 -07:00
maximius fd55684873 *Better method for choosing a random model on respawn (should no longer show opposite faction models)
*Attempt to make it so creatures: don't help players or units controlled or owned by players; and don't help if the unit is fleeing from the enemy player

--HG--
branch : trunk
2009-09-27 15:14:25 -07:00
maximius c3e795e7dd *Add a new modelid function..
*Attempt to fix some Linux compile issues..

--HG--
branch : trunk
2009-09-24 11:26:27 -07:00
Kudlaty b4cd005f03 Reapply patch about changing modelid_a/h(2) values to modelid1..4, display ids are no longer incorrectly chosen based on player faction.
--HG--
branch : trunk
2009-09-21 07:52:16 +02:00
maximius 0cf75ef9ea *Wintergrasp: Prevent defenders team to click the relic. Patch by Spp.
*Zum'Rah Area Trigger Script, Zum'Rah should become hostile when approached. By totoro.
*Judgement of Light PPM based, not 100%. By Drevi.
*Fix Deflection Exploit. By manuel, thanks to TheNecromancer and Gyullo.
*Correct Wintergrasp Tenacity formulas, by Gyullo.
*A Spirit Guide Escort Quest, code from SD2, patch by manuel.
*TrullyOne/MeanMachine Waypoint System Restored. Patch by XTElite1.

--HG--
branch : trunk
2009-09-19 12:13:08 -07:00
megamage 8efb15c52a *Try to fix the bug that creature does not regenerate after evade.
--HG--
branch : trunk
2009-09-02 12:46:26 -05:00
megamage 2a4c9bcaf9 *Make position as a class;
--HG--
branch : trunk
2009-08-29 14:58:45 -05:00
megamage a35991c836 *Add function CanAIAttack
--HG--
branch : trunk
2009-08-26 16:54:59 -05:00
megamage 5f1589d6d1 *Allow vehicles to regenerate energy.
--HG--
branch : trunk
2009-08-23 22:36:51 -05:00
megamage 1ee90e1022 *Update vehicle system. Make vehicle a seperate class from creature.
--HG--
branch : trunk
2009-08-23 22:09:43 -05:00
megamage 4a85a779c1 *Allow to change creature's sight distance because 50 yards are too small for some scripts.
--HG--
branch : trunk
2009-08-23 14:16:03 -05:00
megamage e03b7cd4d7 *Change react state of guardian back to aggressive. Instead check threat radius in canstartattack to prevent them attack too far target.
--HG--
branch : trunk
2009-08-15 14:30:14 -05:00
megamage e94295fe42 *Fix function disappearanddie to make creature disappear immediately without death visual.
--HG--
branch : trunk
2009-08-14 22:26:07 -05:00
maximius 2fd68eab44 *Add Dual Spec support, original by EnderGT, thanks to Thyros and XTElite1 for helping me test :)
--HG--
branch : trunk
2009-08-14 17:24:52 -07:00
megamage 656cb8a318 *Remove some incorrect use of removefromworld in scripts.
--HG--
branch : trunk
2009-08-13 10:21:57 -05:00
megamage f0c8efea55 *Fix the equip visual of quest endless hunger.
--HG--
branch : trunk
2009-08-11 22:20:34 -05:00
megamage 9403ff03e7 *Only use m_isWorldObject to check if an object is in grid or world.
--HG--
branch : trunk
2009-08-11 16:14:45 -05:00
Rat 35cf6778de *added script for training dummies
*added new creature extra flag (CREATURE_FLAG_EXTRA_NO_SKILLGAIN) if set creature won't increase player's weapon skill

--HG--
branch : trunk
2009-08-04 12:38:35 +02:00