void Functions::AmountMinus(st_Item *item) { int32_t amount = BASE_GetItemAmount(item); if (amount > 0) { BASE_SetItemAmount(item, amount - 1); } else { BASE_ClearItem(item); } }
int GetMatchCombineEhre(STRUCT_ITEM *Item) { int rate = 0; for(int i = 0; i < MAX_COMBINE; i++) { if(Item[i].sIndex == 747) return 0; } if (Item[0].sIndex < 0 || Item[0].sIndex >= MAX_ITEMLIST) return 0; if (Item[1].sIndex < 0 || Item[1].sIndex >= MAX_ITEMLIST) return 0; if (Item[2].sIndex < 0 || Item[2].sIndex >= MAX_ITEMLIST) return 0; if (Item[3].sIndex < 0 || Item[3].sIndex >= MAX_ITEMLIST) return 0; if (Item[4].sIndex < 0 || Item[4].sIndex >= MAX_ITEMLIST) return 0; if (Item[5].sIndex < 0 || Item[5].sIndex >= MAX_ITEMLIST) return 0; if (Item[6].sIndex < 0 || Item[6].sIndex >= MAX_ITEMLIST) return 0; if (Item[7].sIndex < 0 || Item[7].sIndex >= MAX_ITEMLIST) return 0; if (Item[0].sIndex == 697 && Item[1].sIndex == 697 && BASE_GetItemSanc(&Item[2]) >= 9 && Item[2].sIndex != 3338) rate = 1;//Pacote Oriharucon else if (Item[0].sIndex >= 5110 && Item[0].sIndex <= 5133 && Item[1].sIndex >= 5110 && Item[1].sIndex <= 5133 && Item[2].sIndex == 413 && BASE_GetItemAmount(&Item[2]) >= 10) rate = 2;//Pedra Misteriosa else if (Item[0].sIndex >= 661 && Item[0].sIndex <= 663 && Item[1].sIndex >= 661 && Item[1].sIndex <= 663 && Item[2].sIndex == 633 && BASE_GetItemSanc(&Item[2]) >= 9) rate = 3;//Pedra espiritual else if (Item[0].sIndex >= 661 && Item[0].sIndex <= 663 && Item[1].sIndex >= 661 && Item[1].sIndex <= 663 && Item[2].sIndex == 3464 && BASE_GetItemSanc(&Item[2]) >= 9) rate = 4;//Pedra Amunrá else if (Item[0].sIndex == 697 && Item[1].sIndex == 697 && Item[2].sIndex == 3338 && BASE_GetItemSanc(&Item[2]) <= 8) rate = 5;//Refinação abençoada Purificada else if (Item[0].sIndex >= 2360 && Item[0].sIndex <= 2389 && Item[1].sIndex >= 4190 && Item[1].sIndex <= 4199) rate = 6;//Traje montaria else if (Item[0].sIndex >= 2360 && Item[0].sIndex <= 2389 && Item[1].sIndex == 4899) rate = 7;//Restaurar Traje montaria else if (Item[0].sIndex >= 2441 && Item[0].sIndex <= 2444 && Item[1].sIndex >= 2441 && Item[1].sIndex <= 2444 && Item[2].sIndex >= 2441 && Item[2].sIndex <= 2444) rate = 8;//Soul return rate; }
int GetMatchCombineOdin(STRUCT_ITEM *Item) { for(int i = 0; i < MAX_COMBINE; i++) { if(Item[i].sIndex == 747) return 0; } if (Item[0].sIndex < 0 || Item[0].sIndex >= MAX_ITEMLIST) return 0; if (Item[1].sIndex < 0 || Item[1].sIndex >= MAX_ITEMLIST) return 0; if (Item[2].sIndex < 0 || Item[2].sIndex >= MAX_ITEMLIST) return 0; if (Item[3].sIndex < 0 || Item[3].sIndex >= MAX_ITEMLIST) return 0; if (Item[4].sIndex < 0 || Item[4].sIndex >= MAX_ITEMLIST) return 0; if (Item[5].sIndex < 0 || Item[5].sIndex >= MAX_ITEMLIST) return 0; if (Item[6].sIndex < 0 || Item[6].sIndex >= MAX_ITEMLIST) return 0; if (Item[7].sIndex < 0 || Item[7].sIndex >= MAX_ITEMLIST) return 0; if (Item[0].sIndex == g_pItemList[Item[1].sIndex].Extra && BASE_GetItemSanc(&Item[0]) >= 9 && BASE_GetItemSanc(&Item[1]) == REF_15 && (Item[2].sIndex == 542 || Item[2].sIndex == 772) && Item[3].sIndex == 5334 && Item[4].sIndex == 5335 && Item[5].sIndex == 5336 && Item[6].sIndex == 5337) return 1;//Item celestial else if ((Item[0].sIndex == 413 && BASE_GetItemAmount(&Item[0]) >= 10 && Item[1].sIndex == 413 && BASE_GetItemAmount(&Item[1]) >= 10 || Item[0].sIndex == 4043 && Item[1].sIndex == 4043) && BASE_GetItemSanc(&Item[2]) > REF_10 && BASE_GetItemSanc(&Item[2]) <= REF_15 && (Item[3].sIndex >= 5334 && Item[3].sIndex <= 5337 || Item[3].sIndex == 3338) && (Item[4].sIndex >= 5334 && Item[4].sIndex <= 5337 || Item[4].sIndex == 3338) && (Item[5].sIndex >= 5334 && Item[5].sIndex <= 5337 || Item[5].sIndex == 3338) && (Item[6].sIndex >= 5334 && Item[6].sIndex <= 5337 || Item[6].sIndex == 3338) && (g_pItemList[Item[2].sIndex].nPos == 2 || g_pItemList[Item[2].sIndex].nPos == 4 || g_pItemList[Item[2].sIndex].nPos == 8 || g_pItemList[Item[2].sIndex].nPos == 16 || g_pItemList[Item[2].sIndex].nPos == 32 || g_pItemList[Item[2].sIndex].nPos == 64 || g_pItemList[Item[2].sIndex].nPos == 192 || g_pItemList[Item[2].sIndex].nPos == 128)) return 2;//Ref+12+ else if (Item[0].sIndex == 413 && Item[1].sIndex == 413 && Item[2].sIndex == 413 && Item[3].sIndex == 413 && Item[4].sIndex == 413 && Item[5].sIndex == 413 && Item[6].sIndex == 413) return 3;//Pista de runas else if (Item[0].sIndex == 4127 && Item[1].sIndex == 4127 && Item[2].sIndex == 5135 && Item[3].sIndex == 5113 && Item[4].sIndex == 5129 && Item[5].sIndex == 5112 && Item[6].sIndex == 5110) return 4;//Level40 Celestial else if (Item[0].sIndex == 5125 && Item[1].sIndex == 5115 && Item[2].sIndex == 5111 && Item[3].sIndex == 5112 && Item[4].sIndex == 5120 && Item[5].sIndex == 5128 && Item[6].sIndex == 5119) return 5;//Pedra da fúria else if (Item[0].sIndex == 5126 && Item[1].sIndex == 5127 && Item[2].sIndex == 5121 && Item[3].sIndex == 5114 && Item[4].sIndex == 5125 && Item[5].sIndex == 5111 && Item[6].sIndex == 5118) return 6;//Secreta da Agua else if (Item[0].sIndex == 5131 && Item[1].sIndex == 5113 && Item[2].sIndex == 5115 && Item[3].sIndex == 5116 && Item[4].sIndex == 5125 && Item[5].sIndex == 5112 && Item[6].sIndex == 5114) return 7;//Secreta da Terra else if (Item[0].sIndex == 5110 && Item[1].sIndex == 5124 && Item[2].sIndex == 5117 && Item[3].sIndex == 5129 && Item[4].sIndex == 5114 && Item[5].sIndex == 5125 && Item[6].sIndex == 5128) return 8;//Secreta do Sol else if (Item[0].sIndex == 5122 && Item[1].sIndex == 5119 && Item[2].sIndex == 5132 && Item[3].sIndex == 5120 && Item[4].sIndex == 5130 && Item[5].sIndex == 5133 && Item[6].sIndex == 5123) return 9;//Secreta do Vento else if (Item[0].sIndex == 421 && Item[1].sIndex == 422 && Item[2].sIndex == 423 && Item[3].sIndex == 424 && Item[4].sIndex == 425 && Item[5].sIndex == 426 && Item[6].sIndex == 427) return 10;//Semente de cristal else if (Item[0].sIndex == 4127 && Item[1].sIndex == 4127 && Item[2].sIndex == 5135 && Item[3].sIndex == 413 && Item[4].sIndex == 413 && Item[5].sIndex == 413 && Item[6].sIndex == 413) return 11;//Capa return 0; }