mirror of
https://github.com/mangosfour/server.git
synced 2025-12-16 13:37:00 +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/Player.h"
|
||||||
#include "../../game/Map.h"
|
#include "../../game/Map.h"
|
||||||
#include "../../game/ObjectMgr.h"
|
#include "../../game/ObjectMgr.h"
|
||||||
|
#include "../../game/SpellAuras.h"
|
||||||
|
|
||||||
//uint8 loglevel = 0;
|
//uint8 loglevel = 0;
|
||||||
int nrscripts;
|
int nrscripts;
|
||||||
|
|
@ -310,6 +311,16 @@ bool EffectDummyItem(Unit *caster, uint32 spellId, SpellEffectIndex effIndex, It
|
||||||
return tmpscript->pEffectDummyItem(caster, spellId, effIndex, itemTarget);
|
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)
|
void ScriptedAI::UpdateAI(const uint32)
|
||||||
{
|
{
|
||||||
//Check if we have a current target
|
//Check if we have a current target
|
||||||
|
|
|
||||||
|
|
@ -31,6 +31,7 @@ class Item;
|
||||||
class GameObject;
|
class GameObject;
|
||||||
class SpellCastTargets;
|
class SpellCastTargets;
|
||||||
class Map;
|
class Map;
|
||||||
|
class Aura;
|
||||||
|
|
||||||
#define MAX_SCRIPTS 1000
|
#define MAX_SCRIPTS 1000
|
||||||
#define MAX_INSTANCE_SCRIPTS 1000
|
#define MAX_INSTANCE_SCRIPTS 1000
|
||||||
|
|
@ -42,7 +43,7 @@ struct Script
|
||||||
pQuestSelect(NULL), pQuestComplete(NULL), pNPCDialogStatus(NULL), pGODialogStatus(NULL), pChooseReward(NULL),
|
pQuestSelect(NULL), pQuestComplete(NULL), pNPCDialogStatus(NULL), pGODialogStatus(NULL), pChooseReward(NULL),
|
||||||
pItemHello(NULL), pGOHello(NULL), pAreaTrigger(NULL), pItemQuestAccept(NULL), pGOQuestAccept(NULL),
|
pItemHello(NULL), pGOHello(NULL), pAreaTrigger(NULL), pItemQuestAccept(NULL), pGOQuestAccept(NULL),
|
||||||
pGOChooseReward(NULL), pItemUse(NULL), pEffectDummyGameObj(NULL), pEffectDummyCreature(NULL),
|
pGOChooseReward(NULL), pItemUse(NULL), pEffectDummyGameObj(NULL), pEffectDummyCreature(NULL),
|
||||||
pEffectDummyItem(NULL), GetAI(NULL)
|
pEffectDummyItem(NULL), pEffectAuraDummy(NULL), GetAI(NULL)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
std::string Name;
|
std::string Name;
|
||||||
|
|
@ -67,6 +68,7 @@ struct Script
|
||||||
bool (*pEffectDummyGameObj )(Unit*, uint32, SpellEffectIndex, GameObject* );
|
bool (*pEffectDummyGameObj )(Unit*, uint32, SpellEffectIndex, GameObject* );
|
||||||
bool (*pEffectDummyCreature )(Unit*, uint32, SpellEffectIndex, Creature* );
|
bool (*pEffectDummyCreature )(Unit*, uint32, SpellEffectIndex, Creature* );
|
||||||
bool (*pEffectDummyItem )(Unit*, uint32, SpellEffectIndex, Item* );
|
bool (*pEffectDummyItem )(Unit*, uint32, SpellEffectIndex, Item* );
|
||||||
|
bool (*pEffectAuraDummy )(const Aura*, bool);
|
||||||
|
|
||||||
CreatureAI* (*GetAI)(Creature *_Creature);
|
CreatureAI* (*GetAI)(Creature *_Creature);
|
||||||
InstanceData* (*GetInstanceData)(Map*);
|
InstanceData* (*GetInstanceData)(Map*);
|
||||||
|
|
|
||||||
|
|
@ -76,6 +76,7 @@ bool LoadScriptingModule(char const* libName)
|
||||||
||!(testScript->EffectDummyGameObj =(scriptCallEffectDummyGameObj )MANGOS_GET_PROC_ADDR(testScript->hScriptsLib,"EffectDummyGameObj" ))
|
||!(testScript->EffectDummyGameObj =(scriptCallEffectDummyGameObj )MANGOS_GET_PROC_ADDR(testScript->hScriptsLib,"EffectDummyGameObj" ))
|
||||||
||!(testScript->EffectDummyCreature =(scriptCallEffectDummyCreature )MANGOS_GET_PROC_ADDR(testScript->hScriptsLib,"EffectDummyCreature" ))
|
||!(testScript->EffectDummyCreature =(scriptCallEffectDummyCreature )MANGOS_GET_PROC_ADDR(testScript->hScriptsLib,"EffectDummyCreature" ))
|
||||||
||!(testScript->EffectDummyItem =(scriptCallEffectDummyItem )MANGOS_GET_PROC_ADDR(testScript->hScriptsLib,"EffectDummyItem" ))
|
||!(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->GetAI =(scriptCallGetAI )MANGOS_GET_PROC_ADDR(testScript->hScriptsLib,"GetAI" ))
|
||||||
||!(testScript->CreateInstanceData =(scriptCallCreateInstanceData )MANGOS_GET_PROC_ADDR(testScript->hScriptsLib,"CreateInstanceData" ))
|
||!(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 * 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 * 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 * 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 CreatureAI* (MANGOS_IMPORT * scriptCallGetAI) ( Creature *_Creature );
|
||||||
typedef InstanceData* (MANGOS_IMPORT * scriptCallCreateInstanceData) (Map *map);
|
typedef InstanceData* (MANGOS_IMPORT * scriptCallCreateInstanceData) (Map *map);
|
||||||
|
|
||||||
|
|
@ -87,6 +88,7 @@ typedef struct
|
||||||
scriptCallEffectDummyGameObj EffectDummyGameObj;
|
scriptCallEffectDummyGameObj EffectDummyGameObj;
|
||||||
scriptCallEffectDummyCreature EffectDummyCreature;
|
scriptCallEffectDummyCreature EffectDummyCreature;
|
||||||
scriptCallEffectDummyItem EffectDummyItem;
|
scriptCallEffectDummyItem EffectDummyItem;
|
||||||
|
scriptCallEffectAuraDummy EffectAuraDummy;
|
||||||
scriptCallGetAI GetAI;
|
scriptCallGetAI GetAI;
|
||||||
scriptCallCreateInstanceData CreateInstanceData;
|
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)
|
void Aura::HandleAuraMounted(bool apply, bool Real)
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
#ifndef __REVISION_NR_H__
|
#ifndef __REVISION_NR_H__
|
||||||
#define __REVISION_NR_H__
|
#define __REVISION_NR_H__
|
||||||
#define REVISION_NR "9443"
|
#define REVISION_NR "9444"
|
||||||
#endif // __REVISION_NR_H__
|
#endif // __REVISION_NR_H__
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue