//|--- 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;
}
//ANUNCIOS
if(.@Adversarios == 2){ announce "O Player: ["+strcharinfo(0)+"] está em basic kill com "+.@Adversarios+" pontos."}
if(.@Adversarios == 8){ announce "O Player: ["+strcharinfo(0)+"] está em mega kill com "+.@Adversarios+" pontos."}
if(.@Adversarios == 15){ announce "O Player: ["+strcharinfo(0)+"] está em monster kill com "+.@Adversarios+" pontos."}
}
}
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;
}