995 lines
48 KiB
C
995 lines
48 KiB
C
|
|
#pragma once
|
|||
|
|
|
|||
|
|
/*---------------------------------------------------------------------------------------
|
|||
|
|
CDNUserItem
|
|||
|
|
|
|||
|
|
- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> ij<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> Ŭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
- VillageServer, GameServer<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ִ<EFBFBD> Ŭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>̹Ƿ<EFBFBD>
|
|||
|
|
if defined <EFBFBD><EFBFBD>ĥ(?)<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
---------------------------------------------------------------------------------------*/
|
|||
|
|
|
|||
|
|
#if defined(_GAMESERVER)
|
|||
|
|
class CDnItemTask;
|
|||
|
|
#endif // #if defined(_GAMESERVER)
|
|||
|
|
class CDNDBConnection;
|
|||
|
|
class CDNUserSession;
|
|||
|
|
class CDNMissionSystem;
|
|||
|
|
class CDNGuildWare;
|
|||
|
|
|
|||
|
|
class CDNCoolTime
|
|||
|
|
{
|
|||
|
|
public:
|
|||
|
|
CDNCoolTime(){}
|
|||
|
|
~CDNCoolTime(){}
|
|||
|
|
|
|||
|
|
void Clear()
|
|||
|
|
{
|
|||
|
|
m_mCoolTime.clear();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
int AddCoolTime( const int nSkillID, const DWORD dwEndTime )
|
|||
|
|
{
|
|||
|
|
std::pair<std::map<int,DWORD>::iterator,bool> Ret = m_mCoolTime.insert( std::make_pair( nSkillID, dwEndTime ) );
|
|||
|
|
if( Ret.second == false )
|
|||
|
|
return -1;
|
|||
|
|
return 0;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
DWORD Update( const int nSkillID, const DWORD dwEndTime )
|
|||
|
|
{
|
|||
|
|
std::map<int,DWORD>::iterator itor = m_mCoolTime.find( nSkillID );
|
|||
|
|
if( itor == m_mCoolTime.end() )
|
|||
|
|
return 0;
|
|||
|
|
|
|||
|
|
// <20><>Ÿ<EFBFBD><C5B8> <20>ð<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
if( dwEndTime >= itor->second )
|
|||
|
|
{
|
|||
|
|
m_mCoolTime.erase( itor );
|
|||
|
|
return 0;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return itor->second;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void GetCoolTimeData( std::vector<std::pair<int,int>>& vData )
|
|||
|
|
{
|
|||
|
|
std::map<int,DWORD> Temp = m_mCoolTime;
|
|||
|
|
|
|||
|
|
for( std::map<int,DWORD>::iterator itor=Temp.begin() ; itor!=Temp.end() ; ++itor )
|
|||
|
|
{
|
|||
|
|
int iEndTime = Update((*itor).first, timeGetTime() );
|
|||
|
|
if( iEndTime > 0 )
|
|||
|
|
{
|
|||
|
|
vData.push_back( std::make_pair((*itor).first,iEndTime-timeGetTime()) );
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
private:
|
|||
|
|
std::map<int,DWORD> m_mCoolTime;
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
class CDNUserItem: public TBoostMemoryPool<CDNUserItem>
|
|||
|
|
{
|
|||
|
|
public:
|
|||
|
|
struct TSaveItemInfo: public TItemInfo
|
|||
|
|
{
|
|||
|
|
bool bMerge;
|
|||
|
|
|
|||
|
|
TSaveItemInfo()
|
|||
|
|
{
|
|||
|
|
cSlotIndex = 0;
|
|||
|
|
bMerge = false;
|
|||
|
|
memset(&Item, 0, sizeof(TItem));
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void SetInfo(BYTE SlotIndex, const TItem &SetItem, bool Merge)
|
|||
|
|
{
|
|||
|
|
cSlotIndex = SlotIndex;
|
|||
|
|
Item = SetItem;
|
|||
|
|
bMerge = Merge;
|
|||
|
|
}
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
enum RequestTypeEnum {
|
|||
|
|
RequestType_None = -1,
|
|||
|
|
RequestType_UseRandomItem,
|
|||
|
|
RequestType_Enchant,
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
private:
|
|||
|
|
CDNUserSession *m_pSession;
|
|||
|
|
|
|||
|
|
TItem m_Equip[EQUIPMAX]; // <20><><EFBFBD><EFBFBD>â
|
|||
|
|
TItem m_Glyph[GLYPHMAX]; // <20><><EFBFBD><EFBFBD>
|
|||
|
|
#if defined(PRE_PERIOD_INVENTORY)
|
|||
|
|
TItem m_Inventory[INVENTORYTOTALMAX]; // <20>κ<EFBFBD>â
|
|||
|
|
TItem m_Warehouse[WAREHOUSETOTALMAX]; // â<><C3A2>â
|
|||
|
|
#else // #if defined(PRE_PERIOD_INVENTORY)
|
|||
|
|
TItem m_Inventory[INVENTORYMAX]; // <20>κ<EFBFBD>â
|
|||
|
|
TItem m_Warehouse[WAREHOUSEMAX]; // â<><C3A2>â
|
|||
|
|
#endif // #if defined(PRE_PERIOD_INVENTORY)
|
|||
|
|
TQuestItem m_QuestInventory[QUESTINVENTORYMAX]; // <20><><EFBFBD><EFBFBD>Ʈ <20>κ<EFBFBD>â
|
|||
|
|
#if defined(PRE_ADD_TALISMAN_SYSTEM)
|
|||
|
|
TItem m_Talisman[TALISMAN_MAX]; // Ż<><C5BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
#endif
|
|||
|
|
#if defined(PRE_ADD_EQUIPLOCK)
|
|||
|
|
EquipItemLock::TLockItem m_EquipLock[EQUIPMAX];
|
|||
|
|
EquipItemLock::TLockItem m_CashEquipLock[CASHEQUIPMAX];
|
|||
|
|
#endif // #if defined(PRE_ADD_EQUIPLOCK)
|
|||
|
|
|
|||
|
|
TItem m_CashEquip[CASHEQUIPMAX]; // <20><><EFBFBD><EFBFBD>â(ij<><C4B3>)
|
|||
|
|
TUnionMembership m_UnionMembership[NpcReputation::UnionType::Etc]; // <20><><EFBFBD><EFBFBD>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
typedef std::map<INT64, TItem> TMapItem;
|
|||
|
|
TMapItem m_MapCashInventory; // <20>κ<EFBFBD>â(ij<><C4B3>) first: Serial
|
|||
|
|
|
|||
|
|
#if defined(_VILLAGESERVER) && defined(PRE_ADD_CASH_REFUND)
|
|||
|
|
typedef std::map<INT64, TPaymentItemInfoEx> TMapPaymentItem;
|
|||
|
|
TMapPaymentItem m_MapPaymentItem; // <20><><EFBFBD><EFBFBD> <20>κ<EFBFBD>(<28><>ǰ)
|
|||
|
|
typedef std::map<INT64, TPaymentPackageItemInfoEx> TMapPaymentPackageItem;
|
|||
|
|
TMapPaymentPackageItem m_MapPaymentPackageItem; // <20><><EFBFBD><EFBFBD> <20>κ<EFBFBD>(<28><>Ű<EFBFBD><C5B0>)
|
|||
|
|
bool m_bCashMoveInven;
|
|||
|
|
#endif // #if defined(_VILLAGESERVER) && defined(PRE_ADD_CASH_REFUND)
|
|||
|
|
#if defined(PRE_ADD_SERVER_WAREHOUSE)
|
|||
|
|
TMapItem m_MapServerWarehouse; // <20><><EFBFBD><EFBFBD> â<><C3A2> <20>Ϲ<EFBFBD>..<2E><><EFBFBD><EFBFBD> <20><><EFBFBD>տ<EFBFBD><D5BF><EFBFBD><EFBFBD><EFBFBD> 150<35><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>⺻ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> GlobalWeightTable
|
|||
|
|
TMapItem m_MapServerWarehouseCash; // <20><><EFBFBD><EFBFBD> â<><C3A2> ij<><C4B3>
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
TVehicle m_VehicleEquip;
|
|||
|
|
TVehicle m_PetEquip;
|
|||
|
|
typedef std::map<INT64, TVehicle> TMapVehicle;
|
|||
|
|
TMapVehicle m_MapVehicleInventory;
|
|||
|
|
float m_fSatietyPercent;
|
|||
|
|
|
|||
|
|
CDNCoolTime m_CoolTime;
|
|||
|
|
|
|||
|
|
BYTE m_cInventoryCount;
|
|||
|
|
BYTE m_cWarehouseCount;
|
|||
|
|
#if defined(PRE_PERIOD_INVENTORY)
|
|||
|
|
bool m_bEnablePeriodInventory;
|
|||
|
|
__time64_t m_tPeriodInventoryExpireDate;
|
|||
|
|
bool m_bEnablePeriodWarehouse;
|
|||
|
|
__time64_t m_tPeriodWarehouseExpireDate;
|
|||
|
|
#endif // #if defined(PRE_PERIOD_INVENTORY)
|
|||
|
|
int m_iGlyphExtendCount;
|
|||
|
|
//<2F>ѹ<EFBFBD><D1B9><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ٴµ<D9B4> Ȥ<><C8A4> <20>Ѱ<EFBFBD><D1B0><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>彽<EFBFBD>Կ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
TCashGlyphData m_TCashGlyphData[CASHGLYPHSLOTMAX];
|
|||
|
|
#if defined(PRE_ADD_TALISMAN_SYSTEM)
|
|||
|
|
int m_nTalismanOpenFlag;
|
|||
|
|
bool m_bTalismanCashSlotEntend;
|
|||
|
|
__time64_t m_tTalismanExpireDate; // Ż<><C5BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ij<><C4B3> <20><><EFBFBD><EFBFBD> <20>Ⱓ
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
bool m_bMoveItemCheckGameMode;
|
|||
|
|
|
|||
|
|
TExchangeData m_ExchangeData[EXCHANGEMAX]; // <20>ŷ<EFBFBD><C5B7><EFBFBD><EFBFBD><EFBFBD>Ʈ
|
|||
|
|
INT64 m_nExchangeCoin; // <20>ŷ<EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
bool m_bExchangeRegist; // <20>ŷ<EFBFBD> <20><>ǰ <20><><EFBFBD><EFBFBD>
|
|||
|
|
bool m_bExchangeConfirm; // <20>ŷ<EFBFBD> <20><><EFBFBD><EFBFBD> Ȯ<><C8AE>
|
|||
|
|
|
|||
|
|
int m_nDailyMailCount; // 1<><31> <20><><EFBFBD><EFBFBD> <20><> <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
int m_nWeeklyRegisterCount; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> AM 04:00 <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϰ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ŷ<EFBFBD> Ƚ<><C8BD> / <20><><EFBFBD>ݵ<EFBFBD><DDB5><EFBFBD><EFBFBD>Ҽ<EFBFBD><D2BC>ִ<EFBFBD> Ƚ<><C8BD>
|
|||
|
|
int m_nRegisterItemCount; // <20>÷<EFBFBD><C3B7><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD> <20><>û <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ߴٰ<DFB4> ó<><C3B3><EFBFBD>ϴ<EFBFBD> <20>͵<EFBFBD><CDB5><EFBFBD> <20><><EFBFBD>ؼ<EFBFBD> <20>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>þ<EFBFBD><C3BE><EFBFBD>
|
|||
|
|
RequestTypeEnum m_RequestType;
|
|||
|
|
DWORD m_dwRequestTimer;
|
|||
|
|
DWORD m_dwRequestInterval;
|
|||
|
|
|
|||
|
|
DBPacket::TTakeAttachInfo m_ReadMailAttachItem; //
|
|||
|
|
std::vector<TMyMarketInfo> m_VecMyMarketList; // backup<75><70>?
|
|||
|
|
#if defined(PRE_SPECIALBOX)
|
|||
|
|
TSpecialBoxInfo m_SpecialBoxInfo[SpecialBox::Common::ListMax];
|
|||
|
|
TAGetListEventRewardItem m_SelectSpecialBoxItem;
|
|||
|
|
#endif // #if defined(PRE_SPECIALBOX)
|
|||
|
|
|
|||
|
|
int m_nCashInventoryTotalCount;
|
|||
|
|
int m_nCashInventoryPage;
|
|||
|
|
int m_nVehicleInventoryTotalCount;
|
|||
|
|
|
|||
|
|
#ifdef PRE_ADD_CHANGEJOB_CASHITEM
|
|||
|
|
int m_nChangeFirstJob;
|
|||
|
|
int m_nChangeSecondJob;
|
|||
|
|
#endif // #ifdef PRE_ADD_CHANGEJOB_CASHITEM
|
|||
|
|
char m_nSkillPageCount;
|
|||
|
|
|
|||
|
|
TItem m_Source; // <20>ٿ<EFBFBD>
|
|||
|
|
std::map<int,TRepurchaseItemInfo> m_mRepurchaseItemInfo;
|
|||
|
|
|
|||
|
|
#if defined( PRE_ADD_NAMEDITEM_SYSTEM )
|
|||
|
|
typedef map<int, TEffectSkillData> TMapEffectSkillList;
|
|||
|
|
TMapEffectSkillList m_mEffectSkillList;
|
|||
|
|
#endif
|
|||
|
|
#ifdef PRE_ADD_GETITEM_WITH_RANDOMVALUE
|
|||
|
|
std::vector<TCharmItem> m_CalculatedRandomCharmList;
|
|||
|
|
#endif //#ifdef PRE_ADD_GETITEM_WITH_RANDOMVALUE
|
|||
|
|
#if defined(PRE_MOD_POTENTIAL_JEWEL_RENEWAL)
|
|||
|
|
TPrevPotentialData m_PrevPotentialItem;
|
|||
|
|
#endif // #if defined(PRE_MOD_POTENTIAL_JEWEL_RENEWAL)
|
|||
|
|
|
|||
|
|
private:
|
|||
|
|
int _Equip(const CSMoveItem *pMove); // Equip <-> Equip
|
|||
|
|
int _Inven(const CSMoveItem *pMove); // Inven <-> Inven
|
|||
|
|
int _Ware(const CSMoveItem *pMove); // Ware <-> Ware
|
|||
|
|
int _FromEquipToInven(const CSMoveItem *pMove); // Equip -> Inven
|
|||
|
|
int _FromInvenToEquip(const CSMoveItem *pMove); // Inven -> Equip
|
|||
|
|
int _FromInvenToWare(const CSMoveItem *pMove); // Inven -> Ware
|
|||
|
|
int _FromWareToInven(const CSMoveItem *pMove); // Ware -> Inven
|
|||
|
|
int _FromGlyphToInven(const CSMoveItem *pMove); // Glyph -> Inven
|
|||
|
|
int _FromInvenToGlyph(const CSMoveItem *pMove); // Inven -> Glyph
|
|||
|
|
|
|||
|
|
int _FromCashEquipToCashInven(const CSMoveCashItem *pMove); // CashEquip -> CashInven
|
|||
|
|
int _FromCashInvenToCashEquip(const CSMoveCashItem *pMove); // CashInven -> CashEquip
|
|||
|
|
int _FromCashGlyphToCashInven(const CSMoveCashItem *pMove); // CashGlyph -> CashInven
|
|||
|
|
int _FromCashInvenToCashGlyph(const CSMoveCashItem *pMove); // CashInven -> CashGlyph
|
|||
|
|
int _FromVehicleBodyToVehicleInven(const CSMoveCashItem *pMove); // VehicleBody <-> VehicleInven
|
|||
|
|
int _FromVehicleInvenToVehicleBody(const CSMoveCashItem *pMove); // VehicleInven <-> VehicleBody
|
|||
|
|
int _FromVehiclePartsToCashInven(const CSMoveCashItem *pMove); // VehicleParts <-> CashInven
|
|||
|
|
int _FromCashInvenToVehicleParts(const CSMoveCashItem *pMove); // CashInven <-> VehicleParts
|
|||
|
|
int _FromPetBodyToVehicleInven(const CSMoveCashItem *pMove); //PetBody<64><79> <20>꽽<EFBFBD>Կ<EFBFBD><D4BF><EFBFBD> Ż<><C5BB>&<26><> <20>κ<EFBFBD><CEBA><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD>)
|
|||
|
|
int _FromVehicleInvenToPetBody(const CSMoveCashItem *pMove); //PetBody<64><79> Ż<><C5BB>&<26><> <20>κ<EFBFBD><CEBA><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><>ȯ)
|
|||
|
|
int _FromPetPartsToCashInven(const CSMoveCashItem *pMove); //PetParts<74><73> <20><> <20><><EFBFBD>Կ<EFBFBD><D4BF><EFBFBD> ij<><C4B3><EFBFBD>κ<EFBFBD><CEBA><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD>)
|
|||
|
|
int _FromCashInvenToPetParts(const CSMoveCashItem *pMove); //PetParts<74><73> ij<><C4B3><EFBFBD>κ<EFBFBD><CEBA><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD>)
|
|||
|
|
|
|||
|
|
#if defined(PRE_ADD_TALISMAN_SYSTEM)
|
|||
|
|
int _Talisman(const CSMoveItem *pMove); // Talisman <-> Talisman
|
|||
|
|
int _FromTalismanToInven(const CSMoveItem *pMove); // Talisman <-> Inven
|
|||
|
|
int _FromInvenToTalisman(const CSMoveItem *pMove); // Inven <-> Talisman
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
#if defined(PRE_ADD_SERVER_WAREHOUSE)
|
|||
|
|
int _FromInvenToServerWareHouse(const CSMoveServerWare *pMove);
|
|||
|
|
int _FromServerWareHouseToInven(const CSMoveServerWare *pMove);
|
|||
|
|
int _FromCashToServerWareHouse(const CSMoveCashServerWare *pMove);
|
|||
|
|
int _FromServerWareHouseToCash(const CSMoveCashServerWare *pMove);
|
|||
|
|
#endif // #if defined(PRE_ADD_SERVER_WAREHOUSE)
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>ϰ<EFBFBD> <20>ٲ<EFBFBD>ġ<EFBFBD><C4A1><EFBFBD><EFBFBD> <20>Լ<EFBFBD><D4BC><EFBFBD>
|
|||
|
|
int _SwapEquipToEquip(int nSrcIndex, int nDestIndex); // Equip <-> Equip
|
|||
|
|
int _SwapInvenToInven(int nSrcIndex, int nDestIndex); // Inven <-> Inven
|
|||
|
|
int _SwapWareToWare(int nSrcIndex, int nDestIndex); // Ware <-> Ware
|
|||
|
|
int _SwapQuestInvenToQuestInven(int nSrcIndex, int nDestIndex); // QuestInven <-> QuestInven
|
|||
|
|
int _SwapEquipToInven(int nSrcIndex, int nDestIndex); // Equip -> Inven
|
|||
|
|
int _SwapInvenToEquip(int nSrcIndex, int nDestIndex); // Inven -> Equip
|
|||
|
|
int _SwapInvenToWare(int nSrcIndex, int nDestIndex); // Inven -> Ware
|
|||
|
|
int _SwapWareToInven(int nSrcIndex, int nDestIndex); // Ware -> Inven
|
|||
|
|
int _SwapCashEquipToCashInven(int nSrcEquipIndex, INT64 biDestInvenSerial); // CashEquip -> CashInven
|
|||
|
|
int _SwapCashInvenToCashEquip(INT64 biSrcInvenSerial, int nDestEquipIndex); // CashInven -> CashEquip
|
|||
|
|
int _SwapCashGlyphToCashInven(int nSrcGlyphIndex, INT64 biDestInvenSerial); // CashGlyph -> CashInven
|
|||
|
|
int _SwapCashInvenToCashGlyph(INT64 biSrcInvenSerial, int nDestGlyphIndex); // CashInven -> CashGlyph
|
|||
|
|
#if defined(PRE_ADD_TALISMAN_SYSTEM)
|
|||
|
|
int _SwapTalismanToTalisman(int nSrcIndex, int nDestIndex); // Talisman <-> Talisman
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
// Equip<69><70><EFBFBD><EFBFBD> <20>Լ<EFBFBD>
|
|||
|
|
int _PushEquipSlot(int nIndex, const TItem &AddItem);
|
|||
|
|
int _PopEquipSlot(int nIndex, short wCount, bool bSend=true );
|
|||
|
|
// Glyph<70><68><EFBFBD><EFBFBD> <20>Լ<EFBFBD>
|
|||
|
|
int _PushGlyphSlot(int nIndex, const TItem &AddItem);
|
|||
|
|
int _PopGlyphSlot(int nIndex, short wCount, bool bSend=true );
|
|||
|
|
// inven<65><6E><EFBFBD><EFBFBD> <20>Լ<EFBFBD>
|
|||
|
|
int _PushInventorySlotItem(int nIndex, const TItem &AddItem);
|
|||
|
|
int _PopInventorySlotItem(int nIndex, short wCount);
|
|||
|
|
// CashEquip
|
|||
|
|
int _PushCashEquipSlot(int nIndex, const TItem &AddItem, bool bSubParts = false);
|
|||
|
|
int _PopCashEquipSlot(int nIndex, short wCount);
|
|||
|
|
// Cash inven<65><6E><EFBFBD><EFBFBD> <20>Լ<EFBFBD>
|
|||
|
|
int _PushCashInventory(const TItem &AddItem);
|
|||
|
|
int _PopCashInventoryBySerial(INT64 biSerial, short wCount);
|
|||
|
|
// â<><C3A2> <20><><EFBFBD><EFBFBD> <20>Լ<EFBFBD>
|
|||
|
|
int _PushWarehouseSlot(int nIndex, const TItem &AddItem);
|
|||
|
|
int _PopWarehouseSlot(int nIndex, short wCount);
|
|||
|
|
// <20><><EFBFBD><EFBFBD>Ʈ <20>κ<EFBFBD> <20><><EFBFBD><EFBFBD> <20>Լ<EFBFBD>
|
|||
|
|
int _PushQuestInventorySlot(int nIndex, const TQuestItem &AddItem);
|
|||
|
|
int _PopQuestInventorySlot(int nIndex, short wCount);
|
|||
|
|
// Ż<><C5BB>
|
|||
|
|
// Vehicle Equip
|
|||
|
|
int _PushVehicleEquipSlot(int nIndex, const TItem &AddItem );
|
|||
|
|
int _PopVehicleEquipSlot(int nIndex, short wCount, bool bSend=true );
|
|||
|
|
// Vehicle Inven
|
|||
|
|
int _PushVehicleInventory(const TVehicle &AddItem);
|
|||
|
|
int _PopVehicleInventoryBySerial(INT64 biSerial);
|
|||
|
|
int _PushPetEquipSlot(int nIndex, const TItem &AddItem );
|
|||
|
|
int _PopPetEquipSlot(int nIndex, short wCount, bool bSend=true );
|
|||
|
|
#if defined(PRE_ADD_SERVER_WAREHOUSE)
|
|||
|
|
int _PushServerWare(INT64 biSerial, const TItem &AddItem);
|
|||
|
|
int _PopServerWareBySerial(INT64 biSerial, short wCount);
|
|||
|
|
int _PushServerWareCash(const TItem &AddItem);
|
|||
|
|
int _PopServerWareCashBySerial(INT64 biSerial, short wCount);
|
|||
|
|
#endif
|
|||
|
|
#if defined(PRE_ADD_TALISMAN_SYSTEM)
|
|||
|
|
// Talisman<61><6E><EFBFBD><EFBFBD> <20>Լ<EFBFBD>
|
|||
|
|
int _PopTalismanSlot(int nIndex, short wCount, bool bSend=true );
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
// exchange
|
|||
|
|
int _FindBlankExchangeIndex(); // <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ε<EFBFBD><CEB5><EFBFBD> ã<><C3A3>
|
|||
|
|
bool _ExistExchangeInven(int nInvenIndex); // <20>̹<EFBFBD> <20>ִ<EFBFBD> <20>κ<EFBFBD><CEBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>ٸ<EFBFBD><D9B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ִ´ٸ<C2B4> <20><><EFBFBD>ƾ<EFBFBD><C6BE>Ѵ<EFBFBD>
|
|||
|
|
|
|||
|
|
// cooltime <20><><EFBFBD><EFBFBD>
|
|||
|
|
void _SetItemCoolTime( const int nSkillID, const int nMaxCoolTime ); // <20><><EFBFBD><EFBFBD> skillid <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>Ÿ<EFBFBD><C5B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>...
|
|||
|
|
void _UpdateInventoryCoolTime( const int nIndex, const DWORD dwCompareTime=0 ); // Update cooltime
|
|||
|
|
void _UpdateCashInventoryCoolTime( const INT64 biSerial, const DWORD dwCompareTime=0 ); // Update cooltime
|
|||
|
|
void _UpdateWarehouseCoolTime( const int nIndex, const DWORD dwCompareTime=0 ); // Update cooltime
|
|||
|
|
|
|||
|
|
// Repair(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
|||
|
|
int _CalcRepairEquipPrice();
|
|||
|
|
int _CalcRepairInvenPrice();
|
|||
|
|
void _RepairEquip(std::vector<INT64> &VecSerialList, std::vector<USHORT> &VecDurList);
|
|||
|
|
void _RepairInven(std::vector<INT64> &VecSerialList, std::vector<USHORT> &VecDurList);
|
|||
|
|
|
|||
|
|
bool _CheckRangeEquipIndex(int nIndex) const;
|
|||
|
|
bool _CheckRangeInventoryIndex(int nIndex) const;
|
|||
|
|
bool _CheckRangeWarehouseIndex(int nIndex) const;
|
|||
|
|
bool _CheckRangeQuestInventoryIndex(int nIndex) const;
|
|||
|
|
bool _CheckRangeGlyphIndex(int nIndex) const;
|
|||
|
|
bool _CheckRangeCashEquipIndex(int nIndex) const;
|
|||
|
|
bool _CheckRangeCashGlyphIndex(int nIndex) const;
|
|||
|
|
bool _CheckRangeVehicleBodyIndex(int nIndex) const;
|
|||
|
|
bool _CheckRangeVehiclePartsIndex(int nIndex) const;
|
|||
|
|
bool _CheckRangePetBodyIndex(int nIndex) const;
|
|||
|
|
bool _CheckRangePetPartsIndex(int nIndex) const;
|
|||
|
|
#if defined(PRE_ADD_SERVER_WAREHOUSE)
|
|||
|
|
bool _CheckRangeServerWareHouseIndex(int nIndex) const;
|
|||
|
|
bool _CheckRangeServerWareHouseCashIndex(int nIndex) const;
|
|||
|
|
#endif //#if defined(PRE_ADD_SERVER_WAREHOUSE)
|
|||
|
|
#if defined(PRE_ADD_TALISMAN_SYSTEM)
|
|||
|
|
bool _CheckRangeTalismanIndex(int nIndex) const;
|
|||
|
|
#endif
|
|||
|
|
#if defined(PRE_PERIOD_INVENTORY)
|
|||
|
|
bool _CheckRangePeriodInventoryIndex(int nIndex) const;
|
|||
|
|
bool _CheckRangePeriodWarehouseIndex(int nIndex) const;
|
|||
|
|
#endif // #if defined(PRE_PERIOD_INVENTORY)
|
|||
|
|
|
|||
|
|
int _IsMoveEnableItem(const TItem *pSrcItem, const CSMoveItem *pMove);
|
|||
|
|
|
|||
|
|
int _CreateInvenItemEx(const TItem &CreateItem, int nLogCode, INT64 biFKey, std::vector<TSaveItemInfo> &VecItemList, bool bInsertList, char cType = CREATEINVEN_ETC);
|
|||
|
|
int _CreateCashInvenItemEx(int nItemSN, BYTE cPayMethodCode, int nLogCode, INT64 biFKey, int nPeriod, int nPrice, const TItem &CreateItem);
|
|||
|
|
|
|||
|
|
#if defined(PRE_SPECIALBOX)
|
|||
|
|
int _ReceiveSpecialBoxCash(int nItemSN, int nOption, bool bCheckCondition);
|
|||
|
|
#endif // #if defined(PRE_SPECIALBOX)
|
|||
|
|
|
|||
|
|
public:
|
|||
|
|
CDNUserItem(CDNUserSession *pUserSession);
|
|||
|
|
virtual ~CDNUserItem(void);
|
|||
|
|
|
|||
|
|
void SetMoveItemCheckGameMode( bool bFlag ){ m_bMoveItemCheckGameMode = bFlag; }
|
|||
|
|
|
|||
|
|
static INT64 MakeItemSerial(); // Serial <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
static INT64 MakeCashItemSerial(UINT nDay); // CashItem Serial <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
void DoUpdate(DWORD CurTick);
|
|||
|
|
|
|||
|
|
void LoadUserData(TASelectCharacter *pData);
|
|||
|
|
void SaveUserData();
|
|||
|
|
void RemoveInstantItemData( bool bSend );
|
|||
|
|
void RemoveInstantVehicleItemData( bool bSend );
|
|||
|
|
void RemoveInstantEquipVehicleData( bool bSend ); // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ż<><C5BB> <20><><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
void RemoveGuildReversionItem( bool bSend );
|
|||
|
|
void RemoveGuildReversionVehicleItemData( bool bSend );
|
|||
|
|
void ResetCoolTime();
|
|||
|
|
#if defined( PRE_ADD_FARM_DOWNSCALE )
|
|||
|
|
static void CalcDropItems( CDNUserSession* pSesion, int nDropItemTableID, int &nResultItemID, int &nResultItemCount, int &nLastValue, int &nDepth );
|
|||
|
|
#else
|
|||
|
|
void CalcDropItems( int nDropItemTableID, int &nResultItemID, int &nResultItemCount, int &nLastValue, int &nDepth );
|
|||
|
|
#endif // #if defined( PRE_ADD_FARM_DOWNSCALE )
|
|||
|
|
|
|||
|
|
//------ <20><>Ŷó<C5B6><C3B3><EFBFBD><EFBFBD> <20>Լ<EFBFBD>(?) -> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Send<6E><64> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Լ<EFBFBD><D4BC><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
bool OnRecvMoveItem(const CSMoveItem *pPacket); // Move Process
|
|||
|
|
bool OnRecvMoveCashItem(const CSMoveCashItem *pPacket); // Move Process
|
|||
|
|
#if defined(PRE_ADD_SERVER_WAREHOUSE)
|
|||
|
|
bool OnRecvMoveServerWareItem(const CSMoveServerWare* pPacket);
|
|||
|
|
bool OnRecvMoveServerWareCashItem(const CSMoveCashServerWare* pPacket);
|
|||
|
|
#endif // #if defined(PRE_ADD_SERVER_WAREHOUSE)
|
|||
|
|
#if defined(PRE_ADD_STAGE_CLEAR_ENCHANT_REWARD)
|
|||
|
|
bool OnRecvPickUp(TItem& resultItemInfo, int nItemID, short wCount, int nRandomSeed, char cOption, int nEnchantID = 0); // <20>ٴ<EFBFBD> -> Inven
|
|||
|
|
#else // #if defined(PRE_ADD_STAGE_CLEAR_ENCHANT_REWARD)
|
|||
|
|
bool OnRecvPickUp(TItem& resultItemInfo, int nItemID, short wCount, int nRandomSeed, char cOption); // <20>ٴ<EFBFBD> -> Inven
|
|||
|
|
#endif // #if defined(PRE_ADD_STAGE_CLEAR_ENCHANT_REWARD)
|
|||
|
|
bool OnRecvRemoveItem(const CSRemoveItem *pPacket); // Equip, Inven -> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
int OnRecvRemoveCash(INT64 biItemSerial, bool bRecovery);
|
|||
|
|
#if defined(PRE_ADD_REMOTE_OPENSHOP)
|
|||
|
|
void OnRecvShopRemoteOpen(Shop::Type::eCode eType);
|
|||
|
|
#endif // #if defined(PRE_ADD_REMOTE_OPENSHOP)
|
|||
|
|
int OnRecvBuyNpcShopItem(int nShopID, char cShopTabID, BYTE cShopIndex, short wCount); // npcshop <20><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>
|
|||
|
|
int OnRecvSellNpcShopItem(const CSShopSell *pPacket); // npcshop <20>Ǹ<EFBFBD><C7B8>ϱ<EFBFBD>
|
|||
|
|
int OnRecvShopRepurchase( const CSShopRepurchase* pPacket );
|
|||
|
|
int OnRecvRepairEquip( int iUseItemID=0 ); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(equip)
|
|||
|
|
void OnRecvRepairAll( bool bCheat=false ); // <20><>ü<EFBFBD><C3BC><EFBFBD><EFBFBD>(equip + inven)
|
|||
|
|
#if defined(PRE_ADD_REPAIR_NPC)
|
|||
|
|
int CheckRepairEquip( int iUseItemID ); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(equip)
|
|||
|
|
int CheckRepairAll( bool bCheat ); // <20><>ü<EFBFBD><C3BC><EFBFBD><EFBFBD>(equip + inven)
|
|||
|
|
#endif //#if defined(PRE_ADD_REPAIR_NPC)
|
|||
|
|
#ifdef PRE_FIX_ONCANCEL_USEITEM
|
|||
|
|
void OnCancelUseItem(const CSUseItem& Packet);
|
|||
|
|
#endif
|
|||
|
|
void OnRecvUseItem(CSUseItem *pPacket);
|
|||
|
|
void OnRecvGetListRepurchaseItem( const TAGetListRepurchaseItem* pPacket );
|
|||
|
|
#if defined(PRE_ADD_TALISMAN_SYSTEM)
|
|||
|
|
int OnRecvOpenTalismanSlot(const CSOpenTalismanSlot* pPacket);
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
int ReturnItemToNpc(int nScheduleID);
|
|||
|
|
int UnsealItem(int nInvenIndex, INT64 biInvenSerial);
|
|||
|
|
int SealItem(int nInvenIndex, INT64 biInvenSerial, INT64 biItemSerial);
|
|||
|
|
bool EmblemCompoundComplete( int nEmblemItemID, BYTE cPlateItemSlotIndex, INT64 biPlateItemSerialID, int* apUseItemID, int* apUseItemCount, int nUseItemArrayCount );
|
|||
|
|
bool ItemCompoundComplete( int nResultItemID, char cResultItemOptionIndex, int* apUseItemID, int* apUseItemCount, int nUseItemArrayCount, INT64 biResultItemIsNeedItem, std::vector<TSaveItemInfo> *pVecResultList = NULL );
|
|||
|
|
|
|||
|
|
// inven<65><6E> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ֱ<EFBFBD>(<28><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><> <20><><EFBFBD>ųֱ<C5B3>) - <20> <20><><EFBFBD>ų<EFBFBD>(Pickup), <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE><EFBFBD><EFBFBD> <20>־<EFBFBD><D6BE>ְų<D6B0>(db <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>)
|
|||
|
|
int CreateInvenItem1(int nItemID, short wCount, char cOption, int nRandomSeed, int nLogCode, INT64 biFKey, char cType = CREATEINVEN_ETC);
|
|||
|
|
int CreateInvenItem2(int nItemID, short wCount, std::vector<TSaveItemInfo> &VecItemList, char cType = CREATEINVEN_ETC, int nShopItemPeriod = 0); // <20><><EFBFBD><EFBFBD> <20>α׳<CEB1><D7B3>涧 <20><><EFBFBD><EFBFBD> <20>Լ<EFBFBD>
|
|||
|
|
int CreateInvenWholeItem(const TItem &Item, int nLogCode, INT64 biFKey, char cType = CREATEINVEN_ETC); // <20>̹<EFBFBD> <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>κ<EFBFBD><CEBA><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>Լ<EFBFBD>
|
|||
|
|
int CreateInvenWholeItemByIndex(int nInvenIndex, const TItem &Item); // <20><> <20>ε<EFBFBD><CEB5><EFBFBD><EFBFBD><EFBFBD> <20>ھƹ<DABE><C6B9><EFBFBD><EFBFBD>°<EFBFBD>
|
|||
|
|
|
|||
|
|
// Cash, VehicleInven(ItemType<70><65> <20><><EFBFBD><EFBFBD> <20>Ϲ<EFBFBD> ij<><C4B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ż<><C5BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>)
|
|||
|
|
int CreateCashInvenItem(int nItemID, int nItemCount, int nLogCode, char cOption = -1, int nPeriod = 0, int nPrice = 0, INT64 biFKey = 0, BYTE cPayMethodCode = DBDNWorldDef::PayMethodCode::Coin); // <20><>í<EFBFBD><C3AD><EFBFBD><EFBFBD> ItemSN<53><4E><EFBFBD><EFBFBD> ItemID<49>θ<EFBFBD> ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ°<CFB4>
|
|||
|
|
int CreateCashInvenWholeItem(const TItem &Item); // <20><> <20>ھƹ<DABE><C6B9><EFBFBD><EFBFBD>°<EFBFBD>
|
|||
|
|
int CreateCashInvenItemByCheat(int nItemID, short wCount, int nPeriod, int nLogCode);
|
|||
|
|
#if defined(PRE_LEVELUPREWARD_DIRECT)
|
|||
|
|
bool CreateCashInvenItemByMailID(int nMailID);
|
|||
|
|
#endif // #if defined(PRE_LEVELUPREWARD_DIRECT)
|
|||
|
|
|
|||
|
|
bool DeleteItemByUse(int nInvenType, int nInvenIndex, INT64 biInvenSerial, bool bDBSave=true ); // <20>ش<EFBFBD> <20>κ<EFBFBD> <20>ε<EFBFBD><CEB5><EFBFBD><EFBFBD><EFBFBD> <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1<><31><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD>(db <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>)
|
|||
|
|
bool UseItemByType(int nType, int nUseCount, bool bSend, int nTypeParam1 = -1, int iTargetLogItemID=0, char cTargetLogItemLevel=0 );
|
|||
|
|
bool UseItemByItemID(int iItemID, int nUseCount, bool bSend, int nTypeParam1 = -1);
|
|||
|
|
|
|||
|
|
//-------------------------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
|
|||
|
|
// Index<65><78> TItem <20><><EFBFBD><EFBFBD>
|
|||
|
|
const TItem *GetEquip(int nIndex) const; // m_pItemGroup->Equip[cIndex].Item
|
|||
|
|
const TItem *GetGlyph(int nIndex) const;
|
|||
|
|
const TItem* GetInventory(int nIndex) const; // m_pItemGroup->Inventory[cIndex].Item
|
|||
|
|
const TItem* GetWarehouse(int nIndex) const; // m_pItemGroup->Warehouse[cIndex].Item
|
|||
|
|
const TQuestItem* GetQuestInventory(int nIndex) const; // m_pItemGroup->QuestInventory[cIndex].Item
|
|||
|
|
const TItem* GetCashEquip(int nIndex) const;
|
|||
|
|
const TItem* GetCashInventory(INT64 biItemSerial) const;
|
|||
|
|
const TItem *GetVehiclePartsEquip(int nIndex) const;
|
|||
|
|
TVehicle *GetVehicleEquip();
|
|||
|
|
const TVehicle* GetPetEquip() const;
|
|||
|
|
const TItem* GetPetPartsEquip(int nIndex) const;
|
|||
|
|
const TItem *GetVehicleBodyInventory(INT64 biItemSerial) const;
|
|||
|
|
const TVehicle *GetVehicleInventory(INT64 biItemSerial) const;
|
|||
|
|
#if defined(PRE_ADD_SERVER_WAREHOUSE)
|
|||
|
|
const TItem* GetServerWare(INT64 biItemSerial) const;
|
|||
|
|
const TItem* GetServerWareCash(INT64 biItemSerial) const;
|
|||
|
|
#endif
|
|||
|
|
#if defined(PRE_ADD_TALISMAN_SYSTEM)
|
|||
|
|
const TItem *GetTalisman(int nIndex) const;
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
// Equip<69><70><EFBFBD><EFBFBD> <20>Լ<EFBFBD>
|
|||
|
|
int GetEquipSlotIndex( int nItemID ) const;
|
|||
|
|
int FindBlankEquipSlot(); // equip<69><70> <20><EFBFBD> ã<><C3A3>
|
|||
|
|
void GetEquipIDs(int *EquipArray) const; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>۵<EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
void GetEquipItemDurability(std::vector<INT64> &VecSerialList, std::vector<USHORT> &VecDurList) const;
|
|||
|
|
#if defined(PRE_ADD_TALISMAN_SYSTEM)
|
|||
|
|
void GetEquipList(char &cCount, char &cCashCount, char &cGlyphCount, char &cTalismanCount, TItemInfo *EquipArray) const;
|
|||
|
|
#else
|
|||
|
|
void GetEquipList(char &cCount, char &cCashCount, char &cGlyphCount, TItemInfo *EquipArray) const;
|
|||
|
|
#endif
|
|||
|
|
void BroadcastChangeEquip(int nSlotIndex, const TItem &EquipItem); // <20>ֺ<EFBFBD> <20>ֵ鿡<D6B5><E9BFA1> Equip<69>ٲ<EFBFBD><D9B2><EFBFBD> <20>ѷ<EFBFBD><D1B7>ֱ<EFBFBD>
|
|||
|
|
void ChangeEquipItemDurability( int nIndex, USHORT wDur );
|
|||
|
|
bool ChangeDefaultParts( int nItemType, const int *pTypeParam, INT64 biUseInvenItemSerial ); // <20><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD> <20><> Default <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
int IsEquipEnableItem(const TItem& equipExpected) const;
|
|||
|
|
bool IsEquipItem(int nSlotIndex, int nItemID) const; // Equip Slot<6F><74> <20>´<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>˻<EFBFBD>
|
|||
|
|
bool CheckEquipByItemID(int nItemID) const; // Equip <20><> Ư<><C6AF> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ߴ<EFBFBD><DFB4><EFBFBD> <20>˻<EFBFBD>
|
|||
|
|
#if defined(PRE_ADD_EQUIPED_ITEM_ENCHANT) || defined(PRE_ADD_EQUIPLOCK)
|
|||
|
|
bool IsValidEquipSlot(int nIndex, INT64 biSerial, bool bCheckSerial = true) const; // Equip <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ߴ<EFBFBD><DFB4><EFBFBD>
|
|||
|
|
#endif // #if defined(PRE_ADD_EQUIPED_ITEM_ENCHANT) || || defined(PRE_ADD_EQUIPLOCK)
|
|||
|
|
|
|||
|
|
// CashEquip
|
|||
|
|
int TakeOffOnePiece(int nItemID); // ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
int GetCashEquipOnePieceMainParts(int nEquipItemID); // <20>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD>϶<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD><C3A3>
|
|||
|
|
void BroadcastChangeCashEquip(int nSlotIndex, const TItem &EquipItem); // <20>ֺ<EFBFBD> <20>ֵ鿡<D6B5><E9BFA1> CashEquip<69>ٲ<EFBFBD><D9B2><EFBFBD> <20>ѷ<EFBFBD><D1B7>ֱ<EFBFBD>
|
|||
|
|
bool IsEquipCashItemExist(int nItemID) const; // Equip <20><> Ư<><C6AF> ij<><C4B3> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ߴ<EFBFBD><DFB4><EFBFBD> <20>˻<EFBFBD>
|
|||
|
|
|
|||
|
|
// Glyph
|
|||
|
|
bool IsGlyphItem(int nSlotIndex, int nItemID); // Glyph Slot<6F><74> <20>´<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>˻<EFBFBD>
|
|||
|
|
void BroadcastChangeGlyph(int nSlotIndex, const TItem &GlyphItem); // <20>ֺ<EFBFBD> <20>ֵ鿡<D6B5><E9BFA1> Glyph<70>ٲ<EFBFBD><D9B2><EFBFBD> <20>ѷ<EFBFBD><D1B7>ֱ<EFBFBD>
|
|||
|
|
|
|||
|
|
#if defined(PRE_ADD_TALISMAN_SYSTEM)
|
|||
|
|
// Talisman
|
|||
|
|
int CheckTalismanSlotValidation(int nSlotIndex);
|
|||
|
|
bool SetTalismanSlotOpenFlag(int nSlotIndex, bool bFlag);
|
|||
|
|
bool IsTalismanSlotOpened(int nSlotIndex);
|
|||
|
|
int GetTalismanSlotOpenFlag() { return m_nTalismanOpenFlag; }
|
|||
|
|
void SetTalismanSlotOpenFlag( int nFlag ){ m_nTalismanOpenFlag = nFlag; }
|
|||
|
|
bool IsTalismanCashSlotEntend() { return m_bTalismanCashSlotEntend; }
|
|||
|
|
void SetTalismanCashSlotEntend( bool bTalismanCashSlotEntend ) { m_bTalismanCashSlotEntend = bTalismanCashSlotEntend; }
|
|||
|
|
void SetTalismanExpireDate( __time64_t tExpireDate ){ m_tTalismanExpireDate = tExpireDate; }
|
|||
|
|
__time64_t GetTalismanExpireDate() { return m_tTalismanExpireDate; }
|
|||
|
|
void BroadcastChangeTalisman(int nSlotIndex, const TItem &TalismanItem);
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
int IsTradeEnableItem(int nInvenType, int nInvenIndex, INT64 biInvenSerial, short wInputCount);
|
|||
|
|
|
|||
|
|
// inven<65><6E><EFBFBD><EFBFBD> <20>Լ<EFBFBD>
|
|||
|
|
bool CheckRangeInventoryIndex(int nIndex) const;
|
|||
|
|
bool AddInventoryByQuest(int nItemID, short wCount, int nQuestID, int nRandomSeed); // itemid, count, randomseed<65><64> <20><><EFBFBD><EFBFBD> inventory<72><79> <20>ֱ<EFBFBD>
|
|||
|
|
bool AddInventoryByQuest( const TQuestReward::_ITEMSET* pItemSet, int nQuestID, int nRandomSeed ); // TQuestReward::_ItemSet<65><74> <20><><EFBFBD><EFBFBD> inventory<72><79> <20>ֱ<EFBFBD>
|
|||
|
|
bool DeleteInventoryByQuest(int nItemID, short wCount, int nQuestID); // ItemID<49><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD> inven<65><6E> <20><><EFBFBD><EFBFBD>(db <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>)
|
|||
|
|
bool DeleteInventoryByItemID(int nItemID, int iCount, int nLogCode, INT64 biFKey=0 );// ItemID<49><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD> inven<65><6E> <20><><EFBFBD><EFBFBD>(db <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>)
|
|||
|
|
bool DeleteInventoryExByItemID(int nItemID, char cOption, int iCount, int nLogCode, INT64 biFKey, std::vector<TItemInfo> &VecItemList, bool bInsertList); // ItemID<49><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD> inven<65><6E> <20><><EFBFBD><EFBFBD>(db <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>) - <20><><EFBFBD><EFBFBD> list<73><74>
|
|||
|
|
bool DeleteInventoryBySlot(int nSlotIndex, short wCount, INT64 biSerial, int nLogCode); // SlotIndex<65><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD> inven<65><6E> <20><><EFBFBD><EFBFBD>(db <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>)
|
|||
|
|
bool DeleteInventoryByType(int nType, short wCount, int nLogCode, int nTypeParam1 = -1, int iTargetLogItemID=0, char cTargetLogItemLevel=0 );
|
|||
|
|
int FindInventorySlot(int nItemID, short wCount) const; // <20>ش<EFBFBD> ItemID, Count<6E><74> inven<65><6E><EFBFBD><EFBFBD> indexã<78><C3A3>
|
|||
|
|
int FindInventorySlot(int nItemID, char cOption, short wCount, bool bSoulBound = false ) const;
|
|||
|
|
int FindInventorySlotBySerial( INT64 biSerial ) const;
|
|||
|
|
bool CheckEnoughItem( int iItemID, int iCount ) const;
|
|||
|
|
int GetInventoryItemCount(int nItemID, char cOption = -1) const; // id<69><64> <20>ش<EFBFBD><D8B4>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EEB0B3> <20>ִ<EFBFBD><D6B4><EFBFBD>
|
|||
|
|
int GetInventoryItemCountByType(int nType, int nTypeParam1 = -1) const;
|
|||
|
|
bool IsValidSpaceInventorySlot(int nItemID, short wCount, bool bSoulBound, char cSealCount, bool bEternity) const; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>˻<EFBFBD>
|
|||
|
|
int IsValidSpaceInventorySlotFromShop( const TItemData* pItemData, int iCheckCount ) const;
|
|||
|
|
int FindBlankInventorySlot() const; // inven<65><6E> <20><EFBFBD> ã<><C3A3>
|
|||
|
|
int FindBlankInventorySlotCount() const; // inven<65><6E> <20><EFBFBD><F3BDBDB7><EFBFBD> <20><EFBFBD><EEB0B3> <20>ִ<EFBFBD><D6B4><EFBFBD> <20><><EFBFBD><EFBFBD>ã<EFBFBD><C3A3>
|
|||
|
|
int FindBlankInventorySlotCountList(std::queue<int> &qSlotList) const;
|
|||
|
|
int FindOverlapInventorySlot(int nItemID, short wCount, bool bSoulBound, char cSealCount, bool bEternity) const; // inven<65><6E> <20><><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> wCount <20><><EFBFBD><EFBFBD> <20><> <20>ִ<EFBFBD> Indexã<78><C3A3>
|
|||
|
|
bool IsValidInventorySlot(int nIndex, INT64 biSerial, bool bCheckSerial = true) const; // inven<65><6E> <20><><EFBFBD><EFBFBD> <20>ִ<EFBFBD><D6B4><EFBFBD>
|
|||
|
|
bool VerifyInventorySlotPacket(int nInvenIndex, const TItem &Item) const; // <20><><EFBFBD>λ<EFBFBD><CEBB><EFBFBD>, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> index<65>Ƽ<DEBE> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ٿ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>˻<EFBFBD><CBBB>ϱ<EFBFBD>
|
|||
|
|
void ChangeInventoryItemDurability( int nIndex, USHORT wDur );
|
|||
|
|
bool SortInventory(CSSortInventory *pPacket);
|
|||
|
|
#if defined(PRE_PERIOD_INVENTORY)
|
|||
|
|
bool SortPeriodInventory(CSSortInventory *pPacket);
|
|||
|
|
#endif // #if defined(PRE_PERIOD_INVENTORY)
|
|||
|
|
void GetInventoryItemDurability(std::vector<INT64> &VecSerialList, std::vector<USHORT> &VecDurList) const;
|
|||
|
|
void CheatClearInven();
|
|||
|
|
int GetInventoryItemListFromItemID( int nItemID, std::vector<TItem *> &pVecResult );
|
|||
|
|
int GetInventoryItemListFromItemID( int nItemID, char cOption, std::vector<TItem *> &pVecResult );
|
|||
|
|
TItem* GetInventoryItemByType(int nType);
|
|||
|
|
|
|||
|
|
// Cash inven<65><6E><EFBFBD><EFBFBD> <20>Լ<EFBFBD>
|
|||
|
|
void LoadCashInventory(int nPageNum, int nTotalCount, int nCount, TItem *CashItemList);
|
|||
|
|
bool UseCashItemByType(int nType, int nUseCount, bool bSend);
|
|||
|
|
bool DeleteCashInventoryByItemID(int nItemID, short wCount, int nLogCode, INT64 biFKey=0 ); // ItemID<49><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD> inven<65><6E> <20><><EFBFBD><EFBFBD>(db <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>)
|
|||
|
|
bool DeleteCashInventoryBySerial(INT64 biInvenSerial, short wCount, bool bSaveDB = true); // SlotIndex<65><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD> inven<65><6E> <20><><EFBFBD><EFBFBD>(db <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>)
|
|||
|
|
void ChangeCashInventoryItemDurability(INT64 biSerial, USHORT wDur);
|
|||
|
|
int GetCashItemCountByItemID(int nItemID); // id<69><64> <20>ش<EFBFBD><D8B4>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EEB0B3> <20>ִ<EFBFBD><D6B4><EFBFBD>
|
|||
|
|
int GetCashItemCountByType(int nType, int nTypeParam1 = -1); // <20><> Ÿ<><C5B8><EFBFBD><EFBFBD> ij<><C4B3><EFBFBD><EFBFBD> <20><EFBFBD><EEB0B3> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֳ<EFBFBD>
|
|||
|
|
void GetCashInventoryItemListByType( int nType, std::vector<const TItem*>& VecResult, int nTypeParam1=-1 );
|
|||
|
|
TItem *GetCashItemByType(int nType); // Ÿ<><C5B8><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ͱ<EFBFBD>
|
|||
|
|
bool IsValidCashItem(int nItemID, short wCount); // ij<><C4B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ִ<EFBFBD><D6B4><EFBFBD>
|
|||
|
|
#if defined(_GAMESERVER)
|
|||
|
|
void InitializePlayerCashItem(CDnItemTask *pItemTask);
|
|||
|
|
#endif // #if defined(_GAMESERVER)
|
|||
|
|
void CheatClearCashInven();
|
|||
|
|
int GetExtendPrivateFarmFieldCount();
|
|||
|
|
void OnRemoveCashItem(TADelCashItem *pDel);
|
|||
|
|
void OnRecoverCashItem(TARecoverCashItem *pRecover);
|
|||
|
|
|
|||
|
|
// ware<72><65><EFBFBD><EFBFBD> <20>Լ<EFBFBD>
|
|||
|
|
bool IsValidWarehouseSlot(int nIndex); // ware<72><65> <20><><EFBFBD><EFBFBD> <20>ִ<EFBFBD><D6B4><EFBFBD>
|
|||
|
|
int GetWarehouseItemCount(int nItemID) const; // id<69><64> <20>ش<EFBFBD><D8B4>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><EEB0B3> <20>ִ<EFBFBD><D6B4><EFBFBD>
|
|||
|
|
int FindBlankWarehouseSlotCountList(std::queue<int> &qSlotList);
|
|||
|
|
bool SortWarehouse(CSSortWarehouse * pPacket);
|
|||
|
|
#if defined(PRE_PERIOD_INVENTORY)
|
|||
|
|
bool SortPeriodWarehouse(CSSortWarehouse * pPacket);
|
|||
|
|
#endif // #if defined(PRE_PERIOD_INVENTORY)
|
|||
|
|
|
|||
|
|
void GetIndexSerialList(int &nTotalInvenWareCount, DBPacket::TItemIndexSerial *SaveList);
|
|||
|
|
|
|||
|
|
// Quest Inventory <20><><EFBFBD><EFBFBD>
|
|||
|
|
int AddQuestInventory(int nItemID, short wCount, int nQuestID, int nLogCode); // -> Quest Inventory(<28>ֱ<EFBFBD>)
|
|||
|
|
int DeleteQuestInventory(int nItemID, short wCount, int nQuestID, int nLogCode); // <- Quest Inventory(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
|||
|
|
int FindQuestInventorySlot(int nItemID, short wCount); // <20>ش<EFBFBD> ItemID, Count<6E><74> quest inven<65><6E><EFBFBD><EFBFBD> indexã<78><C3A3>
|
|||
|
|
int FindBlankQuestInventorySlot(); // inven<65><6E> <20><EFBFBD> ã<><C3A3>
|
|||
|
|
int FindOverlapQuestInventorySlot(int nItemID, short wCount); // inven<65><6E> <20><><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> wCount <20><><EFBFBD><EFBFBD> <20><> <20>ִ<EFBFBD> Indexã<78><C3A3>
|
|||
|
|
int FindBlankQuestInventorySlotCountList(std::queue<int> &qSlotList);
|
|||
|
|
int FindBlankQuestInventorySlotCount(); // inven<65><6E> <20><EFBFBD><F3BDBDB7><EFBFBD> <20><EFBFBD><EEB0B3> <20>ִ<EFBFBD><D6B4><EFBFBD> <20><><EFBFBD><EFBFBD>ã<EFBFBD><C3A3>
|
|||
|
|
int GetQuestInventoryItemCount(int nItemID); // id<69><64> <20>ش<EFBFBD><D8B4>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
void CheatClearQuestInven();
|
|||
|
|
bool IsValidSpaceQuestInventorySlot(int nItemID, short wCount); // <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>˻<EFBFBD>
|
|||
|
|
|
|||
|
|
// Ż<><C5BB>
|
|||
|
|
int GetVehicleBodyItemID();
|
|||
|
|
void LoadVehicleInventory(const TAGetPageVehicle *pVehicle);
|
|||
|
|
void CheatClearVehicleInven();
|
|||
|
|
// VehicleEquip
|
|||
|
|
bool IsVehicleEquipItem(int nSlotIndex, int nItemID); // Vehicle<6C><65> <20>´<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>˻<EFBFBD>
|
|||
|
|
bool ChangeVehicleDyeColor(const int *pTypeParam);
|
|||
|
|
void BroadcastChangeVehicleParts(int nSlotIndex, const TItem &EquipItem); // <20>ֺ<EFBFBD> <20>ֵ鿡<D6B5><E9BFA1> Equip<69>ٲ<EFBFBD><D9B2><EFBFBD> <20>ѷ<EFBFBD><D1B7>ֱ<EFBFBD>
|
|||
|
|
|
|||
|
|
// Pet
|
|||
|
|
int GetPetBodyItemID();
|
|||
|
|
INT64 GetPetBodySerial();
|
|||
|
|
int GetPetExp();
|
|||
|
|
int ModItemExpireDate(const CSModItemExpireDate* pItem, int nMin); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ⱓ <20><><EFBFBD><EFBFBD>.
|
|||
|
|
void UpdatePetExp(int nExp);
|
|||
|
|
bool ChangePetBodyColor(const int *pTypeParam);
|
|||
|
|
bool ChangePetNoseColor(const int *pTypeParam);
|
|||
|
|
bool AddPetExp(int nAddPetExp);
|
|||
|
|
void ClearPetVehicleInven();
|
|||
|
|
void ItemExpireByCheat(INT64 biItemSerial);
|
|||
|
|
void BroadcastChangePetParts(int nSlotIndex, TItem &EquipItem);
|
|||
|
|
void BroadcastChangePetBody(const TVehicle &PetInfo);
|
|||
|
|
void BroadcastChangeVehiclePetColor(INT64 biSerial, DWORD dwColor, char cPetPartsColor); // <20>ֺ<EFBFBD> <20>ֵ鿡<D6B5><E9BFA1> Equip<69>ٲ<EFBFBD><D9B2><EFBFBD> <20>ѷ<EFBFBD><D1B7>ֱ<EFBFBD>
|
|||
|
|
int ChangePetName(const TAChangePetName *pPacket);
|
|||
|
|
void ModPetExpireDate(const TAModItemExpireDate *pPacket);
|
|||
|
|
int GetPetLevel(); // <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD> <20>ְ<EFBFBD><D6B0><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD>Ӽ<EFBFBD><D3BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȯ<EFBFBD>Ǿ<EFBFBD><C7BE>ִ<EFBFBD> <20><> <20><><EFBFBD><EFBFBD>)
|
|||
|
|
void SetPetSatiety(INT64 biPetSerial, int nSatiety);
|
|||
|
|
void CalcPetSatiety(DWORD CurTick);
|
|||
|
|
float GetPetSatietyPercent() { return m_fSatietyPercent; }
|
|||
|
|
void CalcPetSatietyPercent();
|
|||
|
|
float GetSatietyApplyExpRatio();
|
|||
|
|
float GetSatietyApplyStateRatio();
|
|||
|
|
bool IsSatietyPet();
|
|||
|
|
void SendPetSatiety();
|
|||
|
|
|
|||
|
|
void SetUnionMembership( BYTE cType, int nItemID, __time64_t tExpireDate );
|
|||
|
|
TUnionMembership* GetUnionMembership( BYTE cType );
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD>
|
|||
|
|
#if defined(_VILLAGESERVER)
|
|||
|
|
int IsValidSendMailItem(int nInvenIndex, int nItemID, short wCount, INT64 biSerial, DBPacket::TSendMailItem &ItemInfo);
|
|||
|
|
int CheckSendMailItem(const CSSendMail *pPacket);
|
|||
|
|
#ifdef PRE_ADD_JOINGUILD_SUPPORT
|
|||
|
|
void SetReadMail(int nMailDBID, INT64 biCoin, const TItem *MailItemArray, BYTE cMailType);
|
|||
|
|
#else //#ifdef PRE_ADD_JOINGUILD_SUPPORT
|
|||
|
|
void SetReadMail(int nMailDBID, INT64 biCoin, const TItem *MailItemArray);
|
|||
|
|
#endif //#ifdef PRE_ADD_JOINGUILD_SUPPORT
|
|||
|
|
void ClearReadMail( int iIndex=-1 );
|
|||
|
|
int VerifyAttachItemList(const TAGetListMailAttachment *pMail);
|
|||
|
|
int VerifyAttachItem(const CSAttachMail *pMail);
|
|||
|
|
int TakeAttachItemList(const TATakeAttachMailList *pMail);
|
|||
|
|
int TakeAttachItem(const TATakeAttachMail *pMail);
|
|||
|
|
|
|||
|
|
bool AddDailyMailCount();
|
|||
|
|
bool DelDailyMailCount();
|
|||
|
|
void SetDailyMailCount(int nCount);
|
|||
|
|
int GetDailyMailCount() { return m_nDailyMailCount; }
|
|||
|
|
#endif // #if defined(_VILLAGESERVER)
|
|||
|
|
|
|||
|
|
#if defined(PRE_SPECIALBOX)
|
|||
|
|
void SetSpecialBoxInfoList(const TAGetListEventReward *pPacket);
|
|||
|
|
void ClearSpecialBoxInfoList();
|
|||
|
|
TSpecialBoxInfo *GetSpecialBoxInfo(int nEventRewardID);
|
|||
|
|
INT64 GetSelectSpecialBoxRewardCoin(int nEventRewardID);
|
|||
|
|
void SetSelectSpecialBoxItems(const TAGetListEventRewardItem *pPacket);
|
|||
|
|
void ClearSelectSpecialBoxItems();
|
|||
|
|
|
|||
|
|
int CheckReceiveSpecialBox(int nEventRewardID, int nItemID);
|
|||
|
|
int ReceiveSpecialBox(int nEventRewardID, int nItemID);
|
|||
|
|
#endif // #if defined(PRE_SPECIALBOX)
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD>λ<EFBFBD><CEBB><EFBFBD>
|
|||
|
|
int CheckRegisterMarketItem(CSMarketRegister *pPacket); // market <20><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD> üũ
|
|||
|
|
bool CheckRegisterMarketItemCount( bool bPremiumTrade );
|
|||
|
|
bool CheckRegisterMarketPeriod( int nPeriod );
|
|||
|
|
int GetMarketMaxRegisterItemCount();
|
|||
|
|
|
|||
|
|
int CancelMarketItem(int nMarketDBID);
|
|||
|
|
#if defined(PRE_ADD_DIRECT_BUY_UPGRADEITEM)
|
|||
|
|
int BuyMarketItem(int nMarketDBID, bool bMini);
|
|||
|
|
#else // #if defined(PRE_ADD_DIRECT_BUY_UPGRADEITEM)
|
|||
|
|
#if defined(PRE_ADD_PETALTRADE)
|
|||
|
|
int BuyMarketItem(int nMarketDBID, int nItemID, int nPetalPrice);
|
|||
|
|
#else
|
|||
|
|
int BuyMarketItem(int nMarketDBID, int nItemID);
|
|||
|
|
#endif
|
|||
|
|
#endif // #if defined(PRE_ADD_DIRECT_BUY_UPGRADEITEM)
|
|||
|
|
void SetRegisterMarketCount(int nWeeklyRegisterCount, int nRegisterItemCount);
|
|||
|
|
void AddRegisterItemCount();
|
|||
|
|
void DelRegisterItemCount();
|
|||
|
|
int GetRegisterItemCount() { return m_nRegisterItemCount; }
|
|||
|
|
void AddWeeklyRegisterCount();
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD>ΰŷ<CEB0>
|
|||
|
|
int AddExchangeItem(CSExchangeAddItem *pPacket); // <20>ŷ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>
|
|||
|
|
int DeleteExchangeItem(char cExchangeIndex); // <20>ŷ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
int AddExchangeCoin(INT64 nCoin); // <20>ŷ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
void ClearExchangeData(); // <20>ŷ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʱ<EFBFBD>ȭ
|
|||
|
|
bool IsValidExchange(int nExchangeCount); // <20>ŷ<EFBFBD><C5B7><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28>ŷ<EFBFBD><C5B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>κ<EFBFBD><CEBA><EFBFBD> <20><> <20><><EFBFBD> <20><> <20>ִ<EFBFBD><D6B4><EFBFBD>)
|
|||
|
|
int FindExchangeCount(); // <20>ŷ<EFBFBD><C5B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD>ΰ<EFBFBD>
|
|||
|
|
INT64 GetExchangeCoin();
|
|||
|
|
bool CompleteExchange(CDNUserSession *pTargetSession, DBPacket::TExchangeItem *ExchangeInfo, int &nExchangeTax); // <20>ŷ<EFBFBD> <20>Ϸ<EFBFBD><CFB7>ϱ<EFBFBD>(<28><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>κ<EFBFBD><CEBA><EFBFBD><EFBFBD><EFBFBD> <20>־<EFBFBD><D6BE>ֱ<EFBFBD>)
|
|||
|
|
inline void SetExchangeRegist() { m_bExchangeRegist = true; }
|
|||
|
|
inline bool GetExchangeRegist() { return m_bExchangeRegist; }
|
|||
|
|
|
|||
|
|
inline void SetExchangeConfirm() { m_bExchangeConfirm = true; }
|
|||
|
|
inline bool GetExchangeConfirm() { return m_bExchangeConfirm; }
|
|||
|
|
|
|||
|
|
void SetEquipItemDurability( int nIndex, USHORT wDur, bool bSend=false );
|
|||
|
|
void SetInvenItemDurability( int nIndex, USHORT wDur );
|
|||
|
|
|
|||
|
|
// <20><>ȭ, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
int CheckUpgradeEnchant(CSEnchantItem *pPacket);
|
|||
|
|
int UpgradeEnchant(CSEnchantItem *pPacket);
|
|||
|
|
void CheatUpgradeItemLevel(int nItemLevel);
|
|||
|
|
void CheatUpgradeItemPotential(int nPotential);
|
|||
|
|
|
|||
|
|
#if defined (PRE_ADD_EXCHANGE_POTENTIAL)
|
|||
|
|
int ExchangePotential(CSExchangePotential * pPacket);
|
|||
|
|
#endif //#if defined (PRE_ADD_EXCHANGE_POTENTIAL)
|
|||
|
|
#if defined(PRE_ADD_EXCHANGE_ENCHANT)
|
|||
|
|
int ExchangeEnchant(CSExchangeEnchant* pPacket);
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
int MixCostume(int& resultItemId, const INT64* pSerials, UINT nResultItemID, char cOption);
|
|||
|
|
int CheckCosMix(const INT64* pSerials, UINT nResultItemID, char cOption) const;
|
|||
|
|
int CheckCosDesignMix(const INT64* pSerials) const;
|
|||
|
|
int MixCostumeDesign(const INT64* pSerials);
|
|||
|
|
void CompleteCostumeDesign(TAModAdditiveItem * pPacket);
|
|||
|
|
#if defined (PRE_ADD_COSRANDMIX) && defined (_VILLAGESERVER)
|
|||
|
|
#ifdef PRE_ADD_COSRANDMIX_ACCESSORY
|
|||
|
|
eError CheckCosRandMix(INT64& currentMixFee, const INT64* pSerials) const;
|
|||
|
|
#else
|
|||
|
|
eError CheckCosRandMix(const INT64* pSerials) const;
|
|||
|
|
#endif
|
|||
|
|
eError MixRandomCostume(int& nResultItemId, const INT64* pSerials);
|
|||
|
|
void CompleteRandomDesign(TAModRandomItem * pPacket);
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
#if defined(_VILLAGESERVER)
|
|||
|
|
//int CanUseSkillResetCashItem( TItemData * pItemData, int& iRewardSP, vector<int>& vlSkillIDsToReset );
|
|||
|
|
int CanUseSkillResetCashItem( int iFromJobDegree, int iToJobDegree, int& iRewardSP, vector<int>& vlSkillIDsToReset );
|
|||
|
|
int UseSkillResetCashItem( TItemData * pItemData );
|
|||
|
|
int ResetSkillFromQuestScript( void );
|
|||
|
|
|
|||
|
|
#ifdef PRE_ADD_CHANGEJOB_CASHITEM
|
|||
|
|
int UseChangeJobCashItem( TItemData* pItemData, int iJobToChange );
|
|||
|
|
void OnResponseChangeJobCode( bool bSuccess );
|
|||
|
|
int GetChangeFirstJobID( void ) { return m_nChangeFirstJob; };
|
|||
|
|
int GetChangeSecondJobID( void ) { return m_nChangeSecondJob; };
|
|||
|
|
#endif // #ifdef PRE_ADD_CHANGEJOB_CASHITEM
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
bool RequestRandomItem(CSUseItem *pPacket);
|
|||
|
|
bool CalcRandomItem(CSCompleteRandomItem *pPacket);
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȭ ij<>þ<EFBFBD><C3BE><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
bool RequestWorldMsgItem(CSUseItem *pPacket);
|
|||
|
|
|
|||
|
|
// <20><>ų<EFBFBD><C5B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
bool UseSkillResetItem( int nIndex );
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD>ټ<EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
int PotentialItem( int nInvenIndex, INT64 biInvenSerial, INT64 biItemSerial );
|
|||
|
|
|
|||
|
|
int PotentialItem888(int nInvenIndex, INT64 biInvenSerial, INT64 biItemSerial);
|
|||
|
|
|
|||
|
|
int PotentialItem999(int nInvenIndex, INT64 biInvenSerial, INT64 biItemSerial);
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
void RequestChangeGuildNameItem(CSGuildRename *pPacket);
|
|||
|
|
|
|||
|
|
// ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
void RequestChangeCharacterNameItem(CSCharacterRename *pPacket);
|
|||
|
|
bool CanChangeCharacterName();
|
|||
|
|
|
|||
|
|
void RequestChangePetName(CSChangePetName *pPacket);
|
|||
|
|
|
|||
|
|
int EnchantJewel( int nInvenIndex, INT64 biInvenSerial, INT64 biItemSerial );
|
|||
|
|
|
|||
|
|
void SetRequestTimer( RequestTypeEnum Type, DWORD dwInterval );
|
|||
|
|
bool IsValidRequestTimer( RequestTypeEnum Type );
|
|||
|
|
|
|||
|
|
CDNMissionSystem *GetMissionSystem();
|
|||
|
|
|
|||
|
|
void OnRecvMoveCoinInventoWare(char cType, INT64 nMoveCoin);
|
|||
|
|
void OnRecvMoveCoinWaretoInven(char cType, INT64 nMoveCoin);
|
|||
|
|
|
|||
|
|
static bool MakeItemStruct(int nItemID, TItem &ResultItem, int nShopItemPeriod = 0, int nOptionTableID = 0); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ڵ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִµ<D6B4><C2B5>Ͽ<EFBFBD> <20>̰<EFBFBD><CCB0><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. createinven<65>Ҷ<EFBFBD><D2B6><EFBFBD> <20><><EFBFBD>⼭ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
static bool bIsSameItem( const TItem* pItem, const TItem* pItem2 );
|
|||
|
|
static bool bIsDifferentItem( const TItem* pItem, const TItem* pItem2 );
|
|||
|
|
static bool bIsSameItem( const TItem* pItem, const TInvenItemCnt* pItem2 );
|
|||
|
|
static bool bIsDifferentItem( const TItem* pItem, const TInvenItemCnt* pItem2 );
|
|||
|
|
#if defined(PRE_MOD_POTENTIAL_JEWEL_RENEWAL)
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʱ<EFBFBD>ȭ
|
|||
|
|
void ResetPrevPotentialData(){ memset(&m_PrevPotentialItem, 0, sizeof(m_PrevPotentialItem));}
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ο<EFBFBD> <20><><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>)
|
|||
|
|
int RollbackPotentialItem( int nInvenIndex, INT64 biInvenSerial, INT64 biCodeItemSerial );
|
|||
|
|
#endif // #if defined(PRE_MOD_POTENTIAL_JEWEL_RENEWAL)
|
|||
|
|
|
|||
|
|
static int MakeCashItemStruct(int nItemSN, int nItemID, TItem &CashItem, char cOption = -1, int nPeriod = 0);
|
|||
|
|
int MakeVehicleItemStruct(const TItem &BodyItem, TVehicle &AddVehicle);
|
|||
|
|
|
|||
|
|
int MakeBuyCashItem(int nItemSN, int nItemID, int nOption, TCashItemBase &OutputItem);
|
|||
|
|
int MakeGiftCashItem(int nItemSN, int nItemID, int nOption, TGiftItem &OutputItem);
|
|||
|
|
|
|||
|
|
void SetInventoryCount(int nCount);
|
|||
|
|
BYTE GetInventoryCount() const;
|
|||
|
|
|
|||
|
|
void SetGlyphExtendCount( int iCount );
|
|||
|
|
int GetGlyphEntendCount() const;
|
|||
|
|
void SetGlyphExpireDate( BYTE iCount, __time64_t tExpireDate );
|
|||
|
|
TCashGlyphData* GetGlyphExpireDate();
|
|||
|
|
|
|||
|
|
void SetWarehouseCount(int nCount);
|
|||
|
|
BYTE GetWarehouseCount() const;
|
|||
|
|
|
|||
|
|
int GetCashInventoryCount() const;
|
|||
|
|
int GetVehicleInventoryCount() const;
|
|||
|
|
|
|||
|
|
#if defined(PRE_PERIOD_INVENTORY)
|
|||
|
|
void SetEnablePeriodInventory(bool bEnable, __time64_t tExpireDate);
|
|||
|
|
bool IsEnablePeriodInventory() const;
|
|||
|
|
__time64_t GetPeriodInventoryExpireDate() const;
|
|||
|
|
void SetEnablePeriodWarehouse(bool bEnable, __time64_t tExpireDate);
|
|||
|
|
bool IsEnablePeriodWarehouse() const;
|
|||
|
|
__time64_t GetPeriodWarehouseExpireDate() const;
|
|||
|
|
#endif // #if defined(PRE_PERIOD_INVENTORY)
|
|||
|
|
|
|||
|
|
// Cashshop
|
|||
|
|
bool IsEffectCashItem(int nItemID) const; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̳<EFBFBD>...?
|
|||
|
|
int CheckEffectItemListCountLimit(std::vector<TEffectItemData> &VecItemList, bool bGift, bool bIgnoreLimit, bool bReceiveGiftAll); // <20>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD><EFBFBD> <20>Ѿ<D1BE><EEB0A1> <20><><EFBFBD><EFBFBD>
|
|||
|
|
int CheckEffectItemCountLimit(int nItemID, int nItemCount, bool bGift, bool bIgnoreLimit); // <20>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD><EFBFBD> <20>Ѿ<D1BE><EEB0A1> <20><><EFBFBD><EFBFBD>
|
|||
|
|
void ApplyCashShopItem(int nItemSN, const TItem &CashItem, DWORD dwPartsColor1 = 0, DWORD dwPartsColor2 = 0, TVehicleItem *pVehiclePart1 = NULL, TVehicleItem *pVehiclePart2 = NULL, bool bDBSave = false);
|
|||
|
|
void ApplyCashShopItem(const TCashItemBase &CashData, bool bDBSave = false);
|
|||
|
|
void DBQueryCashFailItemApply(TAGetListGiveFailItem *pA);
|
|||
|
|
int CheckCashDuplicationBuy(std::vector<TEffectItemData> &VecItemList, bool bReceiveGiftAll); // <20>ߺ<EFBFBD><DFBA><EFBFBD><EFBFBD><EFBFBD>üũ
|
|||
|
|
|
|||
|
|
// Gachapon_JP
|
|||
|
|
#if defined( PRE_ADD_GACHA_JAPAN ) && defined( _VILLAGESERVER )
|
|||
|
|
int RunGachapon_JP( int nJobClassID, int nSelectedPart, int& nResultItemID );
|
|||
|
|
#endif // PRE_ADD_GACHA_JAPAN
|
|||
|
|
#if defined (PRE_MOD_GACHA_SYSTEM) && defined (_VILLAGESERVER)
|
|||
|
|
char GetGachaponAddStat(const TItemData& itemData);
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
void SetMyMarketList(TMyMarketInfo *pMyMarketList, int nCount);
|
|||
|
|
bool IsCashMyMarketItem(int nMarketDBID);
|
|||
|
|
void DelMyMarketList(int nMarketDBID);
|
|||
|
|
|
|||
|
|
int RequestCharmItem(CSCharmItemRequest *pPacket);
|
|||
|
|
int CompleteCharmItem(CSCharmItemComplete *pPacket);
|
|||
|
|
bool CheckCharmKey(int nItemID, int nNeedKeyItemID, int nNeedKeyInvenIndex);
|
|||
|
|
bool DeleteCharmKey(int nItemID, int nNeedKeyItemID, INT64 biNeedKeySerial, int nNeedKeyInvenIndex);
|
|||
|
|
void CalcCharmDropItems(int nCharmNo, TCharmItem &ResultItem);
|
|||
|
|
int CharmItemNeedEmptySlotCount(int nItemType, int nCharmNo, int nCharmCountTableID, bool bInsertCharmList);
|
|||
|
|
|
|||
|
|
#if defined (PRE_ADD_CHAOSCUBE)
|
|||
|
|
bool RequestChaosCube(CSChaosCubeRequest *pPacket);
|
|||
|
|
bool CompleteChaosCube(CSChaosCubeComplete *pPacket);
|
|||
|
|
bool CalcChaosDropItems(int nChaosNo, int nDropType, int nStuffItemID, int &nResultItemID, int &nResultItemCount, int &nResultItemPeriod, int &nResultGold, bool &bMsg);
|
|||
|
|
#endif
|
|||
|
|
#if defined( PRE_ADD_CHOICECUBE )
|
|||
|
|
bool CalcChoiceDropItems(int nChaosNo, int nDropType, int nStuffItemID, int nResultItemID, int &nResultItemCount, int &nResultItemPeriod, int &nResultGold, bool &bMsg);
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
#if defined (PRE_ADD_BESTFRIEND)
|
|||
|
|
bool RequestBestFriendItem(CSBestFriendItemRequest *pPacket);
|
|||
|
|
bool CompleteBestFriendItem(CSBestFriendItemComplete *pPacket);
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
#if defined(_VILLAGESERVER)
|
|||
|
|
int InGuildWare(CDNGuildWare* pGuildWare, TAMoveItemInGuildWare* pMove);
|
|||
|
|
int FromInvenToGuildWare(CDNGuildWare* pGuildWare, TAMoveInvenToGuildWare* pMove);
|
|||
|
|
int FromGuildWareToInven(CDNGuildWare* pGuildWare, TAMoveGuildWareToInven* pMove);
|
|||
|
|
|
|||
|
|
int NothingMoveItemInGuildWare(CDNGuildWare* pGuildWare, CSMoveGuildItem* pMove);
|
|||
|
|
int NothingMoveInvenToGuildWare(CDNGuildWare* pGuildWare, CSMoveGuildItem* pMove);
|
|||
|
|
int NothingMoveGuildWareToInven(CDNGuildWare* pGuildWare, CSMoveGuildItem* pMove, int nDailyTakeItemCount);
|
|||
|
|
#endif //#if defined(_VILLAGESERVER)
|
|||
|
|
|
|||
|
|
#if defined(_VILLAGESERVER) && defined(PRE_ADD_CASH_REFUND)
|
|||
|
|
void LoadPaymentItem(TAPaymentItemList* pPaymentItemList);
|
|||
|
|
void LoadPaymentPackageItem(TAPaymentPackageItemList* pPaymentPackageItemList);
|
|||
|
|
inline bool GetCashMoveInven() { return m_bCashMoveInven; };
|
|||
|
|
inline void SetCashMoveInven(bool bCashMoveInven) { m_bCashMoveInven = bCashMoveInven; };
|
|||
|
|
inline bool IsPaymentItemEmpty() { return m_MapPaymentItem.empty(); };
|
|||
|
|
inline bool IsPaymentPackageItemEmpty() { return m_MapPaymentPackageItem.empty(); };
|
|||
|
|
inline int GetPaymentItemCount() { return(int)m_MapPaymentItem.size(); };
|
|||
|
|
inline int GetPaymentPackageItemCount() { return(int)m_MapPaymentPackageItem.size(); };
|
|||
|
|
int MakeSendPaymentItem(SCPaymentList* pPaymentList, int nPageNum);
|
|||
|
|
int MakeSendPaymentPackageItem(SCPaymentPackageList* pPaymentPackageList, int nPageNum);
|
|||
|
|
void AddPaymentItem(const TPaymentItemInfoEx& pPaymentItem );
|
|||
|
|
void AddPaymentPackageItem(const TPaymentPackageItemInfoEx& pPaymentPackageItem );
|
|||
|
|
int PaymentItemMoveToCashInven(INT64 biDBID); //biPurchaseOrderDetailID;
|
|||
|
|
int PaymentPackageItemMoveToCashInven(INT64 biDBID); //biPurchaseOrderDetailID;
|
|||
|
|
TPaymentItemInfoEx* GetPaymentItem(INT64 biDBID); // biPurchaseOrderDetailID;
|
|||
|
|
TPaymentPackageItemInfoEx* GetPaymentPackageItem(INT64 biDBID); // biPurchaseOrderDetailID;
|
|||
|
|
void DelPaymentItem(INT64 biDBID);
|
|||
|
|
void DelPaymentPackageItem(INT64 biDBID);
|
|||
|
|
bool IsPaymentSameItemByItemID(int nItemID); // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ID<49><44> <20><><EFBFBD><EFBFBD><EFBFBD>ְ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><CEBA><EFBFBD> <20>ִ<EFBFBD><D6B4><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
bool IsPaymentPackageSameItemByItemID(int nItemID);
|
|||
|
|
#endif // #if defined(_VILLAGESERVER) && defined(PRE_ADD_CASH_REFUND)
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD>ǵ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
void CalcMissingItem(TAMissingItemList *pList);
|
|||
|
|
void RecoverMissingItem(TARecoverMissingItem *pMissing);
|
|||
|
|
|
|||
|
|
bool IsCompleteLimitlessItem();
|
|||
|
|
int GetVehicleInventoryTotalCount(){ return m_nVehicleInventoryTotalCount; }
|
|||
|
|
int GetVehicleInventoryItemCount(){ return static_cast<int>(m_MapVehicleInventory.size()); }
|
|||
|
|
|
|||
|
|
int GetCashInventoryTotalCount(){ return m_nCashInventoryTotalCount; }
|
|||
|
|
int GetCashInventoryPage(){ return m_nCashInventoryPage; }
|
|||
|
|
int BuyUnionMembership(TItemData* pItemData, SHORT wCount, char &cPayMethodCode);
|
|||
|
|
|
|||
|
|
int ChangeGuildMark(CSGuildMark *pPacket);
|
|||
|
|
|
|||
|
|
int ProcessBuyCombinedShop( int iShopID, int iShopTabID, int iShopListID, short nCount );
|
|||
|
|
|
|||
|
|
#if defined(PRE_ADD_REMOVE_PREFIX)
|
|||
|
|
int RemovePrefix( int nInvenIndex, INT64 biInvenSerial, INT64 biItemSerial );
|
|||
|
|
#endif // PRE_ADD_REMOVE_PREFIX
|
|||
|
|
char GetSkillPageCount() { return m_nSkillPageCount;}
|
|||
|
|
void SetSkillPageCount(int nSkillPageCount) { m_nSkillPageCount = nSkillPageCount; }
|
|||
|
|
int AddPetSkill( INT64 biItemSerial, char& cSlotNum, int& nSkillID );
|
|||
|
|
int PetSkillExpand(INT64 biItemSerial);
|
|||
|
|
int DelPetSkill( char cSlotNum);
|
|||
|
|
void SetSource(INT64 nSerial, int nItemID, time_t tExpireDate);
|
|||
|
|
TSourceData GetSource() const;
|
|||
|
|
void RemoveSource();
|
|||
|
|
void BroadcastSourceData(bool bUsedInGameServer) const;
|
|||
|
|
|
|||
|
|
#if defined( PRE_ADD_NAMEDITEM_SYSTEM )
|
|||
|
|
void AddEffectSkillItem( INT64 nItemSerial, int nItemID, int nSkillID, int nSkillLevel, __time64_t tExpireDate, bool bEternity = false );
|
|||
|
|
void DelEffectSkillItem( int nSkillID );
|
|||
|
|
void GetEffectSkillItem( std::vector<TEffectSkillData>& vEffectSkill );
|
|||
|
|
TEffectSkillData* GetEffectSkillItem( char cType, int nValue ); // <20>ϳ<EFBFBD><CFB3><EFBFBD> <20><>ü<EFBFBD><C3BC> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
void BroadcastEffectSkillItemData(bool bUsedInGameServer, int nSkillID = 0, BYTE cEffectType = EffectSkillNameSpace::ShowEffectType::NONEEFFECT);
|
|||
|
|
void BroadcastDelEffectSkillItemData(int nItemID);
|
|||
|
|
TItem* GetItemRank( BYTE ItemRank );
|
|||
|
|
void ApplyPartyEffectSkillItemData( CSUseItem *pPacket, TItemData *pItemData, UINT nUseSessionID, EffectSkillNameSpace::ShowEffectType::eType eType, bool bSendDB, bool bUseItem );
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
void RefreshExpireitem(TADelExpiritem *pItem);
|
|||
|
|
|
|||
|
|
int CheckWarpVillage(INT64 nItemSerial) const;
|
|||
|
|
int TryWarpVillage(int nMapIndex, INT64 nItemSerial);
|
|||
|
|
|
|||
|
|
static bool IsExpired(const TItem& Item);
|
|||
|
|
int ProcessBuyPrivateGuildRewardItem( TGuildRewardItemData* GuildRewardItemData, short wCount ); // <20><><EFBFBD>庸<EFBFBD><E5BAB8> <20><><EFBFBD>ο<EFBFBD><CEBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
int CheckPrivateGuildRewardItem(TGuildRewardItemData* GuildRewardItemData, TItemData *pItemData); // <20><><EFBFBD>ξ<EFBFBD><CEBE><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>üũ
|
|||
|
|
int ProcessBuyPublicGuildRewardItem( TGuildRewardItem *RewardItemInfo, TGuildRewardItemData* GuildRewardItemData, UINT nGuildDBID ); // <20><><EFBFBD>庸<EFBFBD><E5BAB8> ȿ<><C8BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
void CheckOneTypeCashWeapon(int nEquipIndex, bool bSend=true);
|
|||
|
|
|
|||
|
|
void DBSendAddMaterializedItem(BYTE cItemSlotIndex, char cAddMaterializedItemCode, INT64 biFKey, const TItem &AddItem, INT64 biItemPrice, int nItemPeriod, INT64 biSenderCharacterDBID,
|
|||
|
|
BYTE cItemLocationCode, BYTE cPayMethodCode, bool bMerge, INT64 biMergeTargetItemSerial, TVehicle *pVehicleEquip = NULL);
|
|||
|
|
|
|||
|
|
#if defined(PRE_ADD_PCBANG_RENTAL_ITEM)
|
|||
|
|
bool IsHavePcCafeRentItem();
|
|||
|
|
bool RemovePCBangRentalItem(bool bSend);
|
|||
|
|
bool RemovePCBangRentalItemVehicle(bool bSend);
|
|||
|
|
bool CreatePCRentalItem(int nItemID, int nOptionID);
|
|||
|
|
#endif
|
|||
|
|
#if defined(PRE_ADD_SERVER_WAREHOUSE)
|
|||
|
|
int CopySendServerWare(TItem* pData);
|
|||
|
|
int CopySendServerWareCash(TItem* pData);
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
void InitializeSampleShopItem(int nSampleVersion);
|
|||
|
|
int CheckSampleShopItem(int nItemID);
|
|||
|
|
void SetSampleShopItem(int nItemID);
|
|||
|
|
|
|||
|
|
int CheckModGiftReceive(TAModGiftReceiveFlag *pCashShop);
|
|||
|
|
int ModGiftReceiveFlag(const TAModGiftReceiveFlag *pCashShop);
|
|||
|
|
|
|||
|
|
#if defined( PRE_ITEMBUFF_COOLTIME )
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ÿ<EFBFBD><C5B8> ITEMTYPE_GLOBAL_PARTY_BUFF <20><> <20><>Ÿ<EFBFBD><C5B8>ó<EFBFBD><C3B3>. <20>߰<EFBFBD><DFB0>ϰ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Լ<EFBFBD><D4BC>ȿ<EFBFBD> ó<><C3B3><EFBFBD>ؾ<EFBFBD><D8BE><EFBFBD>
|
|||
|
|
void GetCashInventoryCoolTime(DBPacket::TItemCoolTime* CashInventoryCoolTime);
|
|||
|
|
#if defined( PRE_ADD_SERVER_WAREHOUSE )
|
|||
|
|
void GetServerWareCoolTime(DBPacket::TItemCoolTime* SeverWareCoolTime);
|
|||
|
|
void GetServerWareCashCoolTime(DBPacket::TItemCoolTime* ServerWareCashCoolTime);
|
|||
|
|
#endif // #if defined( PRE_ADD_SERVER_WAREHOUSE )
|
|||
|
|
#endif // #if defined( PRE_ITEMBUFF_COOLTIME )
|
|||
|
|
int CheckCashMail(std::vector<TItem> &VecItemList);
|
|||
|
|
#if defined(PRE_ADD_EQUIPLOCK)
|
|||
|
|
//ij<><C4B3> <20>κ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ε<EFBFBD><CEB5><EFBFBD><EFBFBD><EFBFBD> <20>ø<EFBFBD><C3B8><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ȯ<><C8AE><EFBFBD>ϴ<EFBFBD> <20>Լ<EFBFBD>
|
|||
|
|
bool IsValidCashEquipSlot(int nIndex, INT64 biSerial, bool bCheckSerial /*= true*/) const;
|
|||
|
|
bool IsValidEquipLockSlot(BYTE cItemLocation, BYTE cItemSlotIndex, INT64 biSerial = 0);
|
|||
|
|
|
|||
|
|
bool IsLockItem(BYTE cItemLocation, BYTE cItemSlotIndex);
|
|||
|
|
void LoadLockItem(const TAGetListLockedItems* pLockItemList);
|
|||
|
|
void GetLockItemList(int &nEquipLockCount, int &nCashEquipLockCount, EquipItemLock::TLockItemInfo* pLockList);
|
|||
|
|
void LockEquipItem(BYTE cItemLocation, BYTE cItemSlotIndex, __time64_t LockDate);
|
|||
|
|
void RequestUnLockEquipItem(BYTE cItemLocation, BYTE cItemSlotIndex, __time64_t LockDate, __time64_t UnLockRequestDate);
|
|||
|
|
void UnLockEquipItem(BYTE cItemLocation, BYTE cItemSlotIndex, bool CheckValidItem = true);
|
|||
|
|
|
|||
|
|
bool CheckItemUnLock(BYTE cItemLocation, BYTE cItemSlotIndex);
|
|||
|
|
#endif // #if defined(PRE_ADD_EQUIPLOCK)
|
|||
|
|
#if defined( PRE_ADD_STAGE_USECOUNT_ITEM )
|
|||
|
|
int GetUseLimitItemCount(int nItemID);
|
|||
|
|
void DelUseLimitItemCount(int nItemID, int nCount=1);
|
|||
|
|
#endif
|
|||
|
|
#if defined(PRE_ADD_WORLD_MSG_RED)
|
|||
|
|
bool IsVaildWorldChatItem(char cChatType, INT64 biItemSerial, int &nItemID);
|
|||
|
|
#endif // #if defined(PRE_ADD_WORLD_MSG_RED)
|
|||
|
|
|
|||
|
|
void GetInventoryList(TItemInfo *InventoryList, BYTE &cTotalCount);
|
|||
|
|
void GetWarehouseList(TItemInfo *WarehouseList, BYTE &cTotalCount);
|
|||
|
|
};
|