⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 actionteachskill.cpp

📁 天之炼狱1服务器端源文件游戏服务端不完整
💻 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 + -