Advertisement
Guest User

Untitled

a guest
Dec 8th, 2019
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.48 KB | None | 0 0
  1. #ifndef __INC_METIN_II_GAME_SHOP_H__
  2. #define __INC_METIN_II_GAME_SHOP_H__
  3.  
  4. enum
  5. {
  6.     SHOP_MAX_DISTANCE = 1000
  7. };
  8.  
  9. class CGrid;
  10.  
  11. /* ---------------------------------------------------------------------------------- */
  12. class CShop
  13. {
  14.     public:
  15.         typedef struct shop_item
  16.         {
  17.             DWORD   vnum;       // 아이템 번호
  18.             #ifdef FULL_YANG
  19.             long    long    price;      // °ˇ°Y
  20. #ifdef ENABLE_MULTISHOP
  21.             DWORD   wPriceVnum;
  22.             DWORD   wPrice;
  23. #endif
  24.             #else
  25.             DWORD   price;      // °ˇ°Y
  26.             #endif
  27.             BYTE    count;      // 아이템 개수
  28.  
  29.             LPITEM  pkItem;
  30.             int     itemid;     // 아이템 고유아이디
  31.  
  32.             shop_item()
  33.             {
  34.                 vnum = 0;
  35.                 price = 0;
  36. #ifdef ENABLE_MULTISHOP
  37.                 wPriceVnum = 0;
  38.                 wPrice = 0;
  39. #endif
  40.                 count = 0;
  41.                 itemid = 0;
  42.                 pkItem = NULL;
  43.             }
  44.         } SHOP_ITEM;
  45.  
  46.         CShop();
  47.         ~CShop();
  48.  
  49.         bool    Create(DWORD dwVnum, DWORD dwNPCVnum, TShopItemTable * pItemTable);
  50.         void    SetShopItems(TShopItemTable * pItemTable, BYTE bItemCount);
  51.  
  52.         virtual void    SetPCShop(LPCHARACTER ch);
  53.         virtual bool    IsPCShop()  { return m_pkPC ? true : false; }
  54.  
  55.         // 게스트 추가/삭제
  56.         virtual bool    AddGuest(LPCHARACTER ch,DWORD owner_vid, bool bOtherEmpire);
  57.         void    RemoveGuest(LPCHARACTER ch);
  58.  
  59.         // 물건 구입
  60.         virtual int Buy(LPCHARACTER ch, BYTE pos);
  61.        
  62.         // 게스트에게 패킷을 보냄
  63.         void    BroadcastUpdateItem(BYTE pos);
  64.  
  65.         // 판매중인 아이템의 갯수를 알려준다.
  66.         int     GetNumberByVnum(DWORD dwVnum);
  67.  
  68.         // 아이템이 상점에 등록되어 있는지 알려준다.
  69.         virtual bool    IsSellingItem(DWORD itemID);
  70. #if defined(SHOP_SEARCH)
  71.         bool SearchItem(DWORD vnum,long long price,DWORD book);
  72.        
  73. #endif
  74.         DWORD   GetVnum() { return m_dwVnum; }
  75.         DWORD   GetNPCVnum() { return m_dwNPCVnum; }
  76.        
  77. #ifdef OFFLINE_SHOP
  78.     public:
  79.         int     GetItemCount();
  80.         bool    GetItems();
  81.         void    SetLocked(bool val) { m_bLocked = val; }
  82.         bool    IsLocked() { return m_bLocked; }
  83.         void    RemoveGuests(LPCHARACTER except=NULL);
  84.         void    ClearItems();
  85.         void    SetPrivShopItems(std::vector<TShopItemTable *> map_shop);
  86.         LPCHARACTER GetPC() { return m_pkPC; }
  87.     protected:
  88.         bool                    m_bLocked;
  89. #endif
  90.  
  91.     protected:
  92.         void    Broadcast(const void * data, int bytes);
  93.  
  94.     protected:
  95.         DWORD               m_dwVnum;
  96.         DWORD               m_dwNPCVnum;
  97.  
  98.         CGrid *             m_pGrid;
  99.  
  100.         typedef TR1_NS::unordered_map<LPCHARACTER, bool> GuestMapType;
  101.         GuestMapType m_map_guest;
  102.         std::vector<SHOP_ITEM>      m_itemVector;   // 이 상점에서 취급하는 물건들
  103.  
  104.         LPCHARACTER         m_pkPC;
  105. };
  106.  
  107. #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement