1
0
forked from metin2/server
server/game/src/shop.h

79 lines
1.6 KiB
C
Raw Normal View History

2022-03-05 12:44:06 +02:00
#ifndef __INC_METIN_II_GAME_SHOP_H__
#define __INC_METIN_II_GAME_SHOP_H__
enum
{
SHOP_MAX_DISTANCE = 1000
};
class CGrid;
/* ---------------------------------------------------------------------------------- */
class CShop
{
public:
typedef struct shop_item
{
DWORD vnum; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȣ
int price; // <20><><EFBFBD><EFBFBD>
2022-03-05 12:44:06 +02:00
BYTE count; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
LPITEM pkItem;
int itemid; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD>
shop_item()
{
vnum = 0;
price = 0;
count = 0;
itemid = 0;
pkItem = NULL;
}
} SHOP_ITEM;
CShop();
~CShop();
bool Create(DWORD dwVnum, DWORD dwNPCVnum, TShopItemTable * pItemTable);
void SetShopItems(TShopItemTable * pItemTable, BYTE bItemCount);
virtual void SetPCShop(LPCHARACTER ch);
virtual bool IsPCShop() { return m_pkPC ? true : false; }
// <20>Խ<EFBFBD>Ʈ <20>߰<EFBFBD>/<2F><><EFBFBD><EFBFBD>
virtual bool AddGuest(LPCHARACTER ch,DWORD owner_vid, bool bOtherEmpire);
void RemoveGuest(LPCHARACTER ch);
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
virtual int Buy(LPCHARACTER ch, BYTE pos);
// <20>Խ<EFBFBD>Ʈ<EFBFBD><C6AE><EFBFBD><EFBFBD> <20><>Ŷ<EFBFBD><C5B6> <20><><EFBFBD><EFBFBD>
void BroadcastUpdateItem(BYTE pos);
// <20>Ǹ<EFBFBD><C7B8><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>˷<EFBFBD><CBB7>ش<EFBFBD>.
int GetNumberByVnum(DWORD dwVnum);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ϵǾ<CFB5> <20>ִ<EFBFBD><D6B4><EFBFBD> <20>˷<EFBFBD><CBB7>ش<EFBFBD>.
virtual bool IsSellingItem(DWORD itemID);
DWORD GetVnum() { return m_dwVnum; }
DWORD GetNPCVnum() { return m_dwNPCVnum; }
protected:
void Broadcast(const void * data, int bytes);
protected:
DWORD m_dwVnum;
DWORD m_dwNPCVnum;
CGrid * m_pGrid;
typedef std::unordered_map<LPCHARACTER, bool> GuestMapType;
2022-03-05 12:44:06 +02:00
GuestMapType m_map_guest;
std::vector<SHOP_ITEM> m_itemVector; // <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><><EFBFBD>ǵ<EFBFBD>
LPCHARACTER m_pkPC;
};
#endif