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

📄 creatureutil.cpp

📁 天之炼狱1服务器端源文件游戏服务端不完整
💻 CPP
📖 第 1 页 / 共 5 页
字号:
////////////////////////////////////////////////////////////////////////////////// Filename : CreatureUtil.cpp// Written by : 辫己刮// Description : // Vampire客 Vampire 颇老狼 农扁甫 瞪 荐 乐绰 茄 临捞扁 困秦辑 笛狼 傍烹登绰// 何盒阑 啊瓷茄 茄 哗初篮 颇老捞促.// 唱吝俊 PlayerCreature 努贰胶啊 唱坷搁, 捞 颇老狼 郴侩阑 弊 救俊促啊 // 器窃矫虐绰 巴捞 亮阑 巴捞促.////////////////////////////////////////////////////////////////////////////////#include "CreatureUtil.h"#include "Slayer.h"#include "Vampire.h"#include "Ousters.h"#include "Monster.h"#include "Player.h"#include "MonsterInfo.h"#include "Inventory.h"#include "Stash.h"#include "Belt.h"#include "DB.h"#include "Effect.h"#include "RelicUtil.h"#include "BloodBible.h"#include "CombatInfoManager.h"#include "EffectAftermath.h"#include "EffectKillAftermath.h"#include "EffectGrandMasterSlayer.h"#include "EffectGrandMasterVampire.h"#include "EffectObservingEye.h"#include "EffectGnomesWhisper.h"#include "ShrineInfoManager.h"#include "CastleInfoManager.h"#include "Zone.h"#include "Tile.h"#include "Relic.h"#include "couple/PartnerWaitingManager.h"#include "PlayerCreature.h"#include "PacketUtil.h"#include "FlagSet.h"#include "SimpleCreatureEffect.h"#include "EffectRelicLock.h"#include "ctf/FlagManager.h"#include "skill/Sniping.h"#include "skill/SummonGroundElemental.h"#include "LevelWarManager.h"#include "VariableManager.h"#include "GamePlayer.h"#include "PetInfo.h"#include "Cpackets/CGSay.h"#include "ZoneGroupManager.h"#include "GameWorldInfoManager.h"#include "Properties.h"#include "Gpackets/GCNotifyWin.h"#include "Gpackets/GCAddEffect.h"#include "Gpackets/GCAddSlayer.h"#include "Gpackets/GCAddVampire.h"#include "Gpackets/GCDeleteObject.h"#include "Gpackets/GCDeleteInventoryItem.h"#include "Gpackets/GCPetInfo.h"#include <cstdio>////////////////////////////////////////////////////////////////////////////////// 鞍篮 农府媚 努贰胶牢啊? ////////////////////////////////////////////////////////////////////////////////bool isSameRace(Creature* pCreature1, Creature* pCreature2) 	throw(){	__BEGIN_TRY	Assert(pCreature1 != NULL);	Assert(pCreature2 != NULL);	return (pCreature1->getCreatureClass() == pCreature2->getCreatureClass() ? true : false);	__END_CATCH}//////////////////////////////////////////////////////////////////////////////////// ObjectID肺 酒捞袍 茫扁//////////////////////////////////////////////////////////////////////////////////Item* findItemOID(Creature* pCreature, ObjectID_t id) 	throw(){	__BEGIN_TRY	int storage, x, y;	return findItemOID(pCreature, id, storage, x, y);	__END_CATCH}Item* findItemOID(Creature* pCreature, ObjectID_t id, Item::ItemClass IClass) 	throw(){	__BEGIN_TRY	int storage, x, y;	return findItemOID(pCreature, id, IClass, storage, x, y);	__END_CATCH}Item* findItemOID(Creature* pCreature, ObjectID_t id, int& storage, int& x, int &y) 	throw(){	__BEGIN_TRY	if (pCreature == NULL) return NULL;	PlayerCreature* pPC        = dynamic_cast<PlayerCreature*>(pCreature);	Inventory*      pInventory = pPC->getInventory();	Stash*          pStash     = pPC->getStash();	Item*           pItem      = NULL;	CoordInven_t    tx         = 0;	CoordInven_t    ty         = 0;	// 牢亥配府 八祸	pItem = pInventory->findItemOID(id, tx, ty);	if (pItem != NULL)	{		storage = STORAGE_INVENTORY;		x       = tx;		y       = ty;		return pItem;	}	// 扁绢芒 八祸	if (pCreature->isSlayer())	{		Slayer* pSlayer = dynamic_cast<Slayer*>(pCreature);		for (int i=0; i<Slayer::WEAR_MAX; i++)		{			pItem = pSlayer->getWearItem((Slayer::WearPart)i);			if (pItem != NULL && pItem->getObjectID() == id)			{				storage = STORAGE_GEAR;				x       = i;				return pItem;			}		}	}	else if (pCreature->isVampire())	{		Vampire* pVampire = dynamic_cast<Vampire*>(pCreature);		for (int i=0; i<Vampire::VAMPIRE_WEAR_MAX; i++)		{			pItem = pVampire->getWearItem((Vampire::WearPart)i);			if (pItem != NULL && pItem->getObjectID() == id)			{				storage = STORAGE_GEAR;				x       = i;				return pItem;			}		}	}	else if (pCreature->isOusters())	{		Ousters* pOusters = dynamic_cast<Ousters*>(pCreature);		for (int i=0; i<Ousters::OUSTERS_WEAR_MAX; i++)		{			pItem = pOusters->getWearItem((Ousters::WearPart)i);			if (pItem != NULL && pItem->getObjectID() == id)			{				storage = STORAGE_GEAR;				x       = i;				return pItem;			}		}	}	// 付快胶 八祸	pItem = pPC->getExtraInventorySlotItem();	if (pItem != NULL && pItem->getObjectID() == id)	{		storage = STORAGE_EXTRASLOT;		return pItem;	}	// 焊包窃 八祸	for (int r=0; r<STASH_RACK_MAX; r++)	{		for (int i=0; i<STASH_INDEX_MAX; i++)		{			pItem = pStash->get(r, i);			if (pItem != NULL && pItem->getObjectID() == id)			{				storage = STORAGE_STASH;				x       = r;				y       = i;				return pItem;			}		}	}	return NULL;	__END_CATCH}Item* findItemOID(Creature* pCreature, ObjectID_t id, Item::ItemClass IClass, int& storage, int& x, int &y) 	throw(){	__BEGIN_TRY	if (pCreature == NULL) return NULL;	PlayerCreature* pPC        = dynamic_cast<PlayerCreature*>(pCreature);	Inventory*      pInventory = pPC->getInventory();	Stash*          pStash     = pPC->getStash();	Item*           pItem      = NULL;	CoordInven_t    tx         = 0;	CoordInven_t    ty         = 0;	// 牢亥配府 八祸	pItem = pInventory->findItemOID(id, IClass, tx, ty);	if (pItem != NULL)	{		storage = STORAGE_INVENTORY;		x       = tx;		y       = ty;		return pItem;	}	// 扁绢芒 八祸	if (pCreature->isSlayer())	{		Slayer* pSlayer = dynamic_cast<Slayer*>(pCreature);		for (int i=0; i<Slayer::WEAR_MAX; i++)		{			pItem = pSlayer->getWearItem((Slayer::WearPart)i);			if (pItem != NULL && 				pItem->getObjectID() == id && pItem->getItemClass() == IClass)			{				storage = STORAGE_GEAR;				x       = i;				return pItem;			}		}	}	else if (pCreature->isVampire())	{		Vampire* pVampire = dynamic_cast<Vampire*>(pCreature);		for (int i=0; i<Vampire::VAMPIRE_WEAR_MAX; i++)		{			pItem = pVampire->getWearItem((Vampire::WearPart)i);			if (pItem != NULL && 				pItem->getObjectID() == id && pItem->getItemClass() == IClass)			{				storage = STORAGE_GEAR;				x       = i;				return pItem;			}		}	}	else if (pCreature->isOusters())	{		Ousters* pOusters = dynamic_cast<Ousters*>(pCreature);		for (int i=0; i<Ousters::OUSTERS_WEAR_MAX; i++)		{			pItem = pOusters->getWearItem((Ousters::WearPart)i);			if (pItem != NULL && 				pItem->getObjectID() == id && pItem->getItemClass() == IClass)			{				storage = STORAGE_GEAR;				x       = i;				return pItem;			}		}	}	// 付快胶 八祸	pItem = pPC->getExtraInventorySlotItem();	if (pItem != NULL && 		pItem->getObjectID() == id && pItem->getItemClass() == IClass)	{		storage = STORAGE_EXTRASLOT;		return pItem;	}	// 焊包窃 八祸	for (int r=0; r<STASH_RACK_MAX; r++)	{		for (int i=0; i<STASH_INDEX_MAX; i++)		{			pItem = pStash->get(r, i);			if (pItem != NULL && 				pItem->getObjectID() == id && pItem->getItemClass() == IClass)			{				storage = STORAGE_STASH;				x       = r;				y       = i;				return pItem;			}		}	}	return NULL;	__END_CATCH}//////////////////////////////////////////////////////////////////////////////////// ItemID肺 酒捞袍 茫扁//////////////////////////////////////////////////////////////////////////////////Item* findItemIID(Creature* pCreature, ItemID_t id) 	throw(){	__BEGIN_TRY	int storage, x, y;	return findItemIID(pCreature, id, storage, x, y);	__END_CATCH}Item* findItemIID(Creature* pCreature, ItemID_t id, Item::ItemClass IClass) 	throw(){	__BEGIN_TRY	int storage, x, y;	return findItemIID(pCreature, id, IClass, storage, x, y);	__END_CATCH}Item* findItemIID(Creature* pCreature, ItemID_t id, int& storage, int& x, int &y) 	throw(){	__BEGIN_TRY	if (pCreature == NULL) return NULL;	PlayerCreature* pPC        = dynamic_cast<PlayerCreature*>(pCreature);	Inventory*      pInventory = pPC->getInventory();	Stash*          pStash     = pPC->getStash();	Item*           pItem      = NULL;	CoordInven_t    tx         = 0;	CoordInven_t    ty         = 0;	// 牢亥配府 八祸	pItem = pInventory->findItemIID(id, tx, ty);	if (pItem != NULL)	{		storage = STORAGE_INVENTORY;		x       = tx;		y       = ty;		return pItem;	}	// 扁绢芒 八祸	if (pCreature->isSlayer())	{		Slayer*  pSlayer    = dynamic_cast<Slayer*>(pCreature);		for (int i=0; i<Slayer::WEAR_MAX; i++)		{			pItem = pSlayer->getWearItem((Slayer::WearPart)i);			if (pItem != NULL && pItem->getItemID() == id)			{				storage = STORAGE_GEAR;				x       = i;				return pItem;			}		}	}	else if (pCreature->isVampire())	{		Vampire* pVampire = dynamic_cast<Vampire*>(pCreature);		for (int i=0; i<Vampire::VAMPIRE_WEAR_MAX; i++)		{			pItem = pVampire->getWearItem((Vampire::WearPart)i);			if (pItem != NULL && pItem->getItemID() == id)			{				storage = STORAGE_GEAR;				x       = i;				return pItem;			}		}	}	else if (pCreature->isOusters())	{		Ousters* pOusters = dynamic_cast<Ousters*>(pCreature);		for (int i=0; i<Ousters::OUSTERS_WEAR_MAX; i++)		{			pItem = pOusters->getWearItem((Ousters::WearPart)i);			if (pItem != NULL && pItem->getItemID() == id)			{				storage = STORAGE_GEAR;				x       = i;				return pItem;			}		}	}	// 付快胶 八祸	pItem = pPC->getExtraInventorySlotItem();	if (pItem != NULL && pItem->getItemID() == id)	{		storage = STORAGE_EXTRASLOT;		return pItem;	}	// 焊包窃 八祸	for (int r=0; r<STASH_RACK_MAX; r++)	{		for (int i=0; i<STASH_INDEX_MAX; i++)		{			pItem = pStash->get(r, i);			if (pItem != NULL && pItem->getItemID() == id)			{				storage = STORAGE_STASH;				x       = r;				y       = i;				return pItem;			}		}	}	return NULL;	__END_CATCH}Item* findItemIID(Creature* pCreature, ItemID_t id, Item::ItemClass IClass, int& storage, int& x, int &y) 	throw()

⌨️ 快捷键说明

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