Ir para conteúdo
Faça parte da equipe! (2024) ×
Conheça nossa Beta Zone! Novas áreas a caminho! ×
  • Quem está por aqui   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.

descompilação GetItemAbility(NoSanc, Static, Bonus e item) 762 W2PP


lord320
 Compartilhar

Posts Recomendados

NoSanc

É necessário se cadastrar para acessar o conteúdo.

 

Item

É necessário se cadastrar para acessar o conteúdo.

 

Static

É necessário se cadastrar para acessar o conteúdo.

 

Bonus

É necessário se cadastrar para acessar o conteúdo.

 

Como todos nós sabemos o calculo não é 100% preciso então resolvi fazer essa descompilação, essa descompilação  promete corrigir calculo dos atributos do itens foi retirada do .exe

 

redefinir as refinações assim para que funcione 100%(Pode haver algum erro até onde eu testei está 100% funcional)

#define REF_10 10

#define REF_11 11

#define REF_12 12

#define REF_13 13

#define REF_14 14

#define REF_15 15

 

Por favor, caso não queria corrigir o "erro" Evite resposta flame na publicação.

 

Créditos:

 @yukita

@lord320

Link para o comentário
Compartilhar em outros sites

9 horas atrás, lord320 disse:

NoSanc

Conteúdo escondido! Para visualizar você precisa dar LIKE neste tópico.

 

  Mostrar conteúdo oculto

//----- (005373C9) --------------------------------------------------------
int BASE_GetItemAbilityNosanc(STRUCT_ITEM* item, unsigned char Type)
{

    if (item->sIndex <= 0 || item->sIndex > 6500)
        return 0;

    if (item->sIndex >= 3200 && item->sIndex <= 3300)
        return 0;

    int Value = 0;
    int Unique = g_pItemList[item->sIndex].nUnique;

    if ((Type == 67 || Type == 68) && (Unique < 41 || Unique > 50))
        Value = 0;
    if (Type == 42 && (item->stEffect[1].cEffect == 71 || item->stEffect[2].cEffect == 71))
        Type = 71;
    if (Type == 2 && g_pItemList[item->sIndex].nPos == 32 && (item->stEffect[1].cEffect == 73 || item->stEffect[2].cEffect == 73))
        Type = 73;
    if (Type == 46 && (item->stEffect[1].cEffect == 70 || item->stEffect[2].cEffect == 70))
        Type = 70;
    if (Type == 45 && (item->stEffect[1].cEffect == 69 || item->stEffect[2].cEffect == 69))
        Type = 69;
    if (Type == 53 && (item->stEffect[1].cEffect == 72 || item->stEffect[2].cEffect == 72))
        Type = 72;

    if (Type == 1)
        Value += g_pItemList[item->sIndex].ReqLvl;

    if (Type == 22)
        Value += g_pItemList[item->sIndex].ReqStr;

    if (Type == 23)
        Value += g_pItemList[item->sIndex].ReqInt;

    if (Type == 24)
        Value += g_pItemList[item->sIndex].ReqDex;

    if (Type == 25)
        Value += g_pItemList[item->sIndex].ReqCon;

    if (Type == 17)
        Value += g_pItemList[item->sIndex].nPos;

    if (Type != 78)
    {
        for (int i = 0; i < 12; ++i)
        {
            if (g_pItemList[item->sIndex].stEffect.sEffect == Type)
            {
                int v7 = g_pItemList[item->sIndex].stEffect.sValue;

                if (Type == 26 && v7 == 1)
                    v7 = 10;

                Value += v7;
            }
        }
    }
    if (item->sIndex < 2330 || item->sIndex >= 2390)
    {
        if (item->sIndex < 3980 || item->sIndex >= 4000)
        {
            for (int j = 0; j < 3; ++j)
            {
                if (item->stEffect[j].cEffect == Type)
                {
                    int v3 = item->stEffect[j].cValue;
                    if (Type == 26 && v3 == 1)
                        v3 = 10;

                    Value += v3;
                }
            }
        }
        else
        {
            int v4 = item->sIndex - 3980;
            switch (Type)
            {
            case 2: {
                Value = g_pMountTempBonus[v4][0];
                break;
            }
            case 60: {
                Value = g_pMountTempBonus[v4][1];
                break;
            }
            case 40: {
                Value = g_pMountTempBonus[v4][2];
                break;
            }
            case 49:
            case 50:
            case 51:
            case 52:
            case 53:
            case 54: {
                Value = g_pMountTempBonus[v4][3];
                break;
            }
            default: {
                Value = Value;
                break;
            }
            }
        }
    }
    else
    {
        if (Type == EF_MOUNTHP)
            return item->stEffect[0].cValue;

        if (Type == EF_MOUNTSANC)
            return item->stEffect[1].cEffect;

        if (Type == EF_MOUNTLIFE)
            return item->stEffect[1].cValue;

        if (Type == EF_MOUNTFEED)
            return item->stEffect[2].cEffect;

        if (Type == EF_MOUNTKILL)
            return item->stEffect[2].cValue;

        if (item->sIndex < 2362 || item->sIndex >= 2390 || item->stEffect[0].sValue <= 0)
            return Value;

        int v5 = item->stEffect[1].cEffect;
        int v6 = item->sIndex - 2360;

        if (Type == EF_DAMAGE)
            Value = g_pMountBonus[v6][0] * (v6 + 20) / 100;

        if (Type == EF_MAGIC)
            Value = g_pMountBonus[v6][1] * (v6 + 15) / 100;

        if (Type == EF_PARRY)
            Value = g_pMountBonus[v6][2];

        if (Type == EF_RESISTALL || Type == EF_RESIST1 || Type == EF_RESIST2 || Type == EF_RESIST3 || Type == EF_RESIST4)
            Value = g_pMountBonus[v6][3];
    }

    if (Type == EF_RESIST1 || Type == EF_RESIST2 || Type == EF_RESIST3 || Type == EF_RESIST4)
    {
        for (int i = 0; i < MAX_STATICEFFECT; i++)
        {
            if (g_pItemList[item->sIndex].stEffect.sEffect == EF_RESISTALL)
                Value += g_pItemList[item->sIndex].stEffect.sValue;
        }

        for (int i = 0; i < 3; i++)
        {
            if (item->stEffect.cEffect == EF_RESISTALL)
                Value += item->stEffect.cValue;
        }
    }

    return Value;
}

 

 

 

 

Item

 

Conteúdo escondido! Para visualizar você precisa dar LIKE neste tópico.

 

  Mostrar conteúdo oculto

//----- (00537962) --------------------------------------------------------
int BASE_GetItemAbility(STRUCT_ITEM* item, unsigned char Type)
{
    if (item->sIndex <= 0 || item->sIndex > 6500)
        return 0;

    int Value = 0;
    int Unique = g_pItemList[item->sIndex].nUnique;
    int Pos = g_pItemList[item->sIndex].nPos;

    if ((Type == 67 || Type == 68) && (Unique < 41 || Unique > 50))
        Value = 0;

    if (Type == 42 && (item->stEffect[1].cEffect == 71 || item->stEffect[2].cEffect == 71))
        Type = 71;
    if (Type == 2 && Pos == 32 && (item->stEffect[1].cEffect == 73 || item->stEffect[2].cEffect == 73))
        Type = 73;
    if (Type == 46 && (item->stEffect[1].cEffect == 70 || item->stEffect[2].cEffect == 70))
        Type = 70;
    if (Type == 45 && (item->stEffect[1].cEffect == 69 || item->stEffect[2].cEffect == 69))
        Type = 69;
    if (Type == 53 && (item->stEffect[1].cEffect == 72 || item->stEffect[2].cEffect == 72))
        Type = 72;


     if (Type == EF_LEVEL)
        Value += g_pItemList[item->sIndex].ReqLvl;

    if (Type == 22)
        Value += g_pItemList[item->sIndex].ReqStr;

    if (Type == 23)
        Value += g_pItemList[item->sIndex].ReqInt;

    if (Type == 24)
        Value += g_pItemList[item->sIndex].ReqDex;

    if (Type == 25)
        Value += g_pItemList[item->sIndex].ReqCon;

    if (Type == 17)
        Value += g_pItemList[item->sIndex].nPos;

    if (Type != 78)
    {
        for (int i = 0; i < 12; ++i)
        {
            if (g_pItemList[item->sIndex].stEffect.sEffect == Type || g_pItemList[item->sIndex].stEffect.sEffect == 45 && Type == 69)
            {
                int v8 = g_pItemList[item->sIndex].stEffect.sValue;

                if (Type == 26 && v8 == 1)
                    v8 = 10;

                Value += v8;
            }
        }
    }

    if (Type == EF_RESIST1 || Type == EF_RESIST2 || Type == EF_RESIST3 || Type == EF_RESIST4)
    {
        for (int i = 0; i < MAX_STATICEFFECT; i++)
        {
            if (g_pItemList[item->sIndex].stEffect.sEffect == EF_RESISTALL)
                Value += g_pItemList[item->sIndex].stEffect.sValue;
        }

        for (int i = 0; i < 3; i++)
        {
            if (item->stEffect.cEffect == EF_RESISTALL)
                Value += item->stEffect.cValue;
        }
    }

    if (item->sIndex < 2330 || item->sIndex >= 2390)
    {
        if (item->sIndex < 3980 || item->sIndex >= 4000)
        {
            for (int j = 0; j < 3; ++j)
            {
                if (item->stEffect[j].cEffect == Type)
                {
                    int v4 = item->stEffect[j].cValue;

                    if (Type == 26 && v4 == 1)
                        v4 = 10;

                    Value += v4;
                }
            }

            int Sanc = BASE_GetItemSanc(item);

            if (item->sIndex <= 40)
                Sanc = 0;

            if (Sanc >= 9 && Pos & 0xF00)
                ++Sanc;

            if (Sanc
                && Type != EF_GRID
                && Type != EF_CLASS
                && Type != EF_POS
                && Type != EF_WTYPE
                && Type != EF_RANGE
                && Type != EF_LEVEL
                && Type != EF_REQ_STR
                && Type != EF_REQ_INT
                && Type != EF_REQ_DEX
                && Type != EF_REQ_CON
                && Type != EF_VOLATILE
                && Type != EF_INCUBATE
                && Type != EF_INCUDELAY
                && Type != EF_MOBTYPE
                && Type != EF_ITEMLEVEL                
                && Type != EF_REGENMP
                && Type != EF_REGENHP
                && Type != EF_ITEMTYPE
                && Type != EF_NOTRADE
                && Type != EF_NOSANC
                && Type != EF_HONRA
                && Type != EF_DONATE)
            {
                if (Sanc > 10)
                {
                    if (Sanc >= 11)
                    {
                        int v3 = Sanc - 10;
                        if (Sanc == 11)
                        {
                            v3 = 220;
                        }
                        else
                        {
                            switch (v3)
                            {
                            case 2:
                                v3 = 250;
                                break;
                            case 3:
                                v3 = 280;
                                break;
                            case 4:
                                v3 = 320;
                                break;
                            case 5:
                                v3 = 370;
                                break;
                            case 6:
                                v3 = 400;
                                break;
                            }
                        }
                        Value = v3 * 10 * Value / 100 / 10;
                    }
                }
                else
                {
                    Value = (Sanc + 10) * Value / 10;
                }

            }

            if (Type == 29)
            {
                if (Value >= 3)
                    Value = 2;

                if (Value > 0 && Sanc >= 9)
                    ++Value;
            }
            if (Type == 56 || Type == 57) {
                Value = Value;
            }

            if (Type == 48 || Type == 47) {
                Value *= Sanc;
            }

            if (Type == 33 && (Value < 0 || Value > 7)) {
                Value = 0;
            }

        }
        else
        {
            int v5 = item->sIndex - 3980;
            switch (Type)
            {
            case 2:
            {
                Value = g_pMountTempBonus[v5][0];
                break;
            }
            case 60: {
                Value = g_pMountTempBonus[v5][1];
                break;
            }
            case 40: {
                Value = g_pMountTempBonus[v5][2];
                break;
            }
            case 49:
            case 50:
            case 51:
            case 52:
            case 53:
            case 54: {
                Value = g_pMountTempBonus[v5][3];
                break;
            }
            default: {
                Value = Value;
                break;
            }
            }
        }
    }
    else
    {
        if (Type == EF_MOUNTHP)
            Value = item->stEffect[0].cValue;

        if (Type == EF_MOUNTSANC)
            Value = item->stEffect[1].cEffect;

        if (Type == EF_MOUNTLIFE)
            Value = item->stEffect[1].cValue;

        if (Type == EF_MOUNTFEED)
            Value = item->stEffect[2].cEffect;

        if (Type == EF_MOUNTKILL)
            Value = item->stEffect[2].cValue;

        if (item->sIndex < 2362 || item->sIndex >= 2390 || item->stEffect[0].sValue <= 0)
            Value = Value;

        int v6 = item->stEffect[1].cEffect;
        int v7 = item->sIndex - 2360;

        switch (Type)
        {
        case 2:
        {
            Value = g_pMountBonus[v7][0] * (v6 + 20) / 100;
            break;
        }
        case 60: {
            Value = g_pMountBonus[v7][1] * (v6 + 15) / 100;
            break;
        }
        case 40: {
            Value = g_pMountBonus[v7][2];
            break;
        }
        case 49:
        case 50:
        case 51:
        case 52:
        case 53:
        case 54: {
            Value = g_pMountBonus[v7][3];
            break;
        }
        default: {
            Value = Value;
            break;
        }
        }

    }
    return Value;
}

 

 

 

 

Static

 

Conteúdo escondido! Para visualizar você precisa dar LIKE neste tópico.

 

  Ocultar conteúdo

//----- (0053821E) --------------------------------------------------------
int BASE_GetStaticItemAbility(STRUCT_ITEM* item, unsigned char Type)
{
    if (item->sIndex <= 0 || item->sIndex > 6500)
        return 0;

    if (item->sIndex >= 3200 && item->sIndex <= 3300)
        return 0;

    int value = 0;

    int Pos = g_pItemList[item->sIndex].nPos;

    if (Type == 1)
        value += g_pItemList[item->sIndex].ReqLvl;
    if (Type == 22)
        value += g_pItemList[item->sIndex].ReqStr;
    if (Type == 23)
        value += g_pItemList[item->sIndex].ReqInt;
    if (Type == 24)
        value += g_pItemList[item->sIndex].ReqDex;
    if (Type == 25)
        value += g_pItemList[item->sIndex].ReqCon;
    if (Type == 17)
        value += g_pItemList[item->sIndex].nPos;

    if (Type != 78)
    {
        for (int i = 0; i < 12; ++i)
        {
            if (g_pItemList[item->sIndex].stEffect.sEffect == Type)
            {
                int v7 = g_pItemList[item->sIndex].stEffect.sValue;
                if (Type == 26 && v7 == 1)
                    v7 = 10;

                value += v7;
            }
        }
    }

    if (Type == EF_RESIST1 || Type == EF_RESIST2 || Type == EF_RESIST3 || Type == EF_RESIST4)
    {
        for (int i = 0; i < MAX_STATICEFFECT; i++)
        {
            if (g_pItemList[item->sIndex].stEffect.sEffect == EF_RESISTALL)
                value += g_pItemList[item->sIndex].stEffect.sValue;
        }

        for (int i = 0; i < 3; i++)
        {
            if (item->stEffect.cEffect == EF_RESISTALL)
                value += item->stEffect.cValue;
        }
    }

    if (item->sIndex < 2330 || item->sIndex >= 2390)
    {
        if (item->sIndex < 3980 || item->sIndex >= 4000)
        {
            int Sanc = BASE_GetItemSanc(item);

            if (Sanc >= 9 && Pos & 0xF00)
                ++Sanc;

            if (Sanc
                && Type != EF_GRID
                && Type != EF_CLASS
                && Type != EF_POS
                && Type != EF_WTYPE
                && Type != EF_RANGE
                && Type != EF_LEVEL
                && Type != EF_REQ_STR
                && Type != EF_REQ_INT
                && Type != EF_REQ_DEX
                && Type != EF_REQ_CON
                && Type != EF_VOLATILE
                && Type != EF_INCUBATE
                && Type != EF_INCUDELAY
                && Type != EF_MOBTYPE
                && Type != EF_ITEMLEVEL            
                && Type != EF_REGENMP
                && Type != EF_REGENHP
                && Type != EF_ITEMTYPE
                && Type != EF_NOTRADE
                && Type != EF_NOSANC
                && Type != EF_HONRA
                && Type != EF_DONATE
                )
            {
                if (Sanc > 10)
                {
                    if (Sanc >= 11)
                    {
                        int v3 = Sanc - 10;
                        if (Sanc == 11)
                        {
                            v3 = 220;
                        }
                        else
                        {
                            switch (v3)
                            {
                            case 2:
                                v3 = 250;
                                break;
                            case 3:
                                v3 = 280;
                                break;
                            case 4:
                                v3 = 320;
                                break;
                            case 5:
                                v3 = 370;
                                break;
                            case 6:
                                v3 = 400;
                                break;
                            }
                        }
                        value = v3 * 10 * value / 100 / 10;
                    }
                }
                else
                {
                    value = (Sanc + 10) * value / 10;
                }
            }
            if (Type == 29)
            {
                if (value >= 3)
                    value = 2;

                if (value > 0 && Sanc >= 9)
                    ++value;
            }
            if (Type == 56 || Type == 57)
                value = value;

            if (Type == 48 || Type == 47)
                value *= Sanc;

        }
        else
        {
            int v4 = item->sIndex - 3980;
            switch (Type)
            {
            case 2: {
                value = g_pMountTempBonus[v4][0];
                break; }
            case 60: {
                value = g_pMountTempBonus[v4][1];
                break;
            }
            case 40: {
                value = g_pMountTempBonus[v4][2];
                break;
            }
            case 49:
            case 50:
            case 51:
            case 52:
            case 53:
            case 54: {
                value = g_pMountTempBonus[v4][3];
                break;
            }
            default: {
                value = value;
                break;
            }
            }
        }
    }
    else
    {
        if (Type == EF_MOUNTHP)
            return item->stEffect[0].cValue;

        else if (Type == EF_MOUNTSANC)
            return item->stEffect[1].cEffect;

        else if (Type == EF_MOUNTLIFE)
            return item->stEffect[1].cValue;

        else if (Type == EF_MOUNTFEED)
            return item->stEffect[2].cEffect;

        else if (Type == EF_MOUNTKILL)
            return item->stEffect[2].cValue;

        if (item->sIndex < 2362 || item->sIndex >= 2390 || item->stEffect[0].sValue <= 0)
            value = value;

        int v6 = item->stEffect[1].cEffect;
        int v7 = item->sIndex - 2360;

        switch (Type)
        {
        case 2:
        {
            value = g_pMountBonus[v7][0] * (v6 + 20) / 100;
            break;
        }
        case 60: {
            value = g_pMountBonus[v7][1] * (v6 + 15) / 100;
            break;
        }
        case 40: {
            value = g_pMountBonus[v7][2];
            break;
        }
        case 49:
        case 50:
        case 51:
        case 52:
        case 53:
        case 54: {
            value = g_pMountBonus[v7][3];
            break;
        }
        default: {
            value = value;
            break;
        }
        }
    }
    return value;
}
 

 

 

 

 

Bonus

 

Conteúdo escondido! Para visualizar você precisa dar LIKE neste tópico.

 

  Ocultar conteúdo

//----- (005388C3) --------------------------------------------------------
int BASE_GetBonusItemAbility(STRUCT_ITEM* item, unsigned char Type)
{
    int Value = 0;
    if (item->sIndex < 2330 || item->sIndex >= 2390)
    {
        if (item->sIndex < 3980 || item->sIndex >= 4000)
        {
            if (item->sIndex > 0 && item->sIndex <= 6500)
            {
                if (item->sIndex < 3200 || item->sIndex > 3300)
                {
                    int v6 = g_pItemList[item->sIndex].nPos;
                    for (int i = 0; i < 3; ++i)
                    {
                        if (item->stEffect.cEffect == Type)
                        {
                            int v4 = item->stEffect.cValue;
                            if (Type == 26 && v4 == 1)
                                v4 = 10;

                            Value += v4;
                        }
                    }

                    if (Type == EF_RESIST1 || Type == EF_RESIST2 || Type == EF_RESIST3 || Type == EF_RESIST4)
                    {
                        for (int i = 0; i < MAX_STATICEFFECT; i++)
                        {
                            if (g_pItemList[item->sIndex].stEffect.sEffect == EF_RESISTALL)
                                Value += g_pItemList[item->sIndex].stEffect.sValue;
                        }

                        for (int i = 0; i < 3; i++)
                        {
                            if (item->stEffect.cEffect == EF_RESISTALL)
                                Value += item->stEffect.cValue;
                        }
                    }

                    int Sanc = BASE_GetItemSanc(item);

                    if (Sanc >= 9 && v6 & 0xF00)
                        ++Sanc;

                    if (Sanc
                        && Type != EF_GRID
                        && Type != EF_CLASS
                        && Type != EF_POS
                        && Type != EF_WTYPE
                        && Type != EF_RANGE
                        && Type != EF_LEVEL
                        && Type != EF_REQ_STR
                        && Type != EF_REQ_INT
                        && Type != EF_REQ_DEX
                        && Type != EF_REQ_CON
                        && Type != EF_VOLATILE
                        && Type != EF_INCUBATE
                        && Type != EF_INCUDELAY
                        && Type != EF_MOBTYPE
                        && Type != EF_ITEMLEVEL                        
                        && Type != EF_REGENMP
                        && Type != EF_REGENHP
                        && Type != EF_ITEMTYPE
                        && Type != EF_NOTRADE
                        && Type != EF_NOSANC
                        && Type != EF_HONRA
                        && Type != EF_DONATE)
                    {
                        if (Sanc > 10)
                        {
                            if (Sanc >= 11)
                            {
                                int v3 = Sanc - 10;
                                if (Sanc == 11)
                                {
                                    v3 = 220;
                                }
                                else
                                {
                                    switch (v3)
                                    {
                                    case 2:
                                        v3 = 250;
                                        break;
                                    case 3:
                                        v3 = 280;
                                        break;
                                    case 4:
                                        v3 = 320;
                                        break;
                                    case 5:
                                        v3 = 370;
                                        break;
                                    case 6:
                                        v3 = 400;
                                        break;
                                    }
                                }
                                Value = ((v3 * 10) * Value) / 100 / 10;
                            }
                        }
                        else
                        {
                            Value = (Sanc + 10) * Value / 10;
                        }
                    }
                }
                else
                {
                    Value = 0;
                }
            }
            else
            {
                Value = 0;
            }
        }
        else
        {
            Value = 0;
        }
    }
    else
    {
        Value = 0;
    }

    return Value;
}

 

 

 

 

Como todos nós sabemos o calculo não é 100% preciso então resolvi fazer essa descompilação, essa descompilação  promete corrigir calculo dos atributos do itens foi retirada do .exe

 

redefinir as refinações assim para que funcione 100%(Pode haver algum erro até onde eu testei está 100% funcional)

#define REF_10 10

#define REF_11 11

#define REF_12 12

#define REF_13 13

#define REF_14 14

#define REF_15 15

 

Por favor, caso não queria corrigir o "erro" Evite resposta flame na publicação.

 

Créditos:

 @yukita

@lord320

desculpe a pergunta mais aonde coloca este codigo ? na source do ex ou na source do servidor release db e tm ou.... na clientpach ?

Editado por andrelina01
Link para o comentário
Compartilhar em outros sites

20 minutos atrás, andrelina01 disse:

desculpe a pergunta mais aonde coloca este codigo ? na source do ex ou na source do servidor release db e tm ou.... na clientpach ?

Source do Servidor.

 

Link para o comentário
Compartilhar em outros sites

Fala mano vou deixar aqui a BASE_GetItemAbility que descompilei da TM 1.7, ja tinha feito ela na TM 1.2 a muito tempo atras entao so atualizei para as mudancas da 1.7 se quiser dar uma olhada ta ai, tenho as outras tbm se quiser posto aqui.

 

É necessário se cadastrar para acessar o conteúdo.

 

o codigo é bem comentado entao quem quiser dar uma olhada em  como é o codigo compilado na tm e como é o codigo fonte, da pra pegar bem a nocao da descompilação. 

Editado por gcr_fc

Discord: GuiCandiotto

Link para o comentário
Compartilhar em outros sites

15 horas atrás, gcr_fc disse:

Fala mano vou deixar aqui a BASE_GetItemAbility que descompilei da TM 1.7, ja tinha feito ela na TM 1.2 a muito tempo atras entao so atualizei para as mudancas da 1.7 se quiser dar uma olhada ta ai, tenho as outras tbm se quiser posto aqui.

 

É necessário se cadastrar para acessar o conteúdo.

 

o codigo é bem comentado entao quem quiser dar uma olhada em  como é o codigo compilado na tm e como é o codigo fonte, da pra pegar bem a nocao da descompilação. 

Perfeito!

Link para o comentário
Compartilhar em outros sites

Participe da Conversa

Você pode postar agora e se cadastrar mais tarde. Cadastre-se Agora para publicar com Sua Conta.
Observação: sua postagem exigirá aprovação do moderador antes de ficar visível.

Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.

 Compartilhar

×
×
  • Criar Novo...

Informação Importante

Nós fazemos uso de cookies no seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies , caso contrário, vamos supor que você está bem para continuar.