Jump to content
  • 0

PvP No-Donate


Scofield

Question


  • Group:  Members
  • Topic Count:  107
  • Topics Per Day:  0.03
  • Content Count:  265
  • Reputation:   11
  • Joined:  01/11/13
  • Last Seen:  

I have this pvp system would add the option to put an arena without using donates,

 

 

//|==================================================================================|
//|          ___           ___           ___           ___           ___            |
//|         /\  \         /\  \         /\  \         /|  |         /\  \           |
//|        |::\  \       /::\  \       /::\  \       |:|  |        /::\  \          |
//|        |:|:\  \     /:/\:\  \     /:/\:\  \      |:|  |       /:/\:\  \         |
//|      __|:|\:\  \   /:/  \:\  \   /:/  \:\  \   __|:|  |      /:/ /::\  \        |
//|     /::::|_\:\__\ /:/__/ \:\__\ /:/__/ \:\__\ /\ |:|__|____ /:/_/:/\:\__\       |
//|     \:\--\  \/__/ \:\  \ /:/  / \:\  \ /:/  / \:\/:::::/__/ \:\/:/  \/__/       |
//|      \:\  \        \:\  /:/  /   \:\  /:/  /   \::/__/       \::/__/            |
//|       \:\  \        \:\/:/  /     \:\/:/  /     \:\  \        \:\  \            |
//|        \:\__\        \::/  /       \::/  /       \:\__\        \:\__\           |
//|         \/__/         \/__/         \/__/         \/__/         \/__/           |
//| ================================================================================ |
//|   Script Desenvolvido Por Mooka | eAthena | Por Favor, Não Retire Os Créditos.   |
//| ================================================================================ |
//|         Observação! O MapFlag Está No Final Do Script !                 |
//| ================================================================================ |
//|[v1.3.0]: Nova Função de Múltiplas linguagens.            (Mooka)         |
//| ------                                         |
//| v1.2.9 : Nova Tabela! (PM_Lang)                    (Mooka)         |
//| v1.2.8 : Alteração na função !exit.                    (Mooka)         |
//| v1.2.7 : Adicionado balão de Chat no npc.                (Mooka)         |
//| v1.2.6 : Nova opção! Ganhando experiência no PvP!            (Mooka)         |
//| v1.2.5 : Adicionado !map#list.                    (Mooka)         |
//| v1.2.4 : Mapflags são definidos automaticamente.            (Mooka)         |
//| v1.2.3 : Novo campo na tabela 'pvpm_map'. (noguild)            (Mooka)         |
//| v1.2.2 : Alteração na função "Changeleader".            (Mooka)         |
//| v1.2.1 : Implementada opção para WoE. (Contagem de pontos na WoE)    (Mooka)         |
//| v1.2.0 : Novo comando remoto. (!map)                (Mooka)         |
//| ------                                         |
//| v1.1.9 : Comandos !pvp\!gvg\!baby mergidos no novo comando !warp.     (Mooka)         |
//| v1.1.8 : Reformulado Sistema das Arenas.                (Mooka)         |
//| v1.1.7 : Nova tabela no PvP Master. (pvpm_map)            (Mooka)         |
//| v1.1.6 : Ranking não mostra mais valores com 0.            (Mooka)         |
//| v1.1.5 : Novos comandos remotos. (!ban;!truncate)            (Mooka)         |
//| v1.1.4 : Adicionado opção de Ranking Ratio aos Menus e CMD Remotos.    (Mooka)         |
//| v1.1.3 : Otimizado IF's dos comandos remotos.            (Mooka)         |
//| v1.1.2 : Desenvolvida nova opção de Ranking. (Ratio)        (Mooka)         |
//| v1.1.1 : Alteração na tabela pvpm_data. (Adicionado campo 'ratio')    (Mooka)         |
//| v1.1.0 : Novo comando remoto. (!help)                (Mooka)         |
//| ------                                         |
//| v1.0.9 : Adicionado duplicações do npc em todas as cidades.        (Mooka)         |
//| v1.0.8 : Adicionada opção para retirar buffs.            (Mooka)         |
//| v1.0.7 : Correção na função Ranking2.                (Mooka)         |
//| v1.0.6 : Correção no comando !exit.                    (Mooka)         |
//| v1.0.5 : Correção no bug de enviar o som "end" causando erro.    (Mooka)         |
//| v1.0.4 : Implementado Sons do Unreal Tournament.            (Mooka)         |
//| v1.0.3 : Adicionado novo tipo de contagem de Pontos com Announce.    (Mooka)         |
//| v1.0.2 : Adicionada opção para servidores PK.            (Mooka)         |
//| v1.0.1 : Adicionado PvP Baby.                    (Mooka)         |
//| v1.0.0 : Desenvolvida Versão.                    (Mooka)         |
//| ================================================================================ |
//| Table update (v1.3.0+):                                 |
//| DROP TABLE IF EXISTS `pvpm_lang`;                             |
//| CREATE TABLE `pvpm_lang` (                                 |
//| `id` int(11) unsigned NOT NULL default '0',                         |
//| `lang` int(11) unsigned NOT NULL default '0',                     |
//| `str` varchar(255) NOT NULL default '',                         |
//| KEY `id` (`id`)                                     |
//| ) TYPE=MyISAM;                                     |
//| -------------------------------------------------------------------------------- |
//| Table update (v1.2.3+):                                 |
//| alter table pvpm_map add noguild int(11) not null default '0';             |
//| update pvpm_map set noguild=1 where map='guild_vs1';                 |
//| -------------------------------------------------------------------------------- |
//| Table update (v1.1.7+):                                 |
//| DROP TABLE IF EXISTS `pvpm_map`;                             |
//| CREATE TABLE `pvpm_map` (                                 |
//| `id` int(11) unsigned NOT NULL default '0',                         |
//| `map` varchar(255) NOT NULL default 'NULL',                         |
//| `type` int(11) unsigned NOT NULL default '0',                     |
//| KEY `id` (`id`)                                     |
//| ) TYPE=MyISAM;                                     |
//| insert into pvpm_map (id,map,type) values (0,'guild_vs3',0);             |
//| insert into pvpm_map (id,map,type) values (1,'pvp_n_1-5',0);             |
//| insert into pvpm_map (id,map,type) values (2,'guild_vs1',2);             |
//| insert into pvpm_map (id,map,type) values (3,'prt_are01',2);             |
//| insert into pvpm_map (id,map,type) values (4,'guild_vs2',1);             |
//| -------------------------------------------------------------------------------- |
//| Table update (v1.1.1+):                                 |
//| alter table pvpm_data add ratio int(11) not null default '0' after dies         |
//| -------------------------------------------------------------------------------- |
//| Table update (v1.0.0+):                                 |
//| DROP TABLE IF EXISTS `pvpm_data`;                             |
//| CREATE TABLE `pvpm_data` (                                 |
//| `id` int(11) unsigned NOT NULL default '0',                         |
//| `name` varchar(255) NOT NULL default '',                         |
//| `kills` int(11) unsigned NOT NULL default '0',                     |
//| `dies` int(11) unsigned NOT NULL default '0',                     |
//| `leader` int(11) unsigned NOT NULL default '0',                     |
//| `annc` int(11) unsigned NOT NULL default '0',                     |
//| `ban` int(11) unsigned NOT NULL default '0',                     |
//| `type` int(11) unsigned NOT NULL default '0',                     |
//| KEY `id` (`id`),                                     |
//| KEY `kills` (`kills`),                                 |
//| KEY `dies` (`dies`)                                     |
//| ) TYPE=MyISAM;                                     |
//|                                             |
//| ================================================================================ |
-    script    init_PM    -1,{                              // |
//|                                                           |
//| -------------------------------------------------------------------------------- |
//| |!Aviso importante sobre as configurações!                       | |
//| |O Sistema de Arena terá problemas caso passe de 10 mapas na lista.           | |
//| |É possível alterar este limite editando o script, caso queira fale comigo.    | |
//| -------------------------------------------------------------------------------- |
//|                                                           |
OnInit:                                                        // |
//| Configurações:                                                                 |
//|                                                           |
//|=> Nome do npc na janela.                                 |
set $@pvpm_name$,"[ ^FF0000 Arena ^000000 ]";                          // |
//|                                              |
//|=> Deseja usar o Ranking Ratio como principal? [ 1 = Sim ]                 |
//|---> Nota: Ranking Ratio: Pontuação = Kills - Mortes                     |
set $@mainRanking,1;                                  // |
//|                                              |
//|=> Até onde o Ranking irá mostrar. [ Máximo 127 ]                     |
set $@showsRankUntil,25;                              // |
//|                                              |
//|=> Modo PK. Está configurado para alterar automaticamente, mude se necessário.    |
set $@PK_Mode,getbattleflag("pk_mode");                          // |
//|                                              |
//|=> Deseja que ao player entrar no pvp perca os buff? [ 1 = Sim]             |
set $@breakBuffs,0;                                  // |
//|                                              |
//|=> Quando o player matar o outro, deve ganhar experiência?                 |
//|---> Nota 1:    Servidores de rates alta, configure o "quest_exp_rate". (exp.conf)   |
//|---> Nota 2:    $@lostEXP: Quantidade de EXP perdida ao morrer. ( 0 = Desativado )   |
//|---> Nota 3:    Configuração do comando:                         |
//|-->  0 : Desativado.                                     |
//|-->  1 : Ativado usando fórmula de EXP. ($@getEXP*KilledLVL/KillerLVL)         |
//|-->  2 : Ativado, o player sempre irá ganhar a quantia definida no $@getEXP.      |
set $@getEXPoption,1;                                  // |
set $@getEXP,115; // 0,1% no level 50.                             |
set $@lostEXP,0;                                  // |
//|                                             |
//|=> Deseja ativar a contagem de pontos nos mapas da WoE?                 |
//|---> Nota 1: Não são enviandos sons/broadcast nos mapas da WoE.             |
//|---> Nota 2: Opções de contagem.                             |
//|--> 0: Desativado.                                     |
//|--> 1: Ativar contagem somente do PvP.                         |
//|--> 2: Ativar contagem somente do GvG.                         |
//|--> 3: Ativar ambos.                                     |
set $@CountPointsInWoE,3;                              // |
//|                                              |
//|=> Configuração do Som e Announce!                             |
//|---> Nota 1: Os sons devem ser colocados na pasta data/wav em formato .wav         |
//|---> Nota 2: Se desativar o som do UT, desativará o broadcast dele também.(2)     |
//|--> 0 : Desativar Todas Opções.                             |
//|--> 1 : Ativar somente broadcast Global.                         |
//|--> 2 : Ativar somente sons/broadcast do Unreal Tournament.                 |
//|--> 3 : Ativar Ambos.                                 |
set $@sound,3;                                      // |
//|                                              |
//|=> Lista com o nomes dos Sons Unreal Tournament.                     |
//|---> Nota 1: $@SoundList$[Pontos em que irá tocar o som(Max. 127)],"Nome do Som"; |
//|---> Nota 2: A partir do ultimo, será somado 10 e repetirá o som, o set         |
//|--->     com "end" indica que o ultimo som será repetido dali em diante.         |
//|---> Nota 3: O nome do arquivo é o mesmo que será exibido no announce.         |
set $@SoundList$[1],"First Blood";                          // |
set $@SoundList$[2],"Double Kill";                          // |
set $@SoundList$[3],"Triple Kill";                          // |
set $@SoundList$[5],"Mega Kill";                          // |
set $@SoundList$[10],"Ultra Kill";                          // |
set $@SoundList$[15],"Killing Spree";                          // |
set $@SoundList$[20],"Ownage";                              // |
set $@SoundList$[25],"Holy Shit";                          // |
set $@SoundList$[30],"God Like";                          // |
set $@SoundList$[35],"Dominating";                          // |
set $@SoundList$[40],"Unstoppable";                          // |
set $@SoundList$[50],"Monster Kill";                          // |
set $@SoundList$[51],"end";                              // |
//|==================================================================================|

query_sql("select name from pvpm_data where leader=1 and type=0 limit 1",$@Player_Lider$);
query_sql("select name from pvpm_data where leader=1 and type=2 limit 1",$@Guild_Lider$);

    query_sql("select lang from pvpm_lang where lang=0 and lang=1",.@checkDefaultLang);
    if(!.@checkDefaultLang && .@checkDefaultLang[1])
    {
    debugmes "[PvP Master Ultimate] NO DEFAULT LANGUAGE(LANG0)! LANG1 WAS SET AS DEFAULT!";
    query_sql("update pvpm_lang set lang=lang-1");
    }

    query_sql("select count(lang) from pvpm_lang where id=0",.@c);
    if(!.@c) debugmes "[PvP Master Ultimate] NO LANGUAGE DATA!";
    for(set .@i,0;.@i<.@c;set .@i,.@i+1)
    {
    deletearray .@str$,82;
    query_sql("select str from pvpm_lang where lang="+.@i,.@str$);
    for(set .@y,0;.@y<82;set .@y,.@y+1) setd "$@PM_Lang"+.@i+"$["+.@y+"]",.@str$[.@y];
    }

OnReloadListMap:
    deletearray $@IDPM,10;
    deletearray $@mapPM$,10;
    deletearray $@MapTypePM,10;
    deletearray $@menu$,10;
    query_sql("select * from pvpm_map order by id asc limit 10",$@IDPM,$@mapPM$,$@MapTypePM,$@mfPM);
    setarray $@TypeArena$[0],"^CD5C5C<PvP>","^FF4500<PvP Baby>","^8B5742<GvG>","^0047AB<Evento>";
    for(set .@j,0;.@j<=(getarraysize($@mapPM$)-1);set .@j,.@j+1)
    {
    set $@menu$[.@j],"^000000- Arena "+(.@j+1)+" "+$@TypeArena$[$@MapTypePM[.@j]];
    setmapflag $@mapPM$[.@j],mf_noreturn;
    setmapflag $@mapPM$[.@j],mf_nosave;
    setmapflag $@mapPM$[.@j],mf_noteleport;
    setmapflag $@mapPM$[.@j],mf_nowarpto;
    setmapflag $@mapPM$[.@j],mf_nowarp;
    setmapflag $@mapPM$[.@j],mf_nomemo;
    setmapflag $@mapPM$[.@j],mf_nopenalty;
    setmapflag $@mapPM$[.@j],mf_nobranch;
    if(!$@MapTypePM[.@j] && !$@mfPM[.@j]) setmapflag $@mapPM$[.@j],mf_pvp; else
    if(!$@MapTypePM[.@j]) setmapflag $@mapPM$[.@j],mf_pvp_noguild;
    if($@MapTypePM[.@j]==2) setmapflag $@mapPM$[.@j],mf_gvg;
    }
}

-    script    PM_source    -1,{

    while(1)
    {
    mes $@pvpm_name$;
    mes callfunc("getMesPM",1);
    mes callfunc("getMesPM",2);
    mes callfunc("getMesPM",3);
    mes "^008B8B< PvP "+callfunc("getMesPM",4)+" - ^FFA500"+$@Player_Lider$+"^008B8B >";
    mes "^008B8B< GvG "+callfunc("getMesPM",4)+" - ^FFA500"+$@Guild_Lider$+"^008B8B >";
        switch(select("^FFA500- "+callfunc("getMesPM",5)+"^000000:- Ranking:- "+callfunc("getMesPM",6)+":- "+callfunc("getMesPM",7)+":- "+callfunc("getMesPM",79)))
        {
    case 1:
    for(set @i,0;@i<=(getarraysize($@IDPM)-1);set @i,@i+1) set @m$[@i]," ^0000FF["+getmapusers($@mapPM$[@i])+"]";
            switch(getarraysize($@IDPM))
            {
        case 1: callfunc("pvpm_func","Warp",1,select($@menu$[0]+@m$[0]));
        case 2: callfunc("pvpm_func","Warp",1,select($@menu$[0]+@m$[0],$@menu$[1]+@m$[1]));
        case 3: callfunc("pvpm_func","Warp",1,select($@menu$[0]+@m$[0],$@menu$[1]+@m$[1],$@menu$[2]+@m$[2]));
        case 4: callfunc("pvpm_func","Warp",1,select($@menu$[0]+@m$[0],$@menu$[1]+@m$[1],$@menu$[2]+@m$[2],$@menu$[3]+@m$[3]));
        case 5: callfunc("pvpm_func","Warp",1,select($@menu$[0]+@m$[0],$@menu$[1]+@m$[1],$@menu$[2]+@m$[2],$@menu$[3]+@m$[3],$@menu$[4]+@m$[4]));
        case 6: callfunc("pvpm_func","Warp",1,select($@menu$[0]+@m$[0],$@menu$[1]+@m$[1],$@menu$[2]+@m$[2],$@menu$[3]+@m$[3],$@menu$[4]+@m$[4],$@menu$[5]+@m$[5]));
        case 7: callfunc("pvpm_func","Warp",1,select($@menu$[0]+@m$[0],$@menu$[1]+@m$[1],$@menu$[2]+@m$[2],$@menu$[3]+@m$[3],$@menu$[4]+@m$[4],$@menu$[5]+@m$[5],$@menu$[6]+@m$[6]));
        case 8: callfunc("pvpm_func","Warp",1,select($@menu$[0]+@m$[0],$@menu$[1]+@m$[1],$@menu$[2]+@m$[2],$@menu$[3]+@m$[3],$@menu$[4]+@m$[4],$@menu$[5]+@m$[5],$@menu$[6]+@m$[6],$@menu$[7]+@m$[7]));
        case 9: callfunc("pvpm_func","Warp",1,select($@menu$[0]+@m$[0],$@menu$[1]+@m$[1],$@menu$[2]+@m$[2],$@menu$[3]+@m$[3],$@menu$[4]+@m$[4],$@menu$[5]+@m$[5],$@menu$[6]+@m$[6],$@menu$[7]+@m$[7],$@menu$[8]+@m$[8]));
        case 10: callfunc("pvpm_func","Warp",1,select($@menu$[0]+@m$[0],$@menu$[1]+@m$[1],$@menu$[2]+@m$[2],$@menu$[3]+@m$[3],$@menu$[4]+@m$[4],$@menu$[5]+@m$[5],$@menu$[6]+@m$[6],$@menu$[7]+@m$[7],$@menu$[8]+@m$[8],$@menu$[9]+@m$[9]));
            } mes "** ERROR ** CHECK THE pm_map TABLE"; close;

    case 2:    
            switch(select("- PvP:- PvP "+callfunc("getMesPM",8)+":- PvP (Ratio):- GvG:- GvG "+callfunc("getMesPM",8)+":- GvG (Ratio):- "+callfunc("getMesPM",9)))
            {
        case 1: callfunc "pvpm_func","Ranking1","kills",0,"PvP"; next; continue;
        case 2: callfunc "pvpm_func","Ranking1","dies",0,"PvP (Mortes)"; next; continue;
        case 3:    callfunc "pvpm_func","Ranking1","ratio",0,"PvP (Ratio)"; next; continue;
        case 4:    callfunc "pvpm_func","Ranking1","kills",2,"GvG"; next; continue;
        case 5:    callfunc "pvpm_func","Ranking1","dies",2,"GvG (Mortes)"; next; continue;
        case 6: callfunc "pvpm_func","Ranking1","ratio",2,"GvG (Ratio)"; next; continue;        
        case 7:
                switch(select("- "+callfunc("getMesPM",9)+" PvP:- "+callfunc("getMesPM",9)+" PvP "+callfunc("getMesPM",8)+":- "+callfunc("getMesPM",9)+" PvP (Ratio):- "+callfunc("getMesPM",9)+" GvG:- "+callfunc("getMesPM",9)+" GvG "+callfunc("getMesPM",8)+":- "+callfunc("getMesPM",9)+" GvG (Ratio)"))
                {
            case 1:    callfunc "pvpm_func","Ranking2","kills",0; next; continue;
            case 2:    callfunc "pvpm_func","Ranking2","dies",0; next; continue;
            case 3:    callfunc "pvpm_func","Ranking2","ratio",0; next; continue;
            case 4:    callfunc "pvpm_func","Ranking2","kills",2; next; continue;
            case 5:    callfunc "pvpm_func","Ranking2","dies",2; next; continue;
            case 6:    callfunc "pvpm_func","Ranking2","ratio",2; next; continue;
                }
            }
    case 3:
        next;
        mes $@pvpm_name$;
        mes callfunc("getMesPM",10);
        mes callfunc("getMesPM",11);
        mes callfunc("getMesPM",12);
        next; continue;
    case 4:
        close;

    case 5:
        next;
        mes $@pvpm_name$;
        mes callfunc("getMesPM",80);
        query_sql("select str from pvpm_lang where id=0",@lang$);
        for(set @a,0;@a<getarraysize(@lang$);set @a,@a+1) mes @a+" = "+@lang$[@a];
        input @inp;
            if(@inp < 0 || @inp > (getarraysize(@lang$)-1))
            {
            mes callfunc("getMesPM",81);
            next; continue;
            } set PM_Lang,@inp;
        next; continue;
        }
    }

OnInit:
    waitingroom "",0;
OnTimer5000:
    setarray .@RoomDisplay$,"[PvP] Arena","PvP "+$@PM_Lang0$[4]+" ["+$@Player_Lider$+"]","GvG "+$@PM_Lang0$[4]+" ["+$@Guild_Lider$+"]";
    delwaitingroom;
    waitingroom .@RoomDisplay$[rand(0,2)],0;
    initnpctimer;
}

-    script    cmd    -1,{

OnWhisperGlobal:

        if(compare(@whispervar0$,"!warp"))
        {
        set @ArenaID,@whispervar1$;
            if(!@ArenaID)
            {
            dispbottom callfunc("getMesPM",13);
            end;
            } callfunc("pvpm_func","Warp",0,@ArenaID);
        }

        if(compare(@whispervar0$,"!ranking"))
        {      if(compare(@whispervar0$,"2"))
            {
                if(compare(@whispervar1$,"pvp"))
                {    if(compare(@whispervar2$,"ratio")) { callfunc "pvpm_func","Ranking2","ratio",0,"Ratio"; end; }
                    if(!compare(@whispervar2$,"die")) callfunc "pvpm_func","Ranking2","kills",0; else
                    callfunc "pvpm_func","Ranking2","dies",0;
                    end;
                }

                if(compare(@whispervar1$,"gvg"))
                {    if(compare(@whispervar2$,"ratio")) { callfunc "pvpm_func","Ranking2","ratio",2,"Ratio"; end; }
                    if(!compare(@whispervar2$,"die")) callfunc "pvpm_func","Ranking2","kills",2; else
                    callfunc "pvpm_func","Ranking2","dies",2;
                    end;
                }
            }

            if(compare(@whispervar1$,"pvp"))
            {    if(compare(@whispervar2$,"ratio")) { callfunc "pvpm_func","Ranking1","ratio",0,"Ratio"; end; }
                if(!compare(@whispervar2$,"die")) callfunc "pvpm_func","Ranking1","kills",0,"PvP"; else
                callfunc "pvpm_func","Ranking1","dies",0,"PvP ( Mortes )";
                end;
            }

            if(compare(@whispervar1$,"gvg"))
            {    if(compare(@whispervar2$,"ratio")) { callfunc "pvpm_func","Ranking1","ratio",2,"Ratio"; end; }
                if(!compare(@whispervar2$,"die")) callfunc "pvpm_func","Ranking1","kills",2,"GvG"; else
                callfunc "pvpm_func","Ranking1","dies",2,"GvG";
                end;
            }
        }

        if ( compare(@whispervar0$,"!exit") )
        {
        getmapxy(@map$,@x,@y,0);
            for(set @i,0;@i!=getarraysize($@mapPM$);set @i,@i+1)
            {
                if (@map$ !=  $@mapPM$[@i]) continue;
                dispbottom callfunc("getMesPM",14);
                sleep2 5000;
                warp getsavepoint(0),getsavepoint(1),getsavepoint(2);
                end;
            }
        dispbottom callfunc("getMesPM",15);
        end;
        }

        if (compare(@whispervar0$,"lider"))
        {
        if(compare(@whispervar0$,"pvp")) dispbottom "PvP "+callfunc("getMesPM",4)+": "+$@Player_Lider$; else
        dispbottom "GvG "+callfunc("getMesPM",4)+": "+$@Guild_Lider$;
        end;
        }

        if(compare(@whispervar0$,"!truncate") && getgmlevel()>=70)
        {
            if(compare(@whispervar1$,"pvp"))
            {
            query_sql("delete from pvpm_data where type=0");
            dispbottom callfunc("getMesPM",16);
            end;
            }
            if(compare(@whispervar1$,"gvg"))
            {
            query_sql("delete from pvpm_data where type=2");
            dispbottom callfunc("getMesPM",16);
            end;
            } dispbottom callfunc("getMesPM",17);
        }

        if (compare(@whispervar0$,"!ban"))
        {
            if(@whispervar1$=="") { dispbottom callfunc("getMesPM",18); end; }
            if(@whispervar2$=="") { dispbottom callfunc("getMesPM",19); end; }
            if(@whispervar3$=="") { dispbottom callfunc("getMesPM",20); end; }
            if(@whispervar2$=="showtime")
            { query_sql("select ban from pvpm_data where name='"+@whispervar1$+"' limit 1",@showtime);
            dispbottom callfunc("getMesPM",21)+" ["+@whispervar1$+"] ["+@showtime+" "+callfunc("getMesPM",27)+"]";
            end;
            }    if(@whispervar2$=="unban")
                { query_sql("update pvpm_data set ban=0 where name='"+@whispervar1$+"' limit 1");
                dispbottom callfunc("getMesPM",22)+@whispervar1$;
                message @whispervar1$,callfunc("getMesPM",23);
                end;
                } set @time,@whispervar2$;
            if(@time==0 && @whispervar2$!="unban" || @time==0 && @whispervar2$!="showtime") { dispbottom callfunc("getMesPM",24); end; }
        set @id,0;
        query_sql("select id from pvpm_data where name='"+@whispervar1$+"' and type="+@whispervar3$,@id);
                if(!@id && @whispervar3$=="0" || !@id && @whispervar3$=="2") { dispbottom callfunc("getMesPM",25); end; }        
         set @bantime,0;
        if(compare(@whispervar2$,"-")) query_sql("update pvpm_data set ban=ban"+@time+" where id="+@id+" limit 1"); else
        query_sql("update pvpm_data set ban=ban+"+@time+" where id="+@id+" limit 1");
        query_sql("select ban from pvpm_data where id="+@id+" limit 1",@bantime);
        dispbottom callfunc("getMesPM",26)+" ("+@bantime+" "+callfunc("getMesPM",27)+")";
        message @whispervar1$,callfunc("getMesPM",28)+" "+@bantime+" "+callfunc("getMesPM",27)+".";
        warpchar "prontera",150,150,getcharid(0,@whispervar1$);
        end;        
        }

        if (compare(@whispervar0$,"!map") && getgmlevel()>=70)
        {
            if (compare(@whispervar1$,"add"))
            {
                if(getarraysize($@IDPM)>=10)
                {
                dispbottom callfunc("getMesPM",29);
                dispbottom callfunc("getMesPM",30);
                end;
                } set @type,@whispervar3$;            
                    if(!@type && @whispervar3$==""||@type>2)
                    {
                    dispbottom callfunc("getMesPM",31);
                    dispbottom callfunc("getMesPM",32);
                    dispbottom callfunc("getMesPM",33);
                    end;
                    } set @mapcheck$,"";
                query_sql("select map from pvpm_map where map='"+@whispervar2$+"' limit 1",@mapcheck$);
                if(@mapcheck$!="")
                {
                dispbottom callfunc("getMesPM",34);
                end;
                } query_sql("insert into `pvpm_map` (id,map,type) values ("+(getarraysize($@IDPM)-1)+",'"+@whispervar2$+"',"+@type+")");
            dispbottom callfunc("getMesPM",35)+" ("+@whispervar2$+")";
            doevent "init_PM::OnReloadListMap";
            }

            if (compare(@whispervar1$,"del"))
            {
                if(getarraysize($@IDPM)<=1)
                {
                dispbottom callfunc("getMesPM",36);
                end;
                } query_sql("select map from pvpm_map where map='"+@whispervar2$+"'",@mapcheck$);
                    if(@mapcheck$=="")
                    {
                    dispbottom callfunc("getMesPM",37);
                    end;
                    } query_sql("delete from pvpm_map where map='"+@whispervar2$+"'");
            dispbottom callfunc("getMesPM",38)+" ("+@whispervar2$+")";
            doevent "init_PM::OnReloadListMap";
            }

            if (compare(@whispervar1$,"list"))
            {
            for(set @i,0;@i<=(getarraysize($@IDPM)-1);set @i,@i+1) dispbottom "["+(@i+1)+"] "+$@mapPM$[@i];
            end;
            }
        end;
        }

        if (compare(@whispervar0$,"!help"))
        {
            if(compare(@whispervar1$,"!warp")) {
            dispbottom callfunc("getMesPM",39);
            dispbottom callfunc("getMesPM",40);
            dispbottom "- !warp#1;!warp#2;...!warp#5 ..";
            dispbottom callfunc("getMesPM",41);
            end;
            }

            if(compare(@whispervar1$,"!ranking")) {
            dispbottom callfunc("getMesPM",39);
            dispbottom callfunc("getMesPM",42);
            dispbottom "- !ranking#pvp;!ranking#pvp#die;!ranking#gvg;!ranking#gvg#die;!ranking#ratio";
            dispbottom "- !ranking2#pvp;!ranking2#pvp#die;!ranking2#gvg;!ranking2#gvg#die;!ranking2#ratio; (Mostra somente sua posição)";
            dispbottom callfunc("getMesPM",43);;
            end;
            }

            if(compare(@whispervar1$,"!pvplider") || compare(@whispervar1$,"!gvglider")) {
            dispbottom callfunc("getMesPM",39);
            dispbottom callfunc("getMesPM",44);;
            end;
            }

            if(compare(@whispervar1$,"!exit")) {
            dispbottom callfunc("getMesPM",39);
            dispbottom callfunc("getMesPM",45);
            end;
            }

            if(compare(@whispervar1$,"!ban") && getgmlevel()>=70) {
            dispbottom callfunc("getMesPM",39);
            dispbottom callfunc("getMesPM",46);
            dispbottom callfunc("getMesPM",47);
            dispbottom callfunc("getMesPM",48);
            dispbottom callfunc("getMesPM",49);
            dispbottom callfunc("getMesPM",50);
            end;
            }

            if(compare(@whispervar1$,"!map") && getgmlevel()>=70) {
            dispbottom callfunc("getMesPM",39);
            dispbottom callfunc("getMesPM",51);
            dispbottom callfunc("getMesPM",52);
            dispbottom "- Type: 0 = Arena PvP; 1 = Arena PvP Baby; 2 Arena GvG;";
            dispbottom callfunc("getMesPM",53);
            end;
            }

            if(compare(@whispervar1$,"!truncate") && getgmlevel()>=70) {
            dispbottom callfunc("getMesPM",39);
            dispbottom callfunc("getMesPM",54);
            dispbottom callfunc("getMesPM",55);
            dispbottom callfunc("getMesPM",56);
            end;
            } dispbottom callfunc("getMesPM",57);
        end;
        }

    dispbottom callfunc("getMesPM",58);
    dispbottom callfunc("getMesPM",59);
    dispbottom callfunc("getMesPM",60);
    dispbottom callfunc("getMesPM",61);
    dispbottom callfunc("getMesPM",62);
    dispbottom callfunc("getMesPM",63);
    dispbottom callfunc("getMesPM",64);
    dispbottom callfunc("getMesPM",65);
        if(getgmlevel()>=70)
        {
        dispbottom callfunc("getMesPM",66);
        dispbottom callfunc("getMesPM",67);
        dispbottom callfunc("getMesPM",68);
        dispbottom callfunc("getMesPM",69);
        }
        
}

-    script    event#pvpm    -1,{
OnInit:
OnTimer60000:
    query_sql("update pvpm_data set ban=ban-1 where ban>0");
    initnpctimer;
    end;

OnPCKillEvent:
    callfunc("pvpm_func","PCKillEvent");

OnPCDieEvent:
    callfunc("pvpm_func","PCDieEvent");

OnPCLoadMapEvent:
    callfunc("pvpm_func","PCLoadEvent");
}

function    script    pvpm_func    {

        if (getarg(0) == "Ranking1")
        {
        deletearray @name$[0],getarraysize(@name$);
        deletearray @points[0],getarraysize(@points);
        query_sql "select name,"+getarg(1)+" from pvpm_data where type="+getarg(2)+" and "+getarg(1)+"!=0 order by "+getarg(1)+" desc limit 125",@name$,@points;
        dispbottom "======= Ranking - "+getarg(3)+" =======";
            for(set @i,0;@i != $@showsRankUntil;set @i,@i+1)
            {
            if(@name$[@i]=="") return;
            dispbottom (@i+1)+"º | "+@name$[@i]+" | "+@points[@i];
            } return;
        }

        if (getarg(0) == "Ranking2")
        {
        deletearray @name$[0],getarraysize(@name$);
        deletearray @points[0],getarraysize(@points);
        query_sql "select id,"+getarg(1)+" from pvpm_data where type="+getarg(2)+" order by "+getarg(1)+" desc limit 125",@id,@points;
            for(set @i,0;@i <= 125;set @i,@i+1)
            {
                if (@id[@i] == getcharid(getarg(2)))
                {
                dispbottom "- "+strcharinfo(getarg(2))+" | "+(@i+1)+"º | "+@points[@i];
                return;
                }
            }
        dispbottom callfunc("getMesPM",70);
        return;
        }

        if(getarg(0)=="Warp")
        {
            if(getarg(1))
            {
                if($@MapTypePM[(getarg(2)-1)]==2 && !getcharid(2))
                {
                mes $@pvpm_name$;
                mes callfunc("getMesPM",71);
                close;
                }    if($@MapTypePM[(getarg(2)-1)]==1 && Upper!=2)
                    {
                    mes $@pvpm_name$;
                    mes callfunc("getMesPM",72);
                    close;
                    } if($@MapTypePM==0||$@MapTypePM==1) callfunc("pvpm_func","ban",0,1); else callfunc("pvpm_func","ban",2,1);
            } else    {
                    getmapxy(@map$,@x,@y,0);
                        if($@mapPM$[(getarg(2)-1)]==@map$)
                        {
                        dispbottom "<!!!> "+callfunc("getMesPM",73);
                        end;
                        }    if($@MapTypePM[(getarg(2)-1)]==2)
                            {
                            dispbottom "<!!!> "+callfunc("getMesPM",71);
                            end;
                            }    if($@MapTypePM[(getarg(2)-1)]==1 && Upper!=2)
                                {
                                dispbottom "<!!!> "+callfunc("getMesPM",72);
                                end;
                                } if($@MapTypePM==0||$@MapTypePM==1) callfunc("pvpm_func","ban",0); else callfunc("pvpm_func","ban",2);
                    } set @MapIDx,(getarg(2)-1);
        if($@breakBuffs) sc_end -1;
        warp $@mapPM$[(getarg(2)-1)],0,0;
        end;
        }

        if (getarg(0) == "ban")
        {
        set @bantime,0;
        query_sql("select ban from pvpm_data where id="+getcharid(getarg(1))+" limit 1",@bantime);
        if(!@bantime) return;
            if(!getarg(2,0)) { dispbottom "<!!!> "+callfunc("getMesPM",74)+" "+@bantime+" "+callfunc("getMesPM",27)+"!"; end; } else
            { mes "^FF7F50<!!!> ^FFA500"+callfunc("getMesPM",74)+" ^FF7F50"+@bantime+"^FFA500 "+callfunc("getMesPM",27)+"!"; close; }
        }

        if (getarg(0) == "Up")
        {
        if($@getEXPoption) callfunc("pvpm_func","getexp");
        set @name$,"";
        set @points,0;
        query_sql("select name,"+getarg(1)+" from pvpm_data where id="+getcharid(getarg(2))+" and type="+getarg(2)+" limit 1",@name$,@points);
            if (@name$=="")
            {
            query_sql("INSERT INTO pvpm_data (id,"+getarg(1)+",name,annc,type) values ("+getcharid(getarg(2))+",1,'"+strcharinfo(getarg(2))+"',"+getarg(3)+","+getarg(2)+")");
            dispbottom "Score: 1";
            end;
            } query_sql("update pvpm_data set "+getarg(1)+"="+getarg(1)+"+1 where id="+getcharid(getarg(2)));
        set @points,@points+1;
                if($@mainRanking)
                {
                set @kills,0;
                set @dies,0;
                query_sql("select kills,dies from pvpm_data where id="+getcharid(getarg(2))+" and type="+getarg(2)+" limit 1",@kills,@dies);
                query_sql("update pvpm_data set ratio="+(@kills-@dies)+" where id="+getcharid(getarg(2))+" and type="+getarg(2)+" limit 1");
                set @points,@kills-@dies;
                return;                
                } return;
        }

        if (getarg(0) == "ChangeLeader")
        {
        set @L_name$,"";
        set @L_points,0;
        if(!$@mainRanking) query_sql("select name,kills from pvpm_data where leader=1 and type="+getarg(1)+" limit 1",@L_name$,@L_points); else
        query_sql("select name,ratio from pvpm_data where leader=1 and type="+getarg(1)+" limit 1",@L_name$,@L_points);
            if (@points > @L_points && @L_name$ != strcharinfo(getarg(1)))
            {
            query_sql("update pvpm_data set leader=0 where type="+getarg(1));
            query_sql("update pvpm_data set leader=1 where id="+getcharid(getarg(1))+" and type="+getarg(1));
            mapannounce @map$,strcharinfo(getarg(1))+" | "+callfunc("getMesPM",75)+" !",bc_map,0xFF7F50;
            set $@Player_Lider$,"";
            set $@Guild_Lider$,"";
            query_sql("select name from pvpm_data where leader=1 and type=0 limit 1",$@Player_Lider$);
            query_sql("select name from pvpm_data where leader=1 and type=2 limit 1",$@Guild_Lider$);
            } return;
        }

        if (getarg(0) == "Annc")
        {
        set @points,0;
        set @annc,0;
        query_sql "select kills,annc from pvpm_data where id="+getcharid(getarg(1))+" and type="+getarg(1),@points,@annc;
        if(!@annc) query_sql "update pvpm_data set annc=annc+"+getarg(2)+" where id="+getcharid(getarg(1))+" and type="+getarg(1);
            if (@points >= @annc)
            {
            Announce strcharinfo(getarg(1))+" | "+@points+" "+callfunc("getMesPM",76)+"! ["+getarg(3)+"]",bc_all,0xFF7F50;
            query_sql "update pvpm_data set annc=annc+"+getarg(2)+" where id="+getcharid(getarg(1))+" and type="+getarg(1);
            if($@sound==1||$@sound==3) soundeffectall "Monster Kill.wav",0;
            } if(!$@sound||$@sound==1) return;
                if(getarg(3)=="PvP")
                {
                    if(@noMoreSounds&&@withoutDying==@withoutDyingAnnc)
                    {
                    mapannounce @map$,strcharinfo(0)+" | "+$@SoundList$[@noMoreSounds]+"! [ "+@withoutDying+" "+callfunc("getMesPM",76)+" ]",bc_map,0xFF7F50;
                    soundeffectall $@SoundList$[@noMoreSounds]+".wav",0,@map$;
                    set @withoutDyingAnnc,@withoutDyingAnnc+5;
                    return;
                    }
                        if($@SoundList$[@withoutDying]=="end")
                        {
                        set @withoutDyingAnnc,@withoutDyingAnnc+5;
                        set @noMoreSounds,@withoutDying-1;
                        }
                            if($@SoundList$[@withoutDying]!=""&&!@noMoreSounds)
                            {
                            mapannounce @map$,strcharinfo(0)+" | "+$@SoundList$[@withoutDying]+" ! [ "+@withoutDying+" "+callfunc("getMesPM",76)+" ]",bc_map,0xFF7F50;
                            soundeffectall $@SoundList$[@withoutDying]+".wav",0,@map$;
                            }
                } return;
        }

        if(getarg(0) == "PCKillEvent")
        {
        set @Live,1;
                if(@RightWoEMap)
                {
                if($@CountPointsInWoE==1 || $@CountPointsInWoE==3) callfunc "pvpm_func","Up","kills",0,100;
                dispbottom "Player Score: "+@points;
                if($@CountPointsInWoE==2 || $@CountPointsInWoE==3) callfunc "pvpm_func","Up","kills",2,1000;
                dispbottom "Guild Score: "+@points;
                end;
                } getmapxy(@map$,@x,@y,0);
            if(@map$==$@mapPM$[@MapIDx] && $@MapTypePM[@MapIDx]>=0 && $@MapTypePM[@MapIDx]<=1 || $@PK_Mode)
            {
            set @withoutDying,@withoutDying+1;
            callfunc("pvpm_func","Up","kills",0,100);
            dispbottom "Player Score: "+@points;
            callfunc("pvpm_func","ChangeLeader",0);
            callfunc("pvpm_func","Annc",0,100,"PvP");
            }
                if(@map$==$@mapPM$[@MapIDx] && $@MapTypePM[@MapIDx]==2 && getcharid(2) || $@PK_Mode && getcharid(2))
                {
                callfunc("pvpm_func","Up","kills",2,1000);
                dispbottom "Guild Score: "+@points;
                callfunc("pvpm_func","ChangeLeader",2);
                callfunc("pvpm_func","Annc",2,1000,"GvG");
                } end;
        }

        if(getarg(0) == "PCDieEvent")
        {
        set @Live,0;
                if(@RightWoEMap)
                {
                if($@CountPointsInWoE==1 || $@CountPointsInWoE==3) { callfunc "pvpm_func","Up","dies",0,100; if($@mainRanking) dispbottom "Player Score: "+@points; }
                if($@CountPointsInWoE==2 || $@CountPointsInWoE==3) { callfunc "pvpm_func","Up","dies",2,1000; if($@mainRanking) dispbottom "Guild Score: "+@points; }
                }
            set @withoutDying,0;
            set @noMoreSounds,0;
            set @withoutDyingAnnc,0;
            set @MapIDx,0;
            set @RightWoEMap,0;
        getmapxy(@map$,@x,@y,0);
        if(@map$==$@mapPM$[@MapIDx] && $@MapTypePM[@MapIDx]>=0 && $@MapTypePM[@MapIDx]<=1 || $@PK_Mode) { callfunc "pvpm_func","Up","dies",0,100; if($@mainRanking) dispbottom "Player Score: "+@points; }
        if(@map$==$@mapPM$[@MapIDx] && $@MapTypePM[@MapIDx]==2 && getcharid(2) || $@PK_Mode && getcharid(2)) { callfunc "pvpm_func","Up","dies",2,1000; if($@mainRanking) dispbottom "Guild Score: "+@points; }
        end;
        }

        if(getarg(0) == "PCLoadEvent")
        {
        getmapxy(@map$,@x,@y,0);
        if(getcastlename(@map$)=="") { set @RightWoEMap,0; end; }
        if(agitcheck() || agitcheck2()) set @RightWoEMap,1;
        end;
        }

        if(getarg(0) == "getexp")
        {
            if(@Live)
            {
            attachrid(killedrid);
            set .@BaseLevel,BaseLevel;
            attachrid(killerrid);
            if($@getEXPoption==1) set @EXP,(($@getEXP*.@BaseLevel)/BaseLevel); else set @EXP,$@getEXP;
            getexp @EXP,@EXP;
            dispbottom callfunc("getMesPM",77)+" "+@EXP+" EXP.";
            } else    {
                if(BaseExp) set BaseExp,BaseExp-$@lostEXP;
                if(JobExp) set JobExp,JobExp-$@lostEXP;
                dispbottom callfunc("getMesPM",78)+" "+$@lostEXP+" EXP.";;
                } return;
        }
}

function    script    getMesPM    { return getd("$@PM_Lang"+PM_Lang+"$["+getarg(0)+"]"); }

//================== DUPLICATE =====================
cydonia,138,98,4    duplicate(PM_source)    [PvP] Arena#1    899
cydonia,150,159,4    duplicate(PM_source)    [PvP] Arena#2    899
sec_in01,90,176,4    duplicate(PM_source)    [PvP] Arena#3    899
alberta,26,240,4    duplicate(PM_source)    [PvP] Arena#4    899
izlude,122,119,4    duplicate(PM_source)    [PvP] Arena#5    899
aldebaran,147,119,4    duplicate(PM_source)    [PvP] Arena#6    899
xmas,145,136,4    duplicate(PM_source)    [PvP] Arena#7    899
comodo,184,158,4    duplicate(PM_source)    [PvP] Arena#8    899
gonryun,161,126,4    duplicate(PM_source)    [PvP] Arena#9    899
louyang,226,106,4    duplicate(PM_source)    [PvP] Arena#10    899
ayothaya,155,121,4    duplicate(PM_source)    [PvP] Arena#11    899
hugel,87,164,4    duplicate(PM_source)    [PvP] Arena#12    899
moscovia,209,190,5    duplicate(PM_source)    [PvP] Arena#13    899
//================== WOE =====================

//Necessário para ativar o sistema de contagem dos pontos na woe.
//caso queira desativar algum mapa, retire-o daqui.

aldeg_cas01    mapflag    loadevent
aldeg_cas02    mapflag    loadevent
aldeg_cas03    mapflag    loadevent
aldeg_cas04    mapflag    loadevent
gefg_cas01    mapflag    loadevent
gefg_cas02    mapflag    loadevent
gefg_cas03    mapflag    loadevent
gefg_cas04    mapflag    loadevent
gefg_cas05    mapflag    loadevent
payg_cas01    mapflag    loadevent
payg_cas02    mapflag    loadevent
payg_cas03    mapflag    loadevent
payg_cas04    mapflag    loadevent
payg_cas05    mapflag    loadevent
prtg_cas01    mapflag    loadevent
prtg_cas02    mapflag    loadevent
prtg_cas03    mapflag    loadevent
prtg_cas04    mapflag    loadevent
prtg_cas05    mapflag    loadevent
schg_cas01    mapflag    loadevent
schg_cas02    mapflag    loadevent
schg_cas03    mapflag    loadevent
schg_cas04    mapflag    loadevent
schg_cas05    mapflag    loadevent
arug_cas01    mapflag    loadevent
arug_cas02    mapflag    loadevent
arug_cas03    mapflag    loadevent
arug_cas04    mapflag    loadevent
arug_cas05    mapflag    loadevent

//NÃO APAGUE DAQUI PARA BAIXO!
pay_gld    mapflag    loadevent
prt_gld    mapflag    loadevent
sch_gld    mapflag    loadevent
aru_gld    mapflag    loadevent
gef_fild13    mapflag    loadevent
alde_gld    mapflag    loadevent
n_castle    mapflag    loadevent
Link to comment
Share on other sites

2 answers to this question

Recommended Posts


  • Group:  Members
  • Topic Count:  4
  • Topics Per Day:  0.00
  • Content Count:  63
  • Reputation:   3
  • Joined:  07/12/12
  • Last Seen:  

You could always edit the item_noequip.txt for that map 

  • Upvote 1
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  107
  • Topics Per Day:  0.03
  • Content Count:  265
  • Reputation:   11
  • Joined:  01/11/13
  • Last Seen:  

fixed. trx..

Edited by cumbe11
Link to comment
Share on other sites

Join the conversation

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

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

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

×   Your previous content has been restored.   Clear editor

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

×
×
  • Create New...