📄 actionteachskill.cpp
字号:
////////////////////////////////////////////////////////////////////////////////// Filename : ActionTeachSkill.cpp// Written By : // Description : // NPC啊 敲饭捞绢俊霸 扁贱阑 啊福媚 临 锭 静捞绰 咀记捞促.// 角力利栏肺绰 NPC啊 啊福媚 临 荐 乐绰 扁贱阑 菩哦栏肺// 傈价秦 临 挥捞绊, 唱赣瘤 累诀甸篮 菩哦捞 空汗窍绰 荤捞俊// 贸府等促.////////////////////////////////////////////////////////////////////////////////#include "ActionTeachSkill.h"#include "Creature.h"#include "NPC.h"#include "GamePlayer.h"#include "Slayer.h"#include "Vampire.h"#include "SkillInfo.h"#include "Gpackets/GCTeachSkillInfo.h"#include "Gpackets/GCNPCResponse.h"////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////void ActionTeachSkill::read (PropertyBuffer & propertyBuffer) throw (Error){ __BEGIN_TRY try { // 档皋牢 鸥涝阑 佬绢甸牢促. string domainType = propertyBuffer.getProperty("DomainType"); if (domainType == "BLADE") m_DomainType = SKILL_DOMAIN_BLADE; else if (domainType == "SWORD") m_DomainType = SKILL_DOMAIN_SWORD; else if (domainType == "GUN") m_DomainType = SKILL_DOMAIN_GUN; //else if (domainType == "RIFLE") m_DomainType = SKILL_DOMAIN_RIFLE; else if (domainType == "ENCHANT") m_DomainType = SKILL_DOMAIN_ENCHANT; else if (domainType == "HEAL") m_DomainType = SKILL_DOMAIN_HEAL; else if (domainType == "ETC") m_DomainType = SKILL_DOMAIN_ETC; else if (domainType == "VAMPIRE") m_DomainType = SKILL_DOMAIN_VAMPIRE; else throw Error("TeachSkill::read() : 肋给等 扁贱 鸥涝涝聪促."); } catch (NoSuchElementException & nsee) { throw Error(nsee.toString()); } __END_CATCH}////////////////////////////////////////////////////////////////////////////////// 咀记阑 角青茄促.////////////////////////////////////////////////////////////////////////////////void ActionTeachSkill::execute (Creature * pCreature1 , Creature * pCreature2) throw (Error){ __BEGIN_TRY Assert(pCreature1 != NULL); Assert(pCreature2 != NULL); Assert(pCreature1->isNPC()); Assert(pCreature2->isPC()); // 老窜 努扼捞攫飘甫 困秦辑 OK 菩哦阑 窃 朝赴促. GCNPCResponse okpkt; Player* pPlayer = pCreature2->getPlayer(); Assert(pPlayer != NULL); pPlayer->sendPacket(&okpkt); if (pCreature2->isSlayer()) executeSlayer(pCreature1, pCreature2); else if (pCreature2->isVampire()) executeVampire(pCreature1, pCreature2); else throw ("ActionTeachSkill::execute() : 舅 荐 绝绰 敲饭捞绢 农府媚涝聪促!"); __END_CATCH}////////////////////////////////////////////////////////////////////////////////// 咀记阑 角青茄促.////////////////////////////////////////////////////////////////////////////////void ActionTeachSkill::executeSlayer (Creature * pCreature1 , Creature * pCreature2) throw (Error){ __BEGIN_TRY Slayer* pSlayer = dynamic_cast<Slayer*>(pCreature2); Player* pPlayer = pCreature2->getPlayer(); GCTeachSkillInfo teachinfo; Assert(pPlayer != NULL); // 老窜 扁贱阑 硅匡 荐 乐绰瘤 眉农甫 茄促. if (pSlayer->getGoalExp(m_DomainType) != 0) { // 菩哦阑 父甸绢 啊瘤绊... teachinfo.setDomainType(m_DomainType); teachinfo.setTargetLevel(0); pPlayer->sendPacket(&teachinfo); return; } Level_t DomainLevel = pSlayer->getSkillDomainLevel(m_DomainType); SkillType_t SkillType = g_pSkillInfoManager->getSkillTypeByLevel(m_DomainType, DomainLevel); /* // 农府媚啊 硅匡 荐 乐绰 扁贱狼 饭骇阑 犬牢茄促. LastLearnSkillType = pSlayer->findLastSkill(); // 敲饭捞绢啊 硅款 扁贱捞 窍唱档 绝促搁 促澜 硅匡 扁贱篮 1饭骇捞促. // 敲饭捞绢啊 葛电 扁贱阑 硅奎促搁 沥秦初篮 惑荐甫 焊郴霖促. if (LastLearnSkillType == 0) { targetLevel = 1; } else if (LastLearnSkillType == SKILL_MAX) { targetLevel = ALL_SKILL_LEARNED; } else { pSkillInfo = g_pSkillInfoManager->getSkillInfo(LastLearnSkillType); targetLevel = pSkillInfo->getLevel() + 1; } */ // 菩哦阑 父甸绢 啊瘤绊... teachinfo.setDomainType(m_DomainType); teachinfo.setTargetLevel(SkillType); pPlayer->sendPacket(&teachinfo); __END_CATCH}////////////////////////////////////////////////////////////////////////////////// 咀记阑 角青茄促.////////////////////////////////////////////////////////////////////////////////void ActionTeachSkill::executeVampire (Creature * pCreature1 , Creature * pCreature2) throw (Error){ __BEGIN_TRY Vampire* pVampire = dynamic_cast<Vampire*>(pCreature2); /* // 农府媚啊 硅匡 荐 乐绰 扁贱狼 饭骇阑 犬牢茄促. SkillType_t LastLearnSkillType = pVampire->findLastSkill(); SkillInfo* pSkillInfo = NULL; SkillLevel_t targetLevel = 0; // 敲饭捞绢啊 硅款 扁贱捞 窍唱档 绝促搁 促澜 硅匡 扁贱篮 1饭骇捞促. // 敲饭捞绢啊 葛电 扁贱阑 硅奎促搁 沥秦初篮 惑荐甫 焊郴霖促. if (LastLearnSkillType == 0) { targetLevel = 1; } else if (LastLearnSkillType == SKILL_MAX) { targetLevel = ALL_SKILL_LEARNED; } else { pSkillInfo = g_pSkillInfoManager->getSkillInfo(LastLearnSkillType); targetLevel = pSkillInfo->getLevel() + 1; } */ Level_t DomainLevel = pVampire->getLevel(); SkillType_t SkillType = g_pSkillInfoManager->getSkillTypeByLevel(m_DomainType, DomainLevel); // 菩哦阑 父甸绢 啊瘤绊... GCTeachSkillInfo teachinfo; teachinfo.setDomainType(m_DomainType); teachinfo.setTargetLevel(SkillType); // 傈价茄促. Player* pPlayer = pCreature2->getPlayer(); Assert(pPlayer != NULL); pPlayer->sendPacket(&teachinfo); __END_CATCH}////////////////////////////////////////////////////////////////////////////////// get debug string////////////////////////////////////////////////////////////////////////////////string ActionTeachSkill::toString () const throw (){ __BEGIN_TRY StringStream msg; msg << "ActionTeachSkill(" << ")"; return msg.toString(); __END_CATCH}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -