cgrequestrepairhandler.cpp

来自「dk1游戏的原代码文件,完整.编译系统redhat7.3,mysql 3.23 」· C++ 代码 · 共 612 行 · 第 1/2 页

CPP
612
字号
	{		for (ZoneCoord_t zy=CenterY-5; zy<=CenterY+5; zy++)		{			if (!isValidZoneCoord(pZone, zx, zy)) continue;			Tile & tile = pZone->getTile(zx, zy);			if (tile.hasItem())			{				Item* pItemOnTile = tile.getItem();				Assert(pItemOnTile != NULL);				// 父老 酒捞袍捞 鸥老 困俊 乐阑 版快, 葛磐 荤捞努牢瘤 犬牢茄促.				if (pItemOnTile->getItemClass() == Item::ITEM_CLASS_MOTORCYCLE)				{					DWORD    targetID     = dynamic_cast<Key*>(pItem)->getTarget();					ItemID_t motorcycleID = pItemOnTile->getItemID();					if (targetID == motorcycleID)					{						Price_t repairPrice = g_pPriceManager->getRepairPrice(pItemOnTile);						if (repairPrice > playerMoney)						{							response.setCode(NPC_RESPONSE_REPAIR_FAIL_MONEY);							pPlayer->sendPacket(&response);							return;						}						// 荐府茄促.						repairItem(pItemOnTile);						// 历厘茄促.						//pItemOnTile->save(pPC->getName(), STORAGE_ZONE, pZone->getZoneID(), zx, zy);						// item历厘 弥利拳. by sigi. 2002.5.13						char pField[80];						sprintf(pField, "Durability=%d", pItemOnTile->getDurability());						pItemOnTile->tinysave(pField);						// 捣阑 临牢促.						//if (bSlayer) (dynamic_cast<Slayer*>(pPC))->setGoldEx(playerMoney-repairPrice);						//else         (dynamic_cast<Vampire*>(pPC))->setGoldEx(playerMoney-repairPrice);						// by sigi. 2002.9.4						(dynamic_cast<PlayerCreature*>(pPC))->decreaseGoldEx(repairPrice);						response.setCode(NPC_RESPONSE_REPAIR_OK);						response.setParameter(playerMoney-repairPrice);						pPlayer->sendPacket(&response);						return;					} // if (targetID == 				} // if (itemclas == MOTORCYCLE			}		} // end of for (ZoneCoord_t zy=CenterY-5; zy<=CenterY+5; zy++)	} // end of for (ZoneCoord_t zx=CenterX-5; zx<=CenterX+5; zx++)	// FOR 风橇甫 促 倒绊, 捞鳖瘤 吭促绰 巴篮 辟贸俊 坷配官捞啊 绝促绰 富捞寸...	// 弊矾骨肺 葛磐 荤捞努 迫扁啊 角菩沁促绰 巴阑 舅赴促.	response.setCode(NPC_RESPONSE_REPAIR_FAIL_ITEM_NOT_EXIST);	pPlayer->sendPacket(&response);	#endif	__END_DEBUG_EX __END_CATCH}//////////////////////////////////////////////////////////////////////////////// 葛电 酒捞袍 荐府窍扁//////////////////////////////////////////////////////////////////////////////void CGRequestRepairHandler::executeAll(CGRequestRepair* pPacket , Player* pPlayer)	 throw (ProtocolException , Error){	__BEGIN_TRY __BEGIN_DEBUG_EX#ifdef __GAME_SERVER__	Creature*     pPC         = dynamic_cast<GamePlayer*>(pPlayer)->getCreature();	Price_t       repairPrice = 0;	GCNPCResponse response;	if (pPC->isSlayer())	{		Slayer* pSlayer = dynamic_cast<Slayer*>(pPC);		// 葛电 酒捞袍阑 钦茄 荐府厚甫 拌魂茄促.		for (int i=0; i<Slayer::WEAR_MAX; i++)		{			Item* pItem = pSlayer->getWearItem((Slayer::WearPart)i);			if (pItem != NULL)			{				if (i == Slayer::WEAR_RIGHTHAND && isTwohandWeapon(pItem))				{					// 坷弗颊捞绊, 泅犁 甸绊 乐绰 公扁啊 剧颊 公扁扼搁...					// 荐府 啊拜俊 器窃矫懦 鞘夸啊 绝促.				}				else				{					repairPrice += g_pPriceManager->getRepairPrice(pItem);				}			}		}		// 捣捞 葛磊扼促搁 府畔茄促.		if (pSlayer->getGold() < repairPrice)		{			response.setCode(NPC_RESPONSE_REPAIR_FAIL_MONEY);			pPlayer->sendPacket(&response);			return;		}		// 阿阿狼 酒捞袍阑 荐府窍绊, DB俊 历厘茄促.		char pField[80];		for (int i=0; i<Slayer::WEAR_MAX; i++)		{			Item* pItem = pSlayer->getWearItem((Slayer::WearPart)i);			if (pItem != NULL)			{				if (i == Slayer::WEAR_RIGHTHAND && isTwohandWeapon(pItem))				{					// 坷弗颊捞绊, 泅犁 甸绊 乐绰 公扁啊 剧颊 公扁扼搁...					// 荐府且 鞘夸啊 绝促.				}				else if ( isRepairableItem( pItem ) )				{					Durability_t oldDurability = pItem->getDurability();					repairItem(pItem);					if (pItem->getDurability() != oldDurability)					{						// DB 孽府甫 临捞扁 困秦辑						// 郴备档狼 函拳啊 积变 版快俊父 技捞宏茄促.						//pItem->save(pSlayer->getName(), STORAGE_GEAR, 0, i, 0);						// item历厘 弥利拳. by sigi. 2002.5.13						sprintf(pField, "Durability=%d", pItem->getDurability());						pItem->tinysave(pField);					}				}			}		}		// 捣阑 临捞绊...		//pSlayer->setGoldEx(pSlayer->getGold() - repairPrice);		// by sigi.2002.9.4		pSlayer->decreaseGoldEx(repairPrice);		// 肺弊甫 巢变促.		log(LOG_REPAIR_ITEM, pSlayer->getName(), "", "ALL");		// OK 菩哦阑 朝妨霖促.		response.setCode(NPC_RESPONSE_REPAIR_OK);		response.setParameter(pSlayer->getGold());		pPlayer->sendPacket(&response);	}	else if (pPC->isVampire())	{		Vampire* pVampire = dynamic_cast<Vampire*>(pPC);		// 葛电 酒捞袍阑 钦茄 荐府厚甫 拌魂茄促.		for (int i=0; i<Vampire::VAMPIRE_WEAR_MAX; i++)		{			Item* pItem = pVampire->getWearItem((Vampire::WearPart)i);			if (pItem != NULL) 			{				if (i == Vampire::WEAR_RIGHTHAND && isTwohandWeapon(pItem))				{					// 剧颊公扁绰 茄率父 荐府茄促.				}				else				{					repairPrice += g_pPriceManager->getRepairPrice(pItem);				}			}		}		// 捣捞 葛磊扼促搁 府畔茄促.		if (pVampire->getGold() < repairPrice)		{			response.setCode(NPC_RESPONSE_REPAIR_FAIL_MONEY);			pPlayer->sendPacket(&response);			return;		} 		// 阿阿狼 酒捞袍阑 荐府窍绊, DB俊 历厘茄促.		char pField[80];		for (int i=0; i<Vampire::VAMPIRE_WEAR_MAX; i++)		{			Item* pItem = pVampire->getWearItem((Vampire::WearPart)i);			if (pItem != NULL)			{				if (i == Vampire::WEAR_RIGHTHAND && isTwohandWeapon(pItem))				{					// 剧颊公扁绰 茄率父 荐府茄促.				}				else				{					Durability_t oldDurability = pItem->getDurability();					repairItem(pItem);					if (pItem->getDurability() != oldDurability)					{						// DB 孽府甫 临捞扁 困秦辑						// 郴备档狼 函拳啊 积变 版快俊父 技捞宏茄促.						//pItem->save(pVampire->getName(), STORAGE_GEAR, 0, i, 0);						// item历厘 弥利拳. by sigi. 2002.5.13						sprintf(pField, "Durability=%d", pItem->getDurability());						pItem->tinysave(pField);					}				}			}		}		// 捣阑 临捞绊...		//pVampire->setGoldEx(pVampire->getGold() - repairPrice);		// by sigi.2002.9.4		pVampire->decreaseGoldEx(repairPrice);		// 肺弊甫 巢变促.		log(LOG_REPAIR_ITEM, pVampire->getName(), "", "ALL");		// OK 菩哦阑 朝妨霖促.		response.setCode(NPC_RESPONSE_REPAIR_OK);		response.setParameter(pVampire->getGold());		pPlayer->sendPacket(&response);	}	else if (pPC->isOusters())	{		Ousters* pOusters = dynamic_cast<Ousters*>(pPC);		// 葛电 酒捞袍阑 钦茄 荐府厚甫 拌魂茄促.		for (int i=0; i<Ousters::OUSTERS_WEAR_MAX; i++)		{			Item* pItem = pOusters->getWearItem((Ousters::WearPart)i);			if (pItem != NULL) 			{				if (i == Ousters::WEAR_RIGHTHAND && isTwohandWeapon(pItem))				{					// 剧颊公扁绰 茄率父 荐府茄促.				}				else				{					repairPrice += g_pPriceManager->getRepairPrice(pItem);				}			}		}		// 捣捞 葛磊扼促搁 府畔茄促.		if (pOusters->getGold() < repairPrice)		{			response.setCode(NPC_RESPONSE_REPAIR_FAIL_MONEY);			pPlayer->sendPacket(&response);			return;		} 		// 阿阿狼 酒捞袍阑 荐府窍绊, DB俊 历厘茄促.		char pField[80];		for (int i=0; i<Ousters::OUSTERS_WEAR_MAX; i++)		{			Item* pItem = pOusters->getWearItem((Ousters::WearPart)i);			if (pItem != NULL)			{				if (i == Ousters::WEAR_RIGHTHAND && isTwohandWeapon(pItem))				{					// 剧颊公扁绰 茄率父 荐府茄促.				}				else				{					Durability_t oldDurability = pItem->getDurability();					repairItem(pItem);					if (pItem->getDurability() != oldDurability)					{						// DB 孽府甫 临捞扁 困秦辑						// 郴备档狼 函拳啊 积变 版快俊父 技捞宏茄促.						//pItem->save(pOusters->getName(), STORAGE_GEAR, 0, i, 0);						// item历厘 弥利拳. by sigi. 2002.5.13						sprintf(pField, "Durability=%d", pItem->getDurability());						pItem->tinysave(pField);					}				}			}		}		// 捣阑 临捞绊...		//pOusters->setGoldEx(pOusters->getGold() - repairPrice);		// by sigi.2002.9.4		pOusters->decreaseGoldEx(repairPrice);		// 肺弊甫 巢变促.		log(LOG_REPAIR_ITEM, pOusters->getName(), "", "ALL");		// OK 菩哦阑 朝妨霖促.		response.setCode(NPC_RESPONSE_REPAIR_OK);		response.setParameter(pOusters->getGold());		pPlayer->sendPacket(&response);	}#endif	__END_DEBUG_EX __END_CATCH}

⌨️ 快捷键说明

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