aboutsummaryrefslogtreecommitdiff
path: root/src/game/Creature.cpp
AgeCommit message (Collapse)Author
2010-06-05HIGHLY EXPERIMENTAL - USE AT YOUR OWN RISKclick
Implement the use of the new vmap3-format by Lynx3d (mad props to you for this, and thanks for the talks earlier) + reduced Vmap size to less than one third, and improve precision + indoor/outdoor check which allows automatic unmounting of players + additional area information from WMOAreaTable.dbc, removed existing "hacks" + WMO liquid information for swimming and fishing correctly in buildings/cities/caves/instances (lava and slime WILL hurt from now on!) - buildfiles for windows are not properly done, and will need to be sorted out NOTE: Do NOT annoy Lynx3d about this, any issues with this "port" is entirely our fault ! THIS REVISION IS CONSIDERED UNSTABLE AND CONTAINS WORK IN PROGRESS - USE AT YOUR OWN RISK! --HG-- branch : trunk
2010-05-22Making use of SetFlying function in Creature::Create instead of ↵_manuel_
AddUnitMovementFlag(MOVEMENTFLAG_FLY_MODE|MOVEMENTFLAG_FLYING); --HG-- branch : trunk
2010-05-18fixed crash when trying to spawn a not existing creatureRat
--HG-- branch : trunk
2010-05-16you can now reload creatures from creature_template tableRat@walamy
NOTE: reload is limited to one creature at a time Usage: .reload creature_template $entry Warning: this is mainly for developers, reloading a creature can cause unexpected behaviors!! --HG-- branch : trunk
2010-05-08Add GUID to groupsSpp
--HG-- branch : trunk
2010-05-05Fix crash when deleting vendoritems with multiple extendedcosts - thanks to ↵click
Vladimir Fixes issue #1989 --HG-- branch : trunk
2010-04-30Add support for vendors selling the same items with different extendedCost - ↵click
original code by Vladimir (thanks mate) Closes issue #1756 --HG-- branch : trunk
2010-04-25Refactor Creature::SelectNearestTarget(float dist)Trazom62
This function is used in many scripts to find the nearest enemy within the given distance. However, it had an implicit limit to the ATTACK_DISTANCE. so in many case the "dist" was in fact just ignored. In other case, the ATTACK_DISTANCE is required. So 2 functions are necessary to avoid ambiguities. The refactoring is the split of the function in 2: SelectNearestTarget and SelectNearestTargetInAttackDistance. --HG-- branch : trunk
2010-04-21*fix visibility for trigger creaturesRat
NOTE: if you see any trigger (in player mode) with a visible model (DB bug), please report creature entry + modelid in bugtracker --HG-- branch : trunk
2010-04-19Remove LOTS of compile warningsSpp
--HG-- branch : trunk
2010-04-10*modified spelldifficulty handler to work with all spell casts for creatures ↵Rat
that are in instances thanks to Shauren for help *modified most of the scripts to use normal_mode spell for casting (code was autogenerated, post errors if any) *added sql for all modded spells (autogenerated..) --HG-- branch : trunk
2010-04-09*added code for loading Spelldifficulty.dbc + Custom Spelldifficulty from ↵Rat
Database *added spell searcher based on creature's map difficulty, usage is optional and only for scipts for now *added new table spelldifficulty_dbc --HG-- branch : trunk
2010-04-08Code Style (game + scripts only):Spp
"!=" --> " != " (when needed) " !=" --> " !=" "!= " --> "!= " --HG-- branch : trunk
2010-04-07Code Style (game + scripts only):Spp
"==" --> " == " (when needed) --HG-- branch : trunk
2010-04-07Code style (game + scripts only):Spp
"( " --> "(" " )" --> ")" --HG-- branch : trunk
2010-04-07Code style (game + scripts only):Spp
"if(" --> "if (" --HG-- branch : trunk
2010-03-21Add additional field for storage of speed_run rate of creature_manuel_
This allow independent rate of walk vs run speed. Existing field renamed to explicit speed_walk. Note that default database rate for run is a result of the most common value seen, 8.0/7.0 Author: NoFantasy. --HG-- branch : trunk
2010-03-14Fix creature tapped and lootable dynamic flags => fix creature not lootable.Trazom62
Fixes issue #1067. --HG-- branch : trunk
2010-03-11Implement group loot for chest having GroupLootRules (go type=3, data15=1).Trazom62
Implement round robin loot. Implement round robin for underthreshold items (group loot and need befor greed). Fix "all players pass" bug on creature. Add SMSG_LOOT_LIST message to indicate looter (round robin or master). And some other minor loot bugs. Fixes issue #167. Fixes issue #247. --HG-- branch : trunk
2010-03-07avoid send movement packet at death twice, cleanupsilver1ce
--HG-- branch : trunk
2010-03-06Send movement packet on creature/player death (expected for animation ↵thenecromancer
display, don't ask me why) Don't bother in case of flying creatures, as there's already something sent --HG-- branch : trunk
2010-03-03changes in creature base stats storagesilver1ce
* 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-03store unit's level in uint8 formatsilver1ce
TODO: may be change db format too --HG-- branch : trunk
2010-02-28Fix mana set to 0 when mob dies. Thanks Malcrom.Trazom62
--HG-- branch : trunk
2010-02-28Fix initialization of UnitMovementFlag from InhabitType.Trazom62
--HG-- branch : trunk
2010-02-27Update visibility systemsilver1ce
*visibility updates and ai relocations processed simultaneously for each grid *these operations now are not synchronized for different grids *some changes into structure of visibility notifiers --HG-- branch : trunk
2010-02-17* Properly fix bogus pet trainers error messageBrian
--HG-- branch : trunk
2010-02-17* Added chack for TRAINER_TYPE_PETS, to prevent bogus error that was generatedBrian
* since pet trainers no longer train spells. --HG-- branch : trunk
2010-02-14* Core switch to client 3.3.2 (11403)Brian
* 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-03*Move object's field\visibility update functions to object from accessorsilver1ce
removed useless SendUpdateObjectToAllExcept - anyway fields will be updated, there is no sense to force update them --HG-- branch : trunk
2010-01-30* Set the default spawntimesecs for creatures / gameobjects added in game to ↵Brian
5 minutes * Was 25 seconds * Thanks Paradox --HG-- branch : trunk
2010-01-23* Remove CellLock class and all cell-level thread locking.XTZGZoReX
** It was wasting CPU power as cell-level locking is not needed. ** Our multithreading is on map-level, not cell-level. ** CellLock was just a 'proxy' between Cell and CellPair and in some cases carried redundant data. ** Some minor cleanup in Cell::Visit/Map::Visit. --HG-- branch : trunk
2010-01-21* Backed out changeset c7c6faf26cbdBrian
* 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* Add support for basedmg and baserangeddmg values in creature_classlevelstats.win32
* Remove mindmg, maxdmg, attackpower and ranged field in creature_template and add Dmg_Mod, Rangeddmg_Mod field. --HG-- branch : trunk
2010-01-20Allow spells with effect mechanic to allow apply other effects when effect ↵thenecromancer
with mechanic would be fail due to effect/state immunity. --HG-- branch : trunk
2010-01-16Updated copyright for new year.n0n4m3
--HG-- branch : trunk
2010-01-16Implement option to use delay in ForcedDespawn for creature, allow use ↵n0n4m3
delayed forced despawn also in EAI, by NoFantasy. --HG-- branch : trunk
2010-01-16Implement speed reduction at creatures DoFleeToGetAssistance, by NoFantasy.n0n4m3
--HG-- branch : trunk
2010-01-13Allow state/effect immunities ignore whole spell when one effect is immunedthenecromancer
(Fixes getting part of CC auras with some immunities) --HG-- branch : trunk
2010-01-10* Add support for base armor values in creature_classlevelstats.XTZGZoReX
* 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-10Update aura system:QAston
* 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-07* Hopefully fix creature so they swim if InhabitType|2Brian
--HG-- branch : trunk
2010-01-06fixed the bug that GetVmapHeight returns incorrect height on terrains(flying ↵silver1ce
units fall below map etc) also unlocked max ray lenght for getHeight, by default it's 10 yards --HG-- branch : trunk
2010-01-02Removed moveflags column from creature_addon and creature_template_addon. ↵_manuel_
Thanks to Zor and raczman. --HG-- branch : trunk
2010-01-02The core should add the movementflags depending on the InhabitType._manuel_
--HG-- branch : trunk
2009-12-24Temporary revert 6743 commit. I fix this patch across 1-2 days.n0n4m3
--HG-- branch : trunk
2009-12-23Replaced time(NULL) on sGameTime.GetGameTime() this is used for better ↵n0n4m3
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-21* Add support for RewSpellCast=-1. If -1 remove all auras applied to player atBrian
* quest start. * Patch by Kudlaty -- THANK YOU! --HG-- branch : trunk
2009-12-20* Added support for using a lookup table for creature mana / healthBrian
* 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*apply trinity style to whole sourceRat
*comment out all mangos to trinity defines *this will make merging a little harder, but code will be more clear --HG-- branch : trunk