Commit graph

80 commits

Author SHA1 Message Date
VladimirMangos
b4b45333d8 [10053] Use UNIT_STAT_CONTROLED for mark unit state under direct player control.
* This allow prevent move home/to caster at apply
* Also replace AI and reset movegens at control time
* Also stop combat and clear threat/hostile list at lost control for prevent combat with freindly units.
2010-06-14 10:27:44 +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
722135b326 [9838] More log filters and macro uses.
* LogFilter_Weather
* LogFilter_PeriodicAffects
* LogFilter_PlayerMoves
* LogFilter_SQLText
* LogFilter_AIAndMovegens
* LogFilter_PlayerStats
2010-05-05 18:46:10 +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
patman128
3032e80bb6 [9795] Implement CONDITION_INSTANCE_SCRIPT (mapid, some_id)
True if mapid fit to called instance map id and instance script confirm success for some_id case.

Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2010-04-26 09:12:48 +04:00
SilverIce
e3f3f3410a [9736] Added more usable interface for grid visits
(based on SilverIce's repo commit f20f01e)

Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2010-04-12 15:15:55 +04:00
VladimirMangos
5c7f6356d6 [9644] Changes in emotes work.
Waypoint/db script/event ai/'.npc playemote' emote data now auto select by emote id way to execute:
oneshot or persistent state

So if in referenced DB data wrongly used state emote as oneshot case this will work in different way now.
2010-03-30 22:13:55 +04:00
VladimirMangos
b658b25ff8 [9618] More use ObjectGuid in spell/etc code 2010-03-25 13:59:46 +03:00
NoFantasy
c9880047c9 [9609] Send zoneUnderAttack from EventAI if creature is a guard.
Signed-off-by: NoFantasy <nofantasy@nf.no>
2010-03-20 00:54:37 +01: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
VladimirMangos
84080aaf60 [9411] More SpellEffectIndex using in apropriate cases 2010-02-19 06:45:11 +03:00
NoFantasy
6469c21c41 [9410] Correct a typo in enum name, CAST_INTERRUPT_PREVIOUS
Signed-off-by: NoFantasy <nofantasy@nf.no>
2010-02-19 02:13:46 +01:00
VladimirMangos
ff8d494ed4 [9408] Add MAX_EFFECT_INDEX to enum SpellEffectIndex and use it. 2010-02-18 23:33:16 +03:00
NoFantasy
7c555add76 [9403] Replace number with enum name where explicitly used in array/other checks
Signed-off-by: NoFantasy <nofantasy@nf.no>
2010-02-17 19:07:00 +01:00
AlexDereka
ebfb0f9835 [9389] Cleanup config data. Use proper names and expected types. 2010-02-15 15:29:06 +03:00
AlexDereka
5368751c13 [9386] Store some config values in Rate emun. 2010-02-15 00:17:44 +03:00
AlexDereka
ccfd42bf3e [9381] Fixed some compile warnings. 2010-02-14 18:16:07 +03:00
AlexDereka
696cba9c37 [9330] Fixed msvc compile warnings. 2010-02-08 16:27:35 +03:00
XTZGZoReX
0ff9250de2 [9245] Remove CellLock class and all cell-level thread locking.
* It was wasting CPU power as cell-level locking is not needed.
* Future multithreading will be on map-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.
2010-01-23 21:36:15 +01:00
VladimirMangos
546ee35953 [9242] Fixed inconstence in one from recently added AI events name 2010-01-23 14:46:41 +03:00
VladimirMangos
36d90d6040 [9241] Implement AI/EventAI calls at summoned creature die/despawn
* New CreatureAI::SummonedCreatureJustDie called for owner at temporary summoned creature die.
* New EVENT_T_SUMMONED_JUST_DIE (25) for proccess CreatureAI::SummonedCreatureJustDie event
* New EVENT_T_SUMMONED_JUST_DESPAWN (26) for proccess CreatureAI::SummonedCreatureJustDespawn event
* Some code cleanups.
2010-01-23 14:41:38 +03:00
VladimirMangos
6a2e8064f1 [9208] Big cleanup in UNIT_STAT_* use
* Re-number enums by function groups and use where possible new defined masks in code instead raw enum |-lists.
* Avoid use movement generator generic state markers like UNIT_STAT_CONFUSED for mark movement stoped.
  Add special shadow UNIT_STAT_CONFUSED_MOVE/etc states for like use.
  UNIT_STAT_CONFUSED in like case will be safe expect use for normal checks confused state presence
  And UNIT_STAT_CONFUSED_MOVE for check real move in this state
2010-01-18 11:59:10 +03:00
VladimirMangos
8a03785470 [9198] Replace targeted movegen by 2 new: chase/follow movegens.
NOTE: this is mostly just formal adding 2 movegens with very limited cleanups.
Real result from adding 2 new movegens possible after apply more deep cleanups/fixes
in UNIT_STAT_CHASE/UNIT_STAT_FOLLOW set. But this will need more cereful changes
because we have currently sometime strange dependences and places for set for this flags.
Similar cleanups required for other movegen related flags. Infact i have related patches but
need more testing before apply step by step.
2010-01-17 09:37:11 +03:00
ApoC
6311b73413 [9127] Allow use delayed forced despawn also in EAI.
Signed-off-by: ApoC <apoc@nymfe.net>
2010-01-08 03:11:19 +01:00
VladimirMangos
fe6e2e1746 [9122] Updated copyright notice for new year.
Also fix some lost in past cases.
2010-01-08 00:02:21 +03:00
VladimirMangos
67e070870b [8860] Prevent spam to clients by iupdates non-modifed threat list.
Also make more stricted access to threat list content.
2009-11-23 01:48:37 +03:00
QAston
d924406bd8 [8858] Implement client inform about creature threat list changes.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>

Also small related code cleanups.
2009-11-22 10:33:11 +03:00
balrok
1d362eace4 [8845] fixed some gcc warnings 2009-11-20 12:57:19 +01:00
XTZGZoReX
0734adb746 [8789] Rename several singleton macros to use more consistent names.
* objmgr -> sObjectMgr
 * spellmgr -> sSpellMgr
 * WaypointMgr -> sWaypointMgr
 * poolhandler -> sPoolMgr
 * objaccessor -> sObjectAccessor
 * mapmgr -> sMapMgr
 * sInstanceSaveManager -> sInstanceSaveMgr
 * ticketmgr -> sTicketMgr
 * CreatureEAI_Mgr -> sEventAIMgr
 * auctionmgr -> sAuctionMgr
 * achievementmgr -> sAchievementMgr
2009-11-08 12:11:34 +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
97c94cff56 fixed problems with isInvisbleForAlive
removed redundant check at MoveInLos
this check is already done in istargetableForAttack
thx to NoFantasy

fixed in isVisibleForOrDetect that isInvisbleForAlive
wasn't checked.. and therefore all spiritserviceprovider
got visible
thx to NetSky
2009-10-21 20:00:07 +02:00
balrok
46389e4e1c [8689] implement function Unit::isInvisibleForAlive
with that i've implemented all known auras which makes
units invisible for alive.. but that's currently quite hacky
i think best would be if we could set a unit-flag after those auras
getting applied
2009-10-20 23:37:21 +02:00
VladimirMangos
b258a17ba4 [8658] Threat calculation fixes and improvements.
* Add single arg version Unit::AddThreat for just adding to threat list.
* Req. provide schollmask and crit flag for any real threat value for proper threats mod apply.
* Send crit flag in DealDamage as MELEE_HIT_CRIT for spell damage for later send to threat call.
* For not affected by modifiers threat values use SPELL_SCHOOL_MASK_NONE.
* Implement aura SPELL_AURA_MOD_CRITICAL_THREAT (used only in itemset 529 effect).
2009-10-17 11:02:30 +04:00
NoFantasy
65965bc5fa [8642] Replace the Spanish word 'hostil' with the English one.
Signed-off-by: NoFantasy <nofantasy@nf.no>
2009-10-14 12:46:10 +02:00
balrok
01318dbc8c [8629] don't let eventaicreatures cast spells in stuns etc.
also small correction to feign death (unit could still turn around
to face his victim with this aura)
2009-10-11 22:42:07 +02:00
balrok
02d45b4b54 [8625] feign_death cleanups
use an extra function for setfeigndeath()
like it's done with setfeared already..
allow to apply feigndeath on creatures too
avoid moving of creatures with feign death applied
and start attacking last victim when feigndeath disappears
2009-10-11 14:22:52 +02:00
VladimirMangos
c5bda77fe2 [8605] Check unused text/summon data in EventAI scripts. 2009-10-09 10:26:19 +04:00
Ambal
cfea99ea62 [8524] New cell search algorithm implemented. You can now choose different visibility distances on continents, in BG/Arenas and instances.
Please, update your config files and check new options:

Visibility.Distance.Continents    = 90
Visibility.Distance.Instances     = 120
Visibility.Distance.BGArenas      = 180

Thanks everyone involved in patch tests!

Signed-off-by: Ambal <pogrebniak@gala.net>
2009-09-21 23:25:29 +03:00
balrok
bd30769dec [8475] fixed some gcc-warnings
all warnings from Wunused
and some from Wall

cause unused may be most interesting for some:
they were in following files:
src/game/Level2.cpp
src/game/Map.cpp
src/game/SpellAuras.cpp
src/game/Unit.cpp
src/mangosd/Master.cpp
but i guess mostly someone just fogot to remove this code

for some unsigned vs signed warnings i used:
ack "for.*int .*size\(\)" | ack -v uint

also note for coding:
if you do something like
    if( a && b || c)
just place parentheses around (a && b) && always will have
precedence over || but without parentheses this could be overseen
quite fast (at least that's my guess why gcc will warn for this)

Signed-off-by: balrok <der-coole-carl@gmx.net>
2009-09-05 13:47:47 +02: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
NoFantasy
06b0e7a444 [8326] Check getVictim() before IsInMap check in EventAI EVENT_T_RANGE and prevent possible crash.
Signed-off-by: NoFantasy <nofantasy@nf.no>
2009-08-06 20:51:21 +02:00
VladimirMangos
18ae2de853 [8235] Fixed typos in ACTION_T_SET_INVINCEABILITY_HP_LEVEL.
Thanks to Zor for pointing.
2009-07-23 17:28:06 +04:00
VladimirMangos
dce0941511 [8233] Implement new EventAI action ACTION_T_SET_INVINCEABILITY_HP_LEVEL.
Action set min. health value that can be set for creature in result damage apply.
It can be used in duel like events with creatures to prevent killing creature and other
cases when creature must avoid damage at some health level while it used.
2009-07-23 12:40:21 +04:00
ApoC
1ad013e25b [8146] Fixed handling of eventchance for CreatureEventAI.
Check event chance after timers advances othewise event is
not scheduled to next time period and event chance is again
checked on next AI update.

Signed-off-by: ApoC <apoc@nymfe.net>
2009-07-07 23:01:28 +02: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
b91f7c9479 [8046] Use float for store AttackDistance as expected by using calls.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
2009-06-20 01:17:23 +04:00
VladimirMangos
4cbf8e2412 [8045] Cleanup expression. 2009-06-20 00:32:32 +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
5350dbafd9 [8018] Implement EVENT_T_BUFFED and EVENT_T_TARGET_BUFFED for creature EventAI.
Its can be used for check specific spell auras stack size for event triggering.
2009-06-15 02:25:57 +04:00
VladimirMangos
3c9f9e3fa3 [8017] Always reset creature EventAI phase at creature death. 2009-06-15 01:33:43 +04:00