eri000n

Untitled

Apr 5th, 2023
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.62 KB | None | 0 0
  1. #ifndef __INC_METIN_II_GAME_DRAGON_SOUL_H__
  2. #define __INC_METIN_II_GAME_DRAGON_SOUL_H__
  3.  
  4. #include "../../common/length.h"
  5.  
  6. class CHARACTER;
  7. class CItem;
  8.  
  9. class DragonSoulTable;
  10.  
  11. class DSManager : public singleton<DSManager>
  12. {
  13. public:
  14. DSManager();
  15. ~DSManager();
  16. bool ReadDragonSoulTableFile(const char * c_pszFileName);
  17.  
  18. void GetDragonSoulInfo(DWORD dwVnum, OUT BYTE& bType, OUT BYTE& bGrade, OUT BYTE& bStep, OUT BYTE& bRefine) const;
  19. // fixme : titempos·Î
  20. WORD GetBasePosition(const LPITEM pItem) const;
  21. bool IsValidCellForThisItem(const LPITEM pItem, const TItemPos& Cell) const;
  22. int GetDuration(const LPITEM pItem) const;
  23.  
  24. // żëČĄĽ®Ŕ» ąŢľĆĽ­ ĆŻÁ¤ żë˝ÉŔ» ĂßĂâÇĎ´Â ÇÔĽö
  25. bool ExtractDragonHeart(LPCHARACTER ch, LPITEM pItem, LPITEM pExtractor = NULL);
  26.  
  27. // ĆŻÁ¤ żëČĄĽ®(pItem)Ŕ» Ŕĺşń⿡Ľ­ Á¦°ĹÇŇ ¶§żˇ Ľş°ř ż©şÎ¸¦ °áÁ¤Çϰí,
  28. // ˝ÇĆнà şÎ»ęą°Ŕ» ÁÖ´Â ÇÔĽö.(şÎ»ęą°Ŕş dragon_soul_table.txtżˇ Á¤ŔÇ)
  29. // DestCellżˇ invalidÇŃ °ŞŔ» łÖŔ¸¸é Ľş°ř ˝Ă, żëČĄĽ®Ŕ» şó °ř°Łżˇ ŔÚµż Ăß°ˇ.
  30. // ˝ÇĆĐ ˝Ă, żëČĄĽ®(pItem)Ŕş deleteµĘ.
  31. // ĂßĂâľĆŔĚĹŰŔĚ Ŕִٸé ĂßĂâ Ľş°ř Č®·üŔĚ pExtractor->GetValue(0)%¸¸Ĺ­ Áő°ˇÇÔ.
  32. // şÎ»ęą°Ŕş ľđÁ¦łŞ ŔÚµż Ăß°ˇ.
  33. bool PullOut(LPCHARACTER ch, TItemPos DestCell, IN OUT LPITEM& pItem, LPITEM pExtractor = NULL);
  34.  
  35. // żëČĄĽ® ľ÷±×·ąŔ̵ĺ ÇÔĽö
  36. bool DoRefineGrade(LPCHARACTER ch, TItemPos (&aItemPoses)[DRAGON_SOUL_REFINE_GRID_SIZE]);
  37. bool DoRefineStep(LPCHARACTER ch, TItemPos (&aItemPoses)[DRAGON_SOUL_REFINE_GRID_SIZE]);
  38. bool DoRefineStrength(LPCHARACTER ch, TItemPos (&aItemPoses)[DRAGON_SOUL_REFINE_GRID_SIZE]);
  39.  
  40. bool DragonSoulItemInitialize(LPITEM pItem);
  41.  
  42. bool IsTimeLeftDragonSoul(LPITEM pItem) const;
  43. int LeftTime(LPITEM pItem) const;
  44. bool ActivateDragonSoul(LPITEM pItem);
  45. bool DeactivateDragonSoul(LPITEM pItem, bool bSkipRefreshOwnerActiveState = false);
  46. bool IsActiveDragonSoul(LPITEM pItem) const;
  47. private:
  48. void SendRefineResultPacket(LPCHARACTER ch, BYTE bSubHeader, const TItemPos& pos);
  49.  
  50. // Äł¸ŻĹÍŔÇ żëČĄĽ® µ¦Ŕ» »ěĆ캸°í, ȰĽşČ­ µČ żëČĄĽ®ŔĚ ľř´Ů¸é, Äł¸ŻĹÍŔÇ żëČĄĽ® ȰĽş »óŸ¦ off ˝ĂŰ´Â ÇÔĽö.
  51. void RefreshDragonSoulState(LPCHARACTER ch);
  52.  
  53. DWORD MakeDragonSoulVnum(BYTE bType, BYTE grade, BYTE step, BYTE refine);
  54. bool PutAttributes(LPITEM pDS);
  55. bool RefreshItemAttributes(LPITEM pItem);
  56.  
  57. DragonSoulTable* m_pTable;
  58. };
  59.  
  60. #endif
  61.  
Advertisement
Add Comment
Please, Sign In to add comment