Jump to content

vinciover

Members
  • Posts

    17
  • Joined

  • Last visited

Everything posted by vinciover

  1. Pois é, já procurei em todo canto e não achei ninguém com esse erro, algo no Diff com essa expressão "extended" não encontrei. Teria um hexed acima de 2012 que todo mundo usa e n tem erros, algo básico para servidores Pre-Re tipo esse 2012? Esses modelos atualizados no visual da tela da login ou interface dentro do jogo, não agrada muitos jogadores.
  2. Pessoal, creio que o erro afeta no meu Hexed, pois bem. Estou com um Hexed (2012-04-10aRagexeRE_J.exe e 2012-04-10aRagexe.exe), o servidor que estou trabalhando é pré renovação, ao clicar na descrição de alguns itens: Poção Vermelha: 501# Poção feita de ervas vermelhas. Recupera ^000088cerca de 45 HP^000000, dependendo da sua vitalidade. ^0000FFDê um clique duplo neste item para recuperar uma quantia de HP.^000000 Peso: ^7777777^000000 # A janela da descrição abre normalmente, mas quando eu clico em um item onde a descrição é maior que 256 caracteres, da erro, como esse item: Vasilha de Mistura: 7134# Uma tigela de porcelana branca, bem leve e fácil de se carregar. Também é bastante resistente, e permite que o usuário triture ou misture ingredientes para produzir poções ou coisas do gênero. Se comprar agora, você ainda leva de brinde este maravilhoso pilão portátil que pode ser levado em qualquer lugar e não ocupa espaço! ^FFFFFF_^000000 Peso: ^7777771^000000 # Esse item e todos os outros com grandes descrições da erro no cliente e fecha, mas se eu diminuir a descrição para 256 caracteres, funciona normalmente. Esses são as opções que uso ao Diffar: 1 Use Tilde for Matk 2 Chat Flood Allow 8 Custom Window Title 9 Disable 1rag1 type parameters (Recommended) 13 Disable Ragexe Filename Check (Recommended) 14 Disable Hallucination Wavy Screen (Recommended) 15 Disable HShield (Recommended) 16 Disable Swear Filter 18 Skip Service Selection Screen 19 Enable Title Bar Menu 20 Extend Chat Box 21 Extend Chat Room Box 22 Extend PM Box 23 Enable /who command (Recommended) 24 Fix Camera Angles (Recommended) 30 Increase Zoom Out 50% 33 Always Call SelectKoreaClientInfo() (Recommended) 34 Enable /showname (Recommended) 35 Read Data Folder First 36 Read msgstringtable.txt (Recommended) 37 Read questid2display.txt (Recommended) 38 Remove Gravity Ads (Recommended) 39 Remove Gravity Logo (Recommended) 40 Restore Login Window (Recommended) 41 Disable Nagle Algorithm (Recommended) 43 Always Use Email for Char Deletion 44 Translate Client (Recommended) 46 Use Normal Guild Brackets (Recommended) 47 Use Ragnarok Icon 48 Use Plain Text Descriptions (Recommended) 49 Enable Multiple GRFs (Recommended) 50 Skip License Screen 53 Use Ascii on All LangTypes (Recommended) 61 Disable Packet Encryption 64 @ Bug Fix (Recommended) 67 Disable Quake skill effect 73 Remove Hourly Announce (Recommended) 74 Increase Screenshot Quality 84 Remove Serial Display (Recommended) 85 Show Cancel To Service Select 88 Allow space in guild name 90 Enable DNS Support (Recommended) 91 Disconnect to Login Window 96 Remove GM Sprites 97 Cancel to Login Window (Recommended) 101 Skip Friend list Cheat Check 102 Skip Guild Member Cheat Check 204 Increase Attack Display 205 Enable Monster Tables 207 Resize Font 213 Disable Help Message on Login (Recommended) 214 Restore Model Culling 215 Increase Map Quality 225 Show Register Button 255 Change Auto Follow Delay Se o erro é no cliente, existe essa opção de aumentar?
  3. Obrigado, a solução para esse NPC não encontrei, mas fica registrado que encontrei um Script muito bom de PvP Narrator (SoulBlaker). Resolvido.
  4. Hi guys, so far the most complete NPC Narration I find is PvP_Master_Ultimate_1.3.0.txt (PVP Mooka), the 3 SQL tables that the NPC needs to work were created without problems in MySQL, but the pvpm_data table, which does the count of "kill" and "death" does not receive values, in the supposed PvP or GvG arena, the deaths that are carried out do not count as points and thus does not send the values to the SQL table pvpm_data, I am already 3 days looking for this solution but I can't find anything related to this error, just 10 years ago posts about other things. (I'm using the translator) I would like to kindly ask someone to help me to leave this solution for people who have this doubt in the future. Thank you all. Tabel SQL PvP Mooka: DROP TABLE IF EXISTS `pvpm_data`; DROP TABLE IF EXISTS `pvpm_map`; DROP TABLE IF EXISTS `pvpm_lang`; 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', `ratio` int(11) 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`) ) ENGINE=MyISAM; 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', `noguild` int(11) not null default '0', KEY `id` (`id`) ) ENGINE=MyISAM; 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`) ) ENGINE=MyISAM; UPDATE `pvpm_map` SET `noguild`='1' WHERE `map` = 'guild_vs1'; 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); NPC Script PvP Mooka 1.3.0v: //|==================================================================================| //| ___ ___ ___ ___ ___ | //| /\ \ /\ \ /\ \ /| | /\ \ | //| |::\ \ /::\ \ /::\ \ |:| | /::\ \ | //| |:|:\ \ /:/\:\ \ /:/\:\ \ |:| | /:/\:\ \ | //| __|:|\:\ \ /:/ \:\ \ /:/ \:\ \ __|:| | /:/ /::\ \ | //| /::::|_\:\__\ /:/__/ \:\__\ /:/__/ \:\__\ /\ |:|__|____ /:/_/:/\:\__\ | //| \:\--\ \/__/ \:\ \ /:/ / \:\ \ /:/ / \:\/:::::/__/ \:\/:/ \/__/ | //| \:\ \ \:\ /:/ / \:\ /:/ / \::/__/ \::/__/ | //| \:\ \ \:\/:/ / \:\/:/ / \:\ \ \:\ \ | //| \:\__\ \::/ / \::/ / \:\__\ \:\__\ | //| \/__/ \/__/ \/__/ \/__/ \/__/ | //| ================================================================================ | //| 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,0; // | set $@getEXP,0; // 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; 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; // trocou o A do Annouce 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 { set BaseExp,BaseExp-$@lostEXP; set JobExp,JobExp-$@lostEXP; dispbottom callfunc("getMesPM",78)+" "+$@lostEXP+" EXP.";; } return; } } function script getMesPM { return getd("$@PM_Lang"+PM_Lang+"$["+getarg(0)+"]"); } //================== DUPLICATE ===================== prontera,164,171,4 duplicate(PM_source) [PvP] Arena#1 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
  5. Oi pessoal, até o momento o NPC com Narração mais completo que encontro é o PvP_Master_Ultimate_1.3.0.txt (PVP Mooka), as 3 tabelas SQL que o NPC precisa para funcionar foi criada sem problemas, mas a tabela que é para fazer a contagem de "kill" e "death" não funciona, já to com 2 dias a procura dessa solução mas não a encontro. Encontrei esse Post, mas ninguém respondeu o rpz. Eu gostaria de por gentileza que alguém nos ajudasse para deixarmos essa solução para pessoas que estiverem essa duvida no futuro, já que o projeto do PvP as ultimas atualizações são de 2010. Se souberem de outro NPC Narrador com Vozes por "Kill" que funcione e com ranking, fica melhor. Tabela SQL do PVP Mooka 1.3.0v: DROP TABLE IF EXISTS `pvpm_data`; DROP TABLE IF EXISTS `pvpm_map`; DROP TABLE IF EXISTS `pvpm_lang`; 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', `ratio` int(11) 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`) ) ENGINE=MyISAM; 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', `noguild` int(11) not null default '0', KEY `id` (`id`) ) ENGINE=MyISAM; 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`) ) ENGINE=MyISAM; UPDATE `pvpm_map` SET `noguild`='1' WHERE `map` = 'guild_vs1'; 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); Script NPC PvP Mooka 1.3.0v: //|==================================================================================| //| ___ ___ ___ ___ ___ | //| /\ \ /\ \ /\ \ /| | /\ \ | //| |::\ \ /::\ \ /::\ \ |:| | /::\ \ | //| |:|:\ \ /:/\:\ \ /:/\:\ \ |:| | /:/\:\ \ | //| __|:|\:\ \ /:/ \:\ \ /:/ \:\ \ __|:| | /:/ /::\ \ | //| /::::|_\:\__\ /:/__/ \:\__\ /:/__/ \:\__\ /\ |:|__|____ /:/_/:/\:\__\ | //| \:\--\ \/__/ \:\ \ /:/ / \:\ \ /:/ / \:\/:::::/__/ \:\/:/ \/__/ | //| \:\ \ \:\ /:/ / \:\ /:/ / \::/__/ \::/__/ | //| \:\ \ \:\/:/ / \:\/:/ / \:\ \ \:\ \ | //| \:\__\ \::/ / \::/ / \:\__\ \:\__\ | //| \/__/ \/__/ \/__/ \/__/ \/__/ | //| ================================================================================ | //| 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,0; // | set $@getEXP,0; // 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; 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; // trocou o A do Annouce 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 { set BaseExp,BaseExp-$@lostEXP; set JobExp,JobExp-$@lostEXP; dispbottom callfunc("getMesPM",78)+" "+$@lostEXP+" EXP.";; } return; } } function script getMesPM { return getd("$@PM_Lang"+PM_Lang+"$["+getarg(0)+"]"); } //================== DUPLICATE ===================== prontera,164,171,4 duplicate(PM_source) [PvP] Arena#1 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
  6. Se quer resolver o problema da autorização de GM é essa parte. set @.GMLevel,99; (getgmlevel() < @.GMLevel seria mais ou menos assim.
  7. Copia o Script do Npc de encantamentos Mora, e edita conforme sua preferencia.
  8. ############################################# set @LVL,1; // Level de GM necessário para entrar na Sala ViP! //--------------------------------------------------------------- if(getgmlevel() < @LVL) { mes "[Gerente VIP]"; mes "Você precisa ser ViP!"; close; } mes "[Gerente VIP]"; mes "Olá, deseja Buff VIP ?"; next; menu "SIM!",-,"Cancelar!",cancel; sc_start SC_CASH_PLUSEXP,18000000,100; sc_start SC_FOOD_STR_CASH,18000000,6;sc_start SC_FOOD_AGI_CASH,18000000,6;sc_start SC_FOOD_VIT_CASH,18000000,6;sc_start SC_FOOD_INT_CASH,18000000,6;sc_start SC_FOOD_DEX_CASH,18000000,6;sc_start SC_FOOD_LUK_CASH,18000000,6;sc_start SC_PLUSATTACKPOWER, 18000000, 40; sc_start SC_PLUSMAGICPOWER, 18000000, 40; end; cancel: close; end; } #################### tenta usar ai, ou usa o esquema e edita conforme sua preferencia.
  9. ta usando o Grf_Builder pra fazer a GRF? eu tava com um problema parecido, mais era o programa q eu tava usando. tipo eu criava um bloco de notas e usava esses caracteres especiais, quando abria o notepad ele convertia pra lingua coreana automaticamente, e eu nem me tocava e sempre dava erro nas minhas ediçoes, ai voltei a usar so o blco de notas mesmo.
  10. Isso é bem facil, mais vou te dar Links pra tu aprender e nunca mais ter duvidas: Siga os passos disso caso queira add equipamentos: http://herc.ws/wiki/Custom_Items Siga os passos disso caso queira add armas: http://herc.ws/wiki/Custom_weapons agora segue um video passa a passo: https://www.youtube.com/watch?v=cT_H7lTND6o ----------- Dica ---------- você está errando na questão do "View" em: System/ItemInfo data\luafiles514\lua files\datainfo = accessoryid.lub e accname.lub e na pasta do seu Emulador la em Item_DB2 crie o arquivo e ponha a view igual em todos os arquivos citado acima e apar acada equipamento uma view diferente.
  11. Isso é bem facil, mais vou te dar Links pra tu aprender e nunca mais ter duvidas: Siga os passos disso caso queira add equipamentos: http://herc.ws/wiki/Custom_Items Siga os passos disso caso queira add armas: http://herc.ws/wiki/Custom_weapons agora segue um video passa a passo: https://www.youtube.com/watch?v=cT_H7lTND6o ----------- Dica ---------- você está errando na questão do "View" em: System/ItemInfo data\luafiles514\lua files\datainfo = accessoryid.lub e accname.lub e na pasta do seu Emulador la em Item_DB2 crie o arquivo e ponha a view igual em todos os arquivos citado acima e apar acada equipamento uma view diferente.
  12. procura na parte de downloads o arquivo descompiler gui
  13. Tenta por o mesmo IP do Hamichi no Vertrigo, tipo pelo o q eu entendo o patch dos usuarios precisa se conectar ao vertrigo q é teu servidor, mais ao conectar a comunicação com o teu servidor vertrigo n loga, eu estava com o mesmo problema só q em um Host externo, eu fiz mais ou menos assim: Thor/Configuration/config [Config:Main] RootURL='http://xxxxx.xxxxx.com.br/webpatch/' RemoteConfigFile='main.ini' TimeOut=0 StatusFile='meuservidorolist.dat' DefaultGRF='meuservidoro.grf' ClientEXE='meuservidoroexe.exe' ClientParameter='1rag1' -------------------------------------------------- Thor/webpatch/main.ini //Arquivo de configuração remota Thor Patcher [Main] //Permitir o patch ou não? allow=true //O patcher deve ignorar tudo e terminar o patch imediatamente? Force_Start=false //Caso contrário, qual mensagem deve aparecer? policy_msg=Server is taking a nap. //file_url - patch files should ALL put here. // This config entry will override the one in embed config. // o HTTP: // http://domain.com/dir/ // o FTP: // ftp://xxxx.xxxx.com.br/webpatch/ // o With <Username> [Password] [Port] // ftp://username:[email protected]:port/dir/ // o Note: username is required if want put password, otherwise everything is optional. file_url=http://xxxxxx.xxxxx.com.br/webpatch/data/ --------------------------------------- Tu tem que fazer com que o hamachi se conecte ao Vertrigo, eu particularmente uso o Xampp pra fazer a mecanica do SQL e hospedar o THOR, acho o Vertrigo bem trabalhoso e cheio de problema, mais cada um usa o q achar melhor.
  14. Eu uso por enquanto para testes o LuminousHost, mais a galera elogia muito o VirtualTI.
  15. pois é, desativa tudo, ta usando qual programa de servidor, xamp?
  16. tenta por teu IP mesmo ou o 127.0.0.1, pq pela logica esse endereço é o IP do servidor q ta hospedando o a pasta data do Thorpatch e não é no Hamachi. vai no arquivo main: edita essa linha e põe o mesmo endereço do config acima. file_url=http://domain.com/patch/data/
×
×
  • Create New...