?? vampire.cpp
字號(hào):
{ // 夸備茄 酒撈袍闌 厘饅 器牢飄俊 持綽促. m_pWearItem[WEAR_RIGHTHAND] = pItem; m_pWearItem[WEAR_LEFTHAND] = pItem; // by sigi. 2002.5.15 //pItem->save(m_Name, STORAGE_GEAR, 0, Part, 0); sprintf(pField, "Storage=%d, X=%d", STORAGE_GEAR, Part); pItem->tinysave(pField); } } } else { if (isWear(Part)) { pPrevItem = getWearItem(Part); m_pWearItem[Part] = pItem; // by sigi. 2002.5.15 char pField[80]; //pItem->save(m_Name, STORAGE_GEAR, 0, Part, 0); sprintf(pField, "Storage=%d, X=%d", STORAGE_GEAR, Part); pItem->tinysave(pField); addItemToExtraInventorySlot(pPrevItem); //pPrevItem->save(m_Name, STORAGE_EXTRASLOT, 0, 0, 0); sprintf(pField, "Storage=%d", STORAGE_EXTRASLOT); pPrevItem->tinysave(pField); } else { // 夸備茄 酒撈袍闌 厘饅 器牢飄俊 持綽促. m_pWearItem[Part] = pItem; // by sigi. 2002.5.15 char pField[80]; //pItem->save(m_Name, STORAGE_GEAR, 0, Part, 0); sprintf(pField, "Storage=%d, X=%d", STORAGE_GEAR, Part); pItem->tinysave(pField); } } // 渴撈扼擱 渴俊 蝶弗 禍彬闌 瀝秦霖促. // 唱吝俊扼檔 渴 鷗澇撈 咯礬 啊瘤啊 瞪 薦 樂欄府扼 積阿竅綽單, // 泅犁肺輯綽 渴 鷗澇撈 竅唱撈骨肺, 禍彬父 技潑秦霖促. if (pItem->getItemClass() == Item::ITEM_CLASS_VAMPIRE_COAT) { m_VampireInfo.setCoatColor( getItemShapeColor( pItem ) ); // item type闌 汲瀝秦霖促. m_VampireInfo.setCoatType( pItem->getItemType() ); } __END_CATCH}//----------------------------------------------------------------------// Vampire::WearItem()// Item闌 厘饅芒俊 厘饅矯虐絆 瓷仿摹甫 拌魂茄促.//----------------------------------------------------------------------void Vampire::wearItem(WearPart Part) throw(){ __BEGIN_TRY // 厘饅 霖厚吝牢 酒撈袍闌 罐酒柯促. Item* pItem = getExtraInventorySlotItem(); Assert(pItem != NULL); Item* pPrevItem = NULL; Item* pLeft = NULL; Item* pRight = NULL; // 剛歷 渴闌 澇灑芭唱, 哈扁扁 傈俊 泅犁狼 瓷仿摹甫 滾欺俊促 歷厘秦 敵促. // 撈綽 唱吝俊 函茄 瓷仿摹父闌 傈價(jià)竅扁 困茄 巴撈促. VAMPIRE_RECORD prev; getVampireRecord(prev); // 泅犁 扁裙俊輯綽...瓷仿摹啊 葛磊扼歹扼檔 酒撈袍闌 公煉扒 葷儈且 薦綽 // 樂促. 竅瘤父 酒撈袍俊 狼茄 瓷仿摹啊 利儈撈 登瘤 臼綽促. // 弊礬骨肺 老竄 酒撈袍闌 秦寸竅綽 厘饅芒俊促 籠絹持綽促. char pField[80]; // vampire 公扁 眠啊. 2002.8.16. by sigi // 劇頰 公扁老 版快俊綽 劇頰 厘饅芒俊促 竅唱狼 酒撈袍 器牢磐甫 且寸... if (isTwohandWeapon(pItem)) { // 劇頰俊 酒撈袍闌 甸絆 樂闌 版快 if (isWear(WEAR_RIGHTHAND) && isWear(WEAR_LEFTHAND)) { pLeft = getWearItem(WEAR_RIGHTHAND); pRight = getWearItem(WEAR_LEFTHAND); // 劇頰 公扁甫 甸絆 樂闌 版快 if (pLeft == pRight) { takeOffItem(WEAR_LEFTHAND, false, false); // 夸備茄 酒撈袍闌 厘饅 器牢飄俊 持絆, m_pWearItem[WEAR_RIGHTHAND] = pItem; m_pWearItem[WEAR_LEFTHAND] = pItem; // by sigi. 2002.5.15 //pItem->save(m_Name, STORAGE_GEAR, 0, Part, 0); sprintf(pField, "Storage=%d, X=%d", STORAGE_GEAR, Part); pItem->tinysave(pField); // 夸備茄 酒撈袍闌 付快膠 器牢磐俊輯 力芭茄促. deleteItemFromExtraInventorySlot(); // 盔貳 樂帶 酒撈袍闌 付快膠 器牢磐俊 崔酒 霖促. addItemToExtraInventorySlot(pLeft); //pLeft->save(m_Name, STORAGE_EXTRASLOT, 0, 0, 0); sprintf(pField, "Storage=%d", STORAGE_EXTRASLOT); pLeft->tinysave(pField); } // 八苞 規(guī)菩甫 甸絆 樂闌 版快 else { // 劇頰俊 八苞 規(guī)菩甫 甸絆 樂菌綽單...劇頰 公扁甫 甸妨絆 竅擱, // 八籃 付快膠 器牢磐俊 崔酒臨 薦 樂瘤父, 規(guī)菩綽 絹痘霸 且 薦啊 絕促. // 牢亥配府俊 持絹拎具 且 刨單, 瘤陛 寸厘籃 絹痘霸 且 瘤甫 葛福擺匙... // 傲 澇闌 薦 絕促綽 菩哦闌 焊郴林磊... return; } } // 劇頰俊 酒撈袍闌 甸絆 樂瘤 臼闌 版快 else { // by sigi. 2002.5.15 // 坷弗率俊 酒撈袍闌 甸絆 樂闌 版快 if (isWear(WEAR_RIGHTHAND)) { pRight = getWearItem(WEAR_RIGHTHAND); takeOffItem(WEAR_RIGHTHAND, false, false); // 夸備茄 酒撈袍闌 厘饅 器牢飄俊 持綽促. m_pWearItem[WEAR_RIGHTHAND] = pItem; m_pWearItem[WEAR_LEFTHAND] = pItem; //pItem->save(m_Name, STORAGE_GEAR, 0, Part, 0); // by sigi. 2002.5.15 sprintf(pField, "Storage=%d, X=%d", STORAGE_GEAR, Part); pItem->tinysave(pField); // 夸備茄 酒撈袍闌 付快膠 器牢磐俊輯 力芭茄促. deleteItemFromExtraInventorySlot(); // 盔貳 樂帶 酒撈袍闌 付快膠 器牢磐俊 崔酒 霖促. addItemToExtraInventorySlot(pRight); //pRight->save(m_Name, STORAGE_EXTRASLOT, 0, 0, 0); sprintf(pField, "Storage=%d", STORAGE_EXTRASLOT); pRight->tinysave(pField); } // 哭率俊 酒撈袍闌 甸絆 樂闌 版快 else if (isWear(WEAR_LEFTHAND)) { pLeft = getWearItem(WEAR_LEFTHAND); takeOffItem(WEAR_LEFTHAND, false, false); // 夸備茄 酒撈袍闌 厘饅 器牢飄俊 持綽促. m_pWearItem[WEAR_RIGHTHAND] = pItem; m_pWearItem[WEAR_LEFTHAND] = pItem; // by sigi. 2002.5.15 //pItem->save(m_Name, STORAGE_GEAR, 0, Part, 0); sprintf(pField, "Storage=%d, X=%d", STORAGE_GEAR, Part); pItem->tinysave(pField); // 夸備茄 酒撈袍闌 付快膠 器牢磐俊輯 力芭茄促. deleteItemFromExtraInventorySlot(); // 盔貳 樂帶 酒撈袍闌 付快膠 器牢磐俊 崔酒 霖促. addItemToExtraInventorySlot(pLeft); //pLeft->save(m_Name, STORAGE_EXTRASLOT, 0, 0, 0); sprintf(pField, "Storage=%d", STORAGE_EXTRASLOT); pLeft->tinysave(pField); } // 酒公率檔 酒撈袍闌 甸絆 樂瘤 臼闌 版快 else { // 夸備茄 酒撈袍闌 厘饅 器牢飄俊 持綽促. m_pWearItem[WEAR_RIGHTHAND] = pItem; m_pWearItem[WEAR_LEFTHAND] = pItem; pItem->save(m_Name, STORAGE_GEAR, 0, Part, 0); // 夸備茄 酒撈袍闌 付快膠 器牢磐俊輯 力芭茄促. deleteItemFromExtraInventorySlot(); } } } else { if (isWear(Part)) { pPrevItem = getWearItem(Part); takeOffItem(Part, false, false); m_pWearItem[Part] = pItem; // by sigi. 2002.5.15 //pItem->save(m_Name, STORAGE_GEAR, 0, Part, 0); sprintf(pField, "Storage=%d, X=%d", STORAGE_GEAR, Part); pItem->tinysave(pField); deleteItemFromExtraInventorySlot(); addItemToExtraInventorySlot(pPrevItem); //pPrevItem->save(m_Name, STORAGE_EXTRASLOT, 0, 0, 0); sprintf(pField, "Storage=%d", STORAGE_EXTRASLOT); pPrevItem->tinysave(pField); } else { m_pWearItem[Part] = pItem; deleteItemFromExtraInventorySlot(); // by sigi. 2002.5.15 //pItem->save(m_Name, STORAGE_GEAR, 0, Part, 0); sprintf(pField, "Storage=%d, X=%d", STORAGE_GEAR, Part); pItem->tinysave(pField); } } initAllStat(); sendRealWearingInfo(); sendModifyInfo(prev); // 渴撈扼擱 渴俊 蝶弗 禍彬闌 瀝秦霖促. // 唱吝俊扼檔 渴 鷗澇撈 咯礬 啊瘤啊 瞪 薦 樂欄府扼 積阿竅綽單, // 泅犁肺輯綽 渴 鷗澇撈 竅唱撈骨肺, 禍彬父 技潑秦霖促. // 角力 利儈登綽 酒撈袍父 汗厘闌 官槽促. by sigi. 2002.10.30 if (m_pRealWearingCheck[Part]) { if (pItem->getItemClass() == Item::ITEM_CLASS_VAMPIRE_COAT) { Color_t color = getItemShapeColor( pItem ); m_VampireInfo.setCoatColor( color ); m_VampireInfo.setCoatType( pItem->getItemType() ); // 渴闌 哎酒澇菌欄聰, 林困俊促啊 渴 哎酒澇菌促絆 瀝焊甫 朝赴促. GCChangeShape pkt; pkt.setObjectID(getObjectID()); pkt.setItemClass(Item::ITEM_CLASS_VAMPIRE_COAT); pkt.setItemType(pItem->getItemType()); pkt.setOptionType(pItem->getFirstOptionType()); pkt.setAttackSpeed(m_AttackSpeed[ATTR_CURRENT]); if (color == QUEST_COLOR ) pkt.setFlag( SHAPE_FLAG_QUEST ); Zone* pZone = getZone(); pZone->broadcastPacket(m_X, m_Y , &pkt, this); } } if (m_pZone != NULL) { GCOtherModifyInfo gcOtherModifyInfo; makeGCOtherModifyInfo(&gcOtherModifyInfo, this, &prev); if (gcOtherModifyInfo.getShortCount() != 0 || gcOtherModifyInfo.getLongCount() != 0) { m_pZone->broadcastPacket(m_X, m_Y, &gcOtherModifyInfo, this); } } __END_CATCH}//----------------------------------------------------------------------//// Vampire::takeOffItem()////----------------------------------------------------------------------void Vampire::takeOffItem(WearPart Part, bool bAddOnMouse, bool bSendModifyInfo) throw(){ __BEGIN_TRY VAMPIRE_RECORD prev; // 厘饅芒俊 樂綽 酒撈袍闌 罐酒柯促. Item* pItem = m_pWearItem[Part]; Assert(pItem != NULL); //m_pWearItem[Part] = NULL; // vampire 公扁 眠啊. 2002.8.16. by sigi // 厘饅芒俊 樂綽 酒撈袍闌 罐酒柯促. //Item::ItemClass IClass = pItem->getItemClass(); if (Part == WEAR_LEFTHAND || Part == WEAR_RIGHTHAND) { if (m_pWearItem[WEAR_RIGHTHAND] && m_pWearItem[WEAR_LEFTHAND]) { if (m_pWearItem[WEAR_RIGHTHAND] == m_pWearItem[WEAR_LEFTHAND]) { m_pWearItem[WEAR_RIGHTHAND] = NULL; m_pWearItem[WEAR_LEFTHAND] = NULL; } } } // 酒撈袍闌 厘饅器牢飄俊輯 力芭茄促. if (isTwohandWeapon(pItem)) { m_pWearItem[WEAR_RIGHTHAND] = NULL; m_pWearItem[WEAR_LEFTHAND] = NULL; } else m_pWearItem[Part] = NULL; // wearItem俊輯 瘤瀝等 澆兒俊 渴闌 撈固 澇絆 樂綽 版快俊, 弊巴闌 哈扁絆 // 促矯 渴闌 澇灑綽單, 弊礬擱 哈辨 錠 菩哦闌 茄鍋, 澇菌闌 錠 促矯 菩哦闌 // 茄鍋, 醚 滴 鍋狼 菩哦闌 焊郴霸 等促. 弊巴闌 規(guī)瘤竅扁 困秦輯 // bool 函薦甫 竅唱 籠絹持菌促. -- 2002.01.24 辮己刮 if (bSendModifyInfo) { getVampireRecord(prev); initAllStat(); sendRealWearingInfo(); sendModifyInfo(prev); } else { initAllStat(); } //--------------------------------------------- // 樂絹急 救瞪 眉農(nóng) -_-; 烙矯 東戶 // 酒撈袍闌 付快膠 目輯俊促 崔酒霖寸. //--------------------------------------------- if (bAddOnMouse) { addItemToExtraInventorySlot(pItem); //pItem->save(m_Name, STORAGE_EXTRASLOT, 0, 0, 0); // item歷厘 彌利拳. by sigi. 2002.5.13 char pField[80]; sprintf(pField, "Storage=%d, Durability=%d", STORAGE_EXTRASLOT, pItem->getDurability()); pItem->tinysave(pField); } if (pItem->getItemClass() == Item::ITEM_CLASS_VAMPIRE_COAT) { m_VampireInfo.setCoatColor(377); m_VampireInfo.setCoatType( 0 ); GCTakeOff pkt; pkt.setObjectID(getObjectID()); pkt.setSlotID((SlotID_t)ADDON_COAT); m_pZone->broadcastPacket(getX(), getY(), &pkt, this); } if (m_pZone != NULL) { GCOtherModifyInfo gcOtherModifyInfo; makeGCOtherModifyInfo(&gcOtherModifyInfo, this, &prev); if (gcOtherModifyInfo.getShortCount() != 0 || gcOtherModifyInfo.getLongCount() != 0) { m_pZone->broadcastPacket(m_X, m_Y, &gcOtherModifyInfo, this); } } __END_CATCH}//----------------------------------------------------------------------// destroyGears// 厘饅 酒撈袍闌 Delete 茄促.//----------------------------------------------------------------------void Vampire::destroyGears() throw (){ __BEGIN_TRY __BEGIN_DEBUG for (int j = 0; j < VAMPIRE_WEAR_MAX; j++) { Item* pItem = m_pWearItem[j]; if (pItem != NULL) { Item::ItemClass IClass = pItem->getItemClass(); //------------------------------------------------------------- // 澆飯撈絹儈 酒撈袍闌 澇絆 樂綽 撈惑茄 磊僥撈 樂欄擱 促 絹輯飄 //------------------------------------------------------------- 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); // 劇頰 公扁牢瘤甫 八葷秦輯 酒撈袍 竅唱甫 瘤快擱輯 // 劇頰闌 厚況霖促. if (isTwohandWeapon(pItem)) { m_pWearItem[WEAR_RIGHTHAND] = NULL; m_pWearItem[WEAR_LEFTHAND] = NULL; } else 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; ItemInfo* pItemInfo = g_pItemInfoManager->getItemInfo(pItem->getItemClass(), pItem->getItemType()); if ( pItem->isTimeLimitItem() ) { Attr_t ReqGender = pItemInfo->getReqGender(); if ( ( m_Sex == MALE && ReqGender == GENDER_FEMALE ) || ( m_Sex == FEMALE && ReqGender == GENDER_MALE ) ) return false; return true; } // 橇府固決 糧俊輯綽 蠟豐葷儈磊父 蠟聰農(nóng)/飯絹 酒撈袍撈 利儈等促. // 目敲傅檔 蠟豐葷儈磊父 鏡 薦 樂促. by Sequoia 2003. 3. 5. if (getZone()->isPremiumZone() && (pItem->isUnique() || pItem->getOptionTypeSize()>1 || pItem->getItemClass() == Item::ITEM_CLASS_COUPLE_RING || pItem->getItemClass() == Item::ITEM_CLASS_VAMPIRE_COUPLE_RING))
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -