Jump to content
  • 0

EDDA Enchantment


Frozek

Question


  • Group:  Members
  • Topic Count:  20
  • Topics Per Day:  0.01
  • Content Count:  37
  • Reputation:   0
  • Joined:  10/30/18
  • Last Seen:  

Hello guys, I'm making this EDDA enchantment NPC, I would like to put it to have the fixed enchantment option, but I'm having a little difficulty with it, can anyone help me?

 

Spoiler

//============================================================
//====== start npc
//============================================================
yuno,210,343,3    script    Encantos de Edda    105,{
    setArray .@weapons[0],21051,21052,32023,1333,16092,28138,28765,28766,28044,28042,26158,2055,2056,26161,16095,18185,18187,18186,32350,32024,32025,32351,16093,16094,28767,28768,18184,28633,26159,26160,1865,1866,16096,18188,26212,26213,32107,32108;
    setArray .@enchant1[0],4832,4833,4834,4808,4820,4821,4818,4817,4816,4863,4864,4865,4815,4814,4813;
    setArray .@enchant2[0],29594,29595,29596,29598,29599,29600,29601,29602,29603,29604,29605,29606,29607;
    
    .@isEdda = 0;
    
    mes "[Encantos de Edda]";
    .@weap = getequipid(EQI_HAND_R);
    .@refine = getequiprefinerycnt(EQI_HAND_R);
    .@card0 = getequipcardid(EQI_HAND_R,0);
    .@card1 = getequipcardid(EQI_HAND_R,1);
    .@card2 = getequipcardid(EQI_HAND_R,2);
    .@card3 = getequipcardid(EQI_HAND_R,3);
    
    
    
    for(.@i = 0; .@i < 38; .@i++) {
        if(.@weapons[.@i] == .@weap){
            .@isEdda = 1;
        } 
    }
    if(.@isEdda == 0) {
        mes "Vamos lá, você precisa de uma arma Edda Equipada.";
    
        end;
    }

    if(.@card2 != 0 && .@card3 != 0){
        mes "você deseja reencantar o seu equipamento Edda?";
        
        switch(select("Sim 3º Slot", "Sim 4º Slot", "Nenhum")){
            case 1:
                mes "O modo Normal irá custar 500 Documento de Pesquisa Biológica e 500 Fragmento de Experiência Biológica.";
                mes "Com uma chance de 5% que falhe e quebre sua Arma!";
                next;
                mes "O modo Seguro irá custar 2000 Documento de Pesquisa Biológica e 2000 Fragmento de Experiência Biológica.";
                mes "No modo Seguro sua Arma não se quebrará!";
                next;
                mes "O modo Específico irá custar 5000 Documento de Pesquisa Biológica.";
                mes "No modo Específico você pode escolher o Encantamento que desejar.!";
                
                switch(select("Modo Normal", "Modo Seguro", "Modo Específico")){
                    case 1:
                        if(countitem(25786) < 500 && countitem(25787) < 500) {
                            mes "Você não tem a quantidade de itens suficientes. ";
                            end;
                        }
                        delitem 25786,500;
                        delitem 25787,500;
                        if(rand(20) == 1){
                            delequip EQI_HAND_R;
                            mes "Que Pena...";
                            end;
                        }
                        .@card2 = .@enchant2[rand(13)];
                        delequip EQI_HAND_R;
                        getitem2 .@weap,1,1,.@refine,0,.@card0,.@card1,.@card2,.@card3;
                        end;
                    case 2:
                        .@card2 = .@enchant2[rand(13)];
                        if(countitem(25786) < 2000 && countitem(25787) < 2000) {
                            mes "Você não tem a quantidade de itens suficientes.";
                            end;
                        }
                        delitem 25786,2000;
                        delitem 25787,2000;
                        delequip EQI_HAND_R;
                        getitem2 .@weap,1,1,.@refine,0,.@card0,.@card1,.@card2,.@card3;
                        end;
                case 3:
                    mes "Você quer dizer trocar o encantamento, certo?";
                    mes "Vamos lá, você precisa de uma arma Edda Equipada.";
                    next;
                    mes "[Encantos de Edda]";
            if(.@isEdda == 1) {
                mes "Qual bônus de encantamento você deseja atualizar?";
                next;
                switch (select("Memória de Seyren:Memória de Howard's:Memória de Eremes:Memória de Kathryne:Memória de Margaretha:Memória de Cecil:Memória de Randel:Memória de Flamel:Memória de Gertie:Memória de Celia:Memória de Chen:Memória de Trentini:Memória de Alphoccio:Deixa pra lá.")) {
                case 1: callsub S_Upgrade,"Seyren",29594;
                case 2: callsub S_Upgrade,"Howard's",29595;
                case 3: callsub S_Upgrade,"Eremes",29596;
                case 4: callsub S_Upgrade,"Kathryne",29598;
                case 5: callsub S_Upgrade,"Margaretha",29599;
                case 6: callsub S_Upgrade,"Cecil",29600;
                case 7: callsub S_Upgrade,"Randel",29601;
                case 8: callsub S_Upgrade,"Flamel",29602;
                case 9: callsub S_Upgrade,"Gertie",29603;
                case 10: callsub S_Upgrade,"Celia",29604;
                case 11: callsub S_Upgrade,"Chen",29605;
                case 12: callsub S_Upgrade,"Trentini",29606;
                case 13: callsub S_Upgrade,"Alphoccio",29607;
                case 14:
                    mes "[Encantos de Edda]";
                    mes "Por quê? Vai ser melhor do que é.";
                    mes "De qualquer forma, só podemos oferecer um Encanto.";
                    next;
                    mes "[Encantos de Edda]";
                    mes "O que você faz com isso é com você.";
                    close;
                }
            }
            mes "Primeiro venha com a Arma que você quer que eu atualize.";
            mes "Certifique-se de que está em equipada, entendeu?";
            close;
        }
    S_Upgrade:
            mes "[Encantos de Edda]";
            mes "Entendo.";
            mes "vou atualizar seu Equipamento.";
            mes "Tem certeza?";
            next;
            switch (select("Sim, eu tenho.:Não espere.")) {
        case 1:
            mes "[Encantos de Edda]";
            mes "Vou começar a troca ^4d4dffAtualizando "+ getarg(0) +"^000000..";
            next;
            mes "[Encantos de Edda]";
            mes "Olha Você aqui.";
            delitem 25786,5000;
            getitem2 .@weap,1,1,.@refine,0,.@card0,.@card1,getarg(1),.@card3;
            close;
        case 2:
            mes "[Encantos de Edda]";
            mes "Você não quer trocar?";
            close;
            }
            break;
            case 2:
                mes "O modo Normal lhe custará 200 Documentos de Pesquisa Biológica e 200 Fragmentos de Experiência Biológica";
                mes "com 5% de quebrar sua arma!";
                next;
                mes "O modo Seguro lhe custará 1000 Documento de Pesquisa Biológica e 1000 Fragmento de Experiência Biológica";
                mes "sem chance de quebrar sua arma!";
                
                switch(select("Modo Normal", "Modo Seguro")){
                    case 1:
                        if(countitem(25786) < 200 && countitem(25787) < 200) {
                            mes "Você não tem a quantidade de itens suficientes.";
                            end;
                        }
                        delitem 25786,200;
                        delitem 25787,200;
                        if(rand(20) == 1){
                            delequip EQI_HAND_R;
                            mes "Que pena...";
                            end;
                        }
                        delequip EQI_HAND_R;
                        getitem2 .@weap,1,1,.@refine,0,.@card0,.@card1,.@card2,.@card3;
                        end;
                    case 2:
                        .@card3 = .@enchant1[rand(15)];
                        delitem 25786,1000;
                        delitem 25787,1000;
                        delequip EQI_HAND_R;
                        getitem2 .@weap,1,1,.@refine,0,.@card0,.@card1,.@card2,.@card3;
                        end;
                }
            break;
            
            case 3:end;
        }
        
        end;
    }
    //@item 2056

    switch(select("Sim","não")){
        case 1:
            switch(select("Modo Normal", "Modo Seguro", "cancelar")){
                case 1:
                    .@safe = 0;
                    break;
                case 2:
                    .@safe = 1;
                    break;
                case 3: end;
            }
        
        
            if(.@card3 == 0) {
                if(.@safe == 0) mes "isto custará 50 Documentos de Pesquisa Biológica e 50 Fragmentos de Experiências Biológicas";
                else {
                    mes "isto custará 500 Documento de Pesquisa Biológica e 500 Fragmento de Experiência Biológica";
                    next;
                    mes "há uma pequena mudança para quebrar sua arma, quer continuar?";
                }
                next;
                switch(select("Sim","Não")){
                    case 1:
                        // 30% of the player loses the weapon;
                        if(rand(20) <= 2 && .@safe == 0){
                            delequip EQI_HAND_R;
                            mes "Que pena...";
                            end;
                            
                        }
                        break;
                    
                    case 2: 
                        mes "Ok...";
                        end;
                }
                
                if(countitem(25786) < 50 && countitem(25787) < 50){
                    mes "você não tem os materiais suficientes.";
                    end;
                }
                if(.@safe == 1){
                    delitem 25786,500;
                    delitem 25787,500;
                }
                else {
                    delitem 25786,50;
                    delitem 25787,50;
                }
                .@card3 = .@enchant1[rand(15)];
                break;
            }
            
            if(.@card2 == 0) {
                if(.@safe == 0) mes "isto custará 50 Documentos de Pesquisa Biológica e 50 Fragmentos de Experiências Biológicas";
                else {
                    mes "isto custará 500 Documento de Pesquisa Biológica e 500 Fragmento de Experiência Biológica";
                    next;
                    mes "há uma pequena mudança para quebrar sua arma, quer continuar?";
                }
                next;
                switch(select("Sim","Não")){
                    // 30% of the player loses the weapon;
                    case 1:
                        if(rand(20) <= 2 && .@safe == 0){
                            delequip EQI_HAND_R;
                            mes "Que pena...";
                            end;
                        }
                        break;
                    case 2: 
                        mes "Ok...";
                        end;
                }
                
                if(.@safe == 1){
                    if(countitem(25786) < 500 && countitem(25787) < 500){
                        mes "você não tem os materiais suficientes";
                        end;
                    }
                    delitem 25786,500;
                    delitem 25787,500;
                }
                else {
                    if(countitem(25786) < 50 && countitem(25787) < 50){
                        mes "você não tem os materiais suficientes";
                        end;
                    }
                    delitem 25786,50;
                    delitem 25787,50;
                }
                
                .@card2 = .@enchant2[rand(13)];
                break;
            }
            end;
        case 2:
            mes "ok...";
            end;
    }
    delequip EQI_HAND_R;
    getitem2 .@weap,1,1,.@refine,0,.@card0,.@card1,.@card2,.@card3;
    end;
}

in the subcall I tried to put the Enchantment IDs, but it is not changing the enchantment. 

look in switch "Modo Específico"

Link to comment
Share on other sites

1 answer to this question

Recommended Posts

  • 0

  • Group:  Members
  • Topic Count:  3
  • Topics Per Day:  0.00
  • Content Count:  15
  • Reputation:   12
  • Joined:  06/28/23
  • Last Seen:  

On 3/10/2022 at 8:37 PM, Frozek said:

Hello guys, I'm making this EDDA enchantment NPC, I would like to put it to have the fixed enchantment option, but I'm having a little difficulty with it, can anyone help me?

 

  Hide contents

//============================================================
//====== start npc
//============================================================
yuno,210,343,3    script    Encantos de Edda    105,{
    setArray .@weapons[0],21051,21052,32023,1333,16092,28138,28765,28766,28044,28042,26158,2055,2056,26161,16095,18185,18187,18186,32350,32024,32025,32351,16093,16094,28767,28768,18184,28633,26159,26160,1865,1866,16096,18188,26212,26213,32107,32108;
    setArray .@enchant1[0],4832,4833,4834,4808,4820,4821,4818,4817,4816,4863,4864,4865,4815,4814,4813;
    setArray .@enchant2[0],29594,29595,29596,29598,29599,29600,29601,29602,29603,29604,29605,29606,29607;
    
    .@isEdda = 0;
    
    mes "[Encantos de Edda]";
    .@weap = getequipid(EQI_HAND_R);
    .@refine = getequiprefinerycnt(EQI_HAND_R);
    .@card0 = getequipcardid(EQI_HAND_R,0);
    .@card1 = getequipcardid(EQI_HAND_R,1);
    .@card2 = getequipcardid(EQI_HAND_R,2);
    .@card3 = getequipcardid(EQI_HAND_R,3);
    
    
    
    for(.@i = 0; .@i < 38; .@i++) {
        if(.@weapons[.@i] == .@weap){
            .@isEdda = 1;
        } 
    }
    if(.@isEdda == 0) {
        mes "Vamos lá, você precisa de uma arma Edda Equipada.";
    
        end;
    }

    if(.@card2 != 0 && .@card3 != 0){
        mes "você deseja reencantar o seu equipamento Edda?";
        
        switch(select("Sim 3º Slot", "Sim 4º Slot", "Nenhum")){
            case 1:
                mes "O modo Normal irá custar 500 Documento de Pesquisa Biológica e 500 Fragmento de Experiência Biológica.";
                mes "Com uma chance de 5% que falhe e quebre sua Arma!";
                next;
                mes "O modo Seguro irá custar 2000 Documento de Pesquisa Biológica e 2000 Fragmento de Experiência Biológica.";
                mes "No modo Seguro sua Arma não se quebrará!";
                next;
                mes "O modo Específico irá custar 5000 Documento de Pesquisa Biológica.";
                mes "No modo Específico você pode escolher o Encantamento que desejar.!";
                
                switch(select("Modo Normal", "Modo Seguro", "Modo Específico")){
                    case 1:
                        if(countitem(25786) < 500 && countitem(25787) < 500) {
                            mes "Você não tem a quantidade de itens suficientes. ";
                            end;
                        }
                        delitem 25786,500;
                        delitem 25787,500;
                        if(rand(20) == 1){
                            delequip EQI_HAND_R;
                            mes "Que Pena...";
                            end;
                        }
                        .@card2 = .@enchant2[rand(13)];
                        delequip EQI_HAND_R;
                        getitem2 .@weap,1,1,.@refine,0,.@card0,.@card1,.@card2,.@card3;
                        end;
                    case 2:
                        .@card2 = .@enchant2[rand(13)];
                        if(countitem(25786) < 2000 && countitem(25787) < 2000) {
                            mes "Você não tem a quantidade de itens suficientes.";
                            end;
                        }
                        delitem 25786,2000;
                        delitem 25787,2000;
                        delequip EQI_HAND_R;
                        getitem2 .@weap,1,1,.@refine,0,.@card0,.@card1,.@card2,.@card3;
                        end;
                case 3:
                    mes "Você quer dizer trocar o encantamento, certo?";
                    mes "Vamos lá, você precisa de uma arma Edda Equipada.";
                    next;
                    mes "[Encantos de Edda]";
            if(.@isEdda == 1) {
                mes "Qual bônus de encantamento você deseja atualizar?";
                next;
                switch (select("Memória de Seyren:Memória de Howard's:Memória de Eremes:Memória de Kathryne:Memória de Margaretha:Memória de Cecil:Memória de Randel:Memória de Flamel:Memória de Gertie:Memória de Celia:Memória de Chen:Memória de Trentini:Memória de Alphoccio:Deixa pra lá.")) {
                case 1: callsub S_Upgrade,"Seyren",29594;
                case 2: callsub S_Upgrade,"Howard's",29595;
                case 3: callsub S_Upgrade,"Eremes",29596;
                case 4: callsub S_Upgrade,"Kathryne",29598;
                case 5: callsub S_Upgrade,"Margaretha",29599;
                case 6: callsub S_Upgrade,"Cecil",29600;
                case 7: callsub S_Upgrade,"Randel",29601;
                case 8: callsub S_Upgrade,"Flamel",29602;
                case 9: callsub S_Upgrade,"Gertie",29603;
                case 10: callsub S_Upgrade,"Celia",29604;
                case 11: callsub S_Upgrade,"Chen",29605;
                case 12: callsub S_Upgrade,"Trentini",29606;
                case 13: callsub S_Upgrade,"Alphoccio",29607;
                case 14:
                    mes "[Encantos de Edda]";
                    mes "Por quê? Vai ser melhor do que é.";
                    mes "De qualquer forma, só podemos oferecer um Encanto.";
                    next;
                    mes "[Encantos de Edda]";
                    mes "O que você faz com isso é com você.";
                    close;
                }
            }
            mes "Primeiro venha com a Arma que você quer que eu atualize.";
            mes "Certifique-se de que está em equipada, entendeu?";
            close;
        }
    S_Upgrade:
            mes "[Encantos de Edda]";
            mes "Entendo.";
            mes "vou atualizar seu Equipamento.";
            mes "Tem certeza?";
            next;
            switch (select("Sim, eu tenho.:Não espere.")) {
        case 1:
            mes "[Encantos de Edda]";
            mes "Vou começar a troca ^4d4dffAtualizando "+ getarg(0) +"^000000..";
            next;
            mes "[Encantos de Edda]";
            mes "Olha Você aqui.";
            delitem 25786,5000;
            getitem2 .@weap,1,1,.@refine,0,.@card0,.@card1,getarg(1),.@card3;
            close;
        case 2:
            mes "[Encantos de Edda]";
            mes "Você não quer trocar?";
            close;
            }
            break;
            case 2:
                mes "O modo Normal lhe custará 200 Documentos de Pesquisa Biológica e 200 Fragmentos de Experiência Biológica";
                mes "com 5% de quebrar sua arma!";
                next;
                mes "O modo Seguro lhe custará 1000 Documento de Pesquisa Biológica e 1000 Fragmento de Experiência Biológica";
                mes "sem chance de quebrar sua arma!";
                
                switch(select("Modo Normal", "Modo Seguro")){
                    case 1:
                        if(countitem(25786) < 200 && countitem(25787) < 200) {
                            mes "Você não tem a quantidade de itens suficientes.";
                            end;
                        }
                        delitem 25786,200;
                        delitem 25787,200;
                        if(rand(20) == 1){
                            delequip EQI_HAND_R;
                            mes "Que pena...";
                            end;
                        }
                        delequip EQI_HAND_R;
                        getitem2 .@weap,1,1,.@refine,0,.@card0,.@card1,.@card2,.@card3;
                        end;
                    case 2:
                        .@card3 = .@enchant1[rand(15)];
                        delitem 25786,1000;
                        delitem 25787,1000;
                        delequip EQI_HAND_R;
                        getitem2 .@weap,1,1,.@refine,0,.@card0,.@card1,.@card2,.@card3;
                        end;
                }
            break;
            
            case 3:end;
        }
        
        end;
    }
    //@item 2056

    switch(select("Sim","não")){
        case 1:
            switch(select("Modo Normal", "Modo Seguro", "cancelar")){
                case 1:
                    .@safe = 0;
                    break;
                case 2:
                    .@safe = 1;
                    break;
                case 3: end;
            }
        
        
            if(.@card3 == 0) {
                if(.@safe == 0) mes "isto custará 50 Documentos de Pesquisa Biológica e 50 Fragmentos de Experiências Biológicas";
                else {
                    mes "isto custará 500 Documento de Pesquisa Biológica e 500 Fragmento de Experiência Biológica";
                    next;
                    mes "há uma pequena mudança para quebrar sua arma, quer continuar?";
                }
                next;
                switch(select("Sim","Não")){
                    case 1:
                        // 30% of the player loses the weapon;
                        if(rand(20) <= 2 && .@safe == 0){
                            delequip EQI_HAND_R;
                            mes "Que pena...";
                            end;
                            
                        }
                        break;
                    
                    case 2: 
                        mes "Ok...";
                        end;
                }
                
                if(countitem(25786) < 50 && countitem(25787) < 50){
                    mes "você não tem os materiais suficientes.";
                    end;
                }
                if(.@safe == 1){
                    delitem 25786,500;
                    delitem 25787,500;
                }
                else {
                    delitem 25786,50;
                    delitem 25787,50;
                }
                .@card3 = .@enchant1[rand(15)];
                break;
            }
            
            if(.@card2 == 0) {
                if(.@safe == 0) mes "isto custará 50 Documentos de Pesquisa Biológica e 50 Fragmentos de Experiências Biológicas";
                else {
                    mes "isto custará 500 Documento de Pesquisa Biológica e 500 Fragmento de Experiência Biológica";
                    next;
                    mes "há uma pequena mudança para quebrar sua arma, quer continuar?";
                }
                next;
                switch(select("Sim","Não")){
                    // 30% of the player loses the weapon;
                    case 1:
                        if(rand(20) <= 2 && .@safe == 0){
                            delequip EQI_HAND_R;
                            mes "Que pena...";
                            end;
                        }
                        break;
                    case 2: 
                        mes "Ok...";
                        end;
                }
                
                if(.@safe == 1){
                    if(countitem(25786) < 500 && countitem(25787) < 500){
                        mes "você não tem os materiais suficientes";
                        end;
                    }
                    delitem 25786,500;
                    delitem 25787,500;
                }
                else {
                    if(countitem(25786) < 50 && countitem(25787) < 50){
                        mes "você não tem os materiais suficientes";
                        end;
                    }
                    delitem 25786,50;
                    delitem 25787,50;
                }
                
                .@card2 = .@enchant2[rand(13)];
                break;
            }
            end;
        case 2:
            mes "ok...";
            end;
    }
    delequip EQI_HAND_R;
    getitem2 .@weap,1,1,.@refine,0,.@card0,.@card1,.@card2,.@card3;
    end;
}

in the subcall I tried to put the Enchantment IDs, but it is not changing the enchantment. 

look in switch "Modo Específico"

Hey there, i'm happy to tell you that i fixed this! ^^
The problem was, that after callsub, every .@variable is null again so you have to define them again in "callsub S_Upgrade:". That is the reason why getitem2 doesn't return correct values and so you will get no weapon at all. The only value that is specified in "S_Upgrade:" is that one returned by getarg(1) but the other variables are empty.

So to fix this, just define your variables again in "S_Upgrade:"

Script after my correction (working - tested):



//============================================================
//====== start npc
//============================================================
yuno,210,343,3	script	Encantos de Edda	105,{
    setArray .@weapons[0],21051,21052,32023,1333,16092,28138,28765,28766,28044,28042,26158,2055,2056,26161,16095,18185,18187,18186,32350,32024,32025,32351,16093,16094,28767,28768,18184,28633,26159,26160,1865,1866,16096,18188,26212,26213,32107,32108;
    setArray .@enchant1[0],4832,4833,4834,4808,4820,4821,4818,4817,4816,4863,4864,4865,4815,4814,4813;
    setArray .@enchant2[0],29594,29595,29596,29598,29599,29600,29601,29602,29603,29604,29605,29606,29607;
    
    .@isEdda = 0;
    
    mes "[Encantos de Edda]";
    .@weap = getequipid(EQI_HAND_R);
    .@refine = getequiprefinerycnt(EQI_HAND_R);
    .@card0 = getequipcardid(EQI_HAND_R,0);
    .@card1 = getequipcardid(EQI_HAND_R,1);
    .@card2 = getequipcardid(EQI_HAND_R,2);
    .@card3 = getequipcardid(EQI_HAND_R,3);
    
    
    
    for(.@i = 0; .@i < 38; .@i++) {
        if(.@weapons[.@i] == .@weap){
            .@isEdda = 1;
        } 
    }
    if(.@isEdda == 0) {
        mes "Vamos lá, você precisa de uma arma Edda Equipada.";
    
        end;
    }

    if(.@card2 != 0 && .@card3 != 0){
        mes "você deseja reencantar o seu equipamento Edda?";
        
        switch(select("Sim 3º Slot", "Sim 4º Slot", "Nenhum")){
            case 1:
                mes "O modo Normal irá custar 500 Documento de Pesquisa Biológica e 500 Fragmento de Experiência Biológica.";
                mes "Com uma chance de 5% que falhe e quebre sua Arma!";
                next;
                mes "O modo Seguro irá custar 2000 Documento de Pesquisa Biológica e 2000 Fragmento de Experiência Biológica.";
                mes "No modo Seguro sua Arma não se quebrará!";
                next;
                mes "O modo Específico irá custar 5000 Documento de Pesquisa Biológica.";
                mes "No modo Específico você pode escolher o Encantamento que desejar.!";
                
                switch(select("Modo Normal", "Modo Seguro", "Modo Específico")){
                    case 1:
                        if(countitem(25786) < 500 && countitem(25787) < 500) {
                            mes "Você não tem a quantidade de itens suficientes. ";
                            end;
                        }
                        delitem 25786,500;
                        delitem 25787,500;
                        if(rand(20) == 1){
                            delequip EQI_HAND_R;
                            mes "Que Pena...";
                            end;
                        }
                        .@card2 = .@enchant2[rand(13)];
                        delequip EQI_HAND_R;
                        getitem2 .@weap,1,1,.@refine,0,.@card0,.@card1,.@card2,.@card3;
                        end;
                    case 2:
                        .@card2 = .@enchant2[rand(13)];
                        if(countitem(25786) < 2000 && countitem(25787) < 2000) {
                            mes "Você não tem a quantidade de itens suficientes.";
                            end;
                        }
                        delitem 25786,2000;
                        delitem 25787,2000;
                        delequip EQI_HAND_R;
                        getitem2 .@weap,1,1,.@refine,0,.@card0,.@card1,.@card2,.@card3;
                        end;
                case 3:
                    mes "Você quer dizer trocar o encantamento, certo?";
                    mes "Vamos lá, você precisa de uma arma Edda Equipada.";
                    next;
                    mes "[Encantos de Edda]";
            if(.@isEdda == 1) {
                mes "Qual bônus de encantamento você deseja atualizar?";
                next;
                switch (select("Memória de Seyren:Memória de Howard's:Memória de Eremes:Memória de Kathryne:Memória de Margaretha:Memória de Cecil:Memória de Randel:Memória de Flamel:Memória de Gertie:Memória de Celia:Memória de Chen:Memória de Trentini:Memória de Alphoccio:Deixa pra lá.")) {
                case 1: callsub S_Upgrade,"Seyren",29594;
                case 2: callsub S_Upgrade,"Howard's",29595;
                case 3: callsub S_Upgrade,"Eremes",29596;
                case 4: callsub S_Upgrade,"Kathryne",29598;
                case 5: callsub S_Upgrade,"Margaretha",29599;
                case 6: callsub S_Upgrade,"Cecil",29600;
                case 7: callsub S_Upgrade,"Randel",29601;
                case 8: callsub S_Upgrade,"Flamel",29602;
                case 9: callsub S_Upgrade,"Gertie",29603;
                case 10: callsub S_Upgrade,"Celia",29604;
                case 11: callsub S_Upgrade,"Chen",29605;
                case 12: callsub S_Upgrade,"Trentini",29606;
                case 13: callsub S_Upgrade,"Alphoccio",29607;
                case 14:
                    mes "[Encantos de Edda]";
                    mes "Por quê? Vai ser melhor do que é.";
                    mes "De qualquer forma, só podemos oferecer um Encanto.";
                    next;
                    mes "[Encantos de Edda]";
                    mes "O que você faz com isso é com você.";
                    close;
                }
            }
            mes "Primeiro venha com a Arma que você quer que eu atualize.";
            mes "Certifique-se de que está em equipada, entendeu?";
            close;
        }
    S_Upgrade:
		.@weap = getequipid(EQI_HAND_R); //Define variables in callsub again
		.@refine = getequiprefinerycnt(EQI_HAND_R);
		.@card0 = getequipcardid(EQI_HAND_R,0);
		.@card1 = getequipcardid(EQI_HAND_R,1);
		.@card2 = getequipcardid(EQI_HAND_R,2);
		.@card3 = getequipcardid(EQI_HAND_R,3);
            mes "[Encantos de Edda]";
            mes "Entendo.";
            mes "vou atualizar seu Equipamento.";
            mes "Tem certeza?";
            next;
            switch (select("Sim, eu tenho.:Não espere.")) {
        case 1:
            mes "[Encantos de Edda]";
            mes "Vou começar a troca ^4d4dffAtualizando "+ getarg(0) +"^000000..";
            next;
            mes "[Encantos de Edda]";
            mes "Olha Você aqui.";
            delitem 25786,5000;
            getitem2 .@weap,1,1,.@refine,0,.@card0,.@card1,getarg(1),.@card3;
            close;
        case 2:
            mes "[Encantos de Edda]";
            mes "Você não quer trocar?";
            close;
            }
            break;
            case 2:
                mes "O modo Normal lhe custará 200 Documentos de Pesquisa Biológica e 200 Fragmentos de Experiência Biológica";
                mes "com 5% de quebrar sua arma!";
                next;
                mes "O modo Seguro lhe custará 1000 Documento de Pesquisa Biológica e 1000 Fragmento de Experiência Biológica";
                mes "sem chance de quebrar sua arma!";
                
                switch(select("Modo Normal", "Modo Seguro")){
                    case 1:
                        if(countitem(25786) < 200 && countitem(25787) < 200) {
                            mes "Você não tem a quantidade de itens suficientes.";
                            end;
                        }
                        delitem 25786,200;
                        delitem 25787,200;
                        if(rand(20) == 1){
                            delequip EQI_HAND_R;
                            mes "Que pena...";
                            end;
                        }
                        delequip EQI_HAND_R;
                        getitem2 .@weap,1,1,.@refine,0,.@card0,.@card1,.@card2,.@card3;
                        end;
                    case 2:
                        .@card3 = .@enchant1[rand(15)];
                        delitem 25786,1000;
                        delitem 25787,1000;
                        delequip EQI_HAND_R;
                        getitem2 .@weap,1,1,.@refine,0,.@card0,.@card1,.@card2,.@card3;
                        end;
                }
            break;
            
            case 3:end;
        }
        
        end;
    }
    //@item 2056

    switch(select("Sim","não")){
        case 1:
            switch(select("Modo Normal", "Modo Seguro", "cancelar")){
                case 1:
                    .@safe = 0;
                    break;
                case 2:
                    .@safe = 1;
                    break;
                case 3: end;
            }
        
        
            if(.@card3 == 0) {
                if(.@safe == 0) mes "isto custará 50 Documentos de Pesquisa Biológica e 50 Fragmentos de Experiências Biológicas";
                else {
                    mes "isto custará 500 Documento de Pesquisa Biológica e 500 Fragmento de Experiência Biológica";
                    next;
                    mes "há uma pequena mudança para quebrar sua arma, quer continuar?";
                }
                next;
                switch(select("Sim","Não")){
                    case 1:
                        // 30% of the player loses the weapon;
                        if(rand(20) <= 2 && .@safe == 0){
                            delequip EQI_HAND_R;
                            mes "Que pena...";
                            end;
                            
                        }
                        break;
                    
                    case 2: 
                        mes "Ok...";
                        end;
                }
                
                if(countitem(25786) < 50 && countitem(25787) < 50){
                    mes "você não tem os materiais suficientes.";
                    end;
                }
                if(.@safe == 1){
                    delitem 25786,500;
                    delitem 25787,500;
                }
                else {
                    delitem 25786,50;
                    delitem 25787,50;
                }
                .@card3 = .@enchant1[rand(15)];
                break;
            }
            
            if(.@card2 == 0) {
                if(.@safe == 0) mes "isto custará 50 Documentos de Pesquisa Biológica e 50 Fragmentos de Experiências Biológicas";
                else {
                    mes "isto custará 500 Documento de Pesquisa Biológica e 500 Fragmento de Experiência Biológica";
                    next;
                    mes "há uma pequena mudança para quebrar sua arma, quer continuar?";
                }
                next;
                switch(select("Sim","Não")){
                    // 30% of the player loses the weapon;
                    case 1:
                        if(rand(20) <= 2 && .@safe == 0){
                            delequip EQI_HAND_R;
                            mes "Que pena...";
                            end;
                        }
                        break;
                    case 2: 
                        mes "Ok...";
                        end;
                }
                
                if(.@safe == 1){
                    if(countitem(25786) < 500 && countitem(25787) < 500){
                        mes "você não tem os materiais suficientes";
                        end;
                    }
                    delitem 25786,500;
                    delitem 25787,500;
                }
                else {
                    if(countitem(25786) < 50 && countitem(25787) < 50){
                        mes "você não tem os materiais suficientes";
                        end;
                    }
                    delitem 25786,50;
                    delitem 25787,50;
                }
                
                .@card2 = .@enchant2[rand(13)];
                break;
            }
            end;
        case 2:
            mes "ok...";
            end;
    }
    delequip EQI_HAND_R;
    getitem2 .@weap,1,1,.@refine,0,.@card0,.@card1,.@card2,.@card3;
    end;
}

Just minor advice for future similar problems - to debugging this it is helpful to print variables using "mes .@weap" etc. in different rows of the script. This way you can easily find out where you are getting wrong values.

Hope that i helped. Have a good one! ^^

Edited by Velda
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...