diff --git a/server/gameserver/human.cc b/server/gameserver/human.cc index 8694de75..2b9261d6 100644 --- a/server/gameserver/human.cc +++ b/server/gameserver/human.cc @@ -2786,18 +2786,6 @@ void Human::ProcAddItemDto(AddItemDTO& dto) ProcLoveItem(dto); } break; -#if 0 - case EQUIP_TYPE_BLUE_STONE: - { - ProcBlueStoneItem(dto); - } - break; - case EQUIP_TYPE_PURPLE_STONE: - { - ProcPurpleStoneItem(dto); - } - break; -#endif default: { ProcLootSpecItem(dto); @@ -3359,14 +3347,21 @@ void Human::ProcBlueStoneItem(AddItemDTO& dto) if (GetInventory(IS_BLUE_STONE) >= GetVolume(IS_BLUE_STONE)) { return; } + Skill* skill = GetMainSkill(); + if (!skill) { + return; + } + if (!skill->Actived()) { + skill->Active(); + } AddInventory(IS_BLUE_STONE, 1); - gemstone += 1; + skill->LevelUp(); room->frame_event.AddPropChg ( GetWeakPtrRef(), kPropYellowStone, 0, - gemstone, + GetInventory(IS_BLUE_STONE), false); //刷新数量 diff --git a/server/gameserver/skill.cc b/server/gameserver/skill.cc index 84b57381..044002af 100644 --- a/server/gameserver/skill.cc +++ b/server/gameserver/skill.cc @@ -497,3 +497,14 @@ bool Skill::IsMainSkill() { return owner->GetBattleContext()->IsMainSkill(this); } + +void Skill::Active() +{ + actived_ = true; + NotifySkillState(); +} + +void Skill::LevelUp() +{ + +} diff --git a/server/gameserver/skill.h b/server/gameserver/skill.h index 4358e511..af36f918 100644 --- a/server/gameserver/skill.h +++ b/server/gameserver/skill.h @@ -45,7 +45,10 @@ class Skill void CancelMinorMode(); void ProcSkillPhase(const mt::SkillPhase* phase); bool Actived() { return actived_; } + void Active(); + void Deactive() { actived_ = false; } bool IsMainSkill(); + void LevelUp(); private: void InitActiveSkill();