Jump to content
  • 0

Question

Posted

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"

1 answer to this question

Recommended Posts

  • 0
Posted (edited)
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

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.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...