Commit graph

118 commits

Author SHA1 Message Date
VladimirMangos
5a8f379a70 [7391] Prevent achievement counter overflow, implement ACHIEVEMENT_CRITERIA_TYPE_DO_EMOTE generic support.
Before overflow has been possible at 4294967295 lols for example.

ACHIEVEMENT_CRITERIA_TYPE_DO_EMOTE in many cases require check special conditions and targets.
For this allow call it from scripts:
* Add Player::UpdateAchievementCriteria functiona ccessable from scripts
* In emote case it allowed call in form player->UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_DO_EMOTE, text_emote_id, achievement_id, target_unit_ptr);
2009-03-06 22:28:34 +03:00
VladimirMangos
02dd431846 [7373] Implement expansion check at character loading (for homebind, transport and plain coordinates).
Also move fall damage calucaltion in new function.
2009-03-03 00:47:30 +03:00
VladimirMangos
de51363151 [7365] Implement potion in combat delay proper work.
Original patch provided by miranda.conrado.
2009-03-01 11:33:08 +03:00
VladimirMangos
2b10d8fd71 [7364] Really implenent server-side anti-cheating cooldown check for spells with SPELL_ATTR_DISABLED_WHILE_ACTIVE.
Move apply cooldown for like spells to aura apply (GO registering for owner in GO summon spell case)
Store "infinity" cooldown for like spells, ignore it at save and reapply it at aura loading.

Note: one problem still exist for like spells: at loading/far teleport spell icon lost diabled state at client.
      Need sedn some unknown data in SendInitialPacketsBeforeAddToMap or SendInitialPacketsAfterAddToMap for restore it state.
2009-03-01 10:21:47 +03:00
VladimirMangos
ed6123c804 [7363] Propertly set cooldown at server side for category spells at cooldown event send to client.
Also support item dependent cooldown set propetly at cooldown event send to client.
Last will used in follow potion cooldown delay in combat patch.
2009-03-01 10:14:45 +03:00
VladimirMangos
2b9eeb782e [7362] Use IN_MILISECONDS where appropriate, other cleanups. 2009-03-01 05:22:56 +03:00
Triply
a81d174288 [7353] Fixed problem with joining rated arena matches. Thanks to balrok for help.
Signed-off-by: Triply <triply@getmangos.com>
2009-02-27 14:20:31 +01:00
VladimirMangos
64158d61b3 [7345] Use in most cases dynamic quest level as expected (player level for quests witl level 0)
Original patch provided by NoFantasy.

Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2009-02-27 01:25:20 +03:00
Triply
8f995ce904 [7336] Implemented new BattleGroundQueue invitation system. Now it supports premade group versus premade group matches.
Added 2 new config options - InvitationType and PremadeGroupWaitForMatch - you can find more info in default config file.
This patch can cause crashes.

Signed-off-by: Triply <triply@getmangos.com>
2009-02-25 19:21:31 +01:00
VladimirMangos
872d791ca6 [7335] Implement active objects support.
Active objects triggrering grid loading and updating around self like players.
It can be used for event long run movements or escoring quest travels.
Also can be used for proper implementation far vision spells.
Currently only creatures can be activated by function call (from script) cr->SetActiveObjectState(true);
Please avoid lot amount active objects in same time use. Existance active objects support isn't meaning
that each rabbit must be active creature.

Also added independent grid unloading locks for explicit unloading lock,
lock for used by instance copied grids, lock counter for actiove object spawn grids locks.
Last case required for prevent double spawn active creature walk far away from spawn point.
2009-02-25 13:44:49 +03:00
VladimirMangos
e7fc5e390b Speedup check in Player::HasQuestForItem and Player::HasQuestForGO, related cleanups. 2009-02-16 19:02:55 +03:00
VladimirMangos
b052777f71 Implemented limit category check for item/gem at equip or gem inserting. 2009-02-14 12:17:04 +03:00
balrok
bd89568993 [7275] getbattlegroundqueueidfromlevel returns now bg-specific queueids
before this commit, queueids were staticaly given for
9-19,20-29,30-39... but for instance alterac valley needs
51-60,61-70,71-80.. this patch allows this,
if you change the minlevel in battleground_template you also could make
23-32,33-42.. levelranges
not that we always use 10lvl-steps.. this is actually hardcoded..
2009-02-13 10:32:21 +03:00
balrok
b75157946c [7269] Use enum type for battleground queue type ids, and related cleanups.
* renamed a variable to make the content of it more clear: type->arenaslot
* renamed BattleGroundQueueTypeId-variables to bgQueueTypeId
  just to make it easier reading the code (cause there existed
  3 different names for this..)
* renamed GetBattleGroundQueueId to GetBattleGroundQueueTypeId
  again this is just for better understanding
* Renamed [GS]etQueueType and m_Queue_type
* Renamed to [GS]etQueueId and m_QueueId

Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2009-02-12 09:00:28 +03:00
VladimirMangos
8af53064eb [7254] Cleanups and batter checking in homebind/bgEntryPoint code.
* Load homebind data early in Player::LoadFromDB and use instead initital race points
  in cases need some safe point if current coordinate broken by some reason.
* Store BG entry point in to WorldLocation and simplify calls.
* Set bg entry point at GM teleports to battleground for correct
  auto-recall position at battleground end.
2009-02-09 15:50:40 +03:00
VladimirMangos
5a4358dda9 [7250] Use bg type ids enum insted raw values and catch some bugs in result for fixing.
* Replace max bg type checks by DBC valid index check
* Use in functions and fields BattlegroundTypeId type instead uint32
* Fixed wrong use bg queue ids instead bg type ids in queue update/remove function calls.
  Many bg have same raw values for type id and queue id but some can be affected by this bug:
  BATTLEGROUND_EY, BATTLEGROUND_SA, and all areans (with small arena/team size exceptions)
* Move Battlemaster to bg type ids map fron ObjectMgr to BatteleGroundMgr.
* Remobe redundent for header itself includes for BG headers.
* Use Auction location enum instead raw valus.
2009-02-08 11:05:11 +03:00
VladimirMangos
5e2553ff7e [7239] Support multiply items loot and not normal loot items in Player::AutoStoreLoot.
Use this function in more cases and simplify and fix some related code.
2009-02-07 10:34:11 +03:00
VladimirMangos
cb0ebde926 [7234] Now correct patch version: Use spell_loot_table for item creating in case SPELL_EFFECT_CREATE_ITEM_2 (157) and itemType==0 2009-02-06 07:57:45 +03:00
VladimirMangos
f94377622e Use spell_loot_table for item creating in case SPELL_EFFECT_CREATE_ITEM_2 (157) and itemType==0 2009-02-06 06:00:01 +03:00
VladimirMangos
2c7216ac8c [7226] Avoid 2 mQuestStatus[quest_id] calls from AddQuest code for speed and possible aliasing problems.
Original patch provided by zhenya.
2009-02-03 02:19:40 +03:00
VladimirMangos
aa24bd836e [7207] Phase system development continue for DB/in_game objects
* Store phase mask for creatures/gameobjects/corpse in DB
* Propertly set phase for summoned creatures/gameobjects/pets/corpses/spell related dynobjects
* Select proper phase for spawned creature/gameobjects and save it in DB

TODO: in game commands.
2009-01-31 06:11:50 +03:00
VladimirMangos
a1b5c3cb02 Cleanup code for UNIT_FIELD_BYTES_1 parts.
Move defines to Unit (values can be used with creatures)
Better gameobject barber chairs check at loading.
2009-01-31 05:55:10 +03:00
VladimirMangos
be64293da3 [7182] Finally remove vanity pet slots related code. Vanity pets stored as learned spells. 2009-01-25 21:59:41 +03:00
VladimirMangos
d8355f27f5 [7178] Fixed character save fail at spell save in special case.
Case description: Spell save fail at attempt save into `character_spell` "new" spell loaded from DB
with exactly same settings after it learned from spell cast triggered by loading another spell from DB.
Reapeatable for shamans with known talent 16268.

Also speedup code with remove redundent Player::_removeSpell function.
2009-01-25 19:40:03 +03:00
VladimirMangos
939ef7612d [7173] Some fixes for resent spell learn/unlearn system changes.
* Fixed profession unlearn using skill unlearn button in skill list
* Update action bar to spell low rank at unlearn spell only for .unlearn command.
  This will avoid show unexpected "Learned spell" chat message for low rank at unlearing
  high rank and at all ranks unlearning.
2009-01-25 16:26:10 +03:00
VladimirMangos
521c8bc31b [7170] Implement special default skill levels for created DK character. 2009-01-25 10:02:15 +03:00
VladimirMangos
4dc06d6d9e [7168] Spell shift-link and command improvements.
* Support Htrade shift link (it created by client at click by crafting profession spell icon in spellbook)
  in spell comands.
* Support "all" second arg for .learn for learning not provided spell id but it's all ranks.
* Drop support range for .unlearn command but support instead "all" second arg for unlearn not specific spell id but it's all ranks.
* In .list auras output print spell names as shift links for better readable view.
* Add to beggining Chat.cpp lists all supported by commands shift-links (client generated and server-side)
2009-01-25 07:53:18 +03:00
VladimirMangos
df13468ee1 [7165] More strict checking for client casted spells.
Allow explictly cast character spell from client only if it non-passive and show in spellbook/etc base at server data.
2009-01-25 00:13:33 +03:00
ApoC
302dc70eab [7162] Converted some uint16 spellid parameteres to uint32. It can provide little speedup.
Signed-off-by: ApoC <apoc@nymfe.net>
2009-01-24 18:42:14 +01:00
yad02
94d064be6f [7160] Implement (un-)learning skill level dependent spells at skill level change.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>

Some related cleanups using new functionality.
2009-01-24 12:43:42 +03:00
VladimirMangos
bbf8fd0742 Not store dependent spells in character_spell
* Mark spells learned in result character creating, another spell learning, skill grow,
  quest reward as dependent and not store its in `character_spell`.
* Prevent re-learning known spell in expected state
* Prevent re-learning low rank spell as active if higher rank known.
* New type of non-stacked ranked spells check: skill dependent spell bonuses.
* Activate (show propetly and cast if need) lesser spell rank
  for non-stackable in spellbooks spells at unlearn high rank
2009-01-24 12:03:43 +03:00
GriffonHeart
25b120877e [7154] Move allow player fly check to function.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2009-01-23 15:57:23 +03:00
freghar
11ed0e99a8 [7146] Trailing whitespace code cleanup
Signed-off-by: freghar <compmancz@gmail.com>
2009-01-22 18:10:16 +01:00
GriffonHeart
17916d3dc8 [7144] Implement DK specific way for talent points calculation.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2009-01-22 06:35:10 +03:00
VladimirMangos
6bc449d053 [7136] Check mount existance at loading not completed taxi path at login. 2009-01-21 19:41:26 +03:00
VladimirMangos
2b91a790bc [7133] Re-implement explicit spell discovery code.
* Replace reqClass by reqSkillVlaue field in `skill_discovery_template`
  and check expected skill points amount for specific reipe discovery.
* Add new `spell_loot_template` loot table for store item selection data for spells.
  At this moment for expclicit recipes discovery spells.
* Code cleanups.
2009-01-21 06:39:54 +03:00
ApoC
a92354afed [7129] Changed uint64 results to const uint64& on some methods.
Signed-off-by: ApoC <apoc@nymfe.net>
2009-01-21 02:10:03 +01:00
Balrok
ce384c5278 [7123] Cleanup in using STD's containers erase method.
Signed-off-by: ApoC <apoc@nymfe.net>
2009-01-20 20:07:44 +01:00
VladimirMangos
9e590f7ceb [7114] Code cleanups.
Remove redundant `inline` for in-class function definitions.
Fixed float -> int implicit casts.
2009-01-19 15:13:57 +03:00
ApoC
be051a706c [7112] Fixed glyphs apply on character load.
Signed-off-by: ApoC <apoc@nymfe.net>
2009-01-19 02:10:06 +01:00
VladimirMangos
64073f65c0 [7107] Output skill points (current, max, perm/temp bonus) for known skill in .lookup skill. 2009-01-18 22:18:13 +03:00
DiSlord
4add3d2128 [7099] Implement some item/enchants mods from 303:
ITEM_MOD_ATTACK_POWER
 ITEM_MOD_RANGED_ATTACK_POWER
 ITEM_MOD_FERAL_ATTACK_POWER
 ITEM_MOD_SPELL_HEALING_DONE
 ITEM_MOD_SPELL_DAMAGE_DONE
 ITEM_MOD_MANA_REGENERATION
 ITEM_MOD_SPELL_POWER

Signed-off-by: DiSlord <dislord@nomail.com>
2009-01-18 01:34:50 +03:00
DiSlord
7cd3fa8680 Rename some UnitFlags
Signed-off-by: DiSlord <dislord@nomail.com>
2009-01-15 19:55:26 +03:00
VladimirMangos
633cad5a56 [7089] Implement ITEM_ENCHANTMENT_TYPE_USE_SPELL support.
This allow cast spells at item used from engineering recipes 54999, 54736, 54998, 55002, 55016, 54793.
2009-01-15 03:08:45 +03:00
arrai
b19c0da601 [7088] Cleaned up Player::m_isunderwater, fixed a bug which caused SPELL_AURA_WATER_BREATHING to prevent lava damage 2009-01-15 00:42:12 +01:00
VladimirMangos
8b87829099 [7070] Use IsInWorld() check instead explcit loading args in spell learning code. Learn default spells at loading also.
At player loading known spells (full list) send to client at adding player to map,
so !IsInWorld() is most correct way check when spell learn packets not need send and wait seniding full spell list.
2009-01-12 01:15:01 +03:00
VladimirMangos
f956a3bf10 [7067] Move inactive form/stance passive spells from playercreateinfo_spell to spell_learn_spell with active field.
This let have in `playercreateinfo_spell` only expected at character creating spells for simplify updating.
2009-01-11 02:09:03 +03:00
VladimirMangos
e1a4ad241d [7059] Drop spell slot fields as unused for characters and pets.
Also temporary fix spell slot setting in 7047_01_characters_character_spell.sql
2009-01-09 22:31:06 +03:00
DiSlord
71b33ca2f1 [7056] Proc system add
Add use autorepeat flag and set more corect triggers flag for ranged autorepeat spells
Restore work paladin 20210 and ranks after client switch
Add 6-7 scripted paladin shock spell (also add it in dummy and fix flag)
Hidden cooldown and hacky (need more fixes in triggers) fix for 33953
Remove not used code

Signed-off-by: DiSlord <dislord@nomail.com>
2009-01-09 00:59:28 +03:00
VladimirMangos
1c5456324a [7038] Fixing known taxi node save in 3.0.3. Cleanup code. 2009-01-06 14:13:05 +03:00