📄 vampire_backup.cpp
字号:
// 浇饭捞绢侩 酒捞袍阑 涝绊 乐绰 捞惑茄 磊侥捞 乐栏搁 促 绢辑飘 //------------------------------------------------------------- Assert(IClass != Item::ITEM_CLASS_AR); Assert(IClass != Item::ITEM_CLASS_SR); Assert(IClass != Item::ITEM_CLASS_SG); Assert(IClass != Item::ITEM_CLASS_SMG); Assert(IClass != Item::ITEM_CLASS_SWORD); Assert(IClass != Item::ITEM_CLASS_BLADE); Assert(IClass != Item::ITEM_CLASS_SHIELD); Assert(IClass != Item::ITEM_CLASS_CROSS); Assert(IClass != Item::ITEM_CLASS_MACE); Assert(IClass != Item::ITEM_CLASS_HELM); Assert(IClass != Item::ITEM_CLASS_GLOVE); Assert(IClass != Item::ITEM_CLASS_TROUSER); Assert(IClass != Item::ITEM_CLASS_COAT); m_pWearItem[j] = NULL; SAFE_DELETE(pItem); } } __END_DEBUG __END_CATCH}//----------------------------------------------------------------------//----------------------------------------------------------------------bool Vampire::isRealWearing(WearPart part) const throw(){ __BEGIN_TRY if (part >= VAMPIRE_WEAR_MAX) throw("Vampire::isRealWearing() : invalid wear point!"); if (m_pWearItem[part] == NULL) return false; return isRealWearing(m_pWearItem[part]); __END_CATCH}//----------------------------------------------------------------------//----------------------------------------------------------------------bool Vampire::isRealWearing(Item* pItem) const throw(){ __BEGIN_TRY if (pItem == NULL) return false; Item::ItemClass IClass = pItem->getItemClass(); ItemInfo* pItemInfo = g_pItemInfoManager->getItemInfo(IClass, pItem->getItemType()); Level_t ReqLevel = pItemInfo->getReqLevel(); Attr_t ReqGender = pItemInfo->getReqGender(); // 酒捞袍捞 可记阑 啊瘤绊 乐促搁, // 可记狼 辆幅俊 蝶扼辑 瓷仿摹 力茄阑 棵妨霖促. if (pItem->getOptionType() != 0) { OptionInfo* pOptionInfo = g_pOptionInfoManager->getOptionInfo(pItem->getOptionType()); ReqLevel += pOptionInfo->getReqLevel(); } // 瓷仿摹 力茄捞 窍唱扼档 乐促搁, // 弊 瓷仿阑 父练矫虐绰瘤 八荤秦具 茄促. if (ReqLevel > 0 || ReqGender != GENDER_BOTH) { if (ReqLevel > 0 && m_Level < ReqLevel) return false; if (m_Sex == MALE && ReqGender == GENDER_FEMALE) return false; if (m_Sex == FEMALE && ReqGender == GENDER_MALE) return false; } return true; __END_CATCH}//----------------------------------------------------------------------//----------------------------------------------------------------------bool Vampire::isRealWearingEx(WearPart part) const{ if (part >= VAMPIRE_WEAR_MAX) return false; return m_pRealWearingCheck[part];}DWORD Vampire::sendRealWearingInfo(void) const throw(){ __BEGIN_TRY DWORD info = 0; DWORD flag = 1; for (int i=0; i<VAMPIRE_WEAR_MAX; i++) { if (isRealWearing((Vampire::WearPart)i)) info |= flag; flag <<= 1; } GCRealWearingInfo pkt; pkt.setInfo(info); m_pPlayer->sendPacket(&pkt); return info; __END_CATCH}////////////////////////////////////////////////////////////////////////////////////// 牢器 包访 窃荐////////////////////////////////////////////////////////////////////////////////////PCVampireInfo2* Vampire::getVampireInfo2 () throw (){ __BEGIN_TRY __BEGIN_DEBUG PCVampireInfo2* pInfo = new PCVampireInfo2(); pInfo->setObjectID(m_ObjectID); pInfo->setName(m_Name); pInfo->setLevel(m_Level); pInfo->setSex(m_Sex); pInfo->setHairColor(m_HairColor); pInfo->setSkinColor(m_SkinColor); // 己氢 pInfo->setAlignment(m_Alignment); // 瓷仿摹 pInfo->setSTR(m_STR[ATTR_CURRENT], ATTR_CURRENT); pInfo->setSTR(m_STR[ATTR_MAX], ATTR_MAX); pInfo->setSTR(m_STR[ATTR_BASIC], ATTR_BASIC); pInfo->setDEX(m_DEX[ATTR_CURRENT], ATTR_CURRENT); pInfo->setDEX(m_DEX[ATTR_MAX], ATTR_MAX); pInfo->setDEX(m_DEX[ATTR_BASIC], ATTR_BASIC); pInfo->setINT(m_INT[ATTR_CURRENT], ATTR_CURRENT); pInfo->setINT(m_INT[ATTR_MAX], ATTR_MAX); pInfo->setINT(m_INT[ATTR_BASIC], ATTR_BASIC); pInfo->setHP(m_HP[ATTR_CURRENT] , m_HP[ATTR_MAX]); pInfo->setFame(m_Fame); pInfo->setExp(m_Exp); pInfo->setGold(m_Gold); pInfo->setSight(m_Sight); pInfo->setBonus(m_Bonus); pInfo->setSilverDamage(m_SilverDamage); for (int i = 0; i < 8; i++) { pInfo->setHotKey(i, m_HotKey[i]); } pInfo->setCompetence(m_CompetenceShape); pInfo->setGuildID(m_GuildID); pInfo->setGuildName( getGuildName() ); pInfo->setGuildMemberRank( getGuildMemberRank() ); return pInfo; __END_DEBUG __END_CATCH}//----------------------------------------------------------------------// Vampire Outlook Information//----------------------------------------------------------------------PCVampireInfo3 Vampire::getVampireInfo3 () const throw (){ __BEGIN_TRY __BEGIN_DEBUG m_VampireInfo.setX(m_X); m_VampireInfo.setY(m_Y); m_VampireInfo.setDir(m_Dir); m_VampireInfo.setCurrentHP(m_HP[ATTR_CURRENT]); m_VampireInfo.setMaxHP(m_HP[ATTR_MAX]); m_VampireInfo.setAttackSpeed(m_AttackSpeed[ATTR_CURRENT]); m_VampireInfo.setAlignment(m_Alignment); m_VampireInfo.setGuildID(m_GuildID); /* Item* pItem = m_pWearItem[WEAR_BODY]; if (pItem!=NULL) { m_VampireInfo.setCoatType( pItem->getItemType() ); } else { m_VampireInfo.setCoatType( 0 ); } */ if (m_Flag.test(Effect::EFFECT_CLASS_TRANSFORM_TO_WOLF)) { m_VampireInfo.setShape(SHAPE_WOLF); } else if (m_Flag.test(Effect::EFFECT_CLASS_TRANSFORM_TO_BAT)) { m_VampireInfo.setShape(SHAPE_BAT); } else { m_VampireInfo.setShape(SHAPE_NORMAL); } return m_VampireInfo; __END_DEBUG __END_CATCH}//----------------------------------------------------------------------//// get Extra Info////----------------------------------------------------------------------ExtraInfo* Vampire::getExtraInfo() const throw(){ __BEGIN_TRY __BEGIN_DEBUG BYTE ItemCount = 0; ExtraInfo* pExtraInfo = new ExtraInfo(); Item* pItem = m_pExtraInventorySlot->getItem(); if (pItem != NULL) { Item::ItemClass IClass = pItem->getItemClass(); ExtraSlotInfo* pExtraSlotInfo = new ExtraSlotInfo(); pExtraSlotInfo->setObjectID(pItem->getObjectID()); pExtraSlotInfo->setItemClass(pItem->getItemClass()); pExtraSlotInfo->setItemType(pItem->getItemType()); pExtraSlotInfo->setOptionType(pItem->getOptionType()); pExtraSlotInfo->setDurability(pItem->getDurability()); pExtraSlotInfo->setSilver(pItem->getSilver()); pExtraSlotInfo->setSilver(pItem->getEnchantLevel()); if (IClass == Item::ITEM_CLASS_AR) { AR* pAR = dynamic_cast<AR*>(pItem); pExtraSlotInfo->setItemNum(pAR->getBulletCount()); } else if (IClass == Item::ITEM_CLASS_SG) { SG* pSG = dynamic_cast<SG*>(pItem); pExtraSlotInfo->setItemNum(pSG->getBulletCount()); } else if (IClass == Item::ITEM_CLASS_SMG) { SMG* pSMG = dynamic_cast<SMG*>(pItem); pExtraSlotInfo->setItemNum(pSMG->getBulletCount()); } else if (IClass == Item::ITEM_CLASS_SR) { SR* pSR = dynamic_cast<SR*>(pItem); pExtraSlotInfo->setItemNum(pSR->getBulletCount()); } else { pExtraSlotInfo->setItemNum(pItem->getNum()); } // 骇飘扼搁 Sub 酒捞袍狼 眠啊 沥焊啊 鞘夸窍促. if (IClass == Item::ITEM_CLASS_BELT) { Belt* pBelt = dynamic_cast<Belt*>(pItem); Inventory* pBeltInventory = ((Belt*)pItem)->getInventory(); BYTE SubItemCount = 0; // 器南狼 箭磊父怒 酒捞袍狼 沥焊甫 佬绢 甸牢促. for (int i = 0; i < pBelt->getPocketCount(); i++) { Item* pBeltItem = pBeltInventory->getItem(i, 0); if (pBeltItem != NULL) { SubItemInfo* pSubItemInfo = new SubItemInfo(); pSubItemInfo->setObjectID(pBeltItem->getObjectID()); pSubItemInfo->setItemClass(pBeltItem->getItemClass()); pSubItemInfo->setItemType(pBeltItem->getItemType()); pSubItemInfo->setItemNum(pBeltItem->getNum()); pSubItemInfo->setSlotID(i); pExtraSlotInfo->addListElement(pSubItemInfo); SubItemCount++; } } pExtraSlotInfo->setListNum(SubItemCount); } // 惑狼 窍狼 Main Color 瘤陛篮 弊成 0 栏肺 悸泼 秦敌促. pExtraSlotInfo->setMainColor(0); pExtraInfo->addListElement(pExtraSlotInfo); ItemCount++; } pExtraInfo->setListNum(ItemCount); return pExtraInfo; __END_DEBUG __END_CATCH}//----------------------------------------------------------------------//// get Gear Info////----------------------------------------------------------------------GearInfo* Vampire::getGearInfo() const throw(){ __BEGIN_TRY __BEGIN_DEBUG int ItemCount = 0; GearInfo* pGearInfo = new GearInfo(); for (int i = 0; i < VAMPIRE_WEAR_MAX; i++) { Item* pItem = m_pWearItem[i]; if (pItem != NULL) { //Item::ItemClass IClass = pItem->getItemClass(); GearSlotInfo* pGearSlotInfo = new GearSlotInfo(); pGearSlotInfo->setObjectID(pItem->getObjectID()); pGearSlotInfo->setItemClass(pItem->getItemClass()); pGearSlotInfo->setItemType(pItem->getItemType()); pGearSlotInfo->setOptionType(pItem->getOptionType()); pGearSlotInfo->setDurability(pItem->getDurability()); pGearSlotInfo->setSilver(pItem->getSilver()); pGearSlotInfo->setEnchantLevel(pItem->getEnchantLevel()); /* // 骇飘扼搁 Sub 酒捞袍狼 眠啊 沥焊啊 鞘夸窍促. if (IClass == Item::ITEM_CLASS_BELT) { // 酒捞袍 牢器甫 罐酒柯促. ItemInfo* pItemInfo = g_pItemInfoManager->getItemInfo(pItem->getItemClass(), pItem->getItemType()); // 器南狼 箭磊甫 罐酒柯促. BYTE PocketNum = ((BeltInfo*)pItemInfo)->getPocketCount(); // 骇飘狼 牢亥配府甫 罐酒柯促. Inventory* pBeltInventory = ((Belt*)pItem)->getInventory(); BYTE SubItemCount = 0; // 器南狼 箭磊父怒 酒捞袍狼 沥焊甫 佬绢 甸牢促. for (int i = 0; i < PocketNum ; i++) { Item* pBeltItem = pBeltInventory->getItem(i, 0); if (pBeltItem != NULL) { SubItemInfo* pSubItemInfo = new SubItemInfo(); pSubItemInfo->setObjectID(pBeltItem->getObjectID()); pSubItemInfo->setItemClass(pBeltItem->getItemClass()); pSubItemInfo->setItemType(pBeltItem->getItemType()); pSubItemInfo->setItemNum(pBeltItem->getNum()); pSubItemInfo->setSlotID(i); pGearSlotInfo->addListElement(pSubItemInfo); SubItemCount++; } } pGearSlotInfo->setListNum(SubItemCount); } */ pGearSlotInfo->setSlotID(i); // 惑狼 窍狼 Main Color 瘤陛篮 弊成 0 栏肺 悸泼 秦敌促. pGearSlotInfo->setMainColor(0); pGearInfo->addListElement(pGearSlotInfo); ItemCount++; } } pGearInfo->setListNum(ItemCount); return pGearInfo; __END_DEBUG __END_CATCH}//////////////////////////////////////////////////////////////////////////////// get Inventory Info//////////////////////////////////////////////////////////////////////////////InventoryInfo* Vampire::getInventoryInfo() const throw(){ __BEGIN_TRY __BEGIN_DEBUG BYTE ItemCount = 0; InventoryInfo* pInventoryInfo = new InventoryInfo(); list<Item*> ItemList; VolumeHeight_t Height = m_pInventory->getHeight(); VolumeWidth_t Width = m_pInventory->getWidth(); for (int j = 0; j < Height; j++) { for (int i = 0 ; i < Width ; i ++) { if (m_pInventory->hasItem(i, j)) { Item* pItem = m_pInventory->getItem(i , j); VolumeWidth_t ItemWidth = pItem->getVolumeWidth(); Item::ItemClass IClass = pItem->getItemClass(); list<Item*>::iterator itr = find(ItemList.begin() , ItemList.end() , pItem); if (itr == ItemList.end()) { ItemList.push_back(pItem); // InventorySlotInfo甫 备己 InventorySlotInfo* pInventorySlotInfo = new InventorySlotInfo(); pInventorySlotInfo->setObjectID(pItem->getObjectID()); pInventorySlotInfo->setItemClass(pItem->getItemClass()); pInventorySlotInfo->setItemType(pItem->getItemType()); pInventorySlotInfo->setOptionType(pItem->getOptionType()); pInventorySlotInfo->setSilver(pItem->getSilver()); pInventorySlotInfo->setDurability(pItem->getDurability()); pInventorySlotInfo->setEnchantLevel(pItem->getEnchantLevel()); pInventorySlotInfo->setInvenX(i); pInventorySlotInfo->setInvenY(j); pInventorySlotInfo->setItemNum(pItem->getNum()); if (IClass == Item::ITEM_CLASS_AR) { AR* pAR = dynamic_cast<AR*>(pItem); pInventorySlotInfo->setItemNum(pAR->getBulletCount()); } else if (IClass == Item::ITEM_CLASS_SG) { SG* pSG = dynamic_cast<SG*>(pItem); pInventorySlotInfo->setItemNum(pSG->getBulletCount()); } else if (IClass == Item::ITEM_CLASS_SMG) { SMG* pSMG = dynamic_cast<SMG*>(pItem); pInventorySlotInfo->setItemNum(pSMG->getBulletCount()); } else if (IClass == Item::ITEM_CLASS_SR) { SR* pSR = dynamic_cast<SR*>(pItem); pInventorySlotInfo->setItemNum(pSR->getBulletCount()); } // 骇飘扼搁 Sub 酒捞袍狼 眠啊 沥焊啊 鞘夸窍促. if (IClass == Item::ITEM_CLASS_BELT) { Belt* pBelt = dynamic_cast<Belt*>(pItem); Inventory* pBeltInventory = ((Belt*)pItem)->getInventory(); BYTE SubItemCount = 0; // 器南狼 箭磊父怒 酒捞袍狼 沥焊甫 佬绢 甸牢促. for (int i = 0; i < pBelt->getPocketCount() ; i++) { Item* pBeltItem = pBeltInventory->getItem(i, 0); if (pBeltItem != NULL) { SubItemInfo* pSubItemInfo = new SubItemInfo(); pSubItemInfo->setObjectID(pBeltItem->getObjectID()); pSubItemInfo->setItemClass(pBeltItem->getItemClass()); pSubItemInfo->setItemType(pBeltItem->getItemType()); pSubItemInfo->setItemNum(pBeltItem->getNum()); pSubItemInfo->setSlotID(i); pInventorySlotInfo->addListElement(pSubItemInfo); SubItemCount++; } } pInventorySlotInfo->setListNum(SubItemCount); } pInventorySlotInfo->setMainColor(0); pInventoryInfo->addListElement(pInventorySlotInfo); ItemCount++; i = i + ItemWidth - 1; } } } } pInventoryInfo->setListNum(ItemCount); return pInventoryInfo; __END_DEBUG __END_CATCH
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -