mirror of
https://github.com/mangosfour/server.git
synced 2025-12-15 19:37:02 +00:00
[9444] Add script call EffectAuraDummy, called at dummy aura(4) apply/remove
Signed-off-by: NoFantasy <nofantasy@nf.no>
This commit is contained in:
parent
9f3b42d8ee
commit
24f2d4658f
6 changed files with 22 additions and 2 deletions
|
|
@ -23,6 +23,7 @@
|
|||
#include "../../game/Player.h"
|
||||
#include "../../game/Map.h"
|
||||
#include "../../game/ObjectMgr.h"
|
||||
#include "../../game/SpellAuras.h"
|
||||
|
||||
//uint8 loglevel = 0;
|
||||
int nrscripts;
|
||||
|
|
@ -310,6 +311,16 @@ bool EffectDummyItem(Unit *caster, uint32 spellId, SpellEffectIndex effIndex, It
|
|||
return tmpscript->pEffectDummyItem(caster, spellId, effIndex, itemTarget);
|
||||
}
|
||||
|
||||
MANGOS_DLL_EXPORT
|
||||
bool EffectAuraDummy(const Aura* pAura, bool apply)
|
||||
{
|
||||
Script *tmpscript = m_scripts[((Creature*)pAura->GetTarget())->GetScriptId()];
|
||||
if (!tmpscript || !tmpscript->pEffectAuraDummy)
|
||||
return false;
|
||||
|
||||
return tmpscript->pEffectAuraDummy(pAura, apply);
|
||||
}
|
||||
|
||||
void ScriptedAI::UpdateAI(const uint32)
|
||||
{
|
||||
//Check if we have a current target
|
||||
|
|
|
|||
|
|
@ -31,6 +31,7 @@ class Item;
|
|||
class GameObject;
|
||||
class SpellCastTargets;
|
||||
class Map;
|
||||
class Aura;
|
||||
|
||||
#define MAX_SCRIPTS 1000
|
||||
#define MAX_INSTANCE_SCRIPTS 1000
|
||||
|
|
@ -42,7 +43,7 @@ struct Script
|
|||
pQuestSelect(NULL), pQuestComplete(NULL), pNPCDialogStatus(NULL), pGODialogStatus(NULL), pChooseReward(NULL),
|
||||
pItemHello(NULL), pGOHello(NULL), pAreaTrigger(NULL), pItemQuestAccept(NULL), pGOQuestAccept(NULL),
|
||||
pGOChooseReward(NULL), pItemUse(NULL), pEffectDummyGameObj(NULL), pEffectDummyCreature(NULL),
|
||||
pEffectDummyItem(NULL), GetAI(NULL)
|
||||
pEffectDummyItem(NULL), pEffectAuraDummy(NULL), GetAI(NULL)
|
||||
{}
|
||||
|
||||
std::string Name;
|
||||
|
|
@ -67,6 +68,7 @@ struct Script
|
|||
bool (*pEffectDummyGameObj )(Unit*, uint32, SpellEffectIndex, GameObject* );
|
||||
bool (*pEffectDummyCreature )(Unit*, uint32, SpellEffectIndex, Creature* );
|
||||
bool (*pEffectDummyItem )(Unit*, uint32, SpellEffectIndex, Item* );
|
||||
bool (*pEffectAuraDummy )(const Aura*, bool);
|
||||
|
||||
CreatureAI* (*GetAI)(Creature *_Creature);
|
||||
InstanceData* (*GetInstanceData)(Map*);
|
||||
|
|
|
|||
|
|
@ -76,6 +76,7 @@ bool LoadScriptingModule(char const* libName)
|
|||
||!(testScript->EffectDummyGameObj =(scriptCallEffectDummyGameObj )MANGOS_GET_PROC_ADDR(testScript->hScriptsLib,"EffectDummyGameObj" ))
|
||||
||!(testScript->EffectDummyCreature =(scriptCallEffectDummyCreature )MANGOS_GET_PROC_ADDR(testScript->hScriptsLib,"EffectDummyCreature" ))
|
||||
||!(testScript->EffectDummyItem =(scriptCallEffectDummyItem )MANGOS_GET_PROC_ADDR(testScript->hScriptsLib,"EffectDummyItem" ))
|
||||
||!(testScript->EffectAuraDummy =(scriptCallEffectAuraDummy )MANGOS_GET_PROC_ADDR(testScript->hScriptsLib,"EffectAuraDummy" ))
|
||||
||!(testScript->GetAI =(scriptCallGetAI )MANGOS_GET_PROC_ADDR(testScript->hScriptsLib,"GetAI" ))
|
||||
||!(testScript->CreateInstanceData =(scriptCallCreateInstanceData )MANGOS_GET_PROC_ADDR(testScript->hScriptsLib,"CreateInstanceData" ))
|
||||
)
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ typedef bool(MANGOS_IMPORT * scriptCallItemUse) (Player *player, Item *_Item, Sp
|
|||
typedef bool(MANGOS_IMPORT * scriptCallEffectDummyGameObj) (Unit *caster, uint32 spellId, SpellEffectIndex effIndex, GameObject *gameObjTarget);
|
||||
typedef bool(MANGOS_IMPORT * scriptCallEffectDummyCreature) (Unit *caster, uint32 spellId, SpellEffectIndex effIndex, Creature *crTarget);
|
||||
typedef bool(MANGOS_IMPORT * scriptCallEffectDummyItem) (Unit *caster, uint32 spellId, SpellEffectIndex effIndex, Item *itemTarget);
|
||||
typedef bool(MANGOS_IMPORT * scriptCallEffectAuraDummy) (const Aura* pAura, bool apply);
|
||||
typedef CreatureAI* (MANGOS_IMPORT * scriptCallGetAI) ( Creature *_Creature );
|
||||
typedef InstanceData* (MANGOS_IMPORT * scriptCallCreateInstanceData) (Map *map);
|
||||
|
||||
|
|
@ -87,6 +88,7 @@ typedef struct
|
|||
scriptCallEffectDummyGameObj EffectDummyGameObj;
|
||||
scriptCallEffectDummyCreature EffectDummyCreature;
|
||||
scriptCallEffectDummyItem EffectDummyItem;
|
||||
scriptCallEffectAuraDummy EffectAuraDummy;
|
||||
scriptCallGetAI GetAI;
|
||||
scriptCallCreateInstanceData CreateInstanceData;
|
||||
|
||||
|
|
|
|||
|
|
@ -2859,6 +2859,10 @@ void Aura::HandleAuraDummy(bool apply, bool Real)
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
// script has to "handle with care", only use where data are not ok to use in the above code.
|
||||
if (m_target->GetTypeId() == TYPEID_UNIT)
|
||||
Script->EffectAuraDummy(this, apply);
|
||||
}
|
||||
|
||||
void Aura::HandleAuraMounted(bool apply, bool Real)
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
#ifndef __REVISION_NR_H__
|
||||
#define __REVISION_NR_H__
|
||||
#define REVISION_NR "9443"
|
||||
#define REVISION_NR "9444"
|
||||
#endif // __REVISION_NR_H__
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue