mirror of
https://github.com/mangosfour/server.git
synced 2025-12-15 19:37:02 +00:00
[7882] For achievement criterias data check ACHIEVEMENT_CRITERIA_DATA_TYPE_T_PLAYER_DEAD include target's team check.
This commit is contained in:
parent
5616ef173b
commit
82c8428d78
3 changed files with 17 additions and 3 deletions
|
|
@ -128,6 +128,12 @@ bool AchievementCriteriaData::IsValid(AchievementCriteriaEntry const* criteria)
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
case ACHIEVEMENT_CRITERIA_DATA_TYPE_T_PLAYER_DEAD:
|
case ACHIEVEMENT_CRITERIA_DATA_TYPE_T_PLAYER_DEAD:
|
||||||
|
if(player_dead.own_team_flag > 1)
|
||||||
|
{
|
||||||
|
sLog.outErrorDb( "Table `achievement_criteria_data` (Entry: %u Type: %u) for data type %s (%u) have wrong boolean value1 (%u).",
|
||||||
|
criteria->ID, criteria->requiredType,dataType,player_dead.own_team_flag);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
case ACHIEVEMENT_CRITERIA_DATA_TYPE_S_AURA:
|
case ACHIEVEMENT_CRITERIA_DATA_TYPE_S_AURA:
|
||||||
case ACHIEVEMENT_CRITERIA_DATA_TYPE_T_AURA:
|
case ACHIEVEMENT_CRITERIA_DATA_TYPE_T_AURA:
|
||||||
|
|
@ -193,7 +199,10 @@ bool AchievementCriteriaData::Meets(Player const* source, Unit const* target) co
|
||||||
return false;
|
return false;
|
||||||
return target->GetHealth()*100 <= health.percent*target->GetMaxHealth();
|
return target->GetHealth()*100 <= health.percent*target->GetMaxHealth();
|
||||||
case ACHIEVEMENT_CRITERIA_DATA_TYPE_T_PLAYER_DEAD:
|
case ACHIEVEMENT_CRITERIA_DATA_TYPE_T_PLAYER_DEAD:
|
||||||
return target && target->GetTypeId() == TYPEID_PLAYER && !target->isAlive() && ((Player*)target)->GetDeathTimer() != 0;
|
if (!target || target->GetTypeId() != TYPEID_PLAYER || target->isAlive() || ((Player*)target)->GetDeathTimer() == 0)
|
||||||
|
return false;
|
||||||
|
// flag set == must be same team, not set == different team
|
||||||
|
return (((Player*)target)->GetTeam() == source->GetTeam()) == (player_dead.own_team_flag != 0);
|
||||||
case ACHIEVEMENT_CRITERIA_DATA_TYPE_S_AURA:
|
case ACHIEVEMENT_CRITERIA_DATA_TYPE_S_AURA:
|
||||||
return source->HasAura(aura.spell_id,aura.effect_idx);
|
return source->HasAura(aura.spell_id,aura.effect_idx);
|
||||||
case ACHIEVEMENT_CRITERIA_DATA_TYPE_S_AREA:
|
case ACHIEVEMENT_CRITERIA_DATA_TYPE_S_AREA:
|
||||||
|
|
|
||||||
|
|
@ -46,7 +46,7 @@ enum AchievementCriteriaDataType
|
||||||
ACHIEVEMENT_CRITERIA_DATA_TYPE_T_CREATURE = 1, // creature_id 0
|
ACHIEVEMENT_CRITERIA_DATA_TYPE_T_CREATURE = 1, // creature_id 0
|
||||||
ACHIEVEMENT_CRITERIA_DATA_TYPE_T_PLAYER_CLASS_RACE = 2, // class_id race_id
|
ACHIEVEMENT_CRITERIA_DATA_TYPE_T_PLAYER_CLASS_RACE = 2, // class_id race_id
|
||||||
ACHIEVEMENT_CRITERIA_DATA_TYPE_T_PLAYER_LESS_HEALTH= 3, // health_percent 0
|
ACHIEVEMENT_CRITERIA_DATA_TYPE_T_PLAYER_LESS_HEALTH= 3, // health_percent 0
|
||||||
ACHIEVEMENT_CRITERIA_DATA_TYPE_T_PLAYER_DEAD = 4, // 0 0 not corpse (not released body)
|
ACHIEVEMENT_CRITERIA_DATA_TYPE_T_PLAYER_DEAD = 4, // own_team 0 not corpse (not released body), own_team==false if enemy team expected
|
||||||
ACHIEVEMENT_CRITERIA_DATA_TYPE_S_AURA = 5, // spell_id effect_idx
|
ACHIEVEMENT_CRITERIA_DATA_TYPE_S_AURA = 5, // spell_id effect_idx
|
||||||
ACHIEVEMENT_CRITERIA_DATA_TYPE_S_AREA = 6, // area id 0
|
ACHIEVEMENT_CRITERIA_DATA_TYPE_S_AREA = 6, // area id 0
|
||||||
ACHIEVEMENT_CRITERIA_DATA_TYPE_T_AURA = 7, // spell_id effect_idx
|
ACHIEVEMENT_CRITERIA_DATA_TYPE_T_AURA = 7, // spell_id effect_idx
|
||||||
|
|
@ -78,6 +78,11 @@ struct AchievementCriteriaData
|
||||||
{
|
{
|
||||||
uint32 percent;
|
uint32 percent;
|
||||||
} health;
|
} health;
|
||||||
|
// ACHIEVEMENT_CRITERIA_DATA_TYPE_T_PLAYER_DEAD
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
uint32 own_team_flag;
|
||||||
|
} player_dead;
|
||||||
// ACHIEVEMENT_CRITERIA_DATA_TYPE_T_AURA
|
// ACHIEVEMENT_CRITERIA_DATA_TYPE_T_AURA
|
||||||
// ACHIEVEMENT_CRITERIA_DATA_TYPE_S_AURA
|
// ACHIEVEMENT_CRITERIA_DATA_TYPE_S_AURA
|
||||||
struct
|
struct
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
#ifndef __REVISION_NR_H__
|
#ifndef __REVISION_NR_H__
|
||||||
#define __REVISION_NR_H__
|
#define __REVISION_NR_H__
|
||||||
#define REVISION_NR "7881"
|
#define REVISION_NR "7882"
|
||||||
#endif // __REVISION_NR_H__
|
#endif // __REVISION_NR_H__
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue