Jump to content
  • 0
Sign in to follow this  
Crilan

Bloquear entrar com Cartas MVP em pvp

Question

Boa noite galera !!!
Utilizo esse npc de teleporte para o pvp

 

//===== Por: ==================================================
//= Wukong - v1.0
//= Khan   - v3.0
//= NightmareA - v4.0
//= NightmareA - v5.0
//= pedroamoury - v6.0
//= Easy Crazy - v7.0
//= Linne - v7.1
//===== Versão Atual: =========================================
//= 7.1
//===== Changelog: ============================================
//= 7.1 - Atualizado por Linne.
//===== Compatível Com: =======================================
//= Qualquer eAthena (SVN)
//= Qualquer Cronus (SVN)
//===== Descrição: ============================================
//= Arena da Morte. Com arena de PvP/GvG com Rank Abertas as 10:00 e Feichadas as 22:00 da noite.
//= Arenas PvP, GvG , Baby No-Rank Abertas 24h
//= Playes vs Playes 1x1
//= Sala de Eventos onde acontece eventos
//=============================================================
 
//===== Arena da Morte ========================================
rachel,134,116,6    script    Arena    404,{
 
//===== Nome do npc. ==========================================
set @nome$,"[^FF0000Arena da Morte^000000]";
 
//===== Arena PvP =============================================
set $pvp$[0],"ordeal_3-1";//Arena 1
set $pvpn$[0],"pvp_2vs2";//Arena 1
//===== Arena GvG =============================================
set $gvg$[0],"guild_vs3";// Arena 1
set $gvgn$[0],"guild_vs2-2";// Arena 1
set $baby$[0],"guild_vs1-3";// Baby 1
// ====== Sala de 1x1 =============================================
set $playe$[0],"guild_vs1-4";// 1x1 1
//===== Arena Baby =============================================
    mes @nome$;
    mes "Olá "+strcharinfo(0)+".";
    mes "Escolha qual destino deseja ir";
    next;
    switch(select("- PvP Normal (^0000FF"+getmapusers($pvp$[$pvp])+"^000000) Jogadores","- PvP Iniciante (^0000FF"+getmapusers($gvg$[$gvg])+"^000000) Jogadores","- GvG (^0000FF"+getmapusers($pvpn$[$pvpn])+"^000000) Jogadores","- Playes 1vs1 (^0000FF"+getmapusers($playe$[$playe])+"^000000) Jogadores","- Sair"))
    {
 
    case 1:
        switch(select("- Arena PvP","- Sair"))
        {
 
        case 1:
             set @evento, rand(1,5);
                if(@evento == 1){ warp "ordeal_3-1",150,123; }
                if(@evento == 2){ warp "ordeal_3-1",122,148; }
                if(@evento == 3){ warp "ordeal_3-1",150,176; }
                if(@evento == 4){ warp "ordeal_3-1",177,149; }
                if(@evento == 5){ warp "ordeal_3-1",150,150; }
                end;
 
        case 2:
            mes @nome$;
            mes "Volte quando precisar dos meus serviços.";
            close;
        }
        close;
    case 2:
        switch(select("- PvP iniciante","- Sair"))
        {
 
        case 1:
        if(countitem(4357)>= 1) goto DON;
        if(countitem(4359)>= 1) goto DON;
        if(countitem(4361)>= 1) goto DON;
        if(countitem(4367)>= 1) goto DON;
        if(countitem(4372)>= 1) goto DON;
        if(countitem(4374)>= 1) goto DON;
        if(countitem(4376)>= 1) goto DON;
        if(countitem(4386)>= 1) goto DON;
        if(countitem(4399)>= 1) goto DON;
        if(countitem(4403)>= 1) goto DON;
        if(countitem(4407)>= 1) goto DON;
        if(countitem(4408)>= 1) goto DON;
        if(countitem(4419)>= 1) goto DON;
        if(countitem(4425)>= 1) goto DON;
        if(countitem(4430)>= 1) goto DON;
        if(countitem(4441)>= 1) goto DON;
        if(countitem(4047)>= 1) goto DON;
        if(countitem(4054)>= 1) goto DON;
        if(countitem(4121)>= 1) goto DON;
        if(countitem(4123)>= 1) goto DON;
        if(countitem(4128)>= 1) goto DON;
        if(countitem(4131)>= 1) goto DON;
        if(countitem(4132)>= 1) goto DON;
        if(countitem(4134)>= 1) goto DON;
        if(countitem(4135)>= 1) goto DON;
        if(countitem(4137)>= 1) goto DON;
        if(countitem(4131)>= 1) goto DON;
        if(countitem(4142)>= 1) goto DON;
        if(countitem(4143)>= 1) goto DON;
        if(countitem(4144)>= 1) goto DON;
        if(countitem(4146)>= 1) goto DON;
        if(countitem(4148)>= 1) goto DON;
        if(countitem(4168)>= 1) goto DON;
        if(countitem(4174)>= 1) goto DON;
        if(countitem(4236)>= 1) goto DON;
        if(countitem(4241)>= 1) goto DON;
        if(countitem(4242)>= 1) goto DON;
        if(countitem(4263)>= 1) goto DON;
        if(countitem(4276)>= 1) goto DON;
        if(countitem(4302)>= 1) goto DON;
        if(countitem(4305)>= 1) goto DON;
        if(countitem(4318)>= 1) goto DON;
        if(countitem(4324)>= 1) goto DON;
        if(countitem(4330)>= 1) goto DON;
        if(countitem(4342)>= 1) goto DON;
            next;
            mes "[PvP Sem Donate]";
            mes "Boa luta ^^";
            warp $gvg$,0,0;    end;
 
        case 2:
            mes @nome$;
            mes "Volte sempre que quiser.";
            close;
        }
        close;
 
    case 3:
        switch(select("- Arena GvG","- Sair"))
        {
 
        case 1:
             set @evento, rand(1,5);
                if(@evento == 1){ warp "pvp_2vs2",40,19; }
                if(@evento == 2){ warp "pvp_2vs2",19,40; }
                if(@evento == 3){ warp "pvp_2vs2",39,59; }
                if(@evento == 4){ warp "pvp_2vs2",59,39; }
                if(@evento == 5){ warp "pvp_2vs2",40,31; }
                end;
//            warp $pvpn$,0,0;    end;
 
        case 2:
            mes @nome$;
            mes "Volte quando precisar dos meus serviços.";
            close;
        }
        close;
    case 4:
        switch(select("- 1 VS 1","- Sair"))
        {
 
        case 1:
            percentheal 100,100;
            if(!getcharid(2)) {mes "Você precisa estar em uma guild para poder entrar"; close;}
            warp $gvgn$,0,0;    end;
 
        case 2:
            mes @nome$;
            mes "Volte quando precisar dos meus serviços.";
            close;
        }
        close;
 
        case 5:
        {

            mes @nome$;
            mes "Volte quando precisar dos meus serviços.";
            close;
        }
        close;
    case 6:
        switch(select("- Playes 1vs1","- Sair"))
        {
 
        case 1:
                                                            if (getmapusers("guild_vs1-4") > 1) {mes "Limite de 2 pessoas atingidos."; close;}
            warp $playe$,0,0;    end;
 
        case 2:
            mes @nome$;
            mes "Volte quando precisar dos meus serviços.";
            close;
    }
                                    close;

    case 7:
        mes @nome$;
        mes "Volte quando precisar dos meus serviços.";
        close;
    }
    DON:
        mes "[PvP Iniciante]";
        mes "voce nao e um iniciante!";
        close;
    end;
}
 
// -- Inicio do Script
 
-    script    Arena#PCKill    -1,{
 
OnPCKillEvent:
 
                    getmapxy @map$,@x,@y,0;
            if ( @map$ == $pvp$[$pvp] ) goto PvP;
            if ( @map$ == $pvp$[$pvpx] ) goto PvP;
            if ( @map$ == $pvp$[$pvpw] ) goto PvP;
            if ( @map$ == $pvp$[$pvpy] ) goto PvP2;//Sem ygg
            if ( @map$ == $gvg$[$gvg] ) goto GvG;
            if ( @map$ == $gvg$[$gvgx] ) goto GvG;
            if ( @map$ == $gvg$[$gvgw] ) goto GvG;
            if ( @map$ == $gvg$[$gvgy] ) goto GvG2;//Sem ygg
            if ( @map$ == $pvp$[$playes] ) goto playes;
                        end;
 
// ======= Arenas PvP =======
PvP:
        set @CID,getcharid(0);set @name$,"";set @points,0;
                    query_sql "SELECT `kills` FROM `pvp` WHERE `char_id`="+@CID+"",@points;
                    query_sql "SELECT `name` FROM `pvp` WHERE `char_id`="+@CID+"",@name$;
            if ( @name$ == "" ) { query_sql "INSERT INTO `pvp` (`char_id`,`name`,`kills`) VALUES ("+@CID+",'"+strcharinfo(0)+"',1)",@esc$; dispbottom "Você Matou seu primeiro jogador"; end; }
                    query_sql "UPDATE `pvp` SET `kills` = `kills` +1 WHERE `char_id`="+@CID+"",@esc$;
        set @points,@points+1;
        announce "Você matou [ "+rid2name(killedrid)+" ] e chegou a "+@points+" jogadores mortos.",bc_self,0x90FFFF;
                        end;
 
// ======= Arenas GvG =======
GvG:
        set @GID,getcharid(2);set @name$,"";set @points,0;
                    query_sql "SELECT `kills` FROM `gvg` WHERE `guild_id`="+@GID+"",@gpoints;
                    query_sql "SELECT `name` FROM `gvg` WHERE `guild_id`="+@GID+"",@name$;
            if ( @name$ == "" ) { query_sql "INSERT INTO `gvg` (`guild_id`,`name`,`kills`) VALUES ("+@GID+",'"+strcharinfo(2)+"',1)",@esc$; dispbottom "Primeiro Frag da Guild"; end; }
                    query_sql "UPDATE `gvg` SET `kills` = `kills` + 1 WHERE `guild_id`="+@GID+"",@esc$;
        set @gpoints,@gpoints+1;
        mapannounce    @map$,"A Guild [ "+@name$+" ] empilhou "+@gpoints+" caveiras.",bc_self,0x90FFFF;
                        end;
}
-    script    Arena#PCDie    -1,{
 
OnPCDieEvent:
 
            getmapxy @map$,@x,@y,0;
            if ( @map$ == $pvp$[$pvp] ) goto PvP;
            if ( @map$ == $pvp$[$pvpx] ) goto PvP;
            if ( @map$ == $pvp$[$pvpw] ) goto PvP;
            if ( @map$ == $pvp$[$pvpy] ) goto PvP2;
            if ( @map$ == $gvg$[$gvg] ) goto GvG;
            if ( @map$ == $gvg$[$gvgx] ) goto GvG;
            if ( @map$ == $gvg$[$gvgw] ) goto GvG;
            if ( @map$ == $gvg$[$gvgy] ) goto GvG2;
// ======= Arenas GvG =======
 
PvP:
        set @CID,getcharid(0);set @name$,"";set @points,0;
                    query_sql "SELECT `deaths` FROM `pvp` WHERE `char_id`="+@CID+"",@points;
                    query_sql "SELECT `name` FROM `pvp` WHERE `char_id`="+@CID+"",@name$;
            if ( @name$ == "" ) { query_sql "INSERT INTO `pvp` (`char_id`,`name`,`deaths`) VALUES ("+@CID+",'"+strcharinfo(0)+"',1)",@esc$; end; }
                    query_sql "UPDATE `pvp1` SET `deaths` = `deaths` + 1 WHERE `char_id`="+@CID+"",@esc$;
                        end;
 
// ======= Arenas GvG =======
 
GvG:
        set @GID,getcharid(2);set @name$,"";set @gpoints,0;
                    query_sql "SELECT `deaths` FROM `gvg1` WHERE `guild_id`="+@GID+"",@gpoints;
                    query_sql "SELECT `name` FROM `gvg1` WHERE `guild_id`="+@GID+"",@name$;
            if ( @name$ == "" ) { query_sql "INSERT INTO`gvg1` (`guild_id`,`name`,`deaths`) VALUES ("+@GID+",'"+strcharinfo(2)+"',1)",@esc$; end; }
                    query_sql "UPDATE `gvg1` SET `deaths` = `deaths` + 1 WHERE `guild_id`="+@GID+"",@esc$;
                        end;
 
}
 
//============== Saída ==================
guild_vs3,36,69,4    script    Saida#PvP1::Saida#PvP    899,{
announce "Você sairá em 10 segundos.",bc_self,0x90FFFF;
addtimer 10000,"Saida#PvP::OnSairpvp";
end;
OnSairpvp:
warp "SavePoint",0,0;
}
 
//============== MAP FLAG ===============
// PvP
ordeal_3-1    mapflag    nosave
ordeal_3-1    mapflag    noteleport
ordeal_3-1    mapflag    nowarpto
ordeal_3-1    mapflag    nowarp
ordeal_3-1    mapflag    nomemo
ordeal_3-1    mapflag    gvg    off
ordeal_3-1    mapflag    pvp
ordeal_3-1    mapflag    nopenalty
ordeal_3-1    mapflag    nobranch
ordeal_3-1    mapflag    pvp_noguild
ordeal_3-1    mapflag    noloot
ordeal_3-1    mapflag    noexp
 
// PvP No-Rank
pvp_2vs2    mapflag    nosave
pvp_2vs2    mapflag    noteleport
pvp_2vs2    mapflag    nowarpto
pvp_2vs2    mapflag    nowarp
pvp_2vs2    mapflag    nomemo
pvp_2vs2    mapflag    gvg    off
pvp_2vs2    mapflag    pvp
pvp_2vs2    mapflag    nopenalty
pvp_2vs2    mapflag    nobranch
pvp_2vs2    mapflag    pvp_noguild
pvp_2vs2    mapflag    noloot
pvp_2vs2    mapflag    noexp
 
 
// GvG
guild_vs3    mapflag    nosave
guild_vs3    mapflag    noteleport
guild_vs3    mapflag    nowarpto
guild_vs3    mapflag    nowarp
guild_vs3    mapflag    nomemo
guild_vs3    mapflag    gvg    off
guild_vs3    mapflag    pvp
guild_vs3    mapflag    nopenalty
guild_vs3    mapflag    nobranch
guild_vs3    mapflag    noloot
guild_vs3    mapflag    noexp
 
// GvG No-Rank
guild_vs2-2    mapflag    nosave
guild_vs2-2    mapflag    noteleport
guild_vs2-2    mapflag    nowarpto
guild_vs2-2    mapflag    nowarp
guild_vs2-2    mapflag    nomemo
guild_vs2-2    mapflag    pvp    off
guild_vs2-2    mapflag    gvg
guild_vs2-2    mapflag    nopenalty
guild_vs2-2    mapflag    nobranch
guild_vs2-2    mapflag    noloot
guild_vs2-2    mapflag    noexp
 
// Baby
guild_vs1-3    mapflag    nosave
guild_vs1-3    mapflag    noteleport
guild_vs1-3    mapflag    nowarpto
guild_vs1-3    mapflag    nowarp
guild_vs1-3    mapflag    nomemo
guild_vs1-3    mapflag    gvg    off
guild_vs1-3    mapflag    pvp
guild_vs1-3    mapflag    nopenalty
guild_vs1-3    mapflag    nobranch
guild_vs1-3    mapflag    pvp_noguild
guild_vs1-3    mapflag    noloot
guild_vs1-3    mapflag    noexp
 
// Playes 1x1
guild_vs1-4    mapflag    nosave
guild_vs1-4    mapflag    noteleport
guild_vs1-4    mapflag    nowarpto
guild_vs1-4    mapflag    nowarp
guild_vs1-4    mapflag    nomemo
guild_vs1-4    mapflag    gvg    off
guild_vs1-4    mapflag    pvp
guild_vs1-4    mapflag    nopenalty
guild_vs1-4    mapflag    nobranch
guild_vs1-4    mapflag    pvp_noguild
guild_vs1-4    mapflag    noloot
guild_vs1-4    mapflag    noexp


E eu gostaria de fazer o seguinte.
Onde está PVP Iniciante eu gostaria de fazer com que o npc diga algo como, "você está utilizando alguma carta mvp e não pode ser teleportado para essa arena" ou algo do tipo. e o npc não permite que a pessoa teleporte para esse mapa até que ela remova todas as cartas mvps.
Se alguem puder me ajudar com isso eu ficaria muito agradecido.

@up

Eu adicionei esse      case 1:
        if(countitem(4357)>= 1) goto DON;  ....
mas isso só impede que o jogador entre caso a carta mvp esteja em seu inventario.

e eu gostaria que bloqueasse todas as cartas alem das que estão no inventário as que estão equipadas também...
ai no caso as outras as outras 3 arenas q é pvp normal, Players 1vs1 e GVG pode entrar com qualquer mvp.

Edited by Crilan
informação adicional

Share this post


Link to post
Share on other sites

1 answer to this question

Recommended Posts

  • 0

Te dou duas formas de fazer isso:

Você pode bloquear cartas mvp no mapa utilizando o item_noequip.txt e o mapflag restricted

ou

Utilizar o comando getinventorylist para percorrer por todos os itens do personagem (equipado ou não), mas pode dar um lag se o cara tiver muito item equipado

Share this post


Link to post
Share on other sites
Este tópico já possui mais de 30 dias sem respostas. Por favor, abra um novo tópico

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.

Sign in to follow this  

Seja bem vindo ao Cronus-Emulator.
É sempre um prazer te-lo conosco.
Você pode visualizar nossas áreas de suporte para encontrar suas soluções sem a necessidade de se registrar!
Registrando em nossa comunidade, você poderá conhecer mais sobre nosso projeto, criar tópicos, responder tópicos existentes, baixar milhares de recursos em nosso sistema de downloads, participar de nossa comunidade, customizar seu perfil e muito mais... Se você já possui uma conta, faça seu login - ou crie uma conta. Também temos integração com Google+ e Facebook.

×
×
  • Create New...