亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? vampire.cpp

?? 天之煉獄1服務器端源文件游戲服務端不完整
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
//////////////////////////////////////////////////////////////////////////////// Filename    : Vampire.cpp// Written By  : Elca// Description : //////////////////////////////////////////////////////////////////////////////#include "Vampire.h"#include "Player.h"#include "OptionInfo.h"#include "SkillInfo.h"#include "ItemLoaderManager.h"#include "EffectLoaderManager.h"#include "SkillParentInfo.h"#include "DB.h"#include "ItemInfoManager.h"#include "AbilityBalance.h"#include "Stash.h"#include "TradeManager.h"#include "CreatureUtil.h"#include "FlagSet.h"#include "VampEXPInfo.h"#include "Party.h"#include "ItemUtil.h"#include "PacketUtil.h"#include "SkillUtil.h"#include "Shape.h"#include "GamePlayer.h"//#include "RankEXPInfo.h"#include "RankExpTable.h"#include "VariableManager.h"#include "WarSystem.h"#include "ResurrectLocationManager.h"#include "PKZoneInfoManager.h"#include "TimeLimitItemManager.h"#include "CastleSkillInfo.h"#include "PetInfo.h"#include <stdio.h>#include "item/AR.h"#include "item/SR.h"#include "item/SG.h"#include "item/SMG.h"#include "item/PetItem.h"#include "item/Belt.h"#include "item/Skull.h"#include "skill/VampireCastleSkillSlot.h"#include "skill/EffectBless.h"#include "skill/EffectParalyze.h"#include "skill/EffectDoom.h"#include "skill/EffectTransformToWolf.h"#include "skill/EffectTransformToBat.h"#include "EffectGrandMasterVampire.h"#include "RaceWarLimiter.h"#include "Gpackets/GCModifyInformation.h"#include "Gpackets/GCChangeShape.h"#include "Gpackets/GCSkillInfo.h"#include "Gpackets/GCRealWearingInfo.h"#include "Gpackets/GCStatusCurrentHP.h"#include "Gpackets/GCTakeOff.h"#include "Gpackets/GCOtherModifyInfo.h"#include "Gpackets/GCPetStashList.h"#include "MonsterInfo.h"#include "SystemAvailabilitiesManager.h"const Color_t UNIQUE_COLOR = 0xFFFF;const Color_t QUEST_COLOR = 0xFFFE;const Level_t MAX_VAMPIRE_LEVEL = 150;const Level_t MAX_VAMPIRE_LEVEL_OLD = 100;//////////////////////////////////////////////////////////////////////////////// incraseVampExp///////////////////////////////////////////////////////////////////////////////*void Vampire::increaseVampExp(Exp_t Point){	if (Point <= 0) return;	Level_t curLevel = getLevel();	if (curLevel >= VAMPIRE_MAX_LEVEL) 	{		// 飯駭 茄拌俊 檔崔秦檔 版氰摹綽 階霸 秦霖促.		// by sigi. 2002.8.31		Exp_t NewExp = getExp() + Point;		WORD ExpSaveCount = getExpSaveCount();		if (ExpSaveCount > VAMPIRE_EXP_SAVE_PERIOD)		{			char pField[80];			sprintf(pField, "Exp=%lu", NewExp);			tinysave(pField);			ExpSaveCount = 0;		}		else ExpSaveCount++;		setExpSaveCount(ExpSaveCount);		setExp( NewExp );		return;	}	Exp_t OldExp = getExp();	Exp_t OldGoalExp = getGoalExp();	Exp_t NewGoalExp = max(0, (int)(OldGoalExp - Point));	// 穿利 版氰摹俊綽 格釬 版氰摹啊 臨絹電 父怒 敲礬膠 竅咯具 茄促.	Exp_t DiffGoalExp = max(0, (int)(OldGoalExp - NewGoalExp));	Exp_t NewExp = OldExp + DiffGoalExp;	setExp(NewExp);	setGoalExp(NewGoalExp);	// 格釬 版氰摹啊 0 撈扼擱 飯駭 訣撈促.	if (NewGoalExp == 0 && curLevel < VAMPIRE_MAX_LEVEL)	{		// 撈 竊薦 磊眉啊 load且錠父 利儈登綽芭扁 錠鞏俊..		// 鞘夸絕促. by sigi. 2002.8.31	//	VAMPIRE_RECORD prev;	//	getVampireRecord(prev);		curLevel++;		setLevel(curLevel);		// add bonus point		Bonus_t bonus = getBonus();		if ((getSTR(ATTR_BASIC) + getDEX(ATTR_BASIC) + getINT(ATTR_BASIC) + getBonus() - 60) < ((getLevel() - 1) * 3)) 		{			// 飯駭俊 惑包摹 臼絆, 公煉扒 3欄肺 函版登菌促.			// 2001.12.12 辮己刮			bonus += 3;		}		setBonus(bonus);		VampEXPInfo* pBeforeExpInfo = g_pVampEXPInfoManager->getVampEXPInfo(curLevel-1);		VampEXPInfo* pNextExpInfo = g_pVampEXPInfoManager->getVampEXPInfo(curLevel);		Exp_t NextGoalExp = pNextExpInfo->getGoalExp();		setGoalExp(NextGoalExp);//		StringStream sav;//		sav << "Level = " << (int)curLevel << "," << "Exp = " << (int)pBeforeExpInfo->getAccumExp() << "," << "GoalExp = " << (int)NextGoalExp << "," << "Bonus = " << (int)bonus;//		pVampire->tinysave(sav.toString());		char pField[80];		sprintf(pField, "Level=%d, Exp=%lu, GoalExp=%lu, Bonus=%d", 						curLevel, pBeforeExpInfo->getAccumExp(), NextGoalExp, bonus);		tinysave(pField);		setExpSaveCount(0);	}	else	{		// 林扁利欄肺 歷厘茄促.		WORD ExpSaveCount = getExpSaveCount();		if (ExpSaveCount > VAMPIRE_EXP_SAVE_PERIOD)		{			// by sigi. 2002.5.15			char pField[80];			sprintf(pField, "Exp=%lu, GoalExp=%lu", NewExp, NewGoalExp);			tinysave(pField);			ExpSaveCount = 0;		}		else ExpSaveCount++;		setExpSaveCount(ExpSaveCount);	}}*///////////////////////////////////////////////////////////////////////////////// increaseRankExp///////////////////////////////////////////////////////////////////////////////*void Vampire::increaseRankExp(RankExp_t Point){	if (Point <= 0) return;	// PK糧 救俊輯綽 版氰摹甫 林瘤 臼綽促.	if ( g_pPKZoneInfoManager->isPKZone( getZoneID() ) )		return;	Rank_t curRank = getRank();	if (curRank >= VAMPIRE_MAX_RANK)	{		// 飯駭 茄拌俊 檔崔秦檔 版氰摹綽 階霸 秦霖促.		// by sigi. 2002.8.31		Exp_t NewExp = getRankExp() + Point;		WORD ExpSaveCount = getRankExpSaveCount();		if (ExpSaveCount > RANK_EXP_SAVE_PERIOD)		{			char pField[80];			sprintf(pField, "RankExp=%lu", NewExp);			tinysave(pField);			ExpSaveCount = 0;		}		else ExpSaveCount++;		setRankExpSaveCount(ExpSaveCount);		setRankExp( NewExp );		return;	}	Exp_t OldExp = getRankExp();	Exp_t OldGoalExp = getRankGoalExp();	Exp_t NewGoalExp = max(0, (int)(OldGoalExp - Point));	// 穿利 版氰摹俊綽 格釬 版氰摹啊 臨絹電 父怒 敲礬膠 竅咯具 茄促.	Exp_t DiffGoalExp = max(0, (int)(OldGoalExp - NewGoalExp));	Exp_t NewExp = OldExp + DiffGoalExp;	// 格釬 版氰摹啊 0 撈扼擱 飯駭 訣撈促.	if (NewGoalExp == 0 && curRank < VAMPIRE_MAX_RANK)	{		VAMPIRE_RECORD prev;		getVampireRecord(prev);		curRank++;		setRank(curRank);		setRankExp(NewExp);		setRankGoalExp(NewGoalExp);		RankEXPInfo* pBeforeExpInfo = g_pRankEXPInfoManager[RANK_TYPE_VAMPIRE]->getRankEXPInfo(curRank-1);		RankEXPInfo* pNextExpInfo = g_pRankEXPInfoManager[RANK_TYPE_VAMPIRE]->getRankEXPInfo(curRank);		Exp_t NextGoalExp = pNextExpInfo->getGoalExp();		setRankGoalExp(NextGoalExp);//		StringStream sav;//		sav << "Rank = " << (int)curRank << "," << "Exp = " << (int)pBeforeExpInfo->getAccumExp() << "," << "GoalExp = " << (int)NextGoalExp << "," << "Bonus = " << (int)bonus;//		tinysave(sav.toString());		char pField[80];		sprintf(pField, "Rank=%d, RankExp=%lu, RankGoalExp=%lu",						curRank, pBeforeExpInfo->getAccumExp(), NextGoalExp);		tinysave(pField);		setRankExpSaveCount(0);		sendModifyInfo(prev);		if (m_pZone != NULL)		{			GCOtherModifyInfo gcOtherModifyInfo;			gcOtherModifyInfo.setObjectID(getObjectID());			gcOtherModifyInfo.addShortData(MODIFY_RANK, curRank);			m_pZone->broadcastPacket(m_X, m_Y, &gcOtherModifyInfo, this);		}	}	else	{		setRankExp(NewExp);		setRankGoalExp(NewGoalExp);		// 林扁利欄肺 歷厘茄促.		WORD rankExpSaveCount = getRankExpSaveCount();		if (rankExpSaveCount > RANK_EXP_SAVE_PERIOD)		{			char pField[80];			sprintf(pField, "RankExp=%lu, RankGoalExp=%lu", NewExp, NewGoalExp);			tinysave(pField);			rankExpSaveCount = 0;		}		else rankExpSaveCount++;		setRankExpSaveCount(rankExpSaveCount);		// 拌鞭 版氰摹甫 焊郴霖促. by sigi. 2002.9.13		GCModifyInformation gcModifyInformation;		gcModifyInformation.addLongData(MODIFY_RANK_EXP, NewExp);		m_pPlayer->sendPacket(&gcModifyInformation);	}}*/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////Vampire::Vampire () 	throw () : PlayerCreature(0, NULL){	__BEGIN_TRY	m_CClass = CREATURE_CLASS_VAMPIRE;	m_Mutex.setName("Vampire");	// AttackMelee 鞍籃 扁夯 傍拜闌 籠絹持絹霖促.	for (int i=0; i<SKILL_DOUBLE_IMPACT; i++)	{		VampireSkillSlot* pVampireSkillSlot = new VampireSkillSlot;		//pVampireSkillSlot = new VampireSkillSlot;	// 2002.1.16 by sigi		pVampireSkillSlot->setName(m_Name);		pVampireSkillSlot->setSkillType(i);		pVampireSkillSlot->setInterval(5);		pVampireSkillSlot->setRunTime();		addSkill(pVampireSkillSlot);	}    for (int i = 0; i < VAMPIRE_WEAR_MAX; i++)         m_pWearItem[i] = NULL;	// 侵 虐甫 檬扁拳 茄促.//	for (int i = 0; i < 8; i++) //	{//		m_HotKey[i] = 0;//	}	m_SilverDamage = 0;	m_ClanType = 0;	// HP 府哩 矯埃 檬扁拳	getCurrentTime(m_HPRegenTime);	// 版氰摹 技撈宏 墨款飄 檬扁拳//	m_RankExpSaveCount       = 0;	m_ExpSaveCount       = 0;	m_FameSaveCount      = 0;	m_AlignmentSaveCount = 0;	__END_CATCH}Vampire::~Vampire()     throw (Error){	__BEGIN_TRY	try	{		// 汗厘 瀝焊甫 積己秦敵促. by sigi. 2002.6.18		DWORD   flag;		Color_t color[PCVampireInfo::VAMPIRE_COLOR_MAX];		getShapeInfo (flag, color);		char pField[128];		sprintf(pField, "Shape=%ld, CoatColor=%d",							flag,							color[PCVampireInfo::VAMPIRE_COLOR_COAT]);		//cout << "SAVE = " << pField << endl;		tinysave(pField);		// 凍絹柳 酒撈袍狼 郴備己苞 版氰摹, 己氫 殿闌 歷厘茄促.		saveGears();		saveExps();		saveSkills();		// 澇絆 樂綽 酒撈袍闌 皋葛府俊輯 昏力茄促.		destroyGears();		// 努貳膠啊 昏力瞪 版快, 秦寸竅綽 背券 瀝焊甫 昏力秦具 竊籃 拱沸,		// 背券 惑措俊霸檔 撈 葷角闌 舅妨拎具 茄促.		TradeManager* pTradeManager = m_pZone->getTradeManager();		TradeInfo* pInfo = pTradeManager->getTradeInfo(getName());		if (pInfo != NULL)		{			// 背券 瀝焊甫 昏力			pTradeManager->cancelTrade(this);		}		// 臂肺國 頗萍 瀝焊甫 昏力茄促. 		// 老館利牢 肺弊酒眶狼 版快俊綽		// CGLogoutHandler俊輯 Zone::deleteCreature() 竊薦甫 何福霸 登絆,		// 厚瀝惑利牢 版快扼絆 秦檔, 		// GamePlayer::disconnect()俊輯 Zone::deleteCreature() 竊薦甫 何福霸 登骨肺,		// 肺拿 頗萍 棺 頗萍 檬措, 飄飯撈靛 瀝焊甫 捌瀝且 鞘夸綽 絕促.		deleteAllPartyInfo(this);		// 扁賤甸闌 昏力		hash_map<SkillType_t, VampireSkillSlot*>::iterator itr = m_SkillSlot.begin();		for (; itr != m_SkillSlot.end(); itr++)		{			VampireSkillSlot* pVampireSkillSlot = itr->second;			SAFE_DELETE(pVampireSkillSlot);		}	} catch (Throwable& t) {		filelog("vampireDestructor.txt", "%s", t.toString().c_str());	} catch (exception& e) {		filelog("vampireDestructor.txt", "Unknown std::exception");	} catch (...) {		filelog("vampireDestructor.txt", "Unknown ... exception");	}	m_bDeriveDestructed = true;	__END_CATCH}// registerObject// Zone俊 輛加等 ObjectRegistry甫 葷儈秦輯, Vampire 客 家蠟酒撈袍甸狼// ObjectID甫 且寸罐綽促.void Vampire::registerObject ()    throw (Error){    __BEGIN_TRY    Assert(getZone() != NULL);    // zone 狼 object registery 俊 立辟茄促.    ObjectRegistry & OR = getZone()->getObjectRegistry();    __ENTER_CRITICAL_SECTION(OR)	// 葛電 酒撈袍俊 OID 啊 官差骨肺 矯埃力茄 酒撈袍 概聰歷俊輯 OID 甘闌 瘤況拎具 茄促.	if (m_pTimeLimitItemManager != NULL)		m_pTimeLimitItemManager->clear();	// 快急 軌頗撈絹狼 OID甫 殿廢罐綽促.	OR.registerObject_NOLOCKED(this);	// 牢亥配府狼 酒撈袍甸狼 OID甫 殿廢罐綽促.	registerInventory(OR);	// Goods Inventory狼 酒撈袍甸狼 OID甫 殿廢罐綽促.	registerGoodsInventory(OR);	// 厘饅竅絆 樂綽 酒撈袍甸狼 OID甫 殿廢罐綽促.	for (int i = 0; i < VAMPIRE_WEAR_MAX; i++) 	{		Item* pItem = m_pWearItem[i];		if (pItem != NULL) 		{			bool bCheck = true;			// 劇頰 公扁老 版快, WEAR_LEFTHAND 俊輯 殿廢沁欄骨肺,			// 肚 殿廢且 鞘夸綽 絕促.			if (i == WEAR_RIGHTHAND && isTwohandWeapon(pItem))				bCheck = false;			if (bCheck) registerItem(pItem, OR);		}	}	// 付快膠俊 甸絆 樂綽 酒撈袍狼 OID甫 殿廢 罐綽促.	Item* pSlotItem = m_pExtraInventorySlot->getItem();	if (pSlotItem != NULL) registerItem(pSlotItem, OR);	m_Garbage.registerObject(OR);	for ( int i=0; i<MAX_PET_STASH; ++i )	{		Item* pItem = getPetStashItem(i);		if ( pItem != NULL ) registerItem( pItem, OR );	}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区二区四区蜜桃| 视频一区二区三区在线| 7777精品伊人久久久大香线蕉的| 国产成人在线免费观看| 亚洲高清免费观看| 国产精品免费av| 日韩一级二级三级精品视频| 色婷婷精品久久二区二区蜜臂av | 日本一区二区综合亚洲| 欧美日韩久久久| 成人视屏免费看| 狠狠色丁香婷综合久久| 亚洲一区在线电影| 欧美极品aⅴ影院| 日韩欧美成人激情| 欧美亚洲另类激情小说| www.色综合.com| 国产老妇另类xxxxx| 美女网站在线免费欧美精品| 一区二区在线观看不卡| 国产校园另类小说区| 欧美成人r级一区二区三区| 欧美日韩一区国产| 99久久伊人网影院| 国产毛片精品国产一区二区三区| 日本视频在线一区| 亚洲一区二区三区四区在线 | 久久99国产精品成人| 一区二区免费在线| 亚洲丝袜精品丝袜在线| 国产日韩影视精品| 久久精品一级爱片| 久久亚洲一区二区三区明星换脸 | 18成人在线观看| 国产亚洲成aⅴ人片在线观看| 欧美大片顶级少妇| 日韩视频永久免费| 日韩一区二区精品葵司在线| 欧美一级在线观看| 欧美剧在线免费观看网站| 欧美三级电影网| 欧美亚男人的天堂| 精品视频在线免费看| 欧美日韩高清在线| 欧美乱熟臀69xxxxxx| 69成人精品免费视频| 欧美一区二区二区| 日韩一级精品视频在线观看| 欧美大片国产精品| 精品国产sm最大网站| 国产亚洲短视频| 中文字幕亚洲视频| 中文字幕一区二区三区在线播放 | 欧美午夜影院一区| 欧美日韩一区二区三区四区| 欧美日本在线播放| 日韩欧美中文一区二区| 26uuu亚洲综合色| 国产精品污www在线观看| 中文字幕av一区 二区| 亚洲人成伊人成综合网小说| 亚洲另类在线视频| 亚洲第一av色| 狠狠久久亚洲欧美| 粉嫩av亚洲一区二区图片| 91亚洲国产成人精品一区二区三| 欧美日韩综合在线| 日韩欧美电影一二三| 国产欧美日韩不卡| 亚洲免费观看在线视频| 亚洲.国产.中文慕字在线| 激情偷乱视频一区二区三区| aa级大片欧美| 欧美美女视频在线观看| 久久久久高清精品| 日韩毛片视频在线看| 性做久久久久久免费观看| 极品少妇xxxx精品少妇| 91在线观看视频| 欧美日韩和欧美的一区二区| 久久久久亚洲综合| 亚洲日本韩国一区| 日本亚洲视频在线| 成人国产精品免费网站| 欧美日韩成人高清| 国产欧美一区二区精品性 | 狠狠色丁香婷综合久久| 色中色一区二区| 日韩欧美国产电影| 国产精品国产三级国产专播品爱网 | 欧美三区在线观看| 精品免费视频一区二区| 一区二区三区免费在线观看| 国产在线精品免费av| 一道本成人在线| 久久中文娱乐网| 亚洲第一福利一区| 成人看片黄a免费看在线| 欧美一级电影网站| 樱桃国产成人精品视频| 国模大尺度一区二区三区| 在线观看一区二区精品视频| 中日韩av电影| 裸体健美xxxx欧美裸体表演| 91黄色免费网站| 欧美韩国日本一区| 麻豆久久久久久| 欧美在线视频日韩| 亚洲国产成人一区二区三区| 欧美a一区二区| 日本韩国欧美在线| 国产欧美日韩激情| 美女视频第一区二区三区免费观看网站| 97久久超碰国产精品电影| 2014亚洲片线观看视频免费| 青青草伊人久久| 欧美日韩激情在线| 一区二区三区四区精品在线视频| 国产成人在线观看| 精品人伦一区二区色婷婷| 视频一区在线播放| 一本一本久久a久久精品综合麻豆| 亚洲国产岛国毛片在线| 国模套图日韩精品一区二区| 欧美一区二区不卡视频| 午夜国产精品一区| 欧美午夜精品久久久久久超碰| 国产精品成人免费精品自在线观看| 国产电影一区在线| 精品国产乱码久久久久久牛牛 | 狠狠色丁香久久婷婷综合丁香| 欧美一区二区三区免费视频| 天天操天天干天天综合网| 欧美色图激情小说| 亚洲午夜精品在线| 欧美综合在线视频| 亚洲国产成人va在线观看天堂| 欧美亚洲精品一区| 亚洲国产精品久久久久婷婷884| 欧美日韩在线精品一区二区三区激情| 亚洲精选免费视频| 一本一本大道香蕉久在线精品| 亚洲免费色视频| 在线观看免费亚洲| 亚洲h在线观看| 678五月天丁香亚洲综合网| 五月婷婷激情综合| 日韩视频在线一区二区| 精品一区二区在线免费观看| 久久综合色综合88| 国产精品一品视频| 国产精品麻豆一区二区| 99re这里都是精品| 一卡二卡欧美日韩| 在线不卡一区二区| 久久精品国产精品亚洲红杏| 久久日一线二线三线suv| 国产成人精品亚洲777人妖 | 欧美大胆人体bbbb| 国内外成人在线视频| 国产精品人人做人人爽人人添 | 久久综合给合久久狠狠狠97色69| 国产suv一区二区三区88区| 国产精品萝li| 欧美三级电影在线看| 麻豆精品在线观看| 日本一区二区三区电影| 91在线精品一区二区| 午夜精品免费在线| 26uuu精品一区二区三区四区在线| 成人午夜在线播放| 一区二区三区视频在线看| 69av一区二区三区| 国产99一区视频免费| 亚洲午夜电影在线观看| 久久天堂av综合合色蜜桃网| 在线欧美一区二区| 麻豆精品在线观看| 自拍偷拍亚洲综合| 日韩欧美国产精品| av在线播放成人| 蜜桃精品视频在线| 国产精品欧美综合在线| 欧美久久久一区| av亚洲产国偷v产偷v自拍| 午夜精品一区二区三区免费视频 | 97aⅴ精品视频一二三区| 午夜精品福利在线| 国产精品污www在线观看| 在线不卡中文字幕播放| 99久久婷婷国产综合精品| 欧美96一区二区免费视频| 亚洲天堂福利av| 久久综合狠狠综合久久激情| 欧美人狂配大交3d怪物一区| 波多野结衣中文字幕一区| 免费的成人av| 一区二区三区不卡视频在线观看| 国产欧美精品一区| 日韩一区二区麻豆国产|