*Add CONDITION_INSTANCE_DATA for dynamic loot of instance such as Zul'aman and AV battleground.
*Script update for Zul'aman. --HG-- branch : trunk
This commit is contained in:
@@ -64,5 +64,9 @@ class TRINITY_DLL_SPEC InstanceData
|
||||
|
||||
//called on creature creation
|
||||
virtual void OnCreatureCreate(Creature * /*creature*/, uint32 /*creature_entry*/) {}
|
||||
|
||||
//All-purpose data storage 32 bit
|
||||
virtual uint32 GetData(uint32) { return 0; }
|
||||
virtual void SetData(uint32, uint32 data) {}
|
||||
};
|
||||
#endif
|
||||
|
||||
@@ -45,6 +45,7 @@
|
||||
#include "SpellAuras.h"
|
||||
#include "Util.h"
|
||||
#include "WaypointManager.h"
|
||||
#include "InstanceData.h" //for condition_instance_data
|
||||
|
||||
INSTANTIATE_SINGLETON_1(ObjectMgr);
|
||||
|
||||
@@ -6737,6 +6738,12 @@ bool PlayerCondition::Meets(Player const * player) const
|
||||
return !player->HasAura(value1, value2);
|
||||
case CONDITION_ACTIVE_EVENT:
|
||||
return gameeventmgr.IsActiveEvent(value1);
|
||||
case CONDITION_INSTANCE_DATA:
|
||||
{
|
||||
Map *map = player->GetMap();
|
||||
if(map && map->IsDungeon() && ((InstanceMap*)map)->GetInstanceData())
|
||||
return ((InstanceMap*)map)->GetInstanceData()->GetData(value1) == value2;
|
||||
}
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
@@ -6881,6 +6888,9 @@ bool PlayerCondition::IsValid(ConditionType condition, uint32 value1, uint32 val
|
||||
}
|
||||
break;
|
||||
}
|
||||
case CONDITION_INSTANCE_DATA:
|
||||
//TODO: need some check
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -216,9 +216,10 @@ enum ConditionType
|
||||
CONDITION_AD_COMMISSION_AURA = 10, // 0 0, for condition true while one from AD ñommission aura active
|
||||
CONDITION_NO_AURA = 11, // spell_id effindex
|
||||
CONDITION_ACTIVE_EVENT = 12, // event_id
|
||||
CONDITION_INSTANCE_DATA = 13, // entry data
|
||||
};
|
||||
|
||||
#define MAX_CONDITION 13 // maximum value in ConditionType enum
|
||||
#define MAX_CONDITION 14 // maximum value in ConditionType enum
|
||||
|
||||
//Player's info
|
||||
typedef struct _tagCachePlayerInfo
|
||||
|
||||
Reference in New Issue
Block a user