Majestic Problem

All Helbreath Server Source Discussion here.
Post Reply
Tafka12
<3 bd long time
Posts: 772
Joined: Wed Dec 28, 2005 6:32 pm

Post by Tafka12 »

I got a small problem. I use the SlammeR's sources, the sources are all OK but look, if i wanna try upgrade my items(Samurai) then that wont work. i changed only weapons list that are upgradeable, have a look. then also my items won't go up to +15 and take effects, they stuck on +14 when i use normal upgrade. If anyone knows what can be wrong with my code then please note. my code is this:

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 1:
  switch (m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sIDnum) {
  case 1237: // SamuraiSword
  case 1545: // SamuraiBlade
  case 1235: // SamuraiHammer
  case 1997: // SamuraiShield
  	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 == 1237)) { // SamuraiSword 
    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] , 1247) == FALSE) { // SamuraiSword+15 
    	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 == 1235))) { // SamuraiHammer
    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] , 1239) == FALSE) { // SamuraiHammer+15
    	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 == 1997)) { // SamuraiShield
    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], 1998) == FALSE) { // SamuraiShield+15
    	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 == 1546)) { // SamuraiBlade+15 
    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, TRUE);
    	ItemDepleteHandler(iClientH, iSoxH, FALSE, TRUE);	
    	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, TRUE);
    	}
    }
    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, TRUE);
    	}
    }
  	}
  	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, TRUE);
    ItemDepleteHandler(iClientH, iSoxH, FALSE, TRUE);	
    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, TRUE);
    }
  	}
  	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, TRUE);
    }
  	}
  }
  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, TRUE);
    ItemDepleteHandler(iClientH, iSomH, FALSE, TRUE);	
    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, TRUE);	
  	}
  }
  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;

Everything that can help is welcome.
<img src='http://www.hot.ee/carvanho/taavi.png' border='0' alt='user posted image' /><br><br><img src='http://www.hot.ee/carvanho/Elvine.png' border='0' alt='user posted image' /><br><img src='http://www.hot.ee/carvanho/LieroX.png' border='0' alt='user posted image' /><br><img src='http://www.hot.ee/carvanho/Football.png' border='0' alt='user posted image' />
omar_omiez
Loyal fan
Posts: 235
Joined: Mon Jul 12, 2004 9:36 am

Post by omar_omiez »

switch (m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_cCategory) {
case 1:
switch (m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sIDnum) {
case 1237: // SamuraiSword
case 1545: // SamuraiBlade
case 1235: // SamuraiHammer
case 1997: // SamuraiShield
you got it wrong here. when you switch m_cCategory, you are playing with the TYPES of items. Sword, Blade should work with case 1, because they are type 1. Hammer and Sheild wont, they are different types. You can see what category an item belongs to in your item.cfg, its the second last number.
- Tbone<br><a href="http://cyborg.namedecoder.com"><br><img src="http://cyborg.namedecoder.com/webimages ... ng"<br></a>
Tafka12
&lt;3 bd long time
Posts: 772
Joined: Wed Dec 28, 2005 6:32 pm

Post by Tafka12 »

Code: Select all

(m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_sIDnum == 1237)) { // SamuraiSword
   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] , 1247) == FALSE) { // SamuraiSword+15
    SendNotifyMsg(NULL, iClientH, DEF_NOTIFY_ITEMATTRIBUTECHANGE, iItemIndex, m_pClientList[iClientH]->m_pItemList[iItemIndex]->m_dwAttribute, NULL, NULL);
    return;
I think i made small shit in here. i made SamuraiSword+15 with special ability in my item2.cfg but then it makes SamuraiSword+15+2 and i can't upgrade it anymore. so i must put it normal SamuraiSword so it makes SamuraiSword+2 and then it makes +4 and so on too?
and where to i put shield and hammer theen?
<img src='http://www.hot.ee/carvanho/taavi.png' border='0' alt='user posted image' /><br><br><img src='http://www.hot.ee/carvanho/Elvine.png' border='0' alt='user posted image' /><br><img src='http://www.hot.ee/carvanho/LieroX.png' border='0' alt='user posted image' /><br><img src='http://www.hot.ee/carvanho/Football.png' border='0' alt='user posted image' />
omar_omiez
Loyal fan
Posts: 235
Joined: Mon Jul 12, 2004 9:36 am

Post by omar_omiez »

I think i made small shit in here. i made SamuraiSword+15 with special ability in my item2.cfg but then it makes SamuraiSword+15+2 and i can't upgrade it anymore. so i must put it normal SamuraiSword so it makes SamuraiSword+2 and then it makes +4 and so on too?
and where to i put shield and hammer theen?
yes, make normal samurai sword.
- Tbone<br><a href="http://cyborg.namedecoder.com"><br><img src="http://cyborg.namedecoder.com/webimages ... ng"<br></a>
Post Reply