Commit graph

85 commits

Author SHA1 Message Date
NoFantasy
7e1d55c38e [9113] Add helper functions to set/getSummonLocation
This should help the poor homeless that does not have a database defined home at evade (such as "wild summon" without owner).

Signed-off-by: NoFantasy <nofantasy@nf.no>
2010-01-05 19:56:22 +01:00
NoFantasy
ec0043ac64 [8928] Rename internal names for gossipLocale and also correct reload gossip tables
Signed-off-by: NoFantasy <nofantasy@nf.no>
2009-12-06 11:55:53 +01:00
NoFantasy
090c8b8854 [8923] Restructure gossip menus and make it possible to build selections by database
As result, gossip for GO is now possible. Moved related data structures and remove useless from code.
Please note that after some time, table npc_gossip will be fully removed (use menuId in _template in relation to gossip_menu as replacement).
Special thanks to GriffonHeart for help with research, discussions and ideas of code and thanks to Vladimir for helpful input.

Signed-off-by: NoFantasy <nofantasy@nf.no>
2009-12-06 02:27:26 +01:00
NoFantasy
a8bd659872 [8900] Move most gossip related functions from Creature to Player class
Adjust arguments passed in functions accordingly, for easier implementation of gossip for Gameobjects in future.
Some additional code cleanup in affected functions.
2009-12-01 14:19:57 +01:00
balrok
c50df41b3c [8775] implement all creature difficulties + support bgs with this
former know as heroic_entry we now have 3 of those
which let us chose different creature_templates for different
map-types

normal maps will need a bit more support to use correct
spawnmodes

but for battlegrounds it works already good:
they are divided by levelrange:
    0-59  == normal spawn -> spiritguides level 60
    60-69 == difficulty=1 -> spritiguides level 70
    70-79 == difficulty=2 -> spiritguides level 80
    80    == difficulty=3 -> spiritguides level 80

this is needed mostly for alterac valley to get
right creature-templates spawned
and with that all creature->SetLevel hacks could
get removed from alterac valley code
2009-11-05 10:48:15 +01:00
begemot
e83563b671 [8761] typo fix and codestyle
typo was at PetLevelInfo loading
which didn't display the progressbar right when
there was no petlevelinfo available
2009-11-01 21:04:19 +01:00
VladimirMangos
fad1fb92f4 [8731] Restore difficulty 1 spawn use for creatures with special difficulty 1 versions.
* Rename creature template `heroic_entry` => `difficulty_entry_1`
  Possible need add 2 more fields for 2-3
* Use 2 more EventAI EFLAG_* flags for 2-3 difficulty support, update checks.
* Update area trigger code.

Note: support for specialized creature version for difficulties 2-3 not added yet
      and will be used same as difficulty 1 mode.

TODO: Rename area triggers heroickey/etc fields ?
2009-10-25 06:23:00 +03:00
balrok
e990d5c509 [8688] proper implementation of creatures ghost-flags
this reverts 8676 (9c50d9e70314b0cd9eb0fe3bac8040d64a9965a5)
the new flag is from wdb-files so your database should be
already alright

also i've dropped the function Player::CanInteractWithNPCs
cause it was used only in one place and didn't seem to make anything
easier

NOTE for this flag:
it just means that the creature can be seen by ghost-players
too..
so they are still visible for alive players.. unless a special
aura or ther unitflag (spiritguide/healer) disables this..
(see next commit for it)
2009-10-20 23:34:13 +02:00
balrok
a2ff999fd3 [8676] implemented dead-visible creature flags_extra
with this flag you can specify a creature to be only
visible for dead players - this removes all hacks from
spiritguides/spirithealers from code and allows some other
special creatures

i decided to not implement an extra deathstate cause
actualy those creatures are almost equal to living ones
2009-10-18 21:28:36 +02:00
XTZGZoReX
0e1854a936 [8671] Correctly send SMSG_PET_TAME_FAILED with appropriate value when taming fail instead of spell fail.
I also removed conditions from Spell::EffectTameCreature which are checked in Spell::CheckCast.

Signed-off-by: ApoC <apoc@nymfe.net>
2009-10-18 19:16:48 +02:00
NoFantasy
732bcfbbb6 [8622] Add own function to send AI_Reaction packet.
Signed-off-by: NoFantasy <nofantasy@nf.no>
2009-10-11 00:01:49 +02:00
tomrus88
546f7a7fe5 Merge commit 'origin/master' into 320
Conflicts:
	src/game/BattleGround.cpp
2009-09-28 19:52:54 +04:00
balrok
1f9b4ca4c3 [8553] removed spiritguide from code
they basicaly should
*autocast 22011
*give player after gossiphello buff 2584
*port players away to another spiritguides, when they die

so this can be done by a script
and maybe eventai
2009-09-28 16:45:06 +02:00
tomrus88
3882772658 Merge commit 'origin/master' into 320
Conflicts:
	src/game/Player.cpp
2009-08-27 01:54:04 +04:00
VladimirMangos
45dd7140b5 [8422] Implement far sight like spells work for long distance.
* Added basic infrastructure for visibility update in case difference player and current view point.
  Just for note: seletect additional arg way beacuse repeatable search object will slow but store pointer will not safe,
  so use middle case: get view point pointer early as possible at visibility updates.
* Implement dynamic object and creature activisation while it's target of far sight spell effect
* Use this for SPELL_AURA_BIND_SIGHT, SPELL_AURA_FAR_SIGHT and SPELL_EFFECT_ADD_FARSIGHT.
* Note2: some spyglass like spells let look _around_ at long distance, this hard implement in current grid loading system
  Without additional changes and not implemented (you will see empty area without creatures in likes case)

* Also fixed warning spam at CMSG_MOVE_SET_CAN_FLY_ACK receive by use proper packet sructure reading.
2009-08-26 08:30:40 +04:00
tomrus88
ca2a2195be Merge commit 'origin/master' into 320 2009-07-17 13:26:56 +04:00
GriffonHeart
cbfbd13146 [8190] Update killing quest objectives base at creature_template KillCredit fields.
Note: for avoid double counting must be removed C++ scripts and EventAI scripts that do same thing in old way.

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

Also implement KillCreditN field check at loading.
2009-07-17 03:45:40 +04:00
VladimirMangos
c9fbd99579 [8098] Support uint32 spell ids in code.
* Propertly work with uint32 spell ids in player action bar
* Fix in same time bug with not save equipment set button with id==0
* Merge misc field in character_action and playercreateinfo_action to action field as 3 byte
* Propertly load uint32 spell ids from character_spell
* Fixed types for some pet/creature related structure for spell id storing.
2009-07-02 09:18:39 +04:00
VladimirMangos
48caaaffcf [8077] Resolve mixed store and use 2 different flags values types in single field.
* Create new monster move field in Creature class and use it in all cases when expected use MONSTER_MOVE_* flags.
* Store and use MOVEMENTFLAG_* values in field in MovementInfo structure of Player class.
* Cleanups and fix related code.

NOTE: DB in creature_addon store values similar MONSTER_MOVE_* flags, scritps also expected set only this flags.
2009-07-02 09:18:24 +04:00
VladimirMangos
1baec77845 [8098] Support uint32 spell ids in code.
* Propertly work with uint32 spell ids in player action bar
* Fix in same time bug with not save equipment set button with id==0
* Merge misc field in character_action and playercreateinfo_action to action field as 3 byte
* Propertly load uint32 spell ids from character_spell
* Fixed types for some pet/creature related structure for spell id storing.
2009-06-30 11:25:32 +04:00
VladimirMangos
21a6a26386 [8077] Resolve mixed store and use 2 different flags values types in single field.
* Create new monster move field in Creature class and use it in all cases when expected use MONSTER_MOVE_* flags.
* Store and use MOVEMENTFLAG_* values in field in MovementInfo structure of Player class.
* Cleanups and fix related code.

NOTE: DB in creature_addon store values similar MONSTER_MOVE_* flags, scritps also expected set only this flags.
2009-06-26 01:57:34 +04:00
tomrus88
02bcc56919 Added placeholders for new battlegrounds, some other stuff. 2009-06-25 19:08:53 +04:00
NoFantasy
400c110e1f [8057] Move code from Event AI to class Creature function for reuse in other scripting cases.
Also some outdated and wrong checks remove.

Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2009-06-21 03:39:43 +04:00
NoFantasy
68848314e2 [8040] Implement Creature::ForcedDespawn and ACTION_T_FORCE_DESPAWN for EventAI.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2009-06-18 19:11:57 +04:00
VladimirMangos
fc5a9f8812 [8033] Update max vendor item list for client 3.x.x 2009-06-17 03:45:26 +04:00
VladimirMangos
08fe4933c5 [8015] More dislpay id selection fixes...
* Allow have only A2 or H2 display ids for less strincted DB field data.
* Check model data existance for all provided display ids atserver startup.
* Avoid explicit access to creature info display fields but use display selection functions.
* Rename GetTaxiMount to more clear for returned value GetTaxiMountDisplayId.
* Check display ids in `creature_model_info` at server load.
2009-06-14 21:57:56 +04:00
tomrus88
1f87157edf Merge commit 'origin/master' into 310
Conflicts:
	src/game/UpdateData.cpp
2009-06-07 21:42:02 +04:00
VladimirMangos
5ac6b2f34b [7971] Implement support exotic pets limtations related to hunter telent 53270.
Note: before this commit hunters can tame exotic pets like any other.
      After patch like not propertly contriolled pets will auto-dismiss at loading
      if talent not learned.
2009-06-06 21:21:27 +04:00
tomrus88
4236f7c75c Merge branch 'master' into 310 2009-06-05 14:54:05 +04:00
NoFantasy
48fee42129 [7951] Mope call for help code to function form Event AI code to allow use it from C++ scripts also.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2009-06-04 05:01:12 +04:00
tomrus88
84ed071e16 Merged and fixed some whitespaces. 2009-05-29 10:40:13 +04:00
NoFantasy
84464e5f3f [7908] Extract class data from creature_*_addon bytes0 fields, drop its, amd add unit_class field to creature_template.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2009-05-29 05:51:17 +04:00
Seizerkiller
2fc277fdb6 [7904] Change creature damage calculation formula.
* Add new creature_template field `dmg_multiplier`
* Make attackpower include in creature damage not dependent from attack speed.

NOTE: included in sql update recalculation for creature damage related fields only make
temporary possible usable values. Real values need revisited by DB devs for correctness.

Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2009-05-28 20:10:42 +04:00
tomrus88
f6e2b55e2c Merge branch 'master' into 310
Conflicts:
	src/game/Player.cpp
2009-05-28 10:16:02 +04:00
tomrus88
885d1256b2 Added new fields to database. 2009-05-27 16:44:50 +04:00
NoFantasy
56e86ff05f [7896] Rename creature_template class/race fields to trainer_class/trainer_race for clarify use.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2009-05-26 18:16:15 +04:00
ApoC
029b49dec8 [7883] Implemented new NPC extra flag CREATURE_FLAG_EXTRA_NOT_TAUNTABLE.
NPC with this flag is immune to apply aura SPELL_AURA_MOD_TAUNT and immune to SPELL_EFFECT_ATTACK_ME by default.

Signed-off-by: ApoC <apoc@nymfe.net>
2009-05-23 20:06:07 +02:00
Neo2003
fa03b3663a Mobs fleeing and getting assistance feature implementaion.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>

Also rename ACTION_T_FLEE to ACTION_T_FLEE_FOR_ASSIST for clear use
2009-05-21 01:33:28 +04:00
VladimirMangos
f332c000d1 [7860] Implement creature event ai ACTION_T_CALL_FOR_HELP for explicit call for help in some script cases. 2009-05-20 22:15:41 +04:00
Astellar
09046df744 [7808] Move corpse search code in function with template arg for class-check.
This let reuse code for other similar near corpse target selection spells.
Also provided currently not used class-checks for 2 spells

Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2009-05-09 18:48:18 +04:00
NoFantasy
829649aac6 [7806] Defines for known gossip icon value cases.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2009-05-09 16:50:08 +04:00
VladimirMangos
512c015dc2 [7731] Some code cleanups, warrning fixes. 2009-04-29 04:03:59 +04:00
zhenya
8144f30199 [7730] Some optimizantion and code style.
Signed-off-by: AlexDereka <dereka.alex@gmail.com>
2009-04-29 01:05:21 +04:00
VladimirMangos
721e005b84 [7666] For heroic mode creature use AIName from normal mode version in same way as done for ScriptName.
Also at creature templates loading check that AIName/ScriptName not set for heroic mode creature versions.
2009-04-14 02:28:45 +04:00
VladimirMangos
bd56140537 [7658] Drop dead code. 2009-04-13 03:13:19 +04:00
AlexDereka
6bb6ff0f7e [7622] Added creatureAI with related database tables.
Code and concept (also known as EventAI) by ScriptDev2.
Note: database table layout are compatible with original db-scripts.
2009-04-05 23:05:44 +04:00
VladimirMangos
24f1cf4b83 [7577] Implement YellToZone for different world object types. 2009-03-29 01:09:15 +03:00
NoFantasy
167b192ff2 [7382] Add 2 unknown field to creature_template sent in SMSG_CREATURE_QUERY_RESPONSE to client
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2009-03-05 16:17:43 +03: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
bf5e1908d6 Drop Say/Yell/etc string versions.
1) DB based string_id versions must be used.
2) for debug purposes raw WorldObject::MonsterSay/etc versions can be used
2009-02-19 11:59:01 +03:00