//|--- Nome --------------------------------------------------------------// //| Arenas de Batalhas // //|--- Autores -----------------------------------------------------------// //| HanzO (goo.gl/Vwhj11) // //| Splash (goo.gl/GLh49Y) // //|--- Compatível --------------------------------------------------------// //| eA/brA/Cronus // //|--- Atualizações ------------------------------------------------------// //| v1.0 - Script criado ..................................... 09/01/2017 // //|--- Descrição ---------------------------------------------------------// //| 09/01/2017 - 1.0 Script Criado /*|--- Tabela SQL --------------------------------------------------------// CREATE TABLE IF NOT EXISTS `arenas`( `char_id` INT(11) UNSIGNED NOT NULL, `nick` VARCHAR(255) NOT NULL DEFAULT '0', `kills` INT(11) UNSIGNED NOT NULL DEFAULT '0', `deaths` INT(11) UNSIGNED NOT NULL DEFAULT '0', KEY `char_id`(`char_id`) ) ENGINE = MyISAM; CREATE TABLE IF NOT EXISTS `arenas_gvgs`( `guild_id` INT(11) UNSIGNED NOT NULL, `nick` VARCHAR(255) NOT NULL DEFAULT '0', `kills` INT(11) UNSIGNED NOT NULL DEFAULT '0', `deaths` INT(11) UNSIGNED NOT NULL DEFAULT '0', KEY `guild_id`(`guild_id`) ) ENGINE=MyISAM; //|-----------------------------------------------------------------------*/ //| Por favor, não retire os créditos! // //|-----------------------------------------------------------------------// lighthalzen,153,101,4 script Arenas de Batalha 4_M_HUMAN_02,{ //--- Configurações Arenas --------------------------------------------| set .NpcName$,"[Arenas de Batalha]"; set .FreeKill,99; setarray .@NoDonates[0],607,678; //--- Retirar Buffs ---------------------------------------------------| set .PvPNoBuffs,0; set .GvGNoBuffs,0; //--- Mapas PvPs ------------------------------------------------------| setarray $PvP$[1],"pvp_y_8-1","pvp_y_8-5","pvp_y_8-3"; //--- Mapas GvGs ------------------------------------------------------| setarray $GvG$[1],"2009rwc_f01","guild_vs3","guild_vs2"; mes .NpcName$; mes "Olá "+strcharinfo(0)+", o que você deseja?"; mes "\n"; switch(select("- Arenas PvP:- Arenas GvG:- Rankings")) { next; case 1: mes .NpcName$; mes "Escolha qual das Arenas você deseja participar?"; switch(select("- PvP Donate:- PvP No-Donate:- PvP Baby")) { next; case 1: if(BaseLevel < .FreeKill){ mes .NpcName$; mes "Lamento "+strcharinfo(0)+" mas você não chegou ao level ^ff0000"+.FreeKill+" para poder entrar na Arena."; close; } if(Class >= 0 && Class <= 4007){ mes .NpcName$; mes "É proibido a entrada das Classes Iniciantes, Extendidas e Aprendizes nessa Arena."; close; } if(.PvPNoBuffs){ sc_end -1; dispbottom "Os seus buffs foram removidos."; } warp $PvP$[1],150,160; end; case 2: for(set .@i,0; .@i < getarraysize(.@NoDonates); set .@i,.@i+1){ //Procurar uma forma de retirar e depois bloquear a usar os Donates quando entrarem na Arena. if(countitem(.@NoDonates[.@i]) >= 1){ mes .NpcName$; mes "Você não pode entrar nessa Arena tendo um Donate em mãos!"; close; } } warp $PvP$[2],103,106; end; case 3: if(Class < 4023 || Class > 4045){ mes .NpcName$; mes "Somente Babys podem entrar na Arena."; close; } warp $PvP$[3],153,159; end; } case 2: mes .NpcName$; mes "Escolha qual arena você deseja entrar?"; switch(select("- GvG Donate:- GvG No-Donate:- GvG Baby")) { next; case 1: if(BaseLevel < .FreeKill){ mes .NpcName$; mes "Lamento "+strcharinfo(0)+" mas você não chegou ao level ^ff0000"+.FreeKill+" para poder entrar na Arena."; close; } if(Class >= 0 && Class <= 4007){ mes .NpcName$; mes "É proibido a entrada das Classes Iniciantes, Extendidas e Aprendizes nessa Arena."; close; } if(.PvPNoBuffs){ sc_end -1; dispbottom "Os seus buffs foram removidos."; } if(!getcharid(2)){ mes .NpcName$; mes "Você precisa estar em um Clã para entrar na Arena."; close; } warp $GvG$[1],0,0; end; case 2: for(set .@i,0; .@i < getarraysize(.@NoDonates); set .@i,.@i+1){ if(countitem(.@NoDonates[.@i]) >= 1){ mes .NpcName$; mes "Você não pode entrar nessa Arena tendo um Donate em mãos!"; close; } } if(!getcharid(2)){ mes .NpcName$; mes "Você precisa estar em um Clã para entrar na Arena."; close; } warp $GvG$[2],0,0; end; case 3: if(Class < 4023 || Class > 4045){ mes .NpcName$; mes "Somente Babys podem entrar na Arena."; close; } if(!getcharid(2)){ mes .NpcName$; mes "Você precisa estar em um Clã para entrar na Arena."; close; } warp $GvG$[3],0,0; end; } } } //--- Contagem de Kills -----------------------------------------------| - script Arenas de Batalha#Kills -1,{ OnPCKillEvent: //PvP getmapxy .@Map$,.@x,.@y,0; for(set @i,0; @i < getarraysize($PvP$); set @i,@i+1){ if(.@Map$ == $PvP$[@i]){ set .@CID,getcharid(0); set .@Nick$,""; set .@Adversarios,0; query_sql "SELECT `nick`,`kills` FROM `arenas` WHERE `char_id`="+.@CID,.@Nick$,.@Adversarios; if(.@Nick$ == ""){ query_sql "INSERT INTO `arenas` (`char_id`,`nick`,`kills`) VALUES ("+.@CID+",'"+strcharinfo(0)+"',1)"; end; } else { query_sql "UPDATE `arenas` SET `kills`=`kills`+1 WHERE `char_id`="+.@CID; set .@Adversarios,.@Adversarios+1; end; } } } for(set @i,0; @i < getarraysize($GvG$); set @i,@i+1){ if(.@Map$ == $GvG$[@i]){ set .@GID,getcharid(2); set .@NickGuild$,""; set .@GvGPoints,0; query_sql ("SELECT nick, kills FROM arenas_gvgs WHERE guild_id="+.@GID),.@NickGuild$,.@GvGPoints; if(.@NickGuild$ == ""){ query_sql "INSERT INTO arenas_gvgs (guild_id,nick,kills) VALUES ("+.@GID+",'"+strcharinfo(2)+"',1)"; end; } else { query_sql "UPDATE `arenas_gvgs` SET `kills`=`kills`+1 WHERE `guild_id`="+.@GID; set .@GvGPoints,.@GvGPoints+1; end; } } } end; } //--- Contagem de Deaths ----------------------------------------------| - script Arenas de Batalha#Deaths -1,{ OnPCDieEvent: getmapxy .@Map$,.@x,.@y,0; for(set @i,0; @i < getarraysize($PvP$); set @i,@i+1){ if( .@Map$ == $PvP$[@i] ){ set .@CID,getcharid(0); set .@Nick$,""; set .@Adversarios,0; query_sql "SELECT `nick`,`deaths` FROM `arenas` WHERE `char_id`="+.@CID,.@Nick$,.@Adversarios; if(.@Nick$ == ""){ query_sql "INSERT INTO `arenas` (`char_id`,`nick`,`deaths`) VALUES ("+.@CID+",'"+strcharinfo(0)+"',1)"; end; } else { query_sql "UPDATE `arenas` SET `deaths`=`deaths`+1 WHERE `char_id`="+.@CID; end; } } } for(set @i,0; @i < getarraysize($GvG$); set @i,@i+1){ if(.@Map$ == $GvG$[@i]){ set .@GID,getcharid(2); set .@NickGuild$,""; set .@GvGPoints,0; query_sql "SELECT `nick`,`deaths` FROM `arenas_gvgs` WHERE `guild_id`="+.@GID,.@NickGuild$,.@GvGPoints; if(.@NickGuild$ == ""){ query_sql "INSERT INTO `arenas_gvgs` (`guild_id`,`nick`,`deaths`) VALUES ("+.@GID+",'"+strcharinfo(2)+"',1)"; end; } else { query_sql "UPDATE `arenas_gvgs` SET `deaths`=`deaths`+1 WHERE `guild_id`="+.@GID; end; } } } end; }