//|==================================================================================| //| ___ ___ ___ ___ ___ | //| /\ \ /\ \ /\ \ /| | /\ \ | //| |::\ \ /::\ \ /::\ \ |:| | /::\ \ | //| |:|:\ \ /:/\:\ \ /:/\:\ \ |:| | /:/\:\ \ | //| __|:|\:\ \ /:/ \:\ \ /:/ \:\ \ __|:| | /:/ /::\ \ | //| /::::|_\:\__\ /:/__/ \:\__\ /:/__/ \:\__\ /\ |:|__|____ /:/_/:/\:\__\ | //| \:\--\ \/__/ \:\ \ /:/ / \:\ \ /:/ / \:\/:::::/__/ \:\/:/ \/__/ | //| \:\ \ \:\ /:/ / \:\ /:/ / \::/__/ \::/__/ | //| \:\ \ \:\/:/ / \:\/:/ / \:\ \ \:\ \ | //| \:\__\ \::/ / \::/ / \:\__\ \:\__\ | //| \/__/ \/__/ \/__/ \/__/ \/__/ | //| ================================================================================ | //| 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,1; // | //| | //|=> 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,0; // | //| | //|=> 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","^FF4500","^8B5742","^0047AB"; 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=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; } } OnPCDieEvent: set .@t,15; while(.@t>0){ dispbottom "Você irá renascer em "+.@t+" segundos!"; sleep2 1000; .@t--; } atcommand "@alive"; //tem um comando que ressuscita em script, mas esqueci o nome. end; function script getMesPM { return getd("$@PM_Lang"+PM_Lang+"$["+getarg(0)+"]"); } //================== DUPLICATE ===================== prontera,151,193,4 duplicate(PM_source) [PvP] Arena#1 899 morocc,152,97,4 duplicate(PM_source) [PvP] Arena#2 899 geffen,127,65,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