[8002] Implemented ACHIEVEMENT_CRITERIA_DATA_TYPE S_DRUNK and fixed typos in ACHIEVEMENT_CRITERIA_DATA_TYPE_T_TEAM Author: Dyddye
--HG-- branch : trunk
This commit is contained in:
@@ -209,7 +209,15 @@ bool AchievementCriteriaData::IsValid(AchievementCriteriaEntry const* criteria)
|
|||||||
if(team.team != ALLIANCE && team.team != HORDE)
|
if(team.team != ALLIANCE && team.team != HORDE)
|
||||||
{
|
{
|
||||||
sLog.outErrorDb( "Table `achievement_criteria_data` (Entry: %u Type: %u) for data type ACHIEVEMENT_CRITERIA_DATA_TYPE_T_TEAM (%u) have unknown team in value1 (%u), ignore.",
|
sLog.outErrorDb( "Table `achievement_criteria_data` (Entry: %u Type: %u) for data type ACHIEVEMENT_CRITERIA_DATA_TYPE_T_TEAM (%u) have unknown team in value1 (%u), ignore.",
|
||||||
criteria->ID, criteria->requiredType,dataType,gender.gender);
|
criteria->ID, criteria->requiredType,dataType,team.team);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
case ACHIEVEMENT_CRITERIA_DATA_TYPE_S_DRUNK:
|
||||||
|
if(drunk.state >= MAX_DRUNKEN)
|
||||||
|
{
|
||||||
|
sLog.outErrorDb( "Table `achievement_criteria_data` (Entry: %u Type: %u) for data type ACHIEVEMENT_CRITERIA_DATA_TYPE_S_DRUNK (%u) have unknown drunken state in value1 (%u), ignore.",
|
||||||
|
criteria->ID, criteria->requiredType,dataType,drunk.state);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
@@ -277,6 +285,8 @@ bool AchievementCriteriaData::Meets(Player const* source, Unit const* target, ui
|
|||||||
if (!target || target->GetTypeId() != TYPEID_PLAYER)
|
if (!target || target->GetTypeId() != TYPEID_PLAYER)
|
||||||
return false;
|
return false;
|
||||||
return ((Player*)target)->GetTeam() == team.team;
|
return ((Player*)target)->GetTeam() == team.team;
|
||||||
|
case ACHIEVEMENT_CRITERIA_DATA_TYPE_S_DRUNK:
|
||||||
|
return Player::GetDrunkenstateByValue(source->GetDrunkValue()) >= drunk.state;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -57,9 +57,10 @@ enum AchievementCriteriaDataType
|
|||||||
ACHIEVEMENT_CRITERIA_DATA_TYPE_MAP_DIFFICULTY = 12,// difficulty normal/heroic difficulty for current event map
|
ACHIEVEMENT_CRITERIA_DATA_TYPE_MAP_DIFFICULTY = 12,// difficulty normal/heroic difficulty for current event map
|
||||||
ACHIEVEMENT_CRITERIA_DATA_TYPE_MAP_PLAYER_COUNT = 13,// count "with less than %u people in the zone"
|
ACHIEVEMENT_CRITERIA_DATA_TYPE_MAP_PLAYER_COUNT = 13,// count "with less than %u people in the zone"
|
||||||
ACHIEVEMENT_CRITERIA_DATA_TYPE_T_TEAM = 14,// team HORDE(67), ALLIANCE(469)
|
ACHIEVEMENT_CRITERIA_DATA_TYPE_T_TEAM = 14,// team HORDE(67), ALLIANCE(469)
|
||||||
|
ACHIEVEMENT_CRITERIA_DATA_TYPE_S_DRUNK = 15,// drunken_state 0 (enum DrunkenState) of player
|
||||||
};
|
};
|
||||||
|
|
||||||
#define MAX_ACHIEVEMENT_CRITERIA_DATA_TYPE 15 // maximum value in AchievementCriteriaDataType enum
|
#define MAX_ACHIEVEMENT_CRITERIA_DATA_TYPE 16 // maximum value in AchievementCriteriaDataType enum
|
||||||
|
|
||||||
class Player;
|
class Player;
|
||||||
class Unit;
|
class Unit;
|
||||||
@@ -134,6 +135,11 @@ struct AchievementCriteriaData
|
|||||||
{
|
{
|
||||||
uint32 team;
|
uint32 team;
|
||||||
} team;
|
} team;
|
||||||
|
// ACHIEVEMENT_CRITERIA_DATA_TYPE_S_DRUNK = 15
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
uint32 state;
|
||||||
|
} drunk;
|
||||||
// ...
|
// ...
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -374,6 +374,8 @@ enum DrunkenState
|
|||||||
DRUNKEN_SMASHED = 3
|
DRUNKEN_SMASHED = 3
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#define MAX_DRUNKEN 4
|
||||||
|
|
||||||
enum PlayerFlags
|
enum PlayerFlags
|
||||||
{
|
{
|
||||||
PLAYER_FLAGS_GROUP_LEADER = 0x00000001,
|
PLAYER_FLAGS_GROUP_LEADER = 0x00000001,
|
||||||
|
|||||||
Reference in New Issue
Block a user