Req-> RequestItemUpgradeHandler

Submit your code requests, and if you are good at coding come help others with their requests.
Post Reply
xenx
Member
Posts: 169
Joined: Tue Oct 03, 2006 7:08 am

Post by xenx »

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?
juggalo2
Spamtastic
Posts: 1144
Joined: Sun Jul 17, 2005 5:28 pm

Post by juggalo2 »

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>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Post Reply