does anyone have RequestItemUpgradeHandler fully working, with the angel upgrade code and majestic upgrades in it?
my RequestItemUpgradeHandler seems to be bugged somewhat.
i cant seem to upgrade anything using majestics, exept angels. and i seem to have things failing even tho it the HG isnt sending SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_ITEMUPGRADEFAIL
after every appearance of that iv put a notivy message like 1 2 3 4 so i can see where in the code items are failing to be upgradedm and some stuff is getting to very odd parts of the code, where it shouldnt be
and some stuff fails to upgrade, without even showing the new notify message, meaning it isnt even getting to a SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_ITEMUPGRADEFAIL
which is very odd!
the problem seems to be stemming from majestic point upgrades as thats where it seems to be getting stuck most..
anyway, would anyone mind sharing the whole void with me?
Req-> RequestItemUpgradeHandler
here u go closed
Code: Select all
void CGame::RequestItemUpgradeHandler(int iClientH, int iItemIndex)
{
int i, iItemX,iItemY, iSoM, iSoX, iSomH, iSoxH, iCheckHeroCape; // v2.172
DWORD dwTemp, dwSWEType, iValue;
double dV1, dV2, dV3;
short sItemUpgrade = 2;
if (m_pClientList[iClientH] == NULL) return;
if ((iItemIndex < 0) || (iItemIndex >= DEF_MAXITEMS)) return;
if (m_pClientList[iClientH]->m_pItemList[iItemIndex] == NULL) return;
if (HeroItemChecker(m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sIDnum, 0, 0, 0) != 0) {
if ((m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sTouchEffectValue1 != m_pClientList[iClientH]->m_sCharIDnum1) ||
(m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sTouchEffectValue2 != m_pClientList[iClientH]->m_sCharIDnum2) ||
(m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sTouchEffectValue3 != m_pClientList[iClientH]->m_sCharIDnum3) ) {
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_ITEMUPGRADEFAIL, 2, NULL, NULL, NULL);
return;
}
iCheckHeroCape = iUpgradeHeroCapeRequirements(iClientH, iItemIndex);
if (iCheckHeroCape > 0) {
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_UPGRADEHEROCAPE, iItemIndex,
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_cItemType,
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_wCurLifeSpan,
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_cName,
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sSprite,
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sSpriteFrame,
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_cItemColor,
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sItemSpecEffectValue2,
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute);
_bItemLog(DEF_ITEMLOG_UPGRADESUCCESS, iClientH, -1, m_pClientList[iClientH]->m_pItemList[iItemIndex], FALSE);
}
else {
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_ITEMUPGRADEFAIL, 2, NULL, NULL, NULL);
_bItemLog(DEF_ITEMLOG_UPGRADEFAIL, iClientH, -1, m_pClientList[iClientH]->m_pItemList[iItemIndex], FALSE);
}
return;
}
iValue = (m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute & 0xF0000000) >> 28;
if (iValue >= 15 || iValue < 0 ) {
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_ITEMUPGRADEFAIL, 1, NULL, NULL, NULL);
return;
}
if ((m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sIDnum == 717) && (iValue >= 7) && (iValue < 0)) {
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_ITEMUPGRADEFAIL, 1, NULL, NULL, NULL);
return;
}
switch (m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_cCategory) {
case 46: // Pendants are category 46
if (m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_cItemType != 1)
{ SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_ITEMUPGRADEFAIL, 2, NULL, NULL, NULL);
return; // Pendants are type 1
}
if (m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_cEquipPos < 11)
{ SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_ITEMUPGRADEFAIL, 2, NULL, NULL, NULL);
return; // Pendants are left finger or more
}
if (m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sItemEffectType != 14)
{ SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_ITEMUPGRADEFAIL, 2, NULL, NULL, NULL);
return; // Pendants are EffectType 14
}
switch (m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sItemEffectValue1) {
default: // Other items are not upgradable
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_ITEMUPGRADEFAIL, 2, NULL, NULL, NULL);
return; // Pendants are EffectType 14
case 16: // AngelicPandent(STR)
case 17: // AngelicPandent(DEX)
case 18: // AngelicPandent(INT)
case 19: // AngelicPandent(MAG)
if (m_pClientList[iClientH]->m_iGizonItemUpgradeLeft <= 0)
{ SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_ITEMUPGRADEFAIL, 3, NULL, NULL, NULL);
return;
}
if(iValue >= 20)
{ SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_ITEMUPGRADEFAIL, 3, NULL, NULL, NULL);
return;
}
switch (iValue) {
case 0: sItemUpgrade = 3; break;
case 1: sItemUpgrade = 4; break;
case 2: sItemUpgrade = 5; break;
case 3: sItemUpgrade = 6; break;
case 4: sItemUpgrade = 7; break;
case 5: sItemUpgrade = 8; break;
case 6: sItemUpgrade = 9; break;
case 7: sItemUpgrade = 10; break;
case 8: sItemUpgrade = 11; break;
case 9: sItemUpgrade = 12; break;
case 10: sItemUpgrade = 13; break;
case 11: sItemUpgrade = 14; break;
case 12: sItemUpgrade = 15; break;
case 13: sItemUpgrade = 16; break;
case 14: sItemUpgrade = 17; break;
case 15: sItemUpgrade = 18; break;
case 16: sItemUpgrade = 19; break;
case 17: sItemUpgrade = 20; break;
case 18: sItemUpgrade = 21; break;
case 19: sItemUpgrade = 22; break;
default:
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_ITEMUPGRADEFAIL, 3, NULL, NULL, NULL);
return;
break;
}
/*if ( (m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sTouchEffectValue1 != m_pClientList[iClientH]->m_sCharIDnum1)
|| (m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sTouchEffectValue2 != m_pClientList[iClientH]->m_sCharIDnum2)
|| (m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sTouchEffectValue3 != m_pClientList[iClientH]->m_sCharIDnum3))
{ SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_ITEMUPGRADEFAIL, 2, NULL, NULL, NULL);
return;
}*/
if (( m_pClientList[iClientH]->m_iGizonItemUpgradeLeft - sItemUpgrade ) < 0)
{ SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_ITEMUPGRADEFAIL, 3, NULL, NULL, NULL);
return;
}
int iDicePTA = iDice(1,100);
if(iDicePTA <= 70)
{ m_pClientList[iClientH]->m_iGizonItemUpgradeLeft -= sItemUpgrade;
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_GIZONITEMUPGRADELEFT, m_pClientList[iClientH]->m_iGizonItemUpgradeLeft, NULL, NULL, NULL);
iValue++;
if (iValue > 10) iValue = 10;
dwTemp = m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute;
dwTemp = dwTemp & 0x0FFFFFFF;
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute = dwTemp | (iValue << 28);
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_ITEMATTRIBUTECHANGE, iItemIndex, m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute, NULL, NULL);
_bItemLog(DEF_ITEMLOG_UPGRADESUCCESS, iClientH, (int) -1, m_pClientList[iClientH]->m_pItemList[iItemIndex]);
}else
{ m_pClientList[iClientH]->m_iGizonItemUpgradeLeft--;
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_GIZONITEMUPGRADELEFT, m_pClientList[iClientH]->m_iGizonItemUpgradeLeft, NULL, NULL, NULL);
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_ITEMUPGRADEFAIL, 3, NULL, NULL, NULL);
}
return;
break;
}
break;
case 1:
switch (m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sIDnum) {
case 703: // SangAhFlameberge
case 709: // DarkKnightFlameberge
case 718: // DarkKnightGreatSword
case 727: // DarkKnightFlamebergW
case 736: // SangAhGiantSword
case 737: // DarkKnightGiantSword
case 745: // BlackKnightTemple
if (m_pClientList[iClientH]->m_iGizonItemUpgradeLeft <= 0) {
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_ITEMUPGRADEFAIL, 3, NULL, NULL, NULL);
return;
}
sItemUpgrade = (iValue*(iValue+6)/8) + 2;
/*if (m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sTouchEffectType != 0) {
if ((m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sTouchEffectValue1 != m_pClientList[iClientH]->m_sCharIDnum1) ||
(m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sTouchEffectValue2 != m_pClientList[iClientH]->m_sCharIDnum2) ||
(m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sTouchEffectValue3 != m_pClientList[iClientH]->m_sCharIDnum3)) {
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_ITEMUPGRADEFAIL, 2, NULL, NULL, NULL);
return;
}
}*/
if (( m_pClientList[iClientH]->m_iGizonItemUpgradeLeft - sItemUpgrade ) < 0) {
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_ITEMUPGRADEFAIL, 3, NULL, NULL, NULL);
return;
}
m_pClientList[iClientH]->m_iGizonItemUpgradeLeft -= sItemUpgrade;
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_GIZONITEMUPGRADELEFT, m_pClientList[iClientH]->m_iGizonItemUpgradeLeft, NULL, NULL, NULL);
if ((iValue == 0) && (m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sIDnum == 703)) { // SangAhFlameberge
iItemX = m_pClientList[iClientH]->m_ItemPosList[iItemIndex].x;
iItemY = m_pClientList[iClientH]->m_ItemPosList[iItemIndex].y;
delete m_pClientList[iClientH]->m_pItemList[iItemIndex];
m_pClientList[iClientH]->m_pItemList[iItemIndex] = NULL;
m_pClientList[iClientH]->m_pItemList[iItemIndex] = new class CItem;
m_pClientList[iClientH]->m_ItemPosList[iItemIndex].x = iItemX;
m_pClientList[iClientH]->m_ItemPosList[iItemIndex].y = iItemY;
if (_bInitItemAttr(m_pClientList[iClientH]->m_pItemList[iItemIndex] , 736) == FALSE) { // SangAhGiantSword
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_ITEMATTRIBUTECHANGE, iItemIndex, m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute, NULL, NULL);
return;
}
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sTouchEffectType = DEF_ITET_UNIQUE_OWNER;
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sTouchEffectValue1 = m_pClientList[iClientH]->m_sCharIDnum1;
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sTouchEffectValue2 = m_pClientList[iClientH]->m_sCharIDnum2;
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sTouchEffectValue3 = m_pClientList[iClientH]->m_sCharIDnum3;
iValue += 2;
if (iValue > 15) iValue = 15;
dwTemp = m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute;
dwTemp = dwTemp & 0x0FFFFFFF;
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute = dwTemp | (iValue << 28);
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_GIZONITEMCANGE, iItemIndex, m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_cItemType,
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_wCurLifeSpan,
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_cName,
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sSprite,
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sSpriteFrame,
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_cItemColor,
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sItemSpecEffectValue2,
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute);
_bItemLog(DEF_ITEMLOG_UPGRADESUCCESS, iClientH, (int) -1, m_pClientList[iClientH]->m_pItemList[iItemIndex]);
break;
}
else if ((iValue == 0) && ((m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sIDnum == 709) || (m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sIDnum == 727))) { // DarkKnightFlameberge DarkKnightFlamebergW
iItemX = m_pClientList[iClientH]->m_ItemPosList[iItemIndex].x;
iItemY = m_pClientList[iClientH]->m_ItemPosList[iItemIndex].y;
delete m_pClientList[iClientH]->m_pItemList[iItemIndex];
m_pClientList[iClientH]->m_pItemList[iItemIndex] = NULL;
m_pClientList[iClientH]->m_pItemList[iItemIndex] = new class CItem;
m_pClientList[iClientH]->m_ItemPosList[iItemIndex].x = iItemX;
m_pClientList[iClientH]->m_ItemPosList[iItemIndex].y = iItemY;
if (_bInitItemAttr(m_pClientList[iClientH]->m_pItemList[iItemIndex] , 737) == FALSE) { // DarkKnightGiantSword
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_ITEMATTRIBUTECHANGE, iItemIndex, m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute, NULL, NULL);
return;
}
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sTouchEffectType = DEF_ITET_UNIQUE_OWNER;
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sTouchEffectValue1 = m_pClientList[iClientH]->m_sCharIDnum1;
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sTouchEffectValue2 = m_pClientList[iClientH]->m_sCharIDnum2;
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sTouchEffectValue3 = m_pClientList[iClientH]->m_sCharIDnum3;
iValue += 2;
if (iValue > 15) iValue = 15;
dwTemp = m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute;
dwTemp = dwTemp & 0x0FFFFFFF;
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute = dwTemp | (iValue << 28);
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_GIZONITEMCANGE, iItemIndex,
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_cItemType,
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_wCurLifeSpan,
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_cName,
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sSprite,
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sSpriteFrame,
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_cItemColor,
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sItemSpecEffectValue2,
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute );
_bItemLog(DEF_ITEMLOG_UPGRADESUCCESS, iClientH, (int) -1, m_pClientList[iClientH]->m_pItemList[iItemIndex]);
break;
}
else if ((iValue >= 6) && (m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sIDnum == 737)) { // DarkKnightGiantSword
iItemX = m_pClientList[iClientH]->m_ItemPosList[iItemIndex].x;
iItemY = m_pClientList[iClientH]->m_ItemPosList[iItemIndex].y;
delete m_pClientList[iClientH]->m_pItemList[iItemIndex];
m_pClientList[iClientH]->m_pItemList[iItemIndex] = NULL;
m_pClientList[iClientH]->m_pItemList[iItemIndex] = new class CItem;
m_pClientList[iClientH]->m_ItemPosList[iItemIndex].x = iItemX;
m_pClientList[iClientH]->m_ItemPosList[iItemIndex].y = iItemY;
if (_bInitItemAttr(m_pClientList[iClientH]->m_pItemList[iItemIndex], 745) == FALSE) { // BlackKnightTemple
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_ITEMATTRIBUTECHANGE, iItemIndex, m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute, NULL, NULL);
return;
}
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sTouchEffectType = DEF_ITET_UNIQUE_OWNER;
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sTouchEffectValue1 = m_pClientList[iClientH]->m_sCharIDnum1;
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sTouchEffectValue2 = m_pClientList[iClientH]->m_sCharIDnum2;
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sTouchEffectValue3 = m_pClientList[iClientH]->m_sCharIDnum3;
iValue += 2;
if (iValue > 15) iValue = 15;
dwTemp = m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute;
dwTemp = dwTemp & 0x0FFFFFFF;
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute = dwTemp | (iValue << 28);
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_GIZONITEMCANGE, iItemIndex,
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_cItemType,
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_wCurLifeSpan,
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_cName,
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sSprite,
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sSpriteFrame,
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_cItemColor,
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sItemSpecEffectValue2,
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute );
_bItemLog(DEF_ITEMLOG_UPGRADESUCCESS, iClientH, (int) -1, m_pClientList[iClientH]->m_pItemList[iItemIndex]);
}
else if ((iValue >= 12) && (m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sIDnum == 745)) { // BlackKnightTemple
iValue += 2;
if (iValue > 15) iValue = 15;
if (iValue == 15) m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_cItemColor = 9;
dwTemp = m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute;
dwTemp = dwTemp & 0x0FFFFFFF;
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute = dwTemp | (iValue << 28);
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_ITEMATTRIBUTECHANGE, iItemIndex, m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute, NULL, NULL);
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_GIZONITEMCANGE, iItemIndex,
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_cItemType,
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_wCurLifeSpan,
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_cName,
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sSprite,
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sSpriteFrame,
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_cItemColor,
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sItemSpecEffectValue2,
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute );
_bItemLog(DEF_ITEMLOG_UPGRADESUCCESS, iClientH, (int) -1, m_pClientList[iClientH]->m_pItemList[iItemIndex]);
}
else {
iValue += 2;
if (iValue > 15) iValue = 15;
dwTemp = m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute;
dwTemp = dwTemp & 0x0FFFFFFF;
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute = dwTemp | (iValue << 28);
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_ITEMATTRIBUTECHANGE, iItemIndex, m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute, NULL, NULL);
_bItemLog(DEF_ITEMLOG_UPGRADESUCCESS, iClientH, (int) -1, m_pClientList[iClientH]->m_pItemList[iItemIndex]);
}
break;
case 717: // DarkKnightRapier
if (m_pClientList[iClientH]->m_iGizonItemUpgradeLeft <= 0) {
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_ITEMUPGRADEFAIL, 3, NULL, NULL, NULL);
return;
}
sItemUpgrade = (iValue*(iValue+6)/8) + 2;
if ((m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sTouchEffectValue1 != m_pClientList[iClientH]->m_sCharIDnum1) ||
(m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sTouchEffectValue2 != m_pClientList[iClientH]->m_sCharIDnum2) ||
(m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sTouchEffectValue3 != m_pClientList[iClientH]->m_sCharIDnum3)) {
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_ITEMUPGRADEFAIL, 2, NULL, NULL, NULL);
return;
}
if (( m_pClientList[iClientH]->m_iGizonItemUpgradeLeft - sItemUpgrade ) < 0) {
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_ITEMUPGRADEFAIL, 3, NULL, NULL, NULL);
return;
}
m_pClientList[iClientH]->m_iGizonItemUpgradeLeft -= sItemUpgrade;
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_GIZONITEMUPGRADELEFT, m_pClientList[iClientH]->m_iGizonItemUpgradeLeft, NULL, NULL, NULL);
iValue++;
if (iValue > 7) iValue = 7;
dwTemp = m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute;
dwTemp = dwTemp & 0x0FFFFFFF;
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute = dwTemp | (iValue << 28);
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_ITEMATTRIBUTECHANGE, iItemIndex, m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute, NULL, NULL);
_bItemLog(DEF_ITEMLOG_UPGRADESUCCESS, iClientH, (int) -1, m_pClientList[iClientH]->m_pItemList[iItemIndex]);
break;
default:
if ((m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute & 0x00F00000) != NULL) {
dwSWEType = (m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute & 0x00F00000) >> 20;
if (dwSWEType == 9) {
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_ITEMUPGRADEFAIL, 2, NULL, NULL, NULL);
return;
}
}
iSoX = iSoM = 0;
for (i = 0; i < DEF_MAXITEMS; i++)
if (m_pClientList[iClientH]->m_pItemList[i] != NULL) {
switch (m_pClientList[iClientH]->m_pItemList[i]->m_sIDnum) {
case 656: iSoX++; iSoxH = i; break;
case 657: iSoM++; iSomH = i; break;
}
}
if (iSoX > 0) {
if (bCheckIsItemUpgradeSuccess(iClientH, iItemIndex, iSoxH) == FALSE) {
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_ITEMATTRIBUTECHANGE, iItemIndex, m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute, NULL, NULL);
iValue = (m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute & 0xF0000000) >> 28;
if (iValue >= 1) ItemDepleteHandler(iClientH, iItemIndex, FALSE);
ItemDepleteHandler(iClientH, iSoxH, FALSE);
return;
}
if ((m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute & 0x00000001) != NULL) {
iValue++;
if (iValue > 10) {
iValue = 10;
}
else {
dwTemp = m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute;
dwTemp = dwTemp & 0x0FFFFFFF;
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute = dwTemp | (iValue << 28);
ItemDepleteHandler(iClientH, iSoxH, FALSE);
}
}
else {
iValue++;
if (iValue > 7) {
iValue = 7;
}
else {
dwTemp = m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute;
dwTemp = dwTemp & 0x0FFFFFFF;
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute = dwTemp | (iValue << 28);
ItemDepleteHandler(iClientH, iSoxH, FALSE);
}
}
}
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_ITEMATTRIBUTECHANGE, iItemIndex, m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute, NULL, NULL);
break;
}
return;
case 3:
if ((m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute & 0x00F00000) != NULL) {
dwSWEType = (m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute & 0x00F00000) >> 20;
if (dwSWEType == 9) {
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_ITEMUPGRADEFAIL, 2, NULL, NULL, NULL);
return;
}
}
iSoX = iSoM = 0;
for (i = 0; i < DEF_MAXITEMS; i++)
if (m_pClientList[iClientH]->m_pItemList[i] != NULL) {
switch (m_pClientList[iClientH]->m_pItemList[i]->m_sIDnum) {
case 656: iSoX++; iSoxH = i; break;
case 657: iSoM++; iSomH = i; break;
}
}
if (iSoX > 0) {
if (bCheckIsItemUpgradeSuccess(iClientH, iItemIndex, iSoxH) == FALSE) {
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_ITEMATTRIBUTECHANGE, iItemIndex, m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute, NULL, NULL);
iValue = (m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute & 0xF0000000) >> 28;
if (iValue >= 1) ItemDepleteHandler(iClientH, iItemIndex, FALSE);
ItemDepleteHandler(iClientH, iSoxH, FALSE);
return;
}
if ((m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute & 0x00000001) != NULL) {
iValue++;
if (iValue > 10) {
iValue = 10;
}
else {
dwTemp = m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute;
dwTemp = dwTemp & 0x0FFFFFFF;
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute = dwTemp | (iValue << 28);
ItemDepleteHandler(iClientH, iSoxH, FALSE);
}
}
else {
iValue++;
if (iValue > 7) {
iValue = 7;
}
else {
dwTemp = m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute;
dwTemp = dwTemp & 0x0FFFFFFF;
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute = dwTemp | (iValue << 28);
ItemDepleteHandler(iClientH, iSoxH, FALSE);
}
}
}
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_ITEMATTRIBUTECHANGE, iItemIndex, m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute, NULL, NULL);
return;
case 5:
if ((m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute & 0x00F00000) != NULL) {
dwSWEType = (m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute & 0x00F00000) >> 20;
if (dwSWEType == 8) {
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_ITEMUPGRADEFAIL, 2, NULL, NULL, NULL);
return;
}
}
switch (m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sIDnum) {
case 623:
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_ITEMUPGRADEFAIL, 2, NULL, NULL, NULL);
return;
default:
break;
}
iSoX = iSoM = 0;
for (i = 0; i < DEF_MAXITEMS; i++)
if (m_pClientList[iClientH]->m_pItemList[i] != NULL) {
switch (m_pClientList[iClientH]->m_pItemList[i]->m_sIDnum) {
case 656: iSoX++; iSoxH = i; break;
case 657: iSoM++; iSomH = i; break;
}
}
if (iSoM > 0) {
if (bCheckIsItemUpgradeSuccess(iClientH, iItemIndex, iSomH, TRUE) == FALSE) {
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_ITEMATTRIBUTECHANGE, iItemIndex, m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute, NULL, NULL);
iValue = (m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute & 0xF0000000) >> 28;
if (iValue >= 1) ItemDepleteHandler(iClientH, iItemIndex, FALSE);
ItemDepleteHandler(iClientH, iSomH, FALSE);
return;
}
iValue++;
if (iValue > 10) {
iValue = 10;
}
else {
dwTemp = m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute;
dwTemp = dwTemp & 0x0FFFFFFF;
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute = dwTemp | (iValue << 28);
if ((m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute & 0x00000001) != NULL) {
dV1 = (double)m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_wMaxLifeSpan;
dV2 = 0.2f * dV1;
dV3 = dV1 + dV2;
}
else {
dV1 = (double)m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_wMaxLifeSpan;
dV2 = 0.15f * dV1;
dV3 = dV1 + dV2;
}
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sItemSpecEffectValue1 = (short)dV3;
if (m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sItemSpecEffectValue1 < 0) m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sItemSpecEffectValue1 = m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_wMaxLifeSpan;
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_wMaxLifeSpan = m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sItemSpecEffectValue1;
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_wCurLifeSpan += dV2;
ItemDepleteHandler(iClientH, iSomH, FALSE);
}
}
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_ITEMATTRIBUTECHANGE, iItemIndex, m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute, m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sItemSpecEffectValue1, NULL, m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sItemSpecEffectValue2);
return;
case 6:
case 15:
switch (m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sIDnum) {
case 621: // MerienPlateMailM
case 622: // MerienPlateMailW
case 700: // SangAhHauberk
case 701: // SangAhFullHel
case 702: // SangAhLeggings
case 704: // SangAhPlateMail
case 706: // DarkKnightHauberk
case 707: // DarkKnightFullHelm
case 708: // DarkKnightLeggings
case 710: // DarkKnightPlateMail
case 711: // DarkMageHauberk
case 712: // DarkMageChainMail
case 713: // DarkMageLeggings
case 716: // DarkMageLedderArmor
case 719: // DarkMageScaleMail
case 724: // DarkKnightHauberkW
case 725: // DarkKnightFullHelmW
case 726: // DarkKnightLeggingsW
case 728: // DarkKnightPlateMailW
case 729: // DarkMageHauberkW
case 730: // DarkMageChainMailW
case 731: // DarkMageLeggingsW
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_ITEMUPGRADEFAIL, 2, NULL, NULL, NULL);
return;
default:
if ((m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute & 0x00F00000) != NULL) {
dwSWEType = (m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute & 0x00F00000) >> 20;
if (dwSWEType == 8) {
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_ITEMUPGRADEFAIL, 2, NULL, NULL, NULL);
return;
}
}
iSoX = iSoM = 0;
for (i = 0; i < DEF_MAXITEMS; i++)
if (m_pClientList[iClientH]->m_pItemList[i] != NULL) {
switch (m_pClientList[iClientH]->m_pItemList[i]->m_sIDnum) {
case 656: iSoX++; iSoxH = i; break;
case 657: iSoM++; iSomH = i; break;
}
}
if (iSoM > 0) {
if (bCheckIsItemUpgradeSuccess(iClientH, iItemIndex, iSomH, TRUE) == FALSE) {
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_ITEMATTRIBUTECHANGE, iItemIndex, m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute, NULL, NULL);
iValue = (m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute & 0xF0000000) >> 28;
if (iValue >= 1) ItemDepleteHandler(iClientH, iItemIndex, FALSE);
ItemDepleteHandler(iClientH, iSomH, FALSE);
return;
}
iValue++;
if (iValue > 10) {
iValue = 10;
}
else {
dwTemp = m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute;
dwTemp = dwTemp & 0x0FFFFFFF;
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute = dwTemp | (iValue << 28);
if ((m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute & 0x00000001) != NULL) {
dV1 = (double)m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_wMaxLifeSpan;
dV2 = 0.2f * dV1;
dV3 = dV1 + dV2;
}
else {
dV1 = (double)m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_wMaxLifeSpan;
dV2 = 0.15f * dV1;
dV3 = dV1 + dV2;
}
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sItemSpecEffectValue1 = (short)dV3;
if (m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sItemSpecEffectValue1 < 0) m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sItemSpecEffectValue1 = m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_wMaxLifeSpan;
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_wMaxLifeSpan = m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sItemSpecEffectValue1;
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_wCurLifeSpan += dV2;
ItemDepleteHandler(iClientH, iSomH, FALSE);
}
}
}
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_ITEMATTRIBUTECHANGE, iItemIndex, m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute, m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sItemSpecEffectValue1, NULL, m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sItemSpecEffectValue2);
return;
case 8:
switch (m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sIDnum) {
case 291: // MagicWand(MS30-LLF)
case 714: // DarkMageMagicStaff
case 732: // DarkMageMagicStaffW
case 738: // DarkMageMagicWand
case 746: // BlackMageTemple
/*if ((m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sTouchEffectValue1 != m_pClientList[iClientH]->m_sCharIDnum1) ||
(m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sTouchEffectValue2 != m_pClientList[iClientH]->m_sCharIDnum2) ||
(m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sTouchEffectValue3 != m_pClientList[iClientH]->m_sCharIDnum3)) {
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_ITEMUPGRADEFAIL, 2, NULL, NULL, NULL);
return;
}*/
if (m_pClientList[iClientH]->m_iGizonItemUpgradeLeft <= 0) {
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_ITEMUPGRADEFAIL, 3, NULL, NULL, NULL);
return;
}
sItemUpgrade = (iValue*(iValue+6)/8) + 2;
if ((m_pClientList[iClientH]->m_iGizonItemUpgradeLeft - sItemUpgrade ) < 0) {
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_ITEMUPGRADEFAIL, 3, NULL, NULL, NULL);
return;
}
m_pClientList[iClientH]->m_iGizonItemUpgradeLeft -= sItemUpgrade;
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_GIZONITEMUPGRADELEFT, m_pClientList[iClientH]->m_iGizonItemUpgradeLeft, NULL, NULL, NULL);
if (iValue == 0 ) {
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sTouchEffectType = DEF_ITET_UNIQUE_OWNER;
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sTouchEffectValue1 = m_pClientList[iClientH]->m_sCharIDnum1;
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sTouchEffectValue2 = m_pClientList[iClientH]->m_sCharIDnum2;
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sTouchEffectValue3 = m_pClientList[iClientH]->m_sCharIDnum3;
}
if((iValue >= 4) && ((m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sIDnum == 714) || (m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sIDnum == 732))) {
iItemX = m_pClientList[iClientH]->m_ItemPosList[iItemIndex].x;
iItemY = m_pClientList[iClientH]->m_ItemPosList[iItemIndex].y;
delete m_pClientList[iClientH]->m_pItemList[iItemIndex];
m_pClientList[iClientH]->m_pItemList[iItemIndex] = NULL;
m_pClientList[iClientH]->m_pItemList[iItemIndex] = new class CItem;
m_pClientList[iClientH]->m_ItemPosList[iItemIndex].x = iItemX;
m_pClientList[iClientH]->m_ItemPosList[iItemIndex].y = iItemY;
if (_bInitItemAttr(m_pClientList[iClientH]->m_pItemList[iItemIndex], 738) == FALSE) { // DarkMageMagicWand
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_ITEMATTRIBUTECHANGE, iItemIndex, m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute, NULL, NULL);
return;
}
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sTouchEffectType = DEF_ITET_UNIQUE_OWNER;
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sTouchEffectValue1 = m_pClientList[iClientH]->m_sCharIDnum1;
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sTouchEffectValue2 = m_pClientList[iClientH]->m_sCharIDnum2;
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sTouchEffectValue3 = m_pClientList[iClientH]->m_sCharIDnum3;
iValue += 2;
if (iValue > 15) iValue = 15;
dwTemp = m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute;
dwTemp = dwTemp & 0x0FFFFFFF;
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute = dwTemp | (iValue << 28);
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_GIZONITEMCANGE, iItemIndex, m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_cItemType,
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_wCurLifeSpan, m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_cName,
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sSprite,
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sSpriteFrame,
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_cItemColor,
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sItemSpecEffectValue2,
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute );
_bItemLog(DEF_ITEMLOG_UPGRADESUCCESS, iClientH, (int) -1, m_pClientList[iClientH]->m_pItemList[iItemIndex]);
break;
}
if((iValue >= 6) && (m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sIDnum == 738)) {
iItemX = m_pClientList[iClientH]->m_ItemPosList[iItemIndex].x;
iItemY = m_pClientList[iClientH]->m_ItemPosList[iItemIndex].y;
delete m_pClientList[iClientH]->m_pItemList[iItemIndex];
m_pClientList[iClientH]->m_pItemList[iItemIndex] = NULL;
m_pClientList[iClientH]->m_pItemList[iItemIndex] = new class CItem;
m_pClientList[iClientH]->m_ItemPosList[iItemIndex].x = iItemX;
m_pClientList[iClientH]->m_ItemPosList[iItemIndex].y = iItemY;
if (_bInitItemAttr(m_pClientList[iClientH]->m_pItemList[iItemIndex], 746) == FALSE) { // BlackMageTemple
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_ITEMATTRIBUTECHANGE, iItemIndex, m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute, NULL, NULL);
return;
}
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sTouchEffectType = DEF_ITET_UNIQUE_OWNER;
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sTouchEffectValue1 = m_pClientList[iClientH]->m_sCharIDnum1;
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sTouchEffectValue2 = m_pClientList[iClientH]->m_sCharIDnum2;
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sTouchEffectValue3 = m_pClientList[iClientH]->m_sCharIDnum3;
iValue += 2;
if (iValue > 15) iValue = 15;
dwTemp = m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute;
dwTemp = dwTemp & 0x0FFFFFFF;
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute = dwTemp | (iValue << 28);
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_GIZONITEMCANGE, iItemIndex, m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_cItemType,
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_wCurLifeSpan, m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_cName,
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sSprite,
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sSpriteFrame,
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_cItemColor,
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sItemSpecEffectValue2,
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute );
_bItemLog(DEF_ITEMLOG_UPGRADESUCCESS, iClientH, (int) -1, m_pClientList[iClientH]->m_pItemList[iItemIndex]);
break;
}
if((iValue >= 12) && (m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sIDnum == 746)) {
iValue += 2;
if (iValue > 15) iValue = 15;
if (iValue == 15) m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_cItemColor = 9;
dwTemp = m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute;
dwTemp = dwTemp & 0x0FFFFFFF;
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute = dwTemp | (iValue << 28);
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_ITEMATTRIBUTECHANGE, iItemIndex, m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute, NULL, NULL);
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_GIZONITEMCANGE, iItemIndex,
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_cItemType,
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_wCurLifeSpan,
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_cName,
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sSprite,
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sSpriteFrame,
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_cItemColor,
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sItemSpecEffectValue2,
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute );
_bItemLog(DEF_ITEMLOG_UPGRADESUCCESS, iClientH, (int) -1, m_pClientList[iClientH]->m_pItemList[iItemIndex]);
break;
}
else {
iValue += 2;
if (iValue > 15) iValue = 15;
dwTemp = m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute;
dwTemp = dwTemp & 0x0FFFFFFF; // ºñÆ® Ŭ¸®¾î
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute = dwTemp | (iValue << 28); // ¾÷±×·¹À̵åµÈ ºñÆ®°ª ÀÔ·Â
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_ITEMATTRIBUTECHANGE, iItemIndex, m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute, NULL, NULL);
_bItemLog(DEF_ITEMLOG_UPGRADESUCCESS, iClientH, (int) -1, m_pClientList[iClientH]->m_pItemList[iItemIndex]);
break;
}
default:
// ÀÃ¹à ¾ÆÀÌÅÛ
// v2.16 2002-5-21 °Ã±¤Çö¼öä
iSoX = iSoM = 0;
for (i = 0; i < DEF_MAXITEMS; i++)
if (m_pClientList[iClientH]->m_pItemList[i] != NULL) {
switch (m_pClientList[iClientH]->m_pItemList[i]->m_sIDnum) {
case 656: iSoX++; iSoxH = i; break; // ½ºÅæ ¿Àºê 渮¸¶
case 657: iSoM++; iSomH = i; break; // ½ºÅæ ¿Àºê ¸Þ¸®¿£
}
}
// ½ºÅæ ¿Àºê 渮¸¶°¡ ÀÖ´Ù.
if (iSoX > 0) {
// ¾÷±×·¹ÀÌµå ¼º°ø È®·ü °è»ê.
if (bCheckIsItemUpgradeSuccess(iClientH, iItemIndex, iSoxH) == FALSE) {
// ¾÷±×·¹À̵å ½ÇÆÃ
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_ITEMATTRIBUTECHANGE, iItemIndex, m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute, NULL, NULL);
iValue = (m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute & 0xF0000000) >> 28; // v2.172
if (iValue >= 1) ItemDepleteHandler(iClientH, iItemIndex, FALSE); // v2.172 +1 -> +2 ´Ü°è¿¡¼ ½ÇÆÃÇÃ¸é »ç¶óÃü
// ½ºÅæ ¿Àºê 渮¸¶ ¾ø¾Ø´Ù.
ItemDepleteHandler(iClientH, iSoxH, FALSE);
return;
}
iValue++;
if (iValue > 7)
iValue = 7;
else {
// ¾÷±×·¹À̵å ¼º°ø. ¾ÆÀÌÅÛ Ư¼º ¹Ù²Ù°Ã
dwTemp = m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute;
dwTemp = dwTemp & 0x0FFFFFFF; // ºñÆ® Ŭ¸®¾î
m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute = dwTemp | (iValue << 28); // ¾÷±×·¹À̵åµÈ ºñÆ®°ª ÀÔ·Â
// ½ºÅæ ¿Àºê 渮¸¶ ¾ø¾Ø´Ù.
ItemDepleteHandler(iClientH, iSoxH, FALSE);
}
}
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_ITEMATTRIBUTECHANGE, iItemIndex, m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute, NULL, NULL);
break;
}
break;
default:
SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_ITEMATTRIBUTECHANGE, iItemIndex, m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute, NULL, NULL);
break;
}
}
<img src='http://lifeplaysu420.com/unknow/nightsign.png' border='0' alt='user posted image' /><br>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>Wanna make money for surfing the net sing up at <br><a href='http://www.cashfiesta.com/php/join.php? ... yprivitera' target='_blank'>cash fiesta</a><br>its all free hey why ntot make money while fucking around on the computer<br><br><br>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~