Advertisement
Guest User

Ring_Problem

a guest
Jun 7th, 2016
244
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.65 KB | None | 0 0
  1. bool CHARACTER::CanEquipNow(const LPITEM item, const TItemPos& srcCell, const TItemPos& destCell)
  2. {
  3. const TItemTable* itemTable = item->GetProto();
  4.  
  5. switch (GetJob())
  6. {
  7. case JOB_WARRIOR:
  8. if (item->GetAntiFlag() & ITEM_ANTIFLAG_WARRIOR)
  9. return false;
  10. break;
  11.  
  12. case JOB_ASSASSIN:
  13. if (item->GetAntiFlag() & ITEM_ANTIFLAG_ASSASSIN)
  14. return false;
  15. break;
  16.  
  17. case JOB_SHAMAN:
  18. if (item->GetAntiFlag() & ITEM_ANTIFLAG_SHAMAN)
  19. return false;
  20. break;
  21.  
  22. case JOB_SURA:
  23. if (item->GetAntiFlag() & ITEM_ANTIFLAG_SURA)
  24. return false;
  25. break;
  26. }
  27.  
  28. for (int i = 0; i < ITEM_LIMIT_MAX_NUM; ++i)
  29. {
  30. long limit = itemTable->aLimits[i].lValue;
  31. switch (itemTable->aLimits[i].bType)
  32. {
  33. case LIMIT_LEVEL:
  34. if (GetLevel() < limit)
  35. {
  36. ChatPacket(CHAT_TYPE_INFO, LC_TEXT("레벨이 낮아 착용할 수 없습니다."));
  37. return false;
  38. }
  39. break;
  40.  
  41. case LIMIT_STR:
  42. if (GetPoint(POINT_ST) < limit)
  43. {
  44. ChatPacket(CHAT_TYPE_INFO, LC_TEXT("근력이 낮아 착용할 수 없습니다."));
  45. return false;
  46. }
  47. break;
  48.  
  49. case LIMIT_INT:
  50. if (GetPoint(POINT_IQ) < limit)
  51. {
  52. ChatPacket(CHAT_TYPE_INFO, LC_TEXT("지능이 낮아 착용할 수 없습니다."));
  53. return false;
  54. }
  55. break;
  56.  
  57. case LIMIT_DEX:
  58. if (GetPoint(POINT_DX) < limit)
  59. {
  60. ChatPacket(CHAT_TYPE_INFO, LC_TEXT("민첩이 낮아 착용할 수 없습니다."));
  61. return false;
  62. }
  63. break;
  64.  
  65. case LIMIT_CON:
  66. if (GetPoint(POINT_HT) < limit)
  67. {
  68. ChatPacket(CHAT_TYPE_INFO, LC_TEXT("체력이 낮아 착용할 수 없습니다."));
  69. return false;
  70. }
  71. break;
  72. }
  73. }
  74.  
  75. if (item->GetWearFlag() & WEARABLE_UNIQUE)
  76. {
  77. if ((GetWear(WEAR_UNIQUE1) && GetWear(WEAR_UNIQUE1)->IsSameSpecialGroup(item)) ||
  78. (GetWear(WEAR_UNIQUE2) && GetWear(WEAR_UNIQUE2)->IsSameSpecialGroup(item))
  79. )
  80. {
  81. ChatPacket(CHAT_TYPE_INFO, LC_TEXT("같은 종류의 유니크 아이템 두 개를 동시에 장착할 수 없습니다."));
  82. return false;
  83. }
  84.  
  85. if (marriage::CManager::instance().IsMarriageUniqueItem(item->GetVnum()) &&
  86. !marriage::CManager::instance().IsMarried(GetPlayerID()))
  87. {
  88. ChatPacket(CHAT_TYPE_INFO, LC_TEXT("결혼하지 않은 상태에서 예물을 착용할 수 없습니다."));
  89. return false;
  90. }
  91. }
  92.  
  93. if (item->GetType() & ITEM_RING)
  94. {
  95. if ((GetWear(WEAR_RING1) && GetWear(WEAR_RING1)->GetVnum()) ||
  96. (GetWear(WEAR_RING2) && GetWear(WEAR_RING2)->GetVnum()))
  97. {
  98. ChatPacket(CHAT_TYPE_INFO, LC_TEXT("You can't put two same items in the same time."));
  99. return false;
  100. }
  101. }
  102.  
  103. return true;
  104. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement