Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Bonusy w szarfach


Rekomendowane odpowiedzi

Opublikowano

Jak dodaje bonusy w item_proto do szarf w grze po najechaniu na ikonę są widoczne, lecz w praktyce po założeniu nie nadaje ich.

Odblokowuje się to gdzieś lub coś trzeba zmienić?

 

 

Opublikowano

item.cpp

znajdź:

if (ch->GetDesc())
        
m_dwLastOwnerPID = ch->GetPlayerID();

i pod usuń

#ifdef __SASH_SYSTEM__
    if ((GetType() == ITEM_COSTUME) && (GetSubType() == COSTUME_SASH) && (GetSocket(SASH_ABSORPTION_SOCKET) == 0))
    {
        long lVal = GetValue(SASH_GRADE_VALUE_FIELD);
        switch (lVal)
        {
            case 2:
                {
                    lVal = SASH_GRADE_2_ABS;
                }
                break;
            case 3:
                {
                    lVal = SASH_GRADE_3_ABS;
                }
                break;
            case 4:
                {
                    lVal = number(SASH_GRADE_4_ABS_MIN, SASH_GRADE_4_ABS_MAX_COMB);
                }
                break;
            default:
                {
                    lVal = SASH_GRADE_1_ABS;
                }
                break;
        }
        
        SetSocket(SASH_ABSORPTION_SOCKET, lVal);
    }
    #endif

znajdź:

else
    {
        accessoryGrade = MIN(GetAccessorySocketGrade(), ITEM_ACCESSORY_SOCKET_MAX_NUM);
    }

i pod usuń:

#ifdef __SASH_SYSTEM__
    if ((GetType() == ITEM_COSTUME) && (GetSubType() == COSTUME_SASH) && (GetSocket(SASH_ABSORBED_SOCKET)))
    {
        TItemTable * pkItemAbsorbed = ITEM_MANAGER::instance().GetTable(GetSocket(SASH_ABSORBED_SOCKET));
        if (pkItemAbsorbed)
        {
            if ((pkItemAbsorbed->bType == ITEM_ARMOR) && (pkItemAbsorbed->bSubType == ARMOR_BODY))
            {
                long lDefGrade = pkItemAbsorbed->alValues[1] + long(pkItemAbsorbed->alValues[5] * 2);
                double dValue = lDefGrade * GetSocket(SASH_ABSORPTION_SOCKET);
                dValue = (double)dValue / 100;
                dValue = (double)dValue + .5;
                lDefGrade = (long) dValue;
                if ((pkItemAbsorbed->alValues[1] > 0) && (lDefGrade <= 0) || (pkItemAbsorbed->alValues[5] > 0) && (lDefGrade < 1))
                    lDefGrade += 1;
                else if ((pkItemAbsorbed->alValues[1] > 0) || (pkItemAbsorbed->alValues[5] > 0))
                    lDefGrade += 1;
                
                m_pOwner->ApplyPoint(APPLY_DEF_GRADE_BONUS, bAdd ? lDefGrade : -lDefGrade);
                
                long lDefMagicBonus = pkItemAbsorbed->alValues[0];
                dValue = lDefMagicBonus * GetSocket(SASH_ABSORPTION_SOCKET);
                dValue = (double)dValue / 100;
                dValue = (double)dValue + .5;
                lDefMagicBonus = (long) dValue;
                if ((pkItemAbsorbed->alValues[0] > 0) && (lDefMagicBonus < 1))
                    lDefMagicBonus += 1;
                else if (pkItemAbsorbed->alValues[0] > 0)
                    lDefMagicBonus += 1;
                
                m_pOwner->ApplyPoint(APPLY_MAGIC_DEF_GRADE, bAdd ? lDefMagicBonus : -lDefMagicBonus);
            }
            else if (pkItemAbsorbed->bType == ITEM_WEAPON)
            {
                long lAttGrade = pkItemAbsorbed->alValues[4] + pkItemAbsorbed->alValues[5];
                if (pkItemAbsorbed->alValues[3] > pkItemAbsorbed->alValues[4])
                    lAttGrade = pkItemAbsorbed->alValues[3] + pkItemAbsorbed->alValues[5];
                
                double dValue = lAttGrade * GetSocket(SASH_ABSORPTION_SOCKET);
                dValue = (double)dValue / 100;
                dValue = (double)dValue + .5;
                lAttGrade = (long) dValue;
                if (((pkItemAbsorbed->alValues[3] > 0) && (lAttGrade < 1)) || ((pkItemAbsorbed->alValues[4] > 0) && (lAttGrade < 1)))
                    lAttGrade += 1;
                else if ((pkItemAbsorbed->alValues[3] > 0) || (pkItemAbsorbed->alValues[4] > 0))
                    lAttGrade += 1;
                
                m_pOwner->ApplyPoint(APPLY_ATT_GRADE_BONUS, bAdd ? lAttGrade : -lAttGrade);
                
                long lAttMagicGrade = pkItemAbsorbed->alValues[2] + pkItemAbsorbed->alValues[5];
                if (pkItemAbsorbed->alValues[1] > pkItemAbsorbed->alValues[2])
                    lAttMagicGrade = pkItemAbsorbed->alValues[1] + pkItemAbsorbed->alValues[5];
                
                dValue = lAttMagicGrade * GetSocket(SASH_ABSORPTION_SOCKET);
                dValue = (double)dValue / 100;
                dValue = (double)dValue + .5;
                lAttMagicGrade = (long) dValue;
                if (((pkItemAbsorbed->alValues[1] > 0) && (lAttMagicGrade < 1)) || ((pkItemAbsorbed->alValues[2] > 0) && (lAttMagicGrade < 1)))
                    lAttMagicGrade += 1;
                else if ((pkItemAbsorbed->alValues[1] > 0) || (pkItemAbsorbed->alValues[2] > 0))
                    lAttMagicGrade += 1;
                
                m_pOwner->ApplyPoint(APPLY_MAGIC_ATT_GRADE, bAdd ? lAttMagicGrade : -lAttMagicGrade);
            }
        }
    }
    #endif

znajdź:

for (int i = 0; i < ITEM_APPLY_MAX_NUM; ++i)
    {
        #ifdef __SASH_SYSTEM__
        if ((m_pProto->aApplies[i].bType == APPLY_NONE) && (GetType() != ITEM_COSTUME) && (GetSubType() != COSTUME_SASH))
        #else
        if (m_pProto->aApplies[i].bType == APPLY_NONE)
        #endif
            continue;
        
        BYTE bType = m_pProto->aApplies[i].bType;
        long value = m_pProto->aApplies[i].lValue;
        #ifdef __SASH_SYSTEM__
        if ((GetType() == ITEM_COSTUME) && (GetSubType() == COSTUME_SASH))
        {
            TItemTable * pkItemAbsorbed = ITEM_MANAGER::instance().GetTable(GetSocket(SASH_ABSORBED_SOCKET));
            if (pkItemAbsorbed)
            {
                if (pkItemAbsorbed->aApplies[i].bType == APPLY_NONE)
                    continue;
                
                bType = pkItemAbsorbed->aApplies[i].bType;
                value = pkItemAbsorbed->aApplies[i].lValue;
                if (value < 0)
                    continue;
                
                double dValue = value * GetSocket(SASH_ABSORPTION_SOCKET);
                dValue = (double)dValue / 100;
                dValue = (double)dValue + .5;
                value = (long) dValue;
                if ((pkItemAbsorbed->aApplies[i].lValue > 0) && (value <= 0))
                    value += 1;
            }
            else
                continue;
        }
        #endif

zamień na:

for (int i = 0; i < ITEM_APPLY_MAX_NUM; ++i)
    {
        if (m_pProto->aApplies.bType == APPLY_NONE)
            continue; 
	        long value = m_pProto->aApplies.lValue; 
	        if (m_pProto->aApplies.bType == APPLY_SKILL)
        {
            m_pOwner->ApplyPoint(m_pProto->aApplies.bType, bAdd ? value : value ^ 0x00800000);
        }
        else
        {
            if (0 != accessoryGrade)
                value += MAX(accessoryGrade, value * aiAccessorySocketEffectivePct[accessoryGrade] / 100); 
	            m_pOwner->ApplyPoint(m_pProto->aApplies.bType, bAdd ? value : -value);
        }
    }

Opublikowano
15 godzin temu, Exemir.eu napisał:

item.cpp

znajdź:


if (ch->GetDesc())
        
m_dwLastOwnerPID = ch->GetPlayerID();

i pod usuń


#ifdef __SASH_SYSTEM__
    if ((GetType() == ITEM_COSTUME) && (GetSubType() == COSTUME_SASH) && (GetSocket(SASH_ABSORPTION_SOCKET) == 0))
    {
        long lVal = GetValue(SASH_GRADE_VALUE_FIELD);
        switch (lVal)
        {
            case 2:
                {
                    lVal = SASH_GRADE_2_ABS;
                }
                break;
            case 3:
                {
                    lVal = SASH_GRADE_3_ABS;
                }
                break;
            case 4:
                {
                    lVal = number(SASH_GRADE_4_ABS_MIN, SASH_GRADE_4_ABS_MAX_COMB);
                }
                break;
            default:
                {
                    lVal = SASH_GRADE_1_ABS;
                }
                break;
        }
        
        SetSocket(SASH_ABSORPTION_SOCKET, lVal);
    }
    #endif

znajdź:


else
    {
        accessoryGrade = MIN(GetAccessorySocketGrade(), ITEM_ACCESSORY_SOCKET_MAX_NUM);
    }

i pod usuń:


#ifdef __SASH_SYSTEM__
    if ((GetType() == ITEM_COSTUME) && (GetSubType() == COSTUME_SASH) && (GetSocket(SASH_ABSORBED_SOCKET)))
    {
        TItemTable * pkItemAbsorbed = ITEM_MANAGER::instance().GetTable(GetSocket(SASH_ABSORBED_SOCKET));
        if (pkItemAbsorbed)
        {
            if ((pkItemAbsorbed->bType == ITEM_ARMOR) && (pkItemAbsorbed->bSubType == ARMOR_BODY))
            {
                long lDefGrade = pkItemAbsorbed->alValues[1] + long(pkItemAbsorbed->alValues[5] * 2);
                double dValue = lDefGrade * GetSocket(SASH_ABSORPTION_SOCKET);
                dValue = (double)dValue / 100;
                dValue = (double)dValue + .5;
                lDefGrade = (long) dValue;
                if ((pkItemAbsorbed->alValues[1] > 0) && (lDefGrade <= 0) || (pkItemAbsorbed->alValues[5] > 0) && (lDefGrade < 1))
                    lDefGrade += 1;
                else if ((pkItemAbsorbed->alValues[1] > 0) || (pkItemAbsorbed->alValues[5] > 0))
                    lDefGrade += 1;
                
                m_pOwner->ApplyPoint(APPLY_DEF_GRADE_BONUS, bAdd ? lDefGrade : -lDefGrade);
                
                long lDefMagicBonus = pkItemAbsorbed->alValues[0];
                dValue = lDefMagicBonus * GetSocket(SASH_ABSORPTION_SOCKET);
                dValue = (double)dValue / 100;
                dValue = (double)dValue + .5;
                lDefMagicBonus = (long) dValue;
                if ((pkItemAbsorbed->alValues[0] > 0) && (lDefMagicBonus < 1))
                    lDefMagicBonus += 1;
                else if (pkItemAbsorbed->alValues[0] > 0)
                    lDefMagicBonus += 1;
                
                m_pOwner->ApplyPoint(APPLY_MAGIC_DEF_GRADE, bAdd ? lDefMagicBonus : -lDefMagicBonus);
            }
            else if (pkItemAbsorbed->bType == ITEM_WEAPON)
            {
                long lAttGrade = pkItemAbsorbed->alValues[4] + pkItemAbsorbed->alValues[5];
                if (pkItemAbsorbed->alValues[3] > pkItemAbsorbed->alValues[4])
                    lAttGrade = pkItemAbsorbed->alValues[3] + pkItemAbsorbed->alValues[5];
                
                double dValue = lAttGrade * GetSocket(SASH_ABSORPTION_SOCKET);
                dValue = (double)dValue / 100;
                dValue = (double)dValue + .5;
                lAttGrade = (long) dValue;
                if (((pkItemAbsorbed->alValues[3] > 0) && (lAttGrade < 1)) || ((pkItemAbsorbed->alValues[4] > 0) && (lAttGrade < 1)))
                    lAttGrade += 1;
                else if ((pkItemAbsorbed->alValues[3] > 0) || (pkItemAbsorbed->alValues[4] > 0))
                    lAttGrade += 1;
                
                m_pOwner->ApplyPoint(APPLY_ATT_GRADE_BONUS, bAdd ? lAttGrade : -lAttGrade);
                
                long lAttMagicGrade = pkItemAbsorbed->alValues[2] + pkItemAbsorbed->alValues[5];
                if (pkItemAbsorbed->alValues[1] > pkItemAbsorbed->alValues[2])
                    lAttMagicGrade = pkItemAbsorbed->alValues[1] + pkItemAbsorbed->alValues[5];
                
                dValue = lAttMagicGrade * GetSocket(SASH_ABSORPTION_SOCKET);
                dValue = (double)dValue / 100;
                dValue = (double)dValue + .5;
                lAttMagicGrade = (long) dValue;
                if (((pkItemAbsorbed->alValues[1] > 0) && (lAttMagicGrade < 1)) || ((pkItemAbsorbed->alValues[2] > 0) && (lAttMagicGrade < 1)))
                    lAttMagicGrade += 1;
                else if ((pkItemAbsorbed->alValues[1] > 0) || (pkItemAbsorbed->alValues[2] > 0))
                    lAttMagicGrade += 1;
                
                m_pOwner->ApplyPoint(APPLY_MAGIC_ATT_GRADE, bAdd ? lAttMagicGrade : -lAttMagicGrade);
            }
        }
    }
    #endif

znajdź:


for (int i = 0; i < ITEM_APPLY_MAX_NUM; ++i)
    {
        #ifdef __SASH_SYSTEM__
        if ((m_pProto->aApplies[i].bType == APPLY_NONE) && (GetType() != ITEM_COSTUME) && (GetSubType() != COSTUME_SASH))
        #else
        if (m_pProto->aApplies[i].bType == APPLY_NONE)
        #endif
            continue;
        
        BYTE bType = m_pProto->aApplies[i].bType;
        long value = m_pProto->aApplies[i].lValue;
        #ifdef __SASH_SYSTEM__
        if ((GetType() == ITEM_COSTUME) && (GetSubType() == COSTUME_SASH))
        {
            TItemTable * pkItemAbsorbed = ITEM_MANAGER::instance().GetTable(GetSocket(SASH_ABSORBED_SOCKET));
            if (pkItemAbsorbed)
            {
                if (pkItemAbsorbed->aApplies[i].bType == APPLY_NONE)
                    continue;
                
                bType = pkItemAbsorbed->aApplies[i].bType;
                value = pkItemAbsorbed->aApplies[i].lValue;
                if (value < 0)
                    continue;
                
                double dValue = value * GetSocket(SASH_ABSORPTION_SOCKET);
                dValue = (double)dValue / 100;
                dValue = (double)dValue + .5;
                value = (long) dValue;
                if ((pkItemAbsorbed->aApplies[i].lValue > 0) && (value <= 0))
                    value += 1;
            }
            else
                continue;
        }
        #endif

zamień na:

 


for (int i = 0; i < ITEM_APPLY_MAX_NUM; ++i)
    {
        if (m_pProto->aApplies.bType == APPLY_NONE)
            continue; 
	        long value = m_pProto->aApplies.lValue; 
	        if (m_pProto->aApplies.bType == APPLY_SKILL)
        {
            m_pOwner->ApplyPoint(m_pProto->aApplies.bType, bAdd ? value : value ^ 0x00800000);
        }
        else
        {
            if (0 != accessoryGrade)
                value += MAX(accessoryGrade, value * aiAccessorySocketEffectivePct[accessoryGrade] / 100); 
	            m_pOwner->ApplyPoint(m_pProto->aApplies.bType, bAdd ? value : -value);
        }
    }

 

for (int i = 0; i < ITEM_APPLY_MAX_NUM; ++i)
    {
        if (m_pProto->aApplies.bType == APPLY_NONE)
            continue; 
            long value = m_pProto->aApplies.lValue; 
            if (m_pProto->aApplies.bType == APPLY_SKILL)
        {
            m_pOwner->ApplyPoint(m_pProto->aApplies.bType, bAdd ? value : value ^ 0x00800000);
        }
        else
        {
            if (0 != accessoryGrade)
                value += MAX(accessoryGrade, value * aiAccessorySocketEffectivePct[accessoryGrade] / 100); 
                m_pOwner->ApplyPoint(m_pProto->aApplies.bType, bAdd ? value : -value);
        }
    }
        
        if (bType != APPLY_SKILL)
        {
            if (accessoryGrade != 0)
                value += MAX(accessoryGrade, value * aiAccessorySocketEffectivePct[accessoryGrade] / 100);
            
            m_pOwner->ApplyPoint(bType, bAdd ? value : -value);
        }
        else
            m_pOwner->ApplyPoint(bType, bAdd ? value : value ^ 0x00800000);
    }
    // Ăʽ´ŢŔÇ ąÝÁö, ÇŇ·ÎŔ© »çĹÁ, ÇŕşąŔÇ ąÝÁö, żµżřÇŃ »ç¶űŔÇ Ćć´řĆ®ŔÇ °ćżě
    // ±âÁ¸ŔÇ Çϵĺ ÄÚµůŔ¸·Î °­Á¦·Î ĽÓĽşŔ» şÎż©ÇßÁö¸¸,
    // ±× şÎşĐŔ» Á¦°ĹÇϰí special item group Ĺ×ŔĚşíżˇĽ­ ĽÓĽşŔ» şÎż©Çϵµ·Ď şŻ°ćÇĎż´´Ů.
    // ÇĎÁö¸¸ Çϵĺ ÄÚµůµÇľîŔÖŔ» ¶§ »ýĽşµČ ľĆŔĚĹŰŔĚ ł˛ľĆŔÖŔ» Ľöµµ Ŕ־ ĆŻĽöĂł¸® ÇŘłő´Â´Ů.
    // ŔĚ ľĆŔĚĹ۵éŔÇ °ćżě, ąŘżˇ ITEM_UNIQUEŔĎ ¶§ŔÇ Ăł¸®·Î ĽÓĽşŔĚ şÎż©µÇ±â ¶§ą®żˇ,
    // ľĆŔĚĹŰżˇ ąÚÇôŔÖ´Â attribute´Â ŔűżëÇĎÁö ľĘ°í łŃľî°Ł´Ů.
    if (true == CItemVnumHelper::IsRamadanMoonRing(GetVnum()) || true == CItemVnumHelper::IsHalloweenCandy(GetVnum())
        || true == CItemVnumHelper::IsHappinessRing(GetVnum()) || true == CItemVnumHelper::IsLovePendant(GetVnum()))
    {
        // Do not anything.
    }
    else
    {
        for (int i = 0; i < ITEM_ATTRIBUTE_MAX_NUM; ++i)
        {
            if (GetAttributeType(i))
            {
                const TPlayerItemAttribute& ia = GetAttribute(i);
                long sValue = ia.sValue;
                #ifdef __SASH_SYSTEM__
                if ((GetType() == ITEM_COSTUME) && (GetSubType() == COSTUME_SASH))
                {
                    double dValue = sValue * GetSocket(SASH_ABSORPTION_SOCKET);
                    dValue = (double)dValue / 100;
                    dValue = (double)dValue + .5;
                    sValue = (long) dValue;
                    if ((ia.sValue > 0) && (sValue <= 0))
                        sValue += 1;
                }
                #endif
                
                if (ia.bType == APPLY_SKILL)
                    m_pOwner->ApplyPoint(ia.bType, bAdd ? sValue : sValue ^ 0x00800000);
                else
                    m_pOwner->ApplyPoint(ia.bType, bAdd ? sValue : -sValue);
            }
        }
    }

 

item.cpp:642: error: request for member 'bType' in '((CItem*)this)->CItem::m_pProto->SItemTable::aApplies', which is of non-class type 'const TItemApply [3]'
item.cpp:644: error: request for member 'lValue' in '((CItem*)this)->CItem::m_pProto->SItemTable::aApplies', which is of non-class type 'const TItemApply [3]'
item.cpp:645: error: request for member 'bType' in '((CItem*)this)->CItem::m_pProto->SItemTable::aApplies', which is of non-class type 'const TItemApply [3]'
item.cpp:647: error: request for member 'bType' in '((CItem*)this)->CItem::m_pProto->SItemTable::aApplies', which is of non-class type 'const TItemApply [3]'
item.cpp:653: error: request for member 'bType' in '((CItem*)this)->CItem::m_pProto->SItemTable::aApplies', which is of non-class type 'const TItemApply [3]'
item.cpp:657: error: 'bType' was not declared in this scope
item.cpp:660: error: 'value' was not declared in this scope
item.cpp:662: error: 'value' was not declared in this scope
item.cpp:665: error: 'value' was not declared in this scope
item.cpp: At global scope:
item.cpp:673: error: expected unqualified-id before 'if'
item.cpp:678: error: expected unqualified-id before 'else'

 

 

 

Opublikowano

for (int i = 0; i < ITEM_APPLY_MAX_NUM; ++i)
    {
        if (m_pProto->aApplies.bType == APPLY_NONE)
            continue; 
            long value = m_pProto->aApplies.lValue; 
            if (m_pProto->aApplies.bType == APPLY_SKILL)
        {
            m_pOwner->ApplyPoint(m_pProto->aApplies.bType, bAdd ? value : value ^ 0x00800000);
        }
        else
        {
            if (0 != accessoryGrade)
                value += MAX(accessoryGrade, value * aiAccessorySocketEffectivePct[accessoryGrade] / 100); 
                m_pOwner->ApplyPoint(m_pProto->aApplies.bType, bAdd ? value : -value);
        }
    }
        
        if (bType != APPLY_SKILL)
        {
            if (accessoryGrade != 0)
                value += MAX(accessoryGrade, value * aiAccessorySocketEffectivePct[accessoryGrade] / 100);
            
            m_pOwner->ApplyPoint(bType, bAdd ? value : -value);
        }
        else
            m_pOwner->ApplyPoint(bType, bAdd ? value : value ^ 0x00800000);
    }
    // Ăʽ´ŢŔÇ ąÝÁö, ÇŇ·ÎŔ© »çĹÁ, ÇŕşąŔÇ ąÝÁö, żµżřÇŃ »ç¶űŔÇ Ćć´řĆ®ŔÇ °ćżě
    // ±âÁ¸ŔÇ Çϵĺ ÄÚµůŔ¸·Î °­Á¦·Î ĽÓĽşŔ» şÎż©ÇßÁö¸¸,
    // ±× şÎşĐŔ» Á¦°ĹÇϰí special item group Ĺ×ŔĚşíżˇĽ­ ĽÓĽşŔ» şÎż©Çϵµ·Ď şŻ°ćÇĎż´´Ů.
    // ÇĎÁö¸¸ Çϵĺ ÄÚµůµÇľîŔÖŔ» ¶§ »ýĽşµČ ľĆŔĚĹŰŔĚ ł˛ľĆŔÖŔ» Ľöµµ Ŕ־ ĆŻĽöĂł¸® ÇŘłő´Â´Ů.
    // ŔĚ ľĆŔĚĹ۵éŔÇ °ćżě, ąŘżˇ ITEM_UNIQUEŔĎ ¶§ŔÇ Ăł¸®·Î ĽÓĽşŔĚ şÎż©µÇ±â ¶§ą®żˇ,
    // ľĆŔĚĹŰżˇ ąÚÇôŔÖ´Â attribute´Â ŔűżëÇĎÁö ľĘ°í łŃľî°Ł´Ů.
    if (true == CItemVnumHelper::IsRamadanMoonRing(GetVnum()) || true == CItemVnumHelper::IsHalloweenCandy(GetVnum())
        || true == CItemVnumHelper::IsHappinessRing(GetVnum()) || true == CItemVnumHelper::IsLovePendant(GetVnum()))
    {
        // Do not anything.
    }
    else
    {
        for (int i = 0; i < ITEM_ATTRIBUTE_MAX_NUM; ++i)
        {
            if (GetAttributeType(i))
            {
                const TPlayerItemAttribute& ia = GetAttribute(i);
                long sValue = ia.sValue;
                
                if (ia.bType == APPLY_SKILL)
                    m_pOwner->ApplyPoint(ia.bType, bAdd ? sValue : sValue ^ 0x00800000);
                else
                    m_pOwner->ApplyPoint(ia.bType, bAdd ? sValue : -sValue);
            }
        }
    }

Opublikowano
1 godzinę temu, Exemir.eu napisał:

for (int i = 0; i < ITEM_APPLY_MAX_NUM; ++i)
    {
        if (m_pProto->aApplies.bType == APPLY_NONE)
            continue; 
            long value = m_pProto->aApplies.lValue; 
            if (m_pProto->aApplies.bType == APPLY_SKILL)
        {
            m_pOwner->ApplyPoint(m_pProto->aApplies.bType, bAdd ? value : value ^ 0x00800000);
        }
        else
        {
            if (0 != accessoryGrade)
                value += MAX(accessoryGrade, value * aiAccessorySocketEffectivePct[accessoryGrade] / 100); 
                m_pOwner->ApplyPoint(m_pProto->aApplies.bType, bAdd ? value : -value);
        }
    }
        
        if (bType != APPLY_SKILL)
        {
            if (accessoryGrade != 0)
                value += MAX(accessoryGrade, value * aiAccessorySocketEffectivePct[accessoryGrade] / 100);
            
            m_pOwner->ApplyPoint(bType, bAdd ? value : -value);
        }
        else
            m_pOwner->ApplyPoint(bType, bAdd ? value : value ^ 0x00800000);
    }
    // Ăʽ´ŢŔÇ ąÝÁö, ÇŇ·ÎŔ© »çĹÁ, ÇŕşąŔÇ ąÝÁö, żµżřÇŃ »ç¶űŔÇ Ćć´řĆ®ŔÇ °ćżě
    // ±âÁ¸ŔÇ Çϵĺ ÄÚµůŔ¸·Î °­Á¦·Î ĽÓĽşŔ» şÎż©ÇßÁö¸¸,
    // ±× şÎşĐŔ» Á¦°ĹÇϰí special item group Ĺ×ŔĚşíżˇĽ­ ĽÓĽşŔ» şÎż©Çϵµ·Ď şŻ°ćÇĎż´´Ů.
    // ÇĎÁö¸¸ Çϵĺ ÄÚµůµÇľîŔÖŔ» ¶§ »ýĽşµČ ľĆŔĚĹŰŔĚ ł˛ľĆŔÖŔ» Ľöµµ Ŕ־ ĆŻĽöĂł¸® ÇŘłő´Â´Ů.
    // ŔĚ ľĆŔĚĹ۵éŔÇ °ćżě, ąŘżˇ ITEM_UNIQUEŔĎ ¶§ŔÇ Ăł¸®·Î ĽÓĽşŔĚ şÎż©µÇ±â ¶§ą®żˇ,
    // ľĆŔĚĹŰżˇ ąÚÇôŔÖ´Â attribute´Â ŔűżëÇĎÁö ľĘ°í łŃľî°Ł´Ů.
    if (true == CItemVnumHelper::IsRamadanMoonRing(GetVnum()) || true == CItemVnumHelper::IsHalloweenCandy(GetVnum())
        || true == CItemVnumHelper::IsHappinessRing(GetVnum()) || true == CItemVnumHelper::IsLovePendant(GetVnum()))
    {
        // Do not anything.
    }
    else
    {
        for (int i = 0; i < ITEM_ATTRIBUTE_MAX_NUM; ++i)
        {
            if (GetAttributeType(i))
            {
                const TPlayerItemAttribute& ia = GetAttribute(i);
                long sValue = ia.sValue;
                
                if (ia.bType == APPLY_SKILL)
                    m_pOwner->ApplyPoint(ia.bType, bAdd ? sValue : sValue ^ 0x00800000);
                else
                    m_pOwner->ApplyPoint(ia.bType, bAdd ? sValue : -sValue);
            }
        }
    }

Dalej te same errory.

 

 

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...