JPSings

Membro
  • Total de itens

    214
  • Registro em

  • Última visita

Posts postados por JPSings


  1. Percebi que ao usar meu um Sinx com Adagada na mão direita e esquerda ele ativa o ataque duplo porem eu percebo que ao atacar o mesmo ta ativando o critico junto.

    "Ataque Duplo e Depois Critico, Ataque Duplo e Depois Critico."

    Tem como desativar isso? pois pelo que eu sei o jogador que for ataque duplo tem q ignorar o critico e o jogador que for full critico ele tem que ignorar o ataque duplo.
    Se alguém souber como fazer isso me der um Help pfv estou precisando muito!

    0

  2. Olá, eu ativei a guerra de Emperium no meu servidor Baby e a Normal.
    Porem eu percebi que a Baby o HP da Emperium não pode ser tão alto e a normal eu teria que aumentar o HP para os players Transclasses!


    Porem a mesma Emperium é a mesma da baby. 

    Como faço para mudar ? 

    Esse abaixo é o script da GDE

     //    ________________________________________________________


    //   /                                                        \
    //   |       _           _   _   _                            |
    //   |      | |__  _ __ / \ | |_| |__   ___ _ __   __ _       |
    //   |      | '_ \| '__/ _ \| __| '_ \ / _ \ '_ \ / _` |      |
    //   |      | |_) | | / ___ \ |_| | | |  __/ | | | (_| |      |
    //   |      |_.__/|_|/_/   \_\__|_| |_|\___|_| |_|\__,_|      |
    //   |                                                        |
    //   |                    brAthena Script                     |
    //   |--------------------------------------------------------|
    //   | Nome do Script: gde_padrao.txt                         |
    //   |--------------------------------------------------------|
    //   | Criado por: eA/rA/brA Dev. Team                        |
    //   |--------------------------------------------------------|
    //   | Versões eA/rA/brA: 1.9/1.0/1.2                         |
    //   |--------------------------------------------------------|
    //   | Descrição: NPCs padrões de todos os castelos GDE 1.0.  |
    //   |--------------------------------------------------------|
    //   | Changelog:                                             |
    //   | 1.0 Criado Cabeçalho [Shiraz]                          |
    //   | 1.1 Tradução PT-BR [cleyton]                           |
    //   | 1.2 Otimizações [Filid]                                |
    //   |--------------------------------------------------------|
    //   | - Anotações                                            |
    //   \________________________________________________________/

    // Gerenciador Automático
    //============================================================
    -    script    Gld_Agit_Manager::Gld_Agit_Manager    -1,{
        end;

    // Início da Guerra do Emperium.
    OnAgitStart:
        if (strnpcinfo(0) == "Gld_Agit_Manager") end;
        maprespawnguildid strnpcinfo(2),getcastledata(strnpcinfo(2),1),6;
        gvgon strnpcinfo(2);

    // Spawn do Emperium.
    OnStartArena:
        if (strnpcinfo(2) == "aldeg_cas01") { setarray [email protected][0],216,23; }
        else if (strnpcinfo(2) == "aldeg_cas02") { setarray [email protected][0],213,23; }
        else if (strnpcinfo(2) == "aldeg_cas03") { setarray [email protected][0],205,31; }
        else if (strnpcinfo(2) == "aldeg_cas04") { setarray [email protected][0],36,217; }
        else if (strnpcinfo(2) == "aldeg_cas05") { setarray [email protected][0],27,101; }
        else if (strnpcinfo(2) == "gefg_cas01") { setarray [email protected][0],197,181; }
        else if (strnpcinfo(2) == "gefg_cas02") { setarray [email protected][0],176,178; }
        else if (strnpcinfo(2) == "gefg_cas03") { setarray [email protected][0],244,166; }
        else if (strnpcinfo(2) == "gefg_cas04") { setarray [email protected][0],174,177; }
        else if (strnpcinfo(2) == "gefg_cas05") { setarray [email protected][0],194,184; }
        else if (strnpcinfo(2) == "payg_cas01") { setarray [email protected][0],139,139; }
        else if (strnpcinfo(2) == "payg_cas02") { setarray [email protected][0],38,25; }
        else if (strnpcinfo(2) == "payg_cas03") { setarray [email protected][0],269,265; }
        else if (strnpcinfo(2) == "payg_cas04") { setarray [email protected][0],270,28; }
        else if (strnpcinfo(2) == "payg_cas05") { setarray [email protected][0],30,30; }
        else if (strnpcinfo(2) == "prtg_cas01") { setarray [email protected][0],197,197; }
        else if (strnpcinfo(2) == "prtg_cas02") { setarray [email protected][0],157,174; }
        else if (strnpcinfo(2) == "prtg_cas03") { setarray [email protected][0],16,220; }
        else if (strnpcinfo(2) == "prtg_cas04") { setarray [email protected][0],291,14; }
        else if (strnpcinfo(2) == "prtg_cas05") { setarray [email protected][0],266,266; }
        // Adicione castelos personalizados abaixo.
        else {
            end;
        }
        if (!mobcount(strnpcinfo(2),"Agit#"+strnpcinfo(2)+"::OnAgitBreak")) {
            monster strnpcinfo(2),[email protected][0],[email protected][1],"Emperium",1288,1,"Agit#"+strnpcinfo(2)+"::OnAgitBreak";
        }
        end;

    // Quebra do Emperium.
    OnAgitBreak:
        [email protected] = getcharid(2);
        // Exibição do log de erro caso um personagem sem Clã quebra um Emperium (Isso nunca deve ocorrer em padrões oficiais - kRO/bRO).
        if ([email protected] <= 0) {
            @notice$ = "O personagem "+strcharinfo(0)+" ("+getcharid(0)+") quebrou o Emperium do Castelo:: "+strnpcinfo(2)+" sem um Clã. Nenhum dado será salvo e o Emperium retornará.";
             logmes [email protected]$; debugmes [email protected]$;
            donpcevent "Agit#"+strnpcinfo(2)+"::OnStartArena";
            end;
        }
        // Ajustes dos Leveis de Ecônomia e Investimento para o Castelo.
        [email protected] = getcastledata(strnpcinfo(2),2) - 5;
        if ([email protected] < 0) [email protected] = 0;
        setcastledata strnpcinfo(2), 2, [email protected];
        // Ajustes dos Leveis de Defesa do Investimento para o Castelo.
        [email protected] = getcastledata(strnpcinfo(2),3) - 5;
        if ([email protected] < 0) [email protected] = 0;
        setcastledata strnpcinfo(2), 3, [email protected];

        // Adiciona uma nova Clã ao Castelo.
        setcastledata strnpcinfo(2),1, [email protected];

        // Anúncio de Destruição do Emperium e sua nova Clã ocupante.
        mapannounce strnpcinfo(2),"O Emperium foi destruído.",bc_map|bc_woe,"0x00CCFF",FW_NORMAL,12;
        maprespawnguildid strnpcinfo(2),[email protected],6;

        // Repara os dados do Castelo, Desabilita a Kafra e Investimentos do Castelo.
        donpcevent strnpcinfo(0)+"::OnRecvCastle";
        disablenpc "Funcionária Kafra#"+strnpcinfo(2);
        for ([email protected] = 4; [email protected] <= 9; [email protected]) {
            setcastledata strnpcinfo(2), [email protected], 0;
        }
        // Limpa os dados dos Guardiões, caso a nova Clã não tenha habilidades para usar Guardiões
        if( getgdskilllv([email protected],10002) == 0 ) {
            for ([email protected] = 10; [email protected] <= 17; [email protected]) {
                setcastledata strnpcinfo(2), [email protected], 0;
            }
        }
        // Readiciona o Emperium e mostra a nova Clã ocupante.
        sleep 500; // Slow down script execution slightly.
        if( agitcheck() )
            donpcevent "Agit#"+strnpcinfo(2)+"::OnStartArena";
        sleep 7000;
        announce "O castelo [" + getcastlename(strnpcinfo(2)) + "] foi conquistado pelo Clã [" + getguildname([email protected]) + "].",bc_all|bc_woe;
        end;

    // Término da Guerra do Emperium.
    OnAgitEnd:
        if (strnpcinfo(0) == "Gld_Agit_Manager") end;
        gvgoff strnpcinfo(2);
        // Caso o castelo não tenha nenhum Clã ocupante, o Emperium não é destruído.
        if (getcastledata(strnpcinfo(2),1)) {
            killmonster strnpcinfo(2),"Agit#"+strnpcinfo(2)+"::OnAgitBreak";
        }
        end;

    // Caso a Clã abandone o Castelo.
    OnGuildBreak:
        if (strnpcinfo(0) == "Gld_Agit_Manager") end;
        // Destroí os Guardiões, desabilita a Kafra e modifica o Guild Master (Dono do Castelo) para 0.
        killmonster strnpcinfo(2),"Guardian#"+strnpcinfo(2)+"::OnGuardianDied";
        disablenpc "Funcionária Kafra#"+strnpcinfo(2);
        setcastledata strnpcinfo(2),1,0;
        // Aguarda o salvamento de informação da Guilda.
        sleep 7000;
        announce "O castelo [" + getcastlename(strnpcinfo(2)) + "] foi abandonado.",0;
        donpcevent strnpcinfo(0)+"::OnRecvCastle";
        end;

    OnAgitInit:
    OnRecvCastle:
        if (strnpcinfo(0) == "Gld_Agit_Manager") end;
        // Cria o Spawn de Monstros caso o castelo esteja sem ocupantes (vazio).
        [email protected] = getcastledata(strnpcinfo(2),1);
        if ([email protected] == 0) {
            killmonsterall strnpcinfo(2);
            if (compare(strnpcinfo(2),"aldeg")) {
                // Spawns Normais (Fora da Sala do Emperium).
                //monster strnpcinfo(2),0,0,"Druida Maligno",1117,10;
                //monster strnpcinfo(2),0,0,"Khalitzburg",1132,4;
                //monster strnpcinfo(2),0,0,"Cavaleiro do Abismo",1219,2;
                //monster strnpcinfo(2),0,0,"Executor",1205,1;
                //monster strnpcinfo(2),0,0,"Penomena",1216,10;
                //monster strnpcinfo(2),0,0,"Alarme",1193,18;
                //monster strnpcinfo(2),0,0,"Relógio",1269,9;
                //monster strnpcinfo(2),0,0,"Raydric Arqueiro",1276,7;
                //monster strnpcinfo(2),0,0,"Andarilho",1208,3;
                //monster strnpcinfo(2),0,0,"Alice",1275,1;
                //monster strnpcinfo(2),0,0,"Cavaleiro Sanguinário",1268,1;
                //monster strnpcinfo(2),0,0,"Senhor das Trevas",1272,1;
                // Spawns Dentro da Sala do Emperium.
                if (strnpcinfo(2) == "aldeg_cas01") { setarray [email protected][0],216,23; }
                else if (strnpcinfo(2) == "aldeg_cas02") { setarray [email protected][0],213,23; }
                else if (strnpcinfo(2) == "aldeg_cas03") { setarray [email protected][0],205,31; }
                else if (strnpcinfo(2) == "aldeg_cas04") { setarray [email protected][0],36,217; }
                else if (strnpcinfo(2) == "aldeg_cas05") { setarray [email protected][0],27,101; }
                //monster strnpcinfo(2),[email protected][0],[email protected][1],"Senhor das Trevas",1272,1;
                //monster strnpcinfo(2),[email protected][0],[email protected][1],"Gerente",1270,4;
                //monster strnpcinfo(2),[email protected][0],[email protected][1],"Cavaleiro Sanguinário",1268,1;
                //monster strnpcinfo(2),[email protected][0],[email protected][1],"Cavaleiro do Abismo",1219,1;
                //monster strnpcinfo(2),[email protected][0],[email protected][1],"Raydric Arqueiro",1276,5;
            }
            else if (compare(strnpcinfo(2),"gefg")) {
                // Normal Spawns
                //monster strnpcinfo(2),0,0,"Druida Maligno",1117,10;
                //monster strnpcinfo(2),0,0,"Xamã do Vento",1263,11;
                //monster strnpcinfo(2),0,0,"Bathory",1102,10;
                //monster strnpcinfo(2),0,0,"Jakk",1130,10;
                //monster strnpcinfo(2),0,0,"Marduk",1140,20;
                //monster strnpcinfo(2),0,0,"Raydric",1163,9;
                //monster strnpcinfo(2),0,0,"Alice",1275,1;
                //monster strnpcinfo(2),0,0,"Cavaleiro do Abismo",1219,1;
                //monster strnpcinfo(2),0,0,"Flor do Luar",1150,1;
                //monster strnpcinfo(2),0,0,"Phreeoni",1159,1;
                // Spawns Dentro da Sala do Emperium.
                if (strnpcinfo(2) == "gefg_cas01") { setarray [email protected][0],197,181; }
                else if (strnpcinfo(2) == "gefg_cas02") { setarray [email protected][0],176,178; }
                else if (strnpcinfo(2) == "gefg_cas03") { setarray [email protected][0],244,166; }
                else if (strnpcinfo(2) == "gefg_cas04") { setarray [email protected][0],174,177; }
                else if (strnpcinfo(2) == "gefg_cas05") { setarray [email protected][0],194,184; }
                //monster strnpcinfo(2),[email protected][0],[email protected][1],"Mysteltainn",1203,1;
                //monster strnpcinfo(2),[email protected][0],[email protected][1],"Orc Herói",1087,1;
                //monster strnpcinfo(2),[email protected][0],[email protected][1],"Grande Orc",1213,10;
                //monster strnpcinfo(2),[email protected][0],[email protected][1],"Orc Arqueiro",1189,10;
            } else if (compare(strnpcinfo(2),"payg")) {
                // Spawns Normais (Fora da Sala do Emperium).
                //monster strnpcinfo(2),0,0,"Guardião da Floresta",1277,9;
                //monster strnpcinfo(2),0,0,"Andarilho",1208,10;
                //monster strnpcinfo(2),0,0,"Dragão Mutante",1262,5;
                //monster strnpcinfo(2),0,0,"Bathory",1102,5;
                //monster strnpcinfo(2),0,0,"Flor do Luar",1150,1;
                //monster strnpcinfo(2),0,0,"Eddga",1115,1;
                //monster strnpcinfo(2),0,0,"Horong",1129,11;
                //monster strnpcinfo(2),0,0,"Raydric Arqueiro",1276,5;
                //monster strnpcinfo(2),0,0,"Kobold Arqueiro",1282,4;
                //monster strnpcinfo(2),0,0,"Gárgula",1253,5;
                // Spawns Dentro da Sala do Emperium.
                if (strnpcinfo(2) == "payg_cas01") { setarray [email protected][0],139,139; }
                else if (strnpcinfo(2) == "payg_cas02") { setarray [email protected][0],38,25; }
                else if (strnpcinfo(2) == "payg_cas03") { setarray [email protected][0],269,265; }
                else if (strnpcinfo(2) == "payg_cas04") { setarray [email protected][0],270,28; }
                else if (strnpcinfo(2) == "payg_cas05") { setarray [email protected][0],30,30; }
                //monster strnpcinfo(2),[email protected][0],[email protected][1],"Flor do Luar",1150,1;
                //monster strnpcinfo(2),[email protected][0],[email protected][1],"Eddga",1115,1;
                //monster strnpcinfo(2),[email protected][0],[email protected][1],"Andarilho",1208,6;
                //monster strnpcinfo(2),[email protected][0],[email protected][1],"Raydric Arqueiro",1276,5;
            } else if (compare(strnpcinfo(2),"prtg")) {
                // Spawns Normais (Fora da Sala do Emperium).
                //monster strnpcinfo(2),0,0,"Raydric",1163,1;
                //monster strnpcinfo(2),0,0,"Khalitzburg",1132,10;
                //monster strnpcinfo(2),0,0,"Cavaleiro do Abismo",1219,5;
                //monster strnpcinfo(2),0,0,"Cavaleiro Sanguinário",1268,5;
                //monster strnpcinfo(2),0,0,"Cavaleiro da Tempestade",1251,1;
                //monster strnpcinfo(2),0,0,"Hatii",1252,1;
                //monster strnpcinfo(2),0,0,"Raydric Arqueiro",1276,5;
                //monster strnpcinfo(2),0,0,"Grifo",1259,2;
                //monster strnpcinfo(2),0,0,"Quimera",1283,3;
                //monster strnpcinfo(2),0,0,"Alice",1275,1;
                //monster strnpcinfo(2),0,0,"Jirtas",1200,1;
                // Spawns Dentro da Sala do Emperium.
                if (strnpcinfo(2) == "prtg_cas01") { setarray [email protected][0],197,197; }
                else if (strnpcinfo(2) == "prtg_cas02") { setarray [email protected][0],157,174; }
                else if (strnpcinfo(2) == "prtg_cas03") { setarray [email protected][0],16,220; }
                else if (strnpcinfo(2) == "prtg_cas04") { setarray [email protected][0],291,14; }
                else if (strnpcinfo(2) == "prtg_cas05") { setarray [email protected][0],266,266; }
                //monster strnpcinfo(2),[email protected][0],[email protected][1],"Cavaleiro Sanguinário",1268,1;
                //monster strnpcinfo(2),[email protected][0],[email protected][1],"Cavaleiro da Tempestade",1251,1;
                //monster strnpcinfo(2),[email protected][0],[email protected][1],"Hatii",1252,1;
                //monster strnpcinfo(2),[email protected][0],[email protected][1],"Cavaleiro do Abismo",1219,1;
                //monster strnpcinfo(2),[email protected][0],[email protected][1],"Raydric Arqueiro",1276,5;
            }
            // Add custom Guild Castles here.
            else {
                end;
            }
            donpcevent "Agit#"+strnpcinfo(2)+"::OnStartArena";
            // Desativa a Assistente Kafra.
            disablenpc "Funcionária Kafra#"+strnpcinfo(2);
            end;
        } else {
            // Caso a Clã tenha conquistado o Castelo, adicionar seus Emblemas nas Bandeiras de todos os locais.
            if (strnpcinfo(2) == "aldeg_cas01") { donpcevent "::OnRecvCastleA01"; }
            else if (strnpcinfo(2) == "aldeg_cas02") { donpcevent "::OnRecvCastleA02"; }
            else if (strnpcinfo(2) == "aldeg_cas03") { donpcevent "::OnRecvCastleA03"; }
            else if (strnpcinfo(2) == "aldeg_cas04") { donpcevent "::OnRecvCastleA04"; }
            else if (strnpcinfo(2) == "aldeg_cas05") { donpcevent "::OnRecvCastleA05"; }
            else if (strnpcinfo(2) == "gefg_cas01") { donpcevent "::OnRecvCastleG01"; }
            else if (strnpcinfo(2) == "gefg_cas02") { donpcevent "::OnRecvCastleG02"; }
            else if (strnpcinfo(2) == "gefg_cas03") { donpcevent "::OnRecvCastleG03"; }
            else if (strnpcinfo(2) == "gefg_cas04") { donpcevent "::OnRecvCastleG04"; }
            else if (strnpcinfo(2) == "gefg_cas05") { donpcevent "::OnRecvCastleG05"; }
            else if (strnpcinfo(2) == "payg_cas01") { donpcevent "::OnRecvCastlePy01"; }
            else if (strnpcinfo(2) == "payg_cas02") { donpcevent "::OnRecvCastlePy02"; }
            else if (strnpcinfo(2) == "payg_cas03") { donpcevent "::OnRecvCastlePy03"; }
            else if (strnpcinfo(2) == "payg_cas04") { donpcevent "::OnRecvCastlePy04"; }
            else if (strnpcinfo(2) == "payg_cas05") { donpcevent "::OnRecvCastlePy05"; }
            else if (strnpcinfo(2) == "prtg_cas01") { donpcevent "::OnRecvCastlePt01"; }
            else if (strnpcinfo(2) == "prtg_cas02") { donpcevent "::OnRecvCastlePt02"; }
            else if (strnpcinfo(2) == "prtg_cas03") { donpcevent "::OnRecvCastlePt03"; }
            else if (strnpcinfo(2) == "prtg_cas04") { donpcevent "::OnRecvCastlePt04"; }
            else if (strnpcinfo(2) == "prtg_cas05") { donpcevent "::OnRecvCastlePt05"; }
            // Adicione castelos personalizados abaixo.
            else {
                end;
            }
            // Exibe os guardiões no castelo se adquiridos.
            donpcevent "Guardian#"+strnpcinfo(2)+"::OnSpawnGuardians";
            // Exibe a kafra se adquirida.
            if (getcastledata(strnpcinfo(2),9) < 1) disablenpc "Funcionária Kafra#"+strnpcinfo(2);
        }
        end;
    }

    // Kafras do Castelo
    //============================================================
    -    script    Funcionária Kafra#woe::guildkafra    -1,{

        [email protected] = getcastledata(strnpcinfo(2),1);

        if (compare(strnpcinfo(2),"aldeg")) {
            setarray [email protected]$[0],"Al De Baran","aldebaran";
            setarray [email protected][0],132,103;
        } else if (compare(strnpcinfo(2),"gefg")) {
            setarray [email protected]$[0],"Geffen","geffen";
            setarray [email protected][0],120,39;
        } else if (compare(strnpcinfo(2),"payg")) {
            setarray [email protected]$[0],"Payon","payon";
            setarray [email protected][0],70,100;
        } else if (compare(strnpcinfo(2),"prtg")) {
            setarray [email protected]$[0],"Prontera","prontera";
            setarray [email protected][0],278,211;
        }
        // Adicione cordenadas personalizadas de Castelos abaixo.
        else {
            end;
        }

        cutin "kafra_01",2;
        if (getcharid(2) == [email protected]) {
            mes "[Funcionária Kafra]";
            mes "Bem vindo, membro do clã ^ff0000" + getguildname([email protected]) + "^000000.";
            mes "A Corporação Kafra estará com você onde quer que vá.";
            next;
            switch (select("Usar Armazém do Clã.:Usar serviço de Teleporte.:Alugar um carrinho.:Cancelar")) {
            case 1:
                    mes "[Funcionária Kafra]";
                if (guildopenstorage() == 1) {
                    mes "Me desculpe, mas no momento existe um membro usando o armazém do Clã.";
                    mes "Por favor, aguarde ele concluir.";
                    close2;
                    cutin "", 255;
                    end;
                }
                mes "Aqui, deixe-me abrir";
                mes "seu Armazém para você.";
                mes "Obrigado por usar";
                mes "o Serviço Kafra.";
                close2;
                cutin "",255;
                openstorage;
                end;
            case 2:
                mes "[Funcionária Kafra]";
                mes "Por favor, escolha seu destino.";
                next;
                switch (select([email protected]$+" -> 200z:Cancelar")) {
                case 1:
                        mes "[Funcionária Kafra]";
                    if (Zeny < 200) {
                        mes "Você não possui a quantidade de zenys necessária. Verifique seus zenys novamente.";
                        mes "O serviço de teleporte para "[email protected]$+" custará 200 zeny.";
                        close2;
                        cutin "",255;
                        end;
                    }
                    Zeny -= 200;
                    RESRVPTS += 2;
                    close2;
                    warp [email protected]$[1],[email protected][0],[email protected][1];
                    end;
                case 2:
                    close2;
                    cutin "",255;
                    end;
                }
            case 3:
                    mes "[Funcionária Kafra]";
                if (BaseClass != Job_Merchant) {
                    mes "Lamento, mas o serviço de aluguel de carrinhos está disponível somente para a classe de Mercadores e suas evoluções.";
                    close2;
                    cutin "",255;
                    end;
                }
                if (checkcart()) {
                    mes "Você já está com um carrinho equipado.";
                    close2;
                    cutin "",255;
                    end;
                }
                mes "[Funcionária Kafra]";
                mes "O aluguel de carrinhos custa 800 zenys. Deseja alugar um carrinho?";
                next;
                switch (select("Alugar um Carrinho.:Cancelar")) {
                case 1:
                    if (Zeny < 800) {
                        mes "[Funcionária Kafra]";
                        mes "Me desculpe, mas você não possui zenys suficientes. São necessários 800 zenys para alugar um carrinho.";
                        close2;
                        cutin "",255;
                        end;
                    }
                    RESRVPTS += 8;
                    Zeny -= 800;
                    setcart;
                    close2;
                    cutin "",255;
                    end;
                case 2:
                    close2;
                    cutin "",255;
                    end;
                }
            case 4:
                mes "[Funcionária Kafra]";
                mes "A Corp. Kafra fará o possível para oferecer o melhor serviço.";
                mes "Obrigada por usar a Corp. Kafra. Volte sempre.";
                close2;
                cutin "",255;
                end;
            }
        }
        mes "[Funcionária Kafra]";
        mes "Estou instruída para servir somente os membros do Clã ^ff0000" + getguildname([email protected]) + "^000000. Por favor, procure outra Kafra da cidade mais próxima. Lamentamos pelo inconveniente.";
        close2;
        cutin "",255;
        end;
    }

    // Administração
    //============================================================
    -    script    Castle Manager#cm::cm    -1,{

        set [email protected],getcastledata(strnpcinfo(2),1);

        // [email protected] = Definições para os Guardiões nos Castelos.
        // 1 - Guardião Soldado; 2 - Guardião Arqueiro; 3 - Guardião Cavaleiro
        // [email protected] = Define a coordenada x para um Guardião.
        // [0] = 1° Guardiões da coordenada x.
        // [email protected] = Define a coordenada y para um Guardião.
        // [0] = 1° Guardiões da coordenada y.
        // [email protected] = Define as coordenadas da "Sala do Tesouro".
        if (strnpcinfo(2) == "aldeg_cas01") {
            setarray [email protected][0],1,2,2,2,2,3,3,3;
            setarray [email protected][0],17,39,38,45,21,218,213,73;
            setarray [email protected][0],218,208,196,228,194,24,24,70;
            setarray [email protected][0],113,223;
        } else if (strnpcinfo(2) == "aldeg_cas02") {
            setarray [email protected][0],3,3,3,1,1,2,2,2;
            setarray [email protected][0],27,88,117,60,51,21,36,210;
            setarray [email protected][0],184,43,46,202,183,177,183,7;
            setarray [email protected][0],134,225;
        } else if (strnpcinfo(2) == "aldeg_cas03") {
            setarray [email protected][0],3,3,1,1,1,2,2,2;
            setarray [email protected][0],90,116,86,116,64,212,195,110;
            setarray [email protected][0],112,112,120,76,103,160,151,217;
            setarray [email protected][0],229,267;
        } else if (strnpcinfo(2) == "aldeg_cas04") {
            setarray [email protected][0],2,2,2,1,1,1,3,3;
            setarray [email protected][0],187,192,148,145,169,198,48,55;
            setarray [email protected][0],100,42,88,209,53,77,72,88;
            setarray [email protected][0],83,17;
        } else if (strnpcinfo(2) == "aldeg_cas05") {
            setarray [email protected][0],2,2,1,1,3,3,3,3;
            setarray [email protected][0],51,188,157,157,27,145,156,41;
            setarray [email protected][0],202,79,192,74,221,78,73,112;
            setarray [email protected][0],64,8;
        }
        // Geffen (Feudo de Britoniah)
        else if (strnpcinfo(2) == "gefg_cas01") {
            setarray [email protected][0],1,1,1,2,2,3,3,3;
            setarray [email protected][0],67,184,62,36,50,50,189,200;
            setarray [email protected][0],179,20,41,186,186,67,41,167;
            setarray [email protected][0],152,117;
        } else if (strnpcinfo(2) == "gefg_cas02") {
            setarray [email protected][0],1,1,1,2,2,3,3,3;
            setarray [email protected][0],64,56,166,35,20,19,166,159;
            setarray [email protected][0],168,41,25,148,150,41,42,188;
            setarray [email protected][0],145,115;
        } else if (strnpcinfo(2) == "gefg_cas03") {
            setarray [email protected][0],2,2,1,1,1,3,3,3;
            setarray [email protected][0],48,113,48,157,243,157,234,238;
            setarray [email protected][0],176,214,207,62,41,45,25,160;
            setarray [email protected][0],275,289;
        } else if (strnpcinfo(2) == "gefg_cas04") {
            setarray [email protected][0],2,2,1,1,1,3,3,3;
            setarray [email protected][0],53,31,49,29,147,57,160,148;
            setarray [email protected][0],191,178,220,46,65,46,50,189;
            setarray [email protected][0],116,123;
        } else if (strnpcinfo(2) == "gefg_cas05") {
            setarray [email protected][0],2,2,1,1,1,3,3,3;
            setarray [email protected][0],45,71,72,66,177,66,177,193;
            setarray [email protected][0],149,163,142,47,50,17,35,166;
            setarray [email protected][0],149,106;
        }
        // Payon (Feudo do Bosque Celestial)
        else if (strnpcinfo(2) == "payg_cas01") {
            setarray [email protected][0],2,2,2,2,2,2,2,3;
            setarray [email protected][0],229,225,222,99,65,36,51,138;
            setarray [email protected][0],92,80,111,45,31,127,144,133;
            setarray [email protected][0],295,8;
        } else if (strnpcinfo(2) == "payg_cas02") {
            setarray [email protected][0],2,2,2,2,2,2,2,3;
            setarray [email protected][0],237,228,210,57,42,287,264,27;
            setarray [email protected][0],54,72,41,241,241,257,272,20;
            setarray [email protected][0],141,149;
        } else if (strnpcinfo(2) == "payg_cas03") {
            setarray [email protected][0],2,2,2,2,2,2,2,3;
            setarray [email protected][0],245,269,36,41,39,19,37,268;
            setarray [email protected][0],37,51,39,39,65,276,277,244;
            setarray [email protected][0],163,167;
        } else if (strnpcinfo(2) == "payg_cas04") {
            setarray [email protected][0],2,2,2,2,2,2,2,3;
            setarray [email protected][0],251,232,231,32,32,35,36,270;
            setarray [email protected][0],212,212,175,287,232,45,17,41;
            setarray [email protected][0],151,47;
        } else if (strnpcinfo(2) == "payg_cas05") {
            setarray [email protected][0],2,2,2,2,2,2,2,3;
            setarray [email protected][0],19,33,266,266,263,263,250,36;
            setarray [email protected][0],279,260,234,279,37,21,22,36;
            setarray [email protected][0],153,137;
        }
        // Prontera (Feudo das Valquírias)
        else if (strnpcinfo(2) == "prtg_cas01") {
            setarray [email protected][0],1,1,1,2,2,3,3,3;
            setarray [email protected][0],182,182,153,59,50,184,196,107;
            setarray [email protected][0],62,116,86,28,36,183,189,179;
            setarray [email protected][0],15,209;
        } else if (strnpcinfo(2) == "prtg_cas02") {
            setarray [email protected][0],3,3,3,1,1,2,2,2;
            setarray [email protected][0],161,153,178,71,49,64,7,75;
            setarray [email protected][0],161,161,44,75,28,186,196,175;
            setarray [email protected][0],207,229;
        } else if (strnpcinfo(2) == "prtg_cas03") {
            setarray [email protected][0],3,3,3,1,1,2,2,2;
            setarray [email protected][0],191,137,45,50,41,191,179,191;
            setarray [email protected][0],190,190,99,87,87,42,43,72;
            setarray [email protected][0],190,130;
        } else if (strnpcinfo(2) == "prtg_cas04") {
            setarray [email protected][0],3,3,3,1,1,1,2,2;
            setarray [email protected][0],276,274,246,38,29,33,78,36;
            setarray [email protected][0],14,35,246,240,240,258,48,61;
            setarray [email protected][0],275,160;
        } else if (strnpcinfo(2) == "prtg_cas05") {
            setarray [email protected][0],3,3,3,1,1,1,2,2;
            setarray [email protected][0],266,287,245,236,251,278,32,44;
            setarray [email protected][0],262,280,250,63,63,253,253,248;
            setarray [email protected][0],281,176;
        }
        // Adicione castelos personalizados abaixo.
        else {
            end;
        }

        mes "[ Mordomo " + [email protected]$ + " ]";
        if ([email protected] == 0) {
            mes "Eu estou aguardando meu mestre retornar.";
            mes "Se você deseja falar com ele, também terá que aguardar.";
            close;
        }
        if (getguildmaster([email protected]) != strcharinfo(0)) {
            mes "Eu sou um leal seguidor do mestre ^ff0000" + getguildmaster([email protected]) + "^000000. Nós somos guardiões e defendemos nosso castelo até o fim!";
            close;
        }
        mes "Bem-vindo, meu honorável mestre, ^ff0000" + getguildmaster([email protected]) + "^000000...";
        mes "Estou a seu serviço para o que precisar e serei fiel as minhas funções.";
        next;
        switch(select("Informações do castelo.:Investir no crescimento comercial.:Inverstir na defesa.:Convocar Guardiões.:Serviços da Kafra.:Ir para sala do mestre.")) {
        case 1:
            mes "[ Mordomo " + [email protected]$ + " ]";
            mes "Mestre, eu vou relatar as informações do castelo.";
            mes " ";
            mes "^0000ffO nível de investimento comercial é " + getcastledata(strnpcinfo(2),2) + ".";
            if (getcastledata(strnpcinfo(2),4)) {
                mes "E você investiu " + getcastledata(strnpcinfo(2),4) + " vez(es) hoje.";
            }
            mes "O nível de defesa do castelo é " + getcastledata(strnpcinfo(2),3) + ".^000000";
            if (getcastledata(strnpcinfo(2),5)) {
                mes "E você investiu " + getcastledata(strnpcinfo(2),5) + " vez(es) hoje.^000000";
            }
            mes " ";
            mes "Mestre, esse é todo o relatório de hoje.";
            close;
        case 2:
            [email protected] = getcastledata(strnpcinfo(2),2);
            if ([email protected] < 6) { [email protected]_invest = 5000; }
            else if (([email protected] >= 6) && ([email protected] <= 10)) { [email protected]_invest = 10000; }
            else if (([email protected] >= 11) && ([email protected] <= 15)) { [email protected]_invest = 20000; }
            else if (([email protected] >= 16) && ([email protected] <= 20)) { [email protected]_invest = 35000; }
            else if (([email protected] >= 21) && ([email protected] <= 25)) { [email protected]_invest = 55000; }
            else if (([email protected] >= 26) && ([email protected] <= 30)) { [email protected]_invest = 80000; }
            else if (([email protected] >= 31) && ([email protected] <= 35)) { [email protected]_invest = 110000; }
            else if (([email protected] >= 36) && ([email protected] <= 40)) { [email protected]_invest = 145000; }
            else if (([email protected] >= 41) && ([email protected] <= 45)) { [email protected]_invest = 185000; }
            else if (([email protected] >= 46) && ([email protected] <= 50)) { [email protected]_invest = 230000; }
            else if (([email protected] >= 51) && ([email protected] <= 55)) { [email protected]_invest = 280000; }
            else if (([email protected] >= 56) && ([email protected] <= 60)) { [email protected]_invest = 335000; }
            else if (([email protected] >= 61) && ([email protected] <= 65)) { [email protected]_invest = 395000; }
            else if (([email protected] >= 66) && ([email protected] <= 70)) { [email protected]_invest = 460000; }
            else if (([email protected] >= 71) && ([email protected] <= 75)) { [email protected]_invest = 530000; }
            else if (([email protected] >= 76) && ([email protected] <= 80)) { [email protected]_invest = 605000; }
            else if (([email protected] >= 81) && ([email protected] <= 85)) { [email protected]_invest = 685000; }
            else if (([email protected] >= 86) && ([email protected] <= 90)) { [email protected]_invest = 770000; }
            else if (([email protected] >= 91) && ([email protected] <= 95)) { [email protected]_invest = 860000; }
            else if (([email protected] >= 96) && ([email protected] <= 100)) { [email protected]_invest = 955000; }
            // Quadrúplica o custo de investimento se já estiver sido feito um investimento anterior.
            if (getcastledata(strnpcinfo(2),4)) {
                [email protected]_invest *= 4;
            }
            mes "[ Mordomo " + [email protected]$ + " ]";
            mes "Se você aumentar o investimento comercial, a quantidade de tesouros produzidos para o Clã cresce. Se você deseja um futuro próspero, é necessário investir.";
            mes " ";
            mes "Originalmente, você pode investir uma vez, mas se pagar mais pode investir o dobro.";
            mes " ";
            if ([email protected] >= 100) {
                mes " ";
                mes "^ff0000Mas o nível de investimento comercial chegou a 100%. Não é mais necessário investir. Como eu esperava, você possui grande perspicácia mestre.^000000";
                close;
            }
            if (getcastledata(strnpcinfo(2),4) >= 2) {
                mes "^ff0000Mas você já investiu duas vezes hoje, então você não pode investir mais.^000000 Eu espero que o nível de investimento cresça cada vez mais.";
                close;
            }
            if (getcastledata(strnpcinfo(2),4) == 0) {
                mes "Agora será necessário investir a quantia de ^ff0000" + [email protected]_invest + "^000000 zenys. Você vai investir?";
            } else {
                mes "Você já investiu hoje... mas se deseja investir novamente, será necessário investir mais ^ff0000" + [email protected]_invest + "^000000 zenys.";
            }
            next;
            switch (select("Investir no crescimento comercial.:Cancelar")) {
            case 1:
                if (Zeny < [email protected]_invest) {
                    mes "[ Mordomo " + [email protected]$ + " ]";
                    mes "Sinto muito, mas você não possui zenys para investir. Mestre, tente novamente quando tiver juntado mais fundos.";
                    close;
                }
                Zeny -= [email protected]_invest;
                setcastledata strnpcinfo(2),4,getcastledata(strnpcinfo(2),4)+1;
                setcastledata strnpcinfo(2),2,getcastledata(strnpcinfo(2),2)+1;
                mes "[ Mordomo " + [email protected]$ + "]";
                mes "Nós concluímos os investimentos em segurança. Espero que nosso nível de comércio tenha aumentado mais até amanhã.";
                close;
            case 2:
                mes "[ Mordomo " + [email protected]$ + "]";
                mes "Como o senhor desejar Mestre... Sem pressa. Faremos o nosso melhor.";
                close;
            }
        case 3:
            set [email protected],getcastledata(strnpcinfo(2),3);
            if ([email protected] < 6) { [email protected]_invest = 10000; }
            else if (([email protected] >= 6) && ([email protected] <= 10)) { [email protected]_invest = 20000; }
            else if (([email protected] >= 11) && ([email protected] <= 15)) { [email protected]_invest = 40000; }
            else if (([email protected] >= 16) && ([email protected] <= 20)) { [email protected]_invest = 70000; }
            else if (([email protected] >= 21) && ([email protected] <= 25)) { [email protected]_invest = 110000; }
            else if (([email protected] >= 26) && ([email protected] <= 30)) { [email protected]_invest = 160000; }
            else if (([email protected] >= 31) && ([email protected] <= 35)) { [email protected]_invest = 220000; }
            else if (([email protected] >= 36) && ([email protected] <= 40)) { [email protected]_invest = 290000; }
            else if (([email protected] >= 41) && ([email protected] <= 45)) { [email protected]_invest = 370000; }
            else if (([email protected] >= 46) && ([email protected] <= 50)) { [email protected]_invest = 460000; }
            else if (([email protected] >= 51) && ([email protected] <= 55)) { [email protected]_invest = 560000; }
            else if (([email protected] >= 56) && ([email protected] <= 60)) { [email protected]_invest = 670000; }
            else if (([email protected] >= 61) && ([email protected] <= 65)) { [email protected]_invest = 790000; }
            else if (([email protected] >= 66) && ([email protected] <= 70)) { [email protected]_invest = 920000; }
            else if (([email protected] >= 71) && ([email protected] <= 75)) { [email protected]_invest = 1060000; }
            else if (([email protected] >= 76) && ([email protected] <= 80)) { [email protected]_invest = 1210000; }
            else if (([email protected] >= 81) && ([email protected] <= 85)) { [email protected]_invest = 1370000; }
            else if (([email protected] >= 86) && ([email protected] <= 90)) { [email protected]_invest = 1540000; }
            else if (([email protected] >= 91) && ([email protected] <= 95)) { [email protected]_invest = 1720000; }
            else if (([email protected] >= 96) && ([email protected] <= 100)) { [email protected]_invest = 1910000; }
            // Quadrúplica o custo de investimento se já estiver sido feito um investimento anterior.
            if (getcastledata(strnpcinfo(2),5)) {
                [email protected]_invest *= 4;
            }
            mes "[ Mordomo " + [email protected]$ + " ]";
            mes "Se você investir na defesa, a durabilidade dos guardiões e do Emperium irá aumentar. Se você espera possuir uma defesa sólida nas batalhas, invista na defesa.";
            mes " ";
            mes "Originalmente, você pode investir uma vez, mas se pagar mais pode investir o dobro.";
            mes " ";
            if ([email protected] >= 100) {
                mes "^ff0000Mas o nível de investimento da defesa chegou a 100%. Não é mais necessário investir. Como eu esperava, você possui grande perspicácia mestre.^000000";
                close;
            }
            if (getcastledata(strnpcinfo(2),5) >= 2) {
                mes "^ff0000^ff0000Mas você já investiu duas vezes hoje, então você não pode investir mais.^000000 Eu espero que o nível de defesa cresça cada vez mais.";
                close;
            }
            if (getcastledata(strnpcinfo(2),5) == 0) {
                mes "Agora será necessário investir a quantia de ^ff0000" + [email protected]_invest + "^000000 zenys. Você vai investir?";
            } else {
                mes "Você já investiu hoje... mas se deseja investir novamente, será necessário investir mais ^ff0000" + [email protected]_invest + "^000000 zenys.";
            }
            next;
            switch (select("Investir na defesa.:Cancelar")) {
            case 1:
                if (Zeny < [email protected]_invest) {
                    mes "[ Mordomo " + [email protected]$ + " ]";
                    mes "Sinto muito, mas você já investiu duas vezes hoje, então você não pode investir mais.";
                    close;
                }
                Zeny -= [email protected]_invest;
                setcastledata strnpcinfo(2),5,getcastledata(strnpcinfo(2),5)+1;
                setcastledata strnpcinfo(2),3,getcastledata(strnpcinfo(2),3)+1;
                mes "[ "+strnpcinfo(1)+"]";
                mes "Nós concluímos os investimentos em segurança. Espero que nosso nível de defesa tenha aumentado mais até amanhã.";
                close;
            case 2:
                mes "[ Mordomo " + [email protected]$ + " ]";
                mes "Como o senhor desejar Mestre... Sem pressa. Faremos o nosso melhor!";
                close;
            }
        case 4:
            mes "["+strnpcinfo(1)+"]";
            mes "Você vai convocar um Guardião? Eles irão proteger o castelo com lealdade.";
            mes "Por favor, escolha o guardião que irá defender o nosso castelo.";
            next;
            for ([email protected] = 0; [email protected] <= 7; [email protected]) {
                if ([email protected][[email protected]] == 1) {[email protected]$ = "Guardião Soldado"; }
                else if ([email protected][[email protected]] == 2) {[email protected]$ = "Guardião Arqueiro"; }
                else { [email protected]$ = "Guardião Cavaleiro"; }
                if (guardianinfo(strnpcinfo(2),[email protected],0)) {
                    setarray [email protected]$[[email protected]], [email protected]$ + " - Implementado (" + guardianinfo(strnpcinfo(2),[email protected],2) + "/" + guardianinfo(strnpcinfo(2),[email protected],1) + ")";
                } else {
                    setarray [email protected]$[[email protected]], [email protected]$ + " - Não implementado";
                }
            }
            [email protected]$ = [email protected]$[0]+":"[email protected]$[1]+":"[email protected]$[2]+":"[email protected]$[3]+":"[email protected]$[4]+":"[email protected]$[5]+":"[email protected]$[6]+":"[email protected]$[7];
            [email protected] = select([email protected]$)+9;
            mes "[ Mordomo " + [email protected]$ + " ]";
            mes "Você deseja chamar Guardiões? 10000 zenys são requeridos para convocar cada um.";
            next;
            switch (select("Chamar.:Cancelar")) {
            case 1:
                if (getgdskilllv([email protected],10002) == 0) {
                    mes "[ Mordomo " + [email protected]$ + " ]";
                    mes "Mestre, nós não temos habilidade para convocar Guardiões. Se desejar convocar guardiões, será necessário aprender essa habilidade do Clã, sem essa habilidade nós falharemos ao convocar guardiões.";
                    close;
                }
                if (getcastledata(strnpcinfo(2),[email protected]) == 1) {
                    mes "[ Mordomo " + [email protected]$ + " ]";
                    mes "Mestre, você já convocou esse Guardião. Não podemos convocar o mesmo novamente.";
                    close;
                }
                if (Zeny < 10000) {
                    mes "[ Mordomo " + [email protected]$ + " ]";
                    mes "Bem... Eu lamento, mas nós não temos verba para convocar guardiões. Dessa forma falhamos ao convocar novos guardiões.";
                    close;
                }
                Zeny -= 10000;
                setcastledata strnpcinfo(2),[email protected],1;
                [email protected] = [email protected] - 10;
                if ([email protected][[email protected]] == 1) { [email protected] = 1287; }
                else if ([email protected][[email protected]] == 2) { [email protected] = 1285; }
                else { [email protected] = 1286; }
                guardian strnpcinfo(2),[email protected][[email protected]],[email protected][[email protected]],strmobinfo(2,[email protected]),[email protected],"Guardian#"+strnpcinfo(2)+"::OnGuardianDied",[email protected];
                mes "[ Mordomo " + [email protected]$ + " ]";
                mes "A convocação dos guardiões está completa. Nossa defesa local foi fortalecida.";
                close;
            case 2:
                mes "[ Mordomo " + [email protected]$ + " ]";
                mes "Eu fiz como você ordenou. Mas por favor, lembre que se tiver dinheiro sobrando, sempre será útil.";
                close;
            }
        case 5:
            if (getcastledata(strnpcinfo(2),9) == 1) {
                mes "[ Mordomo " + [email protected]$ + " ]";
                mes "Agora sobre os serviços da Kafra... Deseja dispensa-los?";
                next;
                if (select("Dispensar.:Cancelar.") == 2) {
                    mes "[ Mordomo " + [email protected]$ + " ]";
                    mes "Aquela Kafra é muito trabalhadora. Penso que seria melhor manter ela.";
                    close;
                }
                cutin "kafra_01",2;
                mes "[Kafra Contratada]";
                mes "Eu trabalhei tão duro... Mestre, é isso que deseja?... Se o senhor está insatisfeito, trabalhei mais ianda... Por favor, reconsidere mestre.";
                next;
                if (select("Dispensar.:Cancelar.") == 2) {
                    mes "[Kafra Contratada]";
                    mes "Eu irei trabalhar arduamente... Muito obrigada!";
                    close;
                }
                mes "[Kafra Contratada]";
                mes "Oh, meu Deus! Isso é um absurdo!";
                next;
                cutin "",255;
                disablenpc "Funcionária Kafra#"+strnpcinfo(2);
                setcastledata strnpcinfo(2),9,0;
                mes "[ Mordomo " + [email protected]$ + " ]";
                mes "....";
                mes "Dispensar o serviço da Kafra... mas... você está descontente com alguma coisa?";
                close;
            }
                mes "[ Mordomo " + [email protected]$ + " ]";
                mes "Você deseja contratar os serviços da Kafra para o nosso castelo através do Escritório Central das Kafras?";
                mes "^ff0000 10000 zenys são necessários para a contratação. ";
                next;
                if (select("Contratar.:Cancelar.") == 2 ) {
                    mes "[ Mordomo " + [email protected]$ + " ]";
                    mes "Fiz como foi ordenado, mas algum dos nossos membros não ficarão felizes. Será melhor contratar outra Kafra rapidamente.";
                    close;
                }
                mes "[ Mordomo " + [email protected]$ + " ]";
                if (getgdskilllv([email protected],10001) == 0) {
                    mes "Mestre, não podemos contratar os serviços da Kafra, porque você não fez um contrato com o Escritório Central das Kafras. Se deseja contratar os serviços das Kafras é necessário aprender essa habilidade no Clã.";
                    close;
                }
                if (Zeny < 10000) {
                    mes "Bem... Mas nós não temos verba para contratar. Somos incapazes de contratar os serviços das Kafras.";
                    close;
                }
                Zeny -= 10000;
                enablenpc "Funcionária Kafra#"+strnpcinfo(2);
                setcastledata strnpcinfo(2),9,1;
                mes "Nós concluímos o nosso contrato com o Escritório das Kafras com êxito. Nós contratamos os serviços das Kafras.";
                next;
                cutin "kafra_01",2;
                mes "[Kafra Contratada]";
                mes "Como você está? Eu sou a Kafra enviada pelo escritório.";
                mes "Nós faremos o nosso melhor para manter a reputação das Kafras.";
                next;
                cutin "",255;
                mes "[ Mordomo " + [email protected]$ + " ]";
                mes "O término do contrato das Kafras, é um mês após a sua contratação, após isso haverá a necessidade do pagamento de uma nova taxa.";
                mes "Isso será muito útil para os nossos membros.";
                close;

        case 6:
            mes "[ Mordomo " + [email protected]$ + " ]";
            mes "Você deseja visitar a sala onde nossos tesouros são guardados?";
            mes "Essa sala é restrita a você... Você é o único que tem acesso a ela.";
            next;
            if (select("Entrar na sala secreta.:Cancelar.") == 2) {
                mes "[ Mordomo " + [email protected]$ + " ]";
                mes "Tesouros são produzidos uma vez por dia... se você não buscar eles, não serão produzidos novamente.";
                mes "Por isso seria interessante vir aqui uma vez por dia e guardar os tesouros no armazém do Clã.";
                close;
            }
            mes "[ Mordomo " + [email protected]$ + " ]";
            mes "Por favor, me siga. Mostrarei a passagem secreta.";
            mes "Para você retornar, basta puxar uma alavanca...";
            close2;
            warp strnpcinfo(2),[email protected][0],[email protected][1];
            end;
        }
    }

    // Guilda Entradas - Cavernas
    //============================================================
    -    script    Lever#gd::gdlever    -1,{

        [email protected] = getcastledata(strnpcinfo(2),1);

        if ([email protected] == 0) {
            mes "[Uma voz fazendo eco]";
            mes "'Aquele que puder superar todas as provações mostrando bravura... encontrará o caminho.'";
            close;
        }

        if (compare(strnpcinfo(2),"aldeg")) {
            [email protected]$ = "gld_dun02";
            if (compare(strnpcinfo(2),"cas01")) setarray [email protected][0],32,122;
            else if (compare(strnpcinfo(2),"cas02")) setarray [email protected][0],79,30;
            else if (compare(strnpcinfo(2),"cas03")) setarray [email protected][0],165,38;
            else if (compare(strnpcinfo(2),"cas04")) setarray [email protected][0],160,148;
            else if (compare(strnpcinfo(2),"cas05")) setarray [email protected][0],103,169;
        } else if (compare(strnpcinfo(2),"gefg")) {
            [email protected]$ = "gld_dun04";
            if (compare(strnpcinfo(2),"cas01")) setarray [email protected][0],39,258;
            else if (compare(strnpcinfo(2),"cas02")) setarray [email protected][0],125,270;
            else if (compare(strnpcinfo(2),"cas03")) setarray [email protected][0],268,251;
            else if (compare(strnpcinfo(2),"cas04")) setarray [email protected][0],268,108;
            else if (compare(strnpcinfo(2),"cas05")) setarray [email protected][0],230,35;
        } else if (compare(strnpcinfo(2),"payg")) {
            [email protected]$ = "gld_dun01";
            if (compare(strnpcinfo(2),"cas01")) setarray [email protected][0],186,165;
            else if (compare(strnpcinfo(2),"cas02")) setarray [email protected][0],54,165;
            else if (compare(strnpcinfo(2),"cas03")) setarray [email protected][0],54,39;
            else if (compare(strnpcinfo(2),"cas04")) setarray [email protected][0],186,39;
            else if (compare(strnpcinfo(2),"cas05")) setarray [email protected][0],223,202;
        } else if (compare(strnpcinfo(2),"prtg")) {
            [email protected]$ = "gld_dun03";
            if (compare(strnpcinfo(2),"cas01")) setarray [email protected][0],28,251;
            else if (compare(strnpcinfo(2),"cas02")) setarray [email protected][0],164,268;
            else if (compare(strnpcinfo(2),"cas03")) setarray [email protected][0],164,179;
            else if (compare(strnpcinfo(2),"cas04")) setarray [email protected][0],268,203;
            else if (compare(strnpcinfo(2),"cas05")) setarray [email protected][0],199,28;
        }
        // Adicione castelos personalizados abaixo.
        else {
            end;
        }

        mes "[Uma voz fazendo eco]";
        mes "'Somente quem for bravo o bastante pode passar pelos testes.'";
        next;
        mes " ";
        mes "Há uma pequena alavanca aqui. Deseja puxar ela?";
        next;
        if(select("Puxar.:Não puxar.") == 1) {
            if (getcharid(2) == [email protected]) {
                close2;
                warp [email protected]$,[email protected][0],[email protected][1];
                end;
            }
            mes " ";
            mes "Nada aconteceu.";
            close;
        }
        close;
    }

    // Guardian Spawner Template
    //============================================================
    -    script    Gld_Guard_Template::Gld_Guard_Template    -1,{
    OnSpawnGuardians:
        // Definições para os Guardiões nos Castelos.
        // 1 - Guardião Soldado; 2 - Guardião Arqueiro; 3 - Guardião Cavaleiro
        // Define a coordenada x para um Guardião.
        // [0] = 1° Guardiões da coordenada x.
        // Define a coordenada y para um Guardião.
        // [0] = 1° Guardiões da coordenada y.
        // Define as coordenadas da "Sala do Tesouro".
        // Aldebaran (Feudo de Luina)
        if (strnpcinfo(2) == "aldeg_cas01") {
            setarray [email protected][0],1,2,2,2,2,3,3,3;
            setarray [email protected][0],17,39,38,45,21,218,213,73;
            setarray [email protected][0],218,208,196,228,194,24,24,70;
        } else if (strnpcinfo(2) == "aldeg_cas02") {
            setarray [email protected][0],3,3,3,1,1,2,2,2;
            setarray [email protected][0],27,88,117,60,51,21,36,210;
            setarray [email protected][0],184,43,46,202,183,177,183,7;
        } else if (strnpcinfo(2) == "aldeg_cas03") {
            setarray [email protected][0],3,3,1,1,1,2,2,2;
            setarray [email protected][0],90,116,86,116,64,212,195,110;
            setarray [email protected][0],112,112,120,76,103,160,151,217;
        } else if (strnpcinfo(2) == "aldeg_cas04") {
            setarray [email protected][0],2,2,2,1,1,1,3,3;
            setarray [email protected][0],187,192,148,145,169,198,48,55;
            setarray [email protected][0],100,42,88,209,53,77,72,88;
        } else if (strnpcinfo(2) == "aldeg_cas05") {
            setarray [email protected][0],2,2,1,1,3,3,3,3;
            setarray [email protected][0],51,188,157,157,27,145,156,41;
            setarray [email protected][0],202,79,192,74,221,78,73,112;
        }
        // Geffen (Feudo de Britoniah)
        else if (strnpcinfo(2) == "gefg_cas01") {
            setarray [email protected][0],1,1,1,2,2,3,3,3;
            setarray [email protected][0],67,184,62,36,50,50,189,200;
            setarray [email protected][0],179,20,41,186,186,67,41,167;
        } else if (strnpcinfo(2) == "gefg_cas02") {
            setarray [email protected][0],1,1,1,2,2,3,3,3;
            setarray [email protected][0],64,56,166,35,20,19,166,159;
            setarray [email protected][0],168,41,25,148,150,41,42,188;
        } else if (strnpcinfo(2) == "gefg_cas03") {
            setarray [email protected][0],2,2,1,1,1,3,3,3;
            setarray [email protected][0],48,113,48,157,243,157,234,238;
            setarray [email protected][0],176,214,207,62,41,45,25,160;
        } else if (strnpcinfo(2) == "gefg_cas04") {
            setarray [email protected][0],2,2,1,1,1,3,3,3;
            setarray [email protected][0],53,31,49,29,147,57,160,148;
            setarray [email protected][0],191,178,220,46,65,46,50,189;
        } else if (strnpcinfo(2) == "gefg_cas05") {
            setarray [email protected][0],2,2,1,1,1,3,3,3;
            setarray [email protected][0],45,71,72,66,177,66,177,193;
            setarray [email protected][0],149,163,142,47,50,17,35,166;
        }
        // Payon (Feudo do Bosque Celestial)
        else if (strnpcinfo(2) == "payg_cas01") {
            setarray [email protected][0],2,2,2,2,2,2,2,3;
            setarray [email protected][0],229,225,222,99,65,36,51,138;
            setarray [email protected][0],92,80,111,45,31,127,144,133;
        } else if (strnpcinfo(2) == "payg_cas02") {
            setarray [email protected][0],2,2,2,2,2,2,2,3;
            setarray [email protected][0],237,228,210,57,42,287,264,27;
            setarray [email protected][0],54,72,41,241,241,257,272,20;
        } else if (strnpcinfo(2) == "payg_cas03") {
            setarray [email protected][0],2,2,2,2,2,2,2,3;
            setarray [email protected][0],245,269,36,41,39,19,37,268;
            setarray [email protected][0],37,51,39,39,65,276,277,244;
        } else if (strnpcinfo(2) == "payg_cas04") {
            setarray [email protected][0],2,2,2,2,2,2,2,3;
            setarray [email protected][0],251,232,231,32,32,35,36,270;
            setarray [email protected][0],212,212,175,287,232,45,17,41;
        } else if (strnpcinfo(2) == "payg_cas05") {
            setarray [email protected][0],2,2,2,2,2,2,2,3;
            setarray [email protected][0],19,33,266,266,263,263,250,36;
            setarray [email protected][0],279,260,234,279,37,21,22,36;
        }
        // Prontera (Feudo das Valquírias)
        else if (strnpcinfo(2) == "prtg_cas01") {
            setarray [email protected][0],1,1,1,2,2,3,3,3;
            setarray [email protected][0],182,182,153,59,50,184,196,107;
            setarray [email protected][0],62,116,86,28,36,183,189,179;
        } else if (strnpcinfo(2) == "prtg_cas02") {
            setarray [email protected][0],3,3,3,1,1,2,2,2;
            setarray [email protected][0],161,153,178,71,49,64,7,75;
            setarray [email protected][0],161,161,44,75,28,186,196,175;
        } else if (strnpcinfo(2) == "prtg_cas03") {
            setarray [email protected][0],3,3,3,1,1,2,2,2;
            setarray [email protected][0],191,137,45,50,41,191,179,191;
            setarray [email protected][0],190,190,99,87,87,42,43,72;
        } else if (strnpcinfo(2) == "prtg_cas04") {
            setarray [email protected][0],3,3,3,1,1,1,2,2;
            setarray [email protected][0],276,274,246,38,29,33,78,36;
            setarray [email protected][0],14,35,246,240,240,258,48,61;
        } else if (strnpcinfo(2) == "prtg_cas05") {
            setarray [email protected][0],3,3,3,1,1,1,2,2;
            setarray [email protected][0],266,287,245,236,251,278,32,44;
            setarray [email protected][0],262,280,250,63,63,253,253,248;
        }
        // Adicione castelos personalizados abaixo.
        else {
            end;
        }

        // Matar todos os guardiões após serem criados novos..
        killmonster strnpcinfo(2),strnpcinfo(0)+"::OnGuardianDied";

        for ([email protected] = 0; [email protected] <= 7; [email protected]) {
            [email protected] = [email protected] + 10;
            if ([email protected][[email protected]] == 1) { [email protected] = 1287; }
            else if ([email protected][[email protected]] == 2) { [email protected] = 1285; }
            else { [email protected] = 1286; }
            if (getcastledata(strnpcinfo(2),[email protected])) {
                guardian strnpcinfo(2),[email protected][[email protected]],[email protected][[email protected]],strmobinfo(2,[email protected]),[email protected],"Guardian#"+strnpcinfo(2)+"::OnGuardianDied",[email protected];
            }
        }
        end;

    OnGuardianDied:
        end;
    }

    // Layout de Proteção na Sala do Tesouro.
    //============================================================
    -    script    Gld_Trea_Spawn::Gld_Trea_Spawn    -1,{
        end;

    OnClock0001:
        // Se esse script não é utilizado, então nada acontecerá.
        if (strnpcinfo(1) == "Gld_Trea_Spawn") end;
        
        [email protected] = getcastledata(strnpcinfo(2),1);
        
        // Se não há uma guilda pertencente, nada acontece.
        if ([email protected]) end;

        // Existe economia no castelo?
        [email protected] = getcastledata(strnpcinfo(2),2)/5+4;

        // Seta informações.
        if (strnpcinfo(2) == "aldeg_cas01") {
            [email protected] = 1324;
            setarray [email protected][0],115,122,115,122,116,117,118,119,120,121,121,121,121,121,121,120,119,118,117,116,116,116,116,116;
            setarray [email protected][0],226,226,219,219,225,225,225,225,225,225,224,223,222,221,220,220,220,220,220,220,221,222,223,224;
        } else if (strnpcinfo(2) == "aldeg_cas02") {
            [email protected] = 1326;
            setarray [email protected][0],134,135,135,134,132,133,134,135,136,137,137,137,137,137,137,136,135,134,133,132,132,132,132,132;
            setarray [email protected][0],231,231,230,230,233,233,233,233,233,233,232,231,230,229,228,228,228,228,228,228,229,230,231,232;
        } else if (strnpcinfo(2) == "aldeg_cas03") {
            [email protected] = 1328;
            setarray [email protected][0],224,225,225,224,222,223,224,225,226,227,227,227,227,227,227,226,225,224,223,222,222,222,222,222;
            setarray [email protected][0],269,269,268,268,271,271,271,271,271,271,270,269,268,267,266,266,266,266,266,266,267,268,269,270;
        } else if (strnpcinfo(2) == "aldeg_cas04") {
            [email protected] = 1330;
            setarray [email protected][0],84,85,85,84,82,83,84,85,86,87,87,87,87,87,87,86,85,84,83,82,82,82,82,82;
            setarray [email protected][0],13,13,12,12,15,15,15,15,15,15,14,13,12,11,10,10,10,10,10,10,11,12,13,14;
        } else if (strnpcinfo(2) == "aldeg_cas05") {
            [email protected] = 1332;
            setarray [email protected][0],61,62,62,61,59,60,61,62,63,64,64,64,64,64,64,63,62,61,60,59,59,59,59,59;
            setarray [email protected][0],12,12,11,11,14,14,14,14,14,14,13,12,11,10,9,9,9,9,9,9,10,11,12,13;
        } else if (strnpcinfo(2) == "gefg_cas01") {
            [email protected] = 1334;
            setarray [email protected][0],153,154,154,153,151,152,153,154,155,156,156,156,156,156,156,155,154,153,152,151,151,151,151,151;
            setarray [email protected][0],113,113,112,112,115,115,115,115,115,115,114,113,112,111,110,110,110,110,110,110,111,112,113,114;
        } else if (strnpcinfo(2) == "gefg_cas02") {
            [email protected] = 1336;
            setarray [email protected][0],139,140,140,139,137,138,139,140,141,142,142,142,142,142,142,141,140,139,138,137,137,137,137,137;
            setarray [email protected][0],115,115,114,114,117,117,117,117,117,117,116,115,114,113,112,112,112,112,112,112,113,114,115,116;
        } else if (strnpcinfo(2) == "gefg_cas03") {
            [email protected] = 1338;
            setarray [email protected][0],269,270,270,269,267,268,269,270,271,272,272,272,272,272,272,271,270,269,268,267,267,267,267,267;
            setarray [email protected][0],291,291,290,290,293,293,293,293,293,293,292,291,290,289,288,288,288,288,288,288,289,290,291,292;
        } else if (strnpcinfo(2) == "gefg_cas04") {
            [email protected] = 1340;
            setarray [email protected][0],115,116,116,115,113,114,115,116,117,118,118,118,118,118,118,117,116,115,114,113,113,113,113,113;
            setarray [email protected][0],119,119,118,118,121,121,121,121,121,121,120,119,118,117,116,116,116,116,116,116,117,118,119,120;
        } else if (strnpcinfo(2) == "gefg_cas05") {
            [email protected] = 1342;
            setarray [email protected][0],143,144,144,143,141,142,143,144,145,146,146,146,146,146,146,145,144,143,142,141,141,141,141,141;
            setarray [email protected][0],110,110,109,109,112,112,112,112,112,112,111,110,109,108,107,107,107,107,107,107,108,109,110,111;
        } else if (strnpcinfo(2) == "payg_cas01") {
            [email protected] = 1344;
            setarray [email protected][0],289,292,292,289,288,289,290,291,292,293,293,293,293,293,293,292,291,290,289,288,288,288,288,288;
            setarray [email protected][0],10,10,7,7,11,11,11,11,11,11,10,9,8,7,6,6,6,6,6,6,7,8,9,10;
        } else if (strnpcinfo(2) == "payg_cas02") {
            [email protected] = 1346;
            setarray [email protected][0],143,146,146,143,142,143,144,145,146,147,147,147,147,147,147,146,145,144,143,142,142,142,142,142;
            setarray [email protected][0],146,146,143,143,147,147,147,147,147,147,146,145,144,143,142,142,142,142,142,142,143,144,145,146;
        } else if (strnpcinfo(2) == "payg_cas03") {
            [email protected] = 1348;
            setarray [email protected][0],158,159,159,158,156,157,158,159,160,161,161,161,161,161,161,160,159,158,157,156,156,156,156,156;
            setarray [email protected][0],169,169,168,168,171,171,171,171,171,171,170,169,168,167,166,166,166,166,166,166,167,168,169,170;
        } else if (strnpcinfo(2) == "payg_cas04") {
            [email protected] = 1350;
            setarray [email protected][0],146,147,147,146,144,145,146,147,148,149,149,149,149,149,149,148,147,146,145,144,144,144,144,144;
            setarray [email protected][0],48,48,47,47,50,50,50,50,50,50,49,48,47,46,45,45,45,45,45,45,46,47,48,49;
        } else if (strnpcinfo(2) == "payg_cas05") {
            [email protected] = 1352;
            setarray [email protected][0],155,158,158,155,154,155,156,157,158,159,159,159,159,159,159,158,157,156,155,154,154,154,154,154;
            setarray [email protected][0],134,134,131,131,135,135,135,135,135,135,134,133,132,131,130,130,130,130,130,130,131,132,133,134;
        } else if (strnpcinfo(2) == "prtg_cas01") {
            [email protected] = 1354;
            setarray [email protected][0],10,11,11,10,8,9,10,11,12,13,13,13,13,13,13,12,11,10,9,8,8,8,8,8;
            setarray [email protected][0],209,209,208,208,211,211,211,211,211,211,210,209,208,207,206,206,206,206,206,206,207,208,209,210;
        } else if (strnpcinfo(2) == "prtg_cas02") {
            [email protected] = 1356;
            setarray [email protected][0],201,202,202,201,199,200,201,202,203,204,204,204,204,204,204,203,202,201,200,199,199,199,199,199;
            setarray [email protected][0],228,228,227,227,230,230,230,230,230,230,229,228,227,226,225,225,225,225,225,225,226,227,228,229;
        } else if (strnpcinfo(2) == "prtg_cas03") {
            [email protected] = 1358;
            setarray [email protected][0],187,188,188,187,185,186,187,188,189,190,190,190,190,190,190,189,188,187,186,185,185,185,185,185;
            setarray [email protected][0],132,132,131,131,134,134,134,134,134,134,133,132,131,130,129,129,129,129,129,129,130,131,132,133;
        } else if (strnpcinfo(2) == "prtg_cas04") {
            [email protected] = 1360;
            setarray [email protected][0],269,270,270,269,267,268,269,270,271,272,272,272,272,272,272,271,270,269,268,267,267,267,267,267;
            setarray [email protected][0],162,162,161,161,164,164,164,164,164,164,163,162,161,160,159,159,159,159,159,159,160,161,162,163;
        } else if (strnpcinfo(2) == "prtg_cas05") {
            [email protected] = 1362;
            setarray [email protected][0],275,276,276,275,273,274,275,276,277,278,278,278,278,278,278,277,276,275,274,273,273,273,273,273;
            setarray [email protected][0],178,178,177,177,180,180,180,180,180,180,179,178,177,176,175,175,175,175,175,175,176,177,178,179;
        }
        else {
            end;
        }

        // Aplicar investimento a Economia e Defesa. Desenvolvimento permanente só pode ocorrer uma vez por dia.
        if (getcastledata(strnpcinfo(2),4)) {
            [email protected] = getcastledata(strnpcinfo(2),2);
            setcastledata strnpcinfo(2),2,[email protected] + getcastledata(strnpcinfo(2),4) + (rand(2) && getgdskilllv([email protected],10014));
            if (getcastledata(strnpcinfo(2),2) > 100) setcastledata strnpcinfo(2),2,100;
        }
        if (getcastledata(strnpcinfo(2),5)) {
            [email protected] = getcastledata(strnpcinfo(2),3);
            setcastledata strnpcinfo(2),3,[email protected] + getcastledata(strnpcinfo(2),5);
            if (getcastledata(strnpcinfo(2),3) > 100) setcastledata strnpcinfo(2),3,100;
        }
        // Resetar limite de investimentos diários.
        setcastledata strnpcinfo(2),4,0;
        setcastledata strnpcinfo(2),5,0;

        // Spawn de caixas.
        for ([email protected] = 0; [email protected] < [email protected] ; [email protected]) {
            // set treasure box ID
            [email protected] = [email protected] + ([email protected]+2) % 2;
            [email protected] = 1 << [email protected];
            // Gera ou não gera baús se já existirem.
            if ((getd("[email protected]"+strnpcinfo(2)+"_treasure") & [email protected]) == 0) {
                monster strnpcinfo(2),[email protected][[email protected]],[email protected][[email protected]],"Baú do Tesouro",[email protected],1,"Tesouro#"+strnpcinfo(2)+"::OnTreasureDied"[email protected];
                setd "[email protected]"+strnpcinfo(2)+"_treasure",getd("[email protected]"+strnpcinfo(2)+"_treasure") | [email protected];
            }
        }
        end;

    // "Você quebrou o baú", são setados de forma individual.
    OnTreasureDied0:
        setd "[email protected]"+strnpcinfo(2)+"_treasure",getd("[email protected]"+strnpcinfo(2)+"_treasure") & ~1;
        end;
    OnTreasureDied1:
        setd "[email protected]"+strnpcinfo(2)+"_treasure",getd("[email protected]"+strnpcinfo(2)+"_treasure") & ~2;
        end;
    OnTreasureDied2:
        setd "[email protected]"+strnpcinfo(2)+"_treasure",getd("[email protected]"+strnpcinfo(2)+"_treasure") & ~4;
        end;
    OnTreasureDied3:
        setd "[email protected]"+strnpcinfo(2)+"_treasure",getd("[email protected]"+strnpcinfo(2)+"_treasure") & ~8;
        end;
    OnTreasureDied4:
        setd "[email protected]"+strnpcinfo(2)+"_treasure",getd("[email protected]"+strnpcinfo(2)+"_treasure") & ~16;
        end;
    OnTreasureDied5:
        setd "[email protected]"+strnpcinfo(2)+"_treasure",getd("[email protected]"+strnpcinfo(2)+"_treasure") & ~32;
        end;
    OnTreasureDied6:
        setd "[email protected]"+strnpcinfo(2)+"_treasure",getd("[email protected]"+strnpcinfo(2)+"_treasure") & ~64;
        end;
    OnTreasureDied7:
        setd "[email protected]"+strnpcinfo(2)+"_treasure",getd("[email protected]"+strnpcinfo(2)+"_treasure") & ~128;
        end;
    OnTreasureDied8:
        setd "[email protected]"+strnpcinfo(2)+"_treasure",getd("[email protected]"+strnpcinfo(2)+"_treasure") & ~256;
        end;
    OnTreasureDied9:
        setd "[email protected]"+strnpcinfo(2)+"_treasure",getd("[email protected]"+strnpcinfo(2)+"_treasure") & ~512;
        end;
    OnTreasureDied10:
        setd "[email protected]"+strnpcinfo(2)+"_treasure",getd("[email protected]"+strnpcinfo(2)+"_treasure") & ~1024;
        end;
    OnTreasureDied11:
        setd "[email protected]"+strnpcinfo(2)+"_treasure",getd("[email protected]"+strnpcinfo(2)+"_treasure") & ~2048;
        end;
    OnTreasureDied12:
        setd "[email protected]"+strnpcinfo(2)+"_treasure",getd("[email protected]"+strnpcinfo(2)+"_treasure") & ~4096;
        end;
    OnTreasureDied13:
        setd "[email protected]"+strnpcinfo(2)+"_treasure",getd("[email protected]"+strnpcinfo(2)+"_treasure") & ~8192;
        end;
    OnTreasureDied14:
        setd "[email protected]"+strnpcinfo(2)+"_treasure",getd("[email protected]"+strnpcinfo(2)+"_treasure") & ~16384;
        end;
    OnTreasureDied15:
        setd "[email protected]"+strnpcinfo(2)+"_treasure",getd("[email protected]"+strnpcinfo(2)+"_treasure") & ~32768;
        end;
    OnTreasureDied16:
        setd "[email protected]"+strnpcinfo(2)+"_treasure",getd("[email protected]"+strnpcinfo(2)+"_treasure") & ~65536;
        end;
    OnTreasureDied17:
        setd "[email protected]"+strnpcinfo(2)+"_treasure",getd("[email protected]"+strnpcinfo(2)+"_treasure") & ~131072;
        end;
    OnTreasureDied18:
        setd "[email protected]"+strnpcinfo(2)+"_treasure",getd("[email protected]"+strnpcinfo(2)+"_treasure") & ~262144;
        end;
    OnTreasureDied19:
        setd "[email protected]"+strnpcinfo(2)+"_treasure",getd("[email protected]"+strnpcinfo(2)+"_treasure") & ~524288;
        end;
    OnTreasureDied20:
        setd "[email protected]"+strnpcinfo(2)+"_treasure",getd("[email protected]"+strnpcinfo(2)+"_treasure") & ~1048576;
        end;
    OnTreasureDied21:
        setd "[email protected]"+strnpcinfo(2)+"_treasure",getd("[email protected]"+strnpcinfo(2)+"_treasure") & ~2097152;
        end;
    OnTreasureDied22:
        setd "[email protected]"+strnpcinfo(2)+"_treasure",getd("[email protected]"+strnpcinfo(2)+"_treasure") & ~4194304;
        end;
    OnTreasureDied23:
        setd "[email protected]"+strnpcinfo(2)+"_treasure",getd("[email protected]"+strnpcinfo(2)+"_treasure") & ~8388608;
        end;
    }

    OBS: Eu uso o NPC WOE CONTROLE para ativar a Guerra!
     

     

    0

  3. 2 horas atrás, Hyroshima disse:

    Por quê você não faz isso por LoadMapEvent ?

    Dai vc ponha uma call nos itens que vc não quer que usem no mapa, quando o player teleportar para dentro da sala a lbl será ativada dai vc escolhe se quer tirar o player da sala e informar q os itens q ele usa não pode ser usar lao, ou simplesmente faz um desequip automatico desses itens, e na call (na coluna que chama script quando equipa o item lá no item_db) vc faz a chamada de uma lbl da qual o item só vai ser equipado caso o player não esteja em um mapa proibido.

    Opa obrigado, tentei fazer aqui e funcionou, fiz do zero um npc, curti muito esse tipo de setagem, agora vou ver se eu posso por quantos custom eu quiser rsrs, pode fechar o tópico! 

    1

  4. 35 minutos atrás, Hyroshima disse:

    Por quê você não faz isso por LoadMapEvent ?

    Dai vc ponha uma call nos itens que vc não quer que usem no mapa, quando o player teleportar para dentro da sala a lbl será ativada dai vc escolhe se quer tirar o player da sala e informar q os itens q ele usa não pode ser usar lao, ou simplesmente faz um desequip automatico desses itens, e na call (na coluna que chama script quando equipa o item lá no item_db) vc faz a chamada de uma lbl da qual o item só vai ser equipado caso o player não esteja em um mapa proibido.

    pode me da um exemplo? sou meio ruim em criar npc mas se tiver uma base consigo criar aqui, esse npc eu tinha aqui a mt tempo kk

    0

  5. Bom isso é um npc que estou tentando usar para não entrar certos players com certos itens no pvp .
    Então quero por uns 50 Itens custom que no meu caso seria os donation, pois acontece de um mercador colocar os itens no carrinho e entrar e lá poder usar.

    Segue o Script a Baixo !

     


    -    script    Itens limitados    -1,{
    function    LimitItems;
    function    CheckItems;
     
    OnInit:
    // Nível de GM para ignorar
    set .GMLevel,100;
    // Verifica a cada X segundos
    set .Seconds,1;
    // Aplicar quais os mapas e quais Zonas
    setarray .DisableMap$, // "<mapname>","<zone number>",
                    "guild_vs1","0",
                    "guild_vs2","1",
                    "guild_vs3","2";
     
    for( set .i,0; .i < getarraysize( .DisableMap$ ); set .i,.i + 2 )
        setmapflag .DisableMap$[.i],mf_loadevent;
    end;
     
    OnPCLoadMapEvent:
    if( getgmlevel() >= .GMLevel ) end;
    set @Exceed,0;
    for( set [email protected],0; [email protected] < getarraysize( .DisableMap$ ); set [email protected],[email protected] + 2 )
        if( strcharinfo(3) == .DisableMap$[[email protected]] )
            LimitItems( atoi( .DisableMap$[[email protected]+1] ) );
    end;
     
    function    LimitItems  {
    switch( getarg(0) ){
        // Case <zone>: CheckItems( <Item>,<Amount>,<Item>,<Amount>,.....,<Item>,<Amount> ); break;
        case 0:
        CheckItems( 20046,0,20047,0,20048,0,20049,0,20050,0,20051,0,20052,0,20053,0,20054,0,20055,0,20056,0,20012,0,20057,0,20058,0,20059,0,20060,0,20030,0,20031,0,20032,0 );
        break;
        case 1: CheckItems( 606,0 );    break;
        case 2: CheckItems( 20378,0 );    break;
        default:
            debugmes "[NPC : "+strnpcinfo(0)+"] - Zona inválida:"+getarg(0);
            break;
    }
    return;
    }
     
    function    CheckItems    {
    for( set [email protected],0; getarg( [email protected],0 ); set [email protected],[email protected] + 2 ){
        set [email protected],0;
        for( set [email protected],0; [email protected] <= 10; set [email protected],[email protected] + 1 )
            for( set [email protected],0; [email protected] <= getequipcardcnt( [email protected] ); set [email protected],[email protected] + 1 )
                if( getequipcardid( [email protected],[email protected] ) == getarg([email protected]) )
                    set [email protected],[email protected] + 1;
        set [email protected],[email protected] + countitem( getarg([email protected]) );
        if( [email protected] > getarg([email protected]+1) ){
            set @Exceed,1;
            mes "[ ^FF0000Limite : ^0000FF"+getarg([email protected]+1)+"^000000 ] "+getitemname( getarg([email protected]) );
        }
    }
    if( @Exceed ){
        mes "Por favor, não e permitido itens custom na arena.";
        close2;
        warp "SavePoint",0,0;
        deltimer strnpcinfo(0)+"::OnPCLoadMapEvent";
    }else{
        addtimer ( .Seconds * 1000 ),strnpcinfo(0)+"::OnPCLoadMapEvent";
        end;
    }
    return;
    }
    }


    Aparece esse erro quando coloco mas 1 ID 

    [Erro]: run_script: infinity loop !
    [Depurar]: Source (NPC): Itens limitados (invisible/not on a map)

    0

  6. Olá, alguém sabe como aumenta a quantidade do check item?

    Exemplo :

    case 0: CheckItems( 20046,0,20047,0,20048,0,20049,0,20050,0,20051,0,20052,0,20053,0,20054,0,20055,0,20056,0,20012,0,20057,0,20058,0,20059,0,20060,0 );

    break;



    Se eu Adicionar mais ID's o meu npc ele não ler, quero que meu npc leia uma certa quantidade de itens que estiverem no inventario do jogador e queria saber se tem como Aumentar na Source isso !
    Acredito que o limite estar até 20 ID's, passou de 20 ele não ler mais .

    0

  7. 1 hora atrás, Israelnino disse:

    Olá amigo não sei como estar seu projeto mais se tiver no começo usa o rathena ele já possui esse sistema ou vamos ver se os programadores vão colocar nas nova atualizações do "BR" quem sabe né um forte abraço '-'

     

    pow, curto bastante o brAthena tem tudo que preciso nele .

    Seria muito bom ter no brAthena um commite caso adicionem  ou sei lá algo do tipo!

    0

  8. Olá, bom acho algo interessante pois sei que iria ajudar muita gente aqui no BRathena.
    Eu vi uma vez aqui no fórum sobre isso e não sei por que não continuaram o projeto ao emulador ou sei lá .
    Mas seria muito bom ter um mecanismo para reiniciar o servidor caso caia no host pois eu mesmo já sofri muito com isso kkk 
    as vezes tinha que sair e quando voltava o servidor estava offline .- . ai ia na empresa hospedada eles falavam que o problema não era no host ai ficava vendo se aparecia algum erro e n dava nenhum no emulador rsrsrs então acredito que seria bom se alguém tive-se uma solução para isso vai ajudar muito, algo que adicione no emulador para que caso o servidor caia o emulador reinicie automaticamente.

    Bom não sei se já existe rsrs mas iria ajudar muita gente que passa pelo mesmo problema até por que tem gente que cria servidor por "querer ter um servidor" ou ser "grande sonho" e não entende de programação = EU kkkk

    Se alguém tiver algo parecido já ajudaria muito <3 

    Vi esse tópico e achei legal porem não funciona o LINK de Download .

     

    0

  9. 16 horas atrás, Tio Akima disse:

     

    sJXdqM1.jpg

     

    TA CHEGANDO O DIA DAS BRUXAS RAPAZIADA!

    happy* hallooooweeeen guys!*

    Nada melhor que uma salinha bem sapéca, bem trevosa pra botar aquele NPC Temático e fazer aquele evento MARA!!!

    Então, vamos de halloween room, bonitinhas, trevosas e aconchegantes! <3 

    halloween02.png

    halloween01.png

    halloween06.png

    halloween03.png

    halloween04.png

     

    halloween-1.jpg

     

     

    você não quer compartilhar pra noises ? rsrsrsrs

    0

  10. screenrSpell029.jpg.4ccd5bb4135c6f5039824ea45e683885.jpgOlá,  andei percebendo no meu servidor que quando eu refinava com o comando @refine 0+1 na tela acima do personagem onde aparece os chat de "GLOBAL" aparece o item que eu refinei maça + 1

    ate ai tudo okey mas quando eu peguei o meu mestre ferreiro e fui refinar com a Habilidade Aprimorar Armamento percebi que não aparece no "GLOBAL" o item que eu refinei com a habilidade .

    e com isso eu não consigo pegar o Over do Refine.

    alguém sabe que problema é esse ?

    0

  11. 16 horas atrás, ragjr disse:
    query_sql "SELECT `userid` FROM `login` WHERE `account_id`='"+getcharid(3)+"'",[email protected]$;

     

    Essa linha é necessária na sua poção vip.

    Ela busca o login no banco de dados e joga na variável [email protected]$.

    Note que na sua poção vip, ele insere o valor [email protected]$, que não é nada, pois não foi setada na poção vip.

    Coloque essa linha ai antes das outras e deve funcionar.

    Bom, testei e não funcionou .
    Acho que não deve ter um +Get+ para o login .... e o npc não ler o login com a poção, só ler se comprar diretamente com o npc. :/

    0

  12. 8 horas atrás, cronorx disse:

    Não seria muito melhor e mais facil usar o sistema VIP nativo do emulador brAthena ? 

    Boa tarde !

    Cara eu queria usar só q eu n sei fazer um npc que eu quero sakas .

    Ai esse npc que tenho ele supre todas minhas necessidades. 

    0

  13. 13 horas atrás, ragjr disse:
    query_sql "SELECT `userid` FROM `login` WHERE `account_id`='"+getcharid(3)+"'",[email protected]$;

     

    Essa linha é necessária na sua poção vip.

    Ela busca o login no banco de dados e joga na variável [email protected]$.

    Note que na sua poção vip, ele insere o valor [email protected]$, que não é nada, pois não foi setada na poção vip.

    Coloque essa linha ai antes das outras e deve funcionar.

    23:00 vou entrar no pc e vou testa . obrigado . o/ qual quer coisa volto aki kkk 

    0

  14. 11 horas atrás, ragjr disse:

    1 - Evite colocar códigos sem clicar em "code" antes. Fica horrível para entendermos (e assim conseguirmos te ajudar)

    2 - Não entendi bem.

    Ao usar sua poção vip na verdade você nem faz nenhum SELECT (busca informações). A única busca está no npc.

    Em qual query você quer que retorne os resultados? Na do npc? E em qual delas? Você está fazendo 4 querys ali.


    Bom vou explicar com clareza !!

    Minha POÇÃO VIP na minha DATABASE = ITEM_DB estar assim.

     

    query_sql "INSERT INTO `viptable` ( `id_account`, `login`, `char_name`, `minutos_vip`, `online`, `vipinsert`) VALUES ( '"+getcharid(3)+"',  '"[email protected]$+"', '"+strcharinfo(0)+"',  '1440', '1', '0')";
    query_sql "UPDATE `login` SET `group_id`='1' WHERE `account_id`='"+getcharid(3)+"'"; announce "O Jogador ["+strcharinfo(0)+"] Acaba de Receber 1 dias de VIP 1!",bc_all;   dispbottom "Você Recebeu 1 dias de VIP 1! RELOGUE PARA ATIVA SEU VIP.";

    Essa poção é baseada no meu NPC

    •  

    Bom, eu criei uma Poção Vip conforme o npc de vip e usei a QUERY_SQL dele para usar na minha POÇÃO VIP.
    Minha poção estar funcionando normalmente só que quando vai para a TABELA na DATABASE chamada "
    VIPTABLE" LÁ na minha DATABASE .
    Ela vem assim .......

    Textos completos id_account   login    char_name   minutos_vip   online   vipinsert
    Edita Edita Copiar Copiar Apagar Apagar    2000001   Mary 1431 1 0

                   
    Se perceber, não estar vindo com o LOGIN certo ? o login não vem MAIS o ID da Conta, Char Name e Minutos etc ....  APARECE!
    Menos o do Login .... quero saber o que tem de ERRADO na minha Poção VIP que o LOGIN não enviar pro "VIPTABLE"


    Abaixo é a parte da QUERY_SQL que eu retirei do meu NPC e adicionei na minha POÇÃO VIP!

    				mes "Hum. Tem certeza que está fazendo a coisa certa? Não há reembolso.";
                    mes "^FF0000ATENÇÃO: Se você tiver vip e estar comprando mas dias vip's?";
                    mes "por favor não compre pois os dias não acomula.^000000";
                    next;
                    if(select("- Comprar","- Cancelar") == 2){ close; }
                    
                        query_sql "SELECT `userid` FROM `login` WHERE `account_id`='"+getcharid(3)+"'",[email protected]$;
                        query_sql "SELECT `char_id` FROM `char` WHERE `account_id`='"+getcharid(3)+"'",[email protected]_CHAR_ID;
                        query_sql "SELECT `name` FROM `char` WHERE `char_id`='"[email protected]_CHAR_ID+"'",[email protected]_CHAR_NAME$;
                        set @ADC_VIP_IN_MINUTES, (1440*.Dias[[email protected]]);
                        query_sql "SELECT `id_account` FROM `viptable` WHERE `id_account`='"+getcharid(3)+"'",@HERE_CONFERE_ID;
                        set #CASHPOINTS, #CASHPOINTS-(.Qpointscash*.Dias[[email protected]]);

     

    0

  15. Bom, eu criei uma poção vip conforme um npc de minuto que baixei ..
    Porem ao usar a poção a database só pega algumas informações .

    Exemplo:

    id_account = 2000002
    login = ?
    char_name = Administrador

    minutos_vip = 1439

    vipinsert = 1

    Como deu pra perceber o login  não da a informação do login do players.

    Minha POÇÃO VIP estar assim !!

    query_sql "INSERT INTO `viptable` ( `id_account`, `login`, `char_name`, `minutos_vip`, `online`, `vipinsert`) VALUES ( '"+getcharid(3)+"',  '"[email protected]$+"', '"+strcharinfo(0)+"',  '1440', '1', '0')";
    query_sql "UPDATE `login` SET `group_id`='1' WHERE `account_id`='"+getcharid(3)+"'"; announce "O Jogador ["+strcharinfo(0)+"] Acaba de Receber 1 dias de VIP 1!",bc_all;   dispbottom "Você Recebeu 1 dias de VIP 1! RELOGUE PARA ATIVA SEU VIP.";

    //------------------------------------------------------//

    E no meu NPC estar assim !!!

                    mes "Hum. Tem certeza que está fazendo a coisa certa? Não há reembolso.";
                    mes "^FF0000ATENÇÃO: Se você tiver vip e estar comprando mas dias vip's?";
                    mes "por favor não compre pois os dias não acomula.^000000";
                    next;
                    if(select("- Comprar","- Cancelar") == 2){ close; }
                    
                        query_sql "SELECT `userid` FROM `login` WHERE `account_id`='"+getcharid(3)+"'",[email protected]$;
                        query_sql "SELECT `char_id` FROM `char` WHERE `account_id`='"+getcharid(3)+"'",[email protected]_CHAR_ID;
                        query_sql "SELECT `name` FROM `char` WHERE `char_id`='"[email protected]_CHAR_ID+"'",[email protected]_CHAR_NAME$;
                        set @ADC_VIP_IN_MINUTES, (1440*.Dias[[email protected]]);
                        query_sql "SELECT `id_account` FROM `viptable` WHERE `id_account`='"+getcharid(3)+"'",@HERE_CONFERE_ID;
                        set #CASHPOINTS, #CASHPOINTS-(.Qpointscash*.Dias[[email protected]]);



    Alguém sabe qual o problema?

    0