Exemple:
Code:
same gem system like odin
case IK_Piatra:*
{
if(pItem->m_bPiatra >= Piatra_MAX)
{
pPlayer->SendCS_ITEMUPGRADE_ACK(ITEMUPGRADE_NOPiatra, bTargetInven, bTargetItemID, pItem->m_bLevel, pItem->m_bPiatra, pItem->m_bGradeEffect, 0);
}
else
{
BYTE bRand = BYTE(rand() % 100 + 1);
WORD wPiatra_Prob = pGradeItem->m_pTITEM->m_wUseValue;
BYTE bRate = 1;
if(wPiatra_Prob == 200)
{
bRate = 4;
}
if(wPiatra_Prob == 50)
{
bRate = 1;
}
if(wPiatra_Prob == 100)
{
bRate = 2;
}
if(pItem->m_bPiatra == 0)
{
if(bRand <= (33 * bRate))
{
pItem->m_bPiatra = pItem->m_bPiatra + 1;
SetItemAttr(pItem, pItem->m_bLevel);
pPlayer->SendCS_ITEMUPGRADE_ACK(ITEMUPGRADE_Piatra_SUCCESS, bTargetInven, bTargetItemID, pItem->m_bLevel, pItem->m_bPiatra, pItem->m_bGradeEffect, 0);
}
else
{
pItem->m_bPiatra = 0;
SetItemAttr(pItem, pItem->m_bLevel);
pPlayer->SendCS_ITEMUPGRADE_ACK(ITEMUPGRADE_Piatra_FAIL, bTargetInven, bTargetItemID, pItem->m_bLevel, pItem->m_bPiatra, pItem->m_bGradeEffect, 0);
}
}
else if(pItem->m_bPiatra == 1)
{
if(bRand <= (20 * bRate))
{
pItem->m_bPiatra = pItem->m_bPiatra + 1;
SetItemAttr(pItem, pItem->m_bLevel);
pPlayer->SendCS_ITEMUPGRADE_ACK(ITEMUPGRADE_Piatra_SUCCESS, bTargetInven, bTargetItemID, pItem->m_bLevel, pItem->m_bPiatra, pItem->m_bGradeEffect, 0);
}
else
{
pItem->m_bPiatra = 0;
SetItemAttr(pItem, pItem->m_bLevel);
pPlayer->SendCS_ITEMUPGRADE_ACK(ITEMUPGRADE_Piatra_FAIL, bTargetInven, bTargetItemID, pItem->m_bLevel, pItem->m_bPiatra, pItem->m_bGradeEffect, 0);
}
}
else if(pItem->m_bPiatra == 2)
{
if(bRand <= (14 * bRate))
{
pItem->m_bPiatra = pItem->m_bPiatra + 1;
SetItemAttr(pItem, pItem->m_bLevel);
pPlayer->SendCS_ITEMUPGRADE_ACK(ITEMUPGRADE_Piatra_SUCCESS, bTargetInven, bTargetItemID, pItem->m_bLevel, pItem->m_bPiatra, pItem->m_bGradeEffect, 0);
}
else
{
pItem->m_bPiatra = 0;
SetItemAttr(pItem, pItem->m_bLevel);
pPlayer->SendCS_ITEMUPGRADE_ACK(ITEMUPGRADE_Piatra_FAIL, bTargetInven, bTargetItemID, pItem->m_bLevel, pItem->m_bPiatra, pItem->m_bGradeEffect, 0);
}
}
else if(pItem->m_bPiatra == 3)
{
if(bRand <= (8 * bRate))
{
pItem->m_bPiatra = pItem->m_bPiatra + 1;
SetItemAttr(pItem, pItem->m_bLevel);
pPlayer->SendCS_ITEMUPGRADE_ACK(ITEMUPGRADE_Piatra_SUCCESS, bTargetInven, bTargetItemID, pItem->m_bLevel, pItem->m_bPiatra, pItem->m_bGradeEffect, 0);
}
else
{
pItem->m_bPiatra = 0;
SetItemAttr(pItem, pItem->m_bLevel);
pPlayer->SendCS_ITEMUPGRADE_ACK(ITEMUPGRADE_Piatra_FAIL, bTargetInven, bTargetItemID, pItem->m_bLevel, pItem->m_bPiatra, pItem->m_bGradeEffect, 0);
}
}
else if(pItem->m_bPiatra == 4)
{
if(bRand <= (4 * bRate))
{
pItem->m_bPiatra = pItem->m_bPiatra + 1;
SetItemAttr(pItem, pItem->m_bLevel);
pPlayer->SendCS_ITEMUPGRADE_ACK(ITEMUPGRADE_Piatra_SUCCESS, bTargetInven, bTargetItemID, pItem->m_bLevel, pItem->m_bPiatra, pItem->m_bGradeEffect, 0);
}
else
{
pItem->m_bPiatra = 0;
SetItemAttr(pItem, pItem->m_bLevel);
pPlayer->SendCS_ITEMUPGRADE_ACK(ITEMUPGRADE_Piatra_FAIL, bTargetInven, bTargetItemID, pItem->m_bLevel, pItem->m_bPiatra, pItem->m_bGradeEffect, 0);
}
}
}
}
break;
Code:
pPlayer->SendCS_ITEMUPGRADE_ACK(ITEMUPGRADE_SUCCESS, bTargetInven, bTargetItemID, pItem->m_bLevel, pItem->m_bPiatra, pItem->m_bGradeEffect, 0);
i hope you can help me .... ty.






