cgusebonuspointhandler.cpp

来自「天之炼狱1服务器端源文件游戏服务端不完整」· C++ 代码 · 共 218 行

CPP
218
字号
//////////////////////////////////////////////////////////////////////////////// Filename    : CGUseBonusPointHandler.cpp// Written By  : elca@ewestsoft.com// Description ://////////////////////////////////////////////////////////////////////////////#include "CGUseBonusPoint.h"#ifdef __GAME_SERVER__	#include "GamePlayer.h"	#include "SkillHandlerManager.h"	#include "SkillInfo.h"	#include "SkillParentInfo.h"	#include "Creature.h"	#include "LogClient.h"	#include "Gpackets/GCUseBonusPointFail.h"	#include "Gpackets/GCUseBonusPointOK.h"	#include "Gpackets/GCLearnSkillReady.h"#endif	////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////void CGUseBonusPointHandler::execute (CGUseBonusPoint* pPacket , Player* pPlayer)	 throw (Error){	__BEGIN_TRY __BEGIN_DEBUG_EX	__BEGIN_DEBUG		#ifdef __GAME_SERVER__	Assert(pPacket != NULL);	Assert(pPlayer != NULL);	// 沥惑利牢 惑怕啊 酒聪扼搁 府畔	GamePlayer* pGamePlayer = dynamic_cast<GamePlayer*>(pPlayer);	if (pGamePlayer->getPlayerStatus() != GPS_NORMAL) return;	Creature*      pCreature  = pGamePlayer->getCreature();	BYTE           which      = pPacket->getWhich();	Attr_t         cur        = 0;	if ( pCreature->isVampire() ) 	{		// 焊呈胶 器牢飘啊 绝促搁 府畔		Vampire* pVampire = dynamic_cast<Vampire*>(pCreature);		if (pVampire->getBonus() <= 0)		{			GCUseBonusPointFail failPkt;			pPlayer->sendPacket(&failPkt);			return;		}		VAMPIRE_RECORD oldRecord;		// 瓷仿摹甫 棵府扁 傈俊 扁粮狼 瓷仿摹甫 历厘茄促.		pVampire->getVampireRecord(oldRecord);		if (which == INC_INT)		{			cur = pVampire->getINT(ATTR_BASIC) + 1;			pVampire->setINT(cur, ATTR_BASIC);			StringStream sst;			sst << "INTE = " << (int)cur;			pVampire->tinysave(sst.toString());						/*			// INT啊 刘啊窍搁 货肺款 扁贱阑 硅匡 荐 乐绰 啊瓷己捞 乐促.			SkillType_t lastSkill = pVampire->findLastSkill();			// lastSkill狼 促澜 level狼 扁贱阑 茫绰促.			// 给茫疽促搁 歹捞惑 硅匡巴捞 绝促绰 巴.			for(int i = SKILL_BLOOD_DRAIN + 1 ; i < SKILL_MAX; i++)			{				SkillParentInfo* pParentInfo = g_pSkillParentInfoManager->getSkillParentInfo(i);				if (pParentInfo->hasParent(lastSkill))// 茫疽促!				{					SkillInfo* pNewSkillInfo = g_pSkillInfoManager->getSkillInfo(i);					if (pNewSkillInfo->getEXP() <= cur && pVampire->hasSkill(i) == NULL)					{						//cout << "(" << pVampire->getName() << ") can learn new skill >> ";						// 货肺款 扁贱阑 硅匡 荐 乐促.						GCLearnSkillReady gcLSR;						gcLSR.setSkillDomainType(SKILL_DOMAIN_VAMPIRE);						pVampire->getPlayer()->sendPacket(&gcLSR);						break;					}				}			}			*/			log(LOG_USE_BONUS_POINT, pVampire->getName(), "", "INT");		}		else if (which == INC_STR)		{			cur = pVampire->getSTR(ATTR_BASIC) + 1;			pVampire->setSTR(cur, ATTR_BASIC);			StringStream sst;			sst << "STR = " << (int)cur;			pVampire->tinysave(sst.toString());			log(LOG_USE_BONUS_POINT, pVampire->getName(), "", "STR");		}		else if (which == INC_DEX)		{			cur = pVampire->getDEX(ATTR_BASIC) + 1;			pVampire->setDEX(cur, ATTR_BASIC);			StringStream sst;			sst << "DEX = " << (int)cur;			pVampire->tinysave(sst.toString());			log(LOG_USE_BONUS_POINT, pVampire->getName(), "", "DEX");		}		// 官诧 焊呈胶 器牢飘甫 历厘茄促.		Bonus_t OldBonus = pVampire->getBonus();		pVampire->setBonus(OldBonus - 1);		StringStream sst;		sst << "Bonus = " << (int)(OldBonus - 1);		pVampire->tinysave(sst.toString());		// 瓷仿摹啊 函拳登菌栏聪, stat阑 货肺 绊模促.		pVampire->initAllStat();				// 努扼捞攫飘狼 拌魂 鉴辑 锭巩俊 积扁绰 滚弊肺 牢窍咯,		// 刚历 牢刘 菩哦阑 朝妨霖 饶俊, 官诧 瓷仿摹俊 措茄 沥焊甫 焊辰促.		// 唱吝俊 CGUseBonusPointOK俊促 官肺 官诧 瓷仿摹俊 措茄 沥焊甫 		// 角绢焊郴档废 秦具 茄促.		// OK 菩哦阑 焊郴霖促.		GCUseBonusPointOK okpkt;		pGamePlayer->sendPacket (&okpkt);		// 官诧 瓷仿摹俊 包茄 沥焊甫 焊郴霖促.		pVampire->sendModifyInfo(oldRecord);		pVampire->sendRealWearingInfo();	}	else if ( pCreature->isOusters() ) 	{		// 焊呈胶 器牢飘啊 绝促搁 府畔		Ousters* pOusters = dynamic_cast<Ousters*>(pCreature);		if (pOusters->getBonus() <= 0)		{			GCUseBonusPointFail failPkt;			pPlayer->sendPacket(&failPkt);			return;		}		OUSTERS_RECORD oldRecord;		// 瓷仿摹甫 棵府扁 傈俊 扁粮狼 瓷仿摹甫 历厘茄促.		pOusters->getOustersRecord(oldRecord);		if (which == INC_INT)		{			cur = pOusters->getINT(ATTR_BASIC) + 1;			pOusters->setINT(cur, ATTR_BASIC);			StringStream sst;			sst << "INTE = " << (int)cur;			pOusters->tinysave(sst.toString());		}		else if (which == INC_STR)		{			cur = pOusters->getSTR(ATTR_BASIC) + 1;			pOusters->setSTR(cur, ATTR_BASIC);			StringStream sst;			sst << "STR = " << (int)cur;			pOusters->tinysave(sst.toString());		}		else if (which == INC_DEX)		{			cur = pOusters->getDEX(ATTR_BASIC) + 1;			pOusters->setDEX(cur, ATTR_BASIC);			StringStream sst;			sst << "DEX = " << (int)cur;			pOusters->tinysave(sst.toString());		}		// 官诧 焊呈胶 器牢飘甫 历厘茄促.		Bonus_t OldBonus = pOusters->getBonus();		pOusters->setBonus(OldBonus - 1);		StringStream sst;		sst << "Bonus = " << (int)(OldBonus - 1);		pOusters->tinysave(sst.toString());		// 瓷仿摹啊 函拳登菌栏聪, stat阑 货肺 绊模促.		pOusters->initAllStat();				// OK 菩哦阑 焊郴霖促.		GCUseBonusPointOK okpkt;		pGamePlayer->sendPacket(&okpkt);		// 官诧 瓷仿摹俊 包茄 沥焊甫 焊郴霖促.		pOusters->sendModifyInfo(oldRecord);		pOusters->sendRealWearingInfo();	}	else	{		GCUseBonusPointFail failPkt;		pPlayer->sendPacket(&failPkt);		return;	}#endif	// __GAME_SERVER__	__END_DEBUG	__END_DEBUG_EX __END_CATCH}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?