Commit graph

138 commits

Author SHA1 Message Date
Schmoozerd
54cb8f1a63 [11032] Implement CREATURE_FLAG_EXTRA_AGGRO_ZONE.
This let control zone wide aggro in DB data instead
need special script code.

Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2011-01-18 13:48:46 +03:00
VladimirMangos
bf0ecf6e71 [10947] Update copyright notice for 2011 year. 2011-01-01 20:33:43 +03:00
VladimirMangos
d38df50a7e [10932] Imporvments gameevent creature morphing.
* Table `game_event_model_equip` renamed to `game_event_creature_data`
* Table allow now store same creatures for different events, BUT
  expected that related events no active in same time.
* Added possibility switch entry at gameevent time.
  This let have diff factions/loot and etc for creatures.
* Added possibility cast spells at gameevent start/end.
  Exist some spells that expected casted to creature at gameevent start
  for model replace, and for animation in other cases.

Note: `game_event_creature_data`.`modelid` field posisble will removed soon in fowor related spell use.
      Ofc, when spells will implemented in core.
2010-12-29 01:38:49 +03:00
VladimirMangos
3ff5ff2e6f [10929] Move game event creature morphing code to Creature::UpdateEntry
* This is allow have more clean logic in feature work.
* Prevent modify static creature data.
2010-12-28 22:52:40 +03:00
Ambal
b11820593c [10924] Send time diff between Update() calls for object - should help with mob respawn on inactive grids etc. Based on patches by VladimirMangos and cipherCOM. All issues from previous patches should be finally fixed now.
Signed-off-by: Ambal <pogrebniak@gala.net>
2010-12-27 22:27:20 +02:00
VladimirMangos
1d8f222621 [10867] Implement templates for trainer spell data in npc_trainer_template.
New table let avoid duplication similar trainer spells for different trainers.
2010-12-13 16:39:53 +03:00
NoFantasy
afe50cd549 [10797] Check for valid sheath state in creature addon at startup.
Signed-off-by: NoFantasy <nofantasy@nf.no>
2010-11-30 09:42:51 +01:00
VladimirMangos
0c8a7c3826 [10788] Replace bytes in single field bytes2 by independent fields for creature_addon. 2010-11-27 23:56:08 +03:00
VladimirMangos
cc0655a402 [10782] Use Team enum types in all appropriate cases and catches bug in result fix.
* Fixed wrong arenaid use at leave arena queue.
* Fixed memory lost and etc at not virtual EndBattleground call
* Fixed crash at arena join with fake data from client.
* Code cleanups.
2010-11-25 01:11:17 +03:00
Schmoozerd
146e7d3970 [10760] Remove unneeded non-player Say et al.
Now expected direct use non-player WorldObject::MonsterSay/etc version

Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2010-11-20 21:26:07 +03:00
VladimirMangos
f5cf98e9f4 [10748] Convert MonsterSay/Say and similar functions to ObjectGuid use. 2010-11-19 20:34:23 +03:00
VladimirMangos
3b0e926788 [10717] Revert "[10716][10688] New version of patch for send real diff from last update."
This reverts commit 8398a55fa274471daae115e00c627b299a3fdbbd.
This reverts commit 06e2d6859ba3d7fd47be72c23a64e68ae039701f.
2010-11-10 06:29:49 +03:00
VladimirMangos
d2b3981631 [10695] Cleanup some death state enums usage. 2010-11-08 02:13:25 +03:00
VladimirMangos
e219ee99bb [10688] New version of patch for send real diff from last update.
In new version last update time stopred for specific Cell that store all world objects
placed in it. All objects of Cell updated (or not updated) in same time.

Original version provided by ciphercom.
2010-11-06 22:59:54 +03:00
VladimirMangos
0847d4c8cd [10683] Revert "[10677] Send to creature/etc Update call real diff from last update and use it."
This reverts commit 10784a8c7cc81c468b5411e973d36ecf31de9603.

Main reason: impossibility for me as commiter test problem and fix all corner cases problems.
2010-11-05 19:54:31 +03:00
VladimirMangos
0bf8b0aa79 [10679] New table npc_vendor_template for comon item data for diff vendors.
In vendor list show own vedor items + template ites if any.
Vendor template item lists selected by id stored in creature_template.vendor_id
2010-11-04 20:22:47 +03:00
cipherCOM
555c1a9094 [10677] Send to creature/etc Update call real diff from last update and use it.
Now in case when creature/etc some tices not updates in result stay
in not active (no near players or active objects) cell some important
timers (corpse decay, summon timers, group loot expire, aura durations, etc) will
updates at real diff time from last prev. update call.

Signed-off-by: VladimirMangos <vladimir@getmangos.com>

For some systems added exclude use real diff time because current limitations
like move generators. So its stay use last tick diff and considered freeze and
skip all time while creature in not active map part.
2010-11-03 07:07:13 +03:00
DasBlub
fc5dd54f37 [10612] Revert "[10611] Made some values const"
Reason: It makes no sense to make a local variable const.

This reverts commit 49e3184d69056738701bc15d9b7f982bf11d7bbc.
2010-10-15 22:29:10 +02:00
Reve
47d971c7f9 [10611] Made some values const
Signed-off-by: DasBlub <dasblub@gmail.com>
2010-10-15 22:14:42 +02:00
DasBlub
61102e3b16 [10610] Renamed some functions from the Creature class
Also other classes have been affected, due to the use of search&replace.
This will probably break some patches and 3rd party libraries, so make sure to update them if required.
Thanks to Phille for the original idea and patch!
2010-10-14 22:07:04 +02:00
VladimirMangos
0236699b0a [10601] Amother attemp fix locale structures corruption.
Possible real source of problem: existing in code mixed
std:: structure templates instanting under pack pragma and out.
And this incompatible structure layouts wrongly mixed used by GCC.

So all std:: strcutures used moved out from pack pragma guards.
2010-10-10 23:14:40 +04:00
darkstalker
3a8ad26a5e [10526] Implement server side global cooldown check.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>

Also pet/controlled unit global cooldown code replaced by new placed in charmInfo structure.

Thanks to nos4r2zod for testing and gcd range check implement.
2010-09-24 06:07:26 +04:00
NoFantasy
334398b3f7 [10458] Changes to corpse decay/respawn times for creatures
*CORPSE_DECAY values adjusted (Rare/RareElite values are guessed) with more proper.
*RATE_CORPSE_DECAY_LOOTED is now 0.0 as default and a modifier of the creatures spawntimesecs are used for corpse decay.

Respawn time for creature is now set at death (result: database spawntimesecs are in most cases the time it takes from kill to respawn)

Overall, this will affect four things:
* corpse will stay visible longer before looted
* corpse will stay visible longer after looted, when creature has long respawn time
* creature without loot will "skip" the default decay times and then fix a "should respawn almost instant" -problem
* creature with loot and very short respawn time may respawn instantly after looted

Signed-off-by: NoFantasy <nofantasy@nf.no>
2010-09-09 11:58:53 +02:00
Darkrulerz
214c65baa1 [10449] Typos in enum names and comments
Also typos find by darkstalker and Neo2003

Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2010-09-06 15:48:37 +04:00
VladimirMangos
77ae9a63b8 [10385] Remove Unit::GetUnit and update it callers. 2010-08-20 16:53:45 +04:00
NoFantasy
d0df25fd8c [10381] Implement generic system for racial model selection
Table creature_model_info store creature entry to use model from (or explicit model). The selection is based on a base modelId and racemask.

Hacks for shapeshift models removed (data included in SQL update)
Dropped no longer needed creature_model_info.modelid_other_team, as creature_model_info can and should be used instead (sorry, this is what happen when author doesn't do full research :) )

Signed-off-by: NoFantasy <nofantasy@nf.no>
2010-08-19 16:58:53 +02:00
NoFantasy
a15b0916b6 [10373] Drop unused team-argument in ChooseDisplayId -function
Signed-off-by: NoFantasy <nofantasy@nf.no>
2010-08-18 18:09:56 +02:00
NoFantasy
7bdf05901d [10296] Move ChooseDisplayId to Creature class for access from script side
Signed-off-by: NoFantasy <nofantasy@nf.no>
2010-07-30 21:08:58 +02:00
NoFantasy
ccd8f4f825 [10290] Simplify startup check for creature models
Signed-off-by: NoFantasy <nofantasy@nf.no>
2010-07-30 17:32:45 +02:00
NoFantasy
2ae0badf48 [10289] Adjust creature models system
This change will:
* make it easier to use cached data directly without any modifications
* correct issues regarding invisible models
* simplify certain aspects of model selection itself and make it somehow easier to control and maintain special cases.

Two new fields added to creature_model_info, to store modelid_alternative and modelid_other_team
* _alternative holds an alt. model, for cases where gender are the same, or is not male/female.
* _other_team is generally used for totem models, but may have future use.

This commit will possibly break a few things (visually) and will require DB projects to update their creature_template models data.
It is advised to use cache data as-is, and in addition fill creature_model_info for certain models, totems in particular, for expected appearance.

Signed-off-by: NoFantasy <nofantasy@nf.no>
2010-07-30 16:40:17 +02:00
VladimirMangos
20a5551739 [10207] Implement ITEM_FLAGS2_EXT_COST_REQUIRES_GOLD use instead sign of ExtendedCost field. 2010-07-17 19:23:38 +04:00
SilverIce
6ca609629c [10073] Make object active at applying view on it
also isActiveObject check moved to WorldObject - all worldobjects are inactive by default, excluding players
this is a final part of cameras implementation

(based on commit efc9623)

Signed-off-by: VladimirMangos <vladimir@getmangos.com>

Also remove template-way code selection for object for Map::AddToActive/Map::RemoveFromActive.
This simplify function use from not Map code.
2010-06-18 00:19:12 +04:00
VladimirMangos
492f467bcc [10068] Fixes in pet movments
* Use proper stop packet as expected. In case 0 trevel time used before move packet
  can generate infinity move forward (at client side).
* Avoid reset top movegen before add idle in pet stay command.
* Avoid assign random move to player owned creatures as default movegen.
* Finish follow movegen init including need-stay case.
2010-06-17 02:46:39 +04:00
VladimirMangos
67b8ca03b5 [9957] Alow sell item for money and extanded coset without momey in same time.
npc_vendor.ExtandedCost can be negative now that meaning:
price excluded default item BuyPrice and use only abs(ExtandedCost) items).
For example expected used for item 36908.
2010-05-22 19:49:07 +04:00
VladimirMangos
d4f1b510ae [9934] Skinning related fixes
* Show skinning tooltip only after creature loot
  (when creature can be explcitly skinned).
* Allow reopen skinning loot if still have not looted items.
2010-05-19 15:35:20 +04:00
VladimirMangos
696a4b6db0 [9918] Fixed player's tapped creature loot access by group in diff cases
* If player tap creature in group and leave then group will have access to creature loot if not disbanded
* If player tap creature and after join to group then creature loot will accesable only by player
* Also RewardPlayerAndGroupAtKill divided to simgle player and group reward versions used for group tap
  and single player tap cases.
2010-05-17 12:56:57 +04:00
VladimirMangos
96d50bf55a [9917] Fixes in loot roll timer work and related cleanups.
* Changes include (in fact as part cleanup) fix got NeedBeforeGreed locked item after expire roll timer
  suggested by somedruid@mangos.lighthouseapp.com.
* Added cancel rolling at creatuer corpse remove.
* For NeedBeforeGreed and GroupLoot sued common code for prepare item roll.
2010-05-17 05:29:01 +04:00
NoFantasy
92ab082fc6 [9832] Move function to select an attacking target from EventAi to Creature class
Also rename function to a more descriptive name, SelectAttackingTarget

Signed-off-by: NoFantasy <nofantasy@nf.no>
2010-05-04 12:46:09 +02:00
VladimirMangos
25c2a76b63 [9716] Allow to vendor have same items in list with different extanded price. 2010-04-10 05:41:30 +04:00
NoFantasy
bfecdc3ded [9603] Implement use of UNIT_FLAG_PASSIVE for creature.
Add function to check creatures own ability to initiate an attack in MoveInLineOfSight.

Signed-off-by: NoFantasy <nofantasy@nf.no>
2010-03-18 11:29:27 +01:00
NoFantasy
9823356946 [9589] Add additional field for storage of speed_run rate of creature
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

Signed-off-by: NoFantasy <nofantasy@nf.no>
2010-03-15 15:47:56 +01:00
NoFantasy
7eeaed6d10 [9430] Implement preservation of current health percent at UpdateEntry use
Updated creature will now have the same amount of health (in percent) as the original creature after update.
For cases where full restoration of health is expected, function have option to disable preservation.

Signed-off-by: NoFantasy <nofantasy@nf.no>
2010-02-22 01:22:07 +01:00
VladimirMangos
dd2f02699e [9412] Add #include DBCEnum.h for headers where SpellEffectIndex used.
This must fix Unix build problem.
2010-02-19 17:20:19 +03:00
VladimirMangos
84080aaf60 [9411] More SpellEffectIndex using in apropriate cases 2010-02-19 06:45:11 +03:00
VladimirMangos
5af05a314e [9405] Make all movements instant applied.
* Drop delayed moves list in Map code
* Apply movement coords update always at call including movement to different cell/grid.
* Instead removed functionality mark creature as need move notify broadcast at next tick, do it.

This must resolve porblesm with CreatureRelocation in past not always update position to new expected at call
And in resul next code fail or work in strange way. Mark creature for notifier call at next Update
let safe main part remopved functionality implemented in another way: prevent cascade (or infinity chain)
in move updates. In fiture possible implement move notify call not at each tick for save time.
2010-02-18 01:09:33 +03:00
VladimirMangos
54559b5c03 [9401] Resolve porblems with waypoints moved/etc after [9400]
* Move movegen Interrupt/Reset calls from CreatureRelocation that called and from another movegens.
* Add this called to NearTeleportTo creature case and new MonsterMove* functions that considered
  as special moves similar instant movegens.
* NearTeleportTo/MonsterMove functions recomended used instead explicit use CreatureReolcation+SendMosterMOve pairs
  for proper reaction at movement from creature movement generators.
2010-02-17 17:22:43 +03:00
NoFantasy
08c364214b [9335] Clarify error log message after rewrite of monster_* to spline_* flags
Also change name of related field in code.

Signed-off-by: NoFantasy <nofantasy@nf.no>
2010-02-09 00:32:22 +01:00
VladimirMangos
8e0069f364 [9327] Replace leader based indexing groups by group ids.
* This must repolve problem with loot.
  Before if some mob killed by group member and then leader changed
  then group members can't loot this mob body.
* Possible resolve crashes at loot. Now group storage content not dependent from leader changes.
2010-02-08 08:25:06 +03:00
tomrus88
db547a008a Get rid of monster movement flags, since it's really spline flags.
Thanks to Ralek for research.
2010-02-07 15:03:36 +03:00
VladimirMangos
797dd6d931 [9232] Replace list bool fields with exclusive true values by subtype field in Creature.
Use it in recently added code instead dynamic_cast use.
2010-01-21 22:23:17 +03:00