Files
Sun1602/Server/GameServer/PassiveStatusAbility.cpp
T
2022-10-26 12:25:11 +08:00

56 lines
1.3 KiB
C++

#include "StdAfx.h"
#include "PassiveStatusAbility.h"
#include "SkillAttrCalculator.h"
bool PassiveStatusAbility::Execute(Character* /*target*/, BYTE* /*msg*/, WORD& /*msg_size*/)
{
Character* const attacker = GetAttacker();
if (attacker == NULL)
{
return false;
}
const eATTR_TYPE attr_id = GetAttrID();
if (attr_id == eATTR_TYPE_INVALID)
{
return false;
}
const BASE_ABILITYINFO* const ability_info = GetBaseAbilityInfo();
const int add_value = ability_info->m_iParam[1];
if (add_value == 0)
{
return false;
}
SkillAttrCalculator calc(attacker->GetAttr());
calc.AddAttr(attr_id, ability_info->m_iParam[0], add_value);
return false;
}
void PassiveStatusAbility::Release(Character* /*target*/)
{
Character* const attacker = GetAttacker();
if (attacker == NULL)
{
return;
}
const eATTR_TYPE attr_id = GetAttrID();
if (attr_id == eATTR_TYPE_INVALID)
{
return;
}
const BASE_ABILITYINFO* const ability_info = GetBaseAbilityInfo();
const int del_value = ability_info->m_iParam[1];
if (del_value == 0)
{
return;
}
SkillAttrCalculator calc(attacker->GetAttr());
calc.DelAttr(attr_id, ability_info->m_iParam[0], del_value);
}