[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:
megamage
2009-06-14 09:59:50 -05:00
parent e192d8f39b
commit c0c9b14e1d
3 changed files with 20 additions and 2 deletions
+11 -1
View File
@@ -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;
} }
+7 -1
View File
@@ -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
{ {
+2
View File
@@ -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,