Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 5

//===== eAthena Script ======================================================= //= Dota Allstars announcement ( TXT & SQL ) //===== By: ================================================================== //=

~AnnieRuru~ //===== Translation to Spanish By: =========================================== //= Skkont //===== Current Version: ===================================================== //= 1.7 //===== Compatible With: ===================================================== //= eAthena 12068 Trunk //===== Description: ========================================================= //= Dota Announcement script //= with a lot configurations, and anti-sit-killer feature //= http://www.eathena.ws/board/index.php?s=&showtopic=175136&view=findpost&p=98 2838 //============================================================================ script DOTAPVP -1,{ OnInit: // Config set .sound,2; // soundeffect : 0 - desabilitar, 1 - sonidos en el mapa, 2 - sonidos en todo el server, 3 - solo para ti. set .ownage,1; // ownage announcement : 0 - desabilitar, 1 - party owns, 2 - guild owns set .announce,0; // announce to : 0 - global, 1 - map set .announcemap, 1; // announce the map name in the announcement ? : 0 - off, 1 - on set .announcekill, 1; // announce who pawn who's head : 0 - off, 1- on set .msg_die, 0; // show message who kill you when die : 0 - off, 1- on set .msg_kill, 0; // show message you kill who when killed someone : 0 off, 1- on set .gmnokill, 0; // GMs are not suppose to kill players. A GM with <thi s number> level or higher will do nothing. IF set to 60, GM60 and above kill any player will not get anything : 0 - off set .killingspree, 3; set .dominating, 4; set .megakill, 5; set .unstoppable, 6; set .wickedsick, 7; set .monsterkill, 8; set .godlike, 9; set .holyshit, 10; set .continue, 1; // after beyond-godlike, every <this number> kills wil l make announcement again set .owned, 5; // how many times the party/guild has to kill to announce ownage set .owncontinue, 1; // after ownage, every <this number> party/guild cu mulative kills will make ownage announce again // *NEW* anti-sit-killer system // a player must kill another player with this minimum <this number> lev el to get the announcement and in the ladder. // Otherwise only have streak ended announcement and killed player's str eak reset. // Its possible for a level 1 novice to kill a level 55 player and he/sh e will still get in the ladder // but a level 55 kill a level 1 player will get nothing

// 0 - off this system ( default is 55, pk setting ) set .lvltokill, 0; // when a player kill another same player <this number> times in a row, the player is warp back to save point. // and the player's streak and ownage count will deduct accordingly // 0 - off this system set .counttopunish, 6; // minimum level range to kill another player // eg. when set to 20, player level 99 needs to kill another player with minimum level of 79 to get announcement and increase the kill rank. // but a player with base level 50 kills a level 99 will also get the an nouncement // higher base level cannot kill lower level, but lower level can kill h igher level // 0 - off this system set .minlvlrange, 50; // Config ends ----------------------------------------------------------------------------------------// to prevent bug happen if ( .ownage < 0 || .ownage > 2 ) set .ownage, 0; if ( .announce < 0 || .announce > 1 ) set .announce,0; if ( .continue < 1 ) set .continue, 1; if ( .owncontinue < 1 ) set .owncontinue, 1; if ( .gmnokill <= 0 ) set .gmnokill, 100; if ( .lvltokill <= 1 ) set .lvltokill, 0; if ( .counttopunish <= 1 ) set .counttopunish, 0; end;

// script start OnPCKillEvent: if ( getgmlevel() >= .gmnokill ) end; getmapxy .@map$,.@x,.@y,0; if ( !attachrid(killedrid) ) end; if ( killerrid != getcharid(3) && ( .msg_die || .msg_kill ) ) { if ( .msg_die ) message strcharinfo(0),"Te ha matado "+ rid2name(killerrid); if ( .msg_kill ) message rid2name(killerrid),"Mataste a "+ strcharinfo(0); } if ( @PlayersKilledStreak >= .holyshit ) set .@streakname$,"Beyond Godlike"; else if ( @PlayersKilledStreak >= .godlike ) set .@streakname$,"Godlike"; else if ( @PlayersKilledStreak >= .monsterkill ) set .@streakname$,"Monster Kill"; else if ( @PlayersKilledStreak >= .wickedsick ) set .@streakname$,"Wicked Sick"; else if ( @PlayersKilledStreak >= .unstoppable ) set .@streakname$,"Unstoppable"; else if ( @PlayersKilledStreak >= .megakill ) set .@streakname$,"Mega-kill"; else if ( @PlayersKilledStreak >= .dominating ) set .@streakname$,"Dominating"; else if ( @PlayersKilledStreak >= .killingspree ) set .@streakname$,"Killing Spree"; if ( @PlayersKilledStreak >= .killingspree && killerrid == getcharid(3)

) announce strcharinfo(0) +" a matado a "+( (sex)?"him":"her" )+" own "+ .@streakname$ +"["+ @PlayersKilledStreak +"] "+( (.announcemap)?("en "+ . @map$):""),16|.announce; else if ( @PlayersKilledStreak >= .killingspree ) announce rid2name(killerrid) +" a matado a "+ strcharinfo(0) +" "+ .@streakname$ +"["+ @PlayersKilledStreak +"] "+( (.announcemap)?("en "+ .@map $):""),16|.announce; else if ( .announcekill ) announce rid2name(killerrid) +" a matado a "+ strcharinfo(0) +" "+( (.announcemap)?("en "+ .@map$):""),16|.announce; set @PlayersKilledStreak,0; set @dota_multikills,0; if ( .ownage && getcharid(.ownage) ) { setd ".dotaown_"+ getcharid(.ownage), 0; set .@killedgroup, getcharid(.ownage); } if ( killerrid == getcharid(3) || baselevel < .lvltokill ) end; if ( .minlvlrange ) set .@killedlvl, baselevel; if ( !attachrid(killerrid) ) end; if ( .minlvlrange && .@killedlvl + .minlvlrange < baselevel ) end; if ( .counttopunish ) { for ( set .@i,0; .@i < 60; set .@i, .@i +1 ) { if ( .@i == gettime(2) ) continue; deletearray getd("@sitkillid"+ .@i), 128; deletearray getd("@sitkilltimes"+ .@i), 128; } if ( !getarraysize( getd("@sitkillid"+ gettime(2)) ) ) { setd "@sitkillid"+ gettime(2) +"[0]", killedrid; setd "@sitkilltimes"+ gettime(2) +"[0]", 1; } else { for ( set .@i,0; .@i < getarraysize( getd("@sitkillid"+ gettime(2)) ); set .@i, .@i +1 ) { if ( getd("@sitkillid"+ gettime(2) +"["+ .@i +"] ") != killedrid ) continue; else { setd "@sitkilltimes"+ gettime(2) +"["+ . @i +"]", getd("@sitkilltimes"+ gettime(2) +"["+ .@i +"]") +1; if ( getd("@sitkilltimes"+ gettime(2) +" ["+ .@i +"]") >= .counttopunish ) { warp "SavePoint",0,0; announce strcharinfo(0) +" , Sto p killing "+ rid2name(killedrid) + " !!!",0; logmes "is sit-killing "+ rid2na me(killedrid) +" for "+ getd("@sitkilltimes"+ gettime(2) +"["+ .@i +"]") +" time s"; set @PlayersKilledStreak, @Playe rsKilledStreak +1 - .counttopunish; if ( .ownage && getcharid(.ownag e) ) setd ".dotaown_"+ .@side id, getd(".dotaown_"+ .@sideid ) +1 - counttopunish; end; } } } } } set @PlayersKilledStreak,@PlayersKilledStreak + 1;

set PlayersKilled,PlayersKilled + 1; if ( @PlayersKilledStreak == .killingspree ) setarray .@streakname$,"killingspree.wav","KILLING SPREE !","."; else if ( @PlayersKilledStreak == .dominating ) setarray .@streakname$,"dominating.wav","DOMINATING!",". "; else if ( @PlayersKilledStreak == .megakill ) setarray .@streakname$,"megakill.wav","MEGA KILL!","."; else if ( @PlayersKilledStreak == .unstoppable ) setarray .@streakname$,"unstoppable.wav","UNSTOPPABLE!", "."; else if ( @PlayersKilledStreak == .wickedsick ) setarray .@streakname$,"wickedsick.wav","WICKED SICK!"," ."; else if ( @PlayersKilledStreak == .monsterkill ) setarray .@streakname$,"monsterkill.wav","MONSTER KILL!" ,"."; else if ( @PlayersKilledStreak == .godlike ) setarray .@streakname$,"godlike.wav","GODLIKE!",". Algui en que "+( (sex)?"lo":"la" ) +"pare?"; else if ( @PlayersKilledStreak >= .holyshit && ( (@PlayersKilled Streak - .holyshit) % .continue == 0 ) ) setarray .@streakname$,"holyshit.wav","Mas que GODLIKE!" ,". Alguien que "+( (sex)?"lo":"la" ) +"mate!"; if ( .@streakname$[1] != "" ) { announce strcharinfo(0) +" "+ .@streakname$[1] +"["+ @PlayersKil ledStreak +"] "+( (.announcemap)?("at "+ .@map$):"") + .@streakname$[2],16|.anno unce; if ( .sound == 1 ) soundeffectall .@streakname$[0],0,.@map$; else if ( .sound == 2 ) soundeffectall .@streakname$[0],0; else if ( .sound == 3 ) soundeffect .@streakname$[0],0; } set @dota_multikills, @dota_multikills + 1; deltimer "DOTAPVP::OnStreakReset"; addtimer 11500,"DOTAPVP::OnStreakReset"; if ( .ownage ) { set .@sideid, getcharid(.ownage); if ( .@sideid != .@killedgroup ) setd ".dotaown_"+ .@sideid, get d(".dotaown_"+ .@sideid ) + 1; } set .@dota_multikills, @dota_multikills; set .@origin, getcharid(3); sleep 1500; if ( .@sideid && .ownage && .@sideid != .@killedgroup && getd(".dotaown_ "+ .@sideid) >= .owned && ( ( getd(".dotaown_"+ .@sideid) - .owned ) % .ownconti nue == 0 ) ) { if ( .announce ) mapannounce .@map$, "La "+( (.ownage == 1)?"par ty":"guild" )+" ["+( (.ownage == 1)?getpartyname(.@sideid):getguildname(.@sideid ) )+"] OWNING["+ getd(".dotaown_"+ .@sideid) +"] !!!",16; else announce "The "+( (.ownage == 1)?"party":"guild" )+" ["+( ( .ownage == 1)?getpartyname(.@sideid):getguildname(.@sideid) )+"] OWNING["+ getd( ".dotaown_"+ .@sideid) +"] !!!",16; if ( .sound == 1 ) soundeffectall "ownage.wav",0,.@map$; else if ( .sound == 2 ) soundeffectall "ownage.wav",0; else if ( .sound == 3 && attachrid(.@origin) ) soundeffect "owna ge.wav",0; } sleep 1250; if ( !attachrid(.@origin) ) end;

if ( .@dota_multikills == 2 ) { if ( .announce ) mapannounce .@map$, strcharinfo(0) +" A Hecho D ouble Kill !",16; else announce strcharinfo(0) +" A Hecho Double Kill !",16; if ( .sound == 1 ) soundeffectall "doublekill.wav",0,.@map$; else if ( .sound == 2 ) soundeffectall "doublekill.wav",0; else if ( .sound == 3 ) soundeffect "doublekill.wav",0; } else if ( .@dota_multikills >= 3 ) { if ( .announce ) mapannounce .@map$, strcharinfo(0) +" A hecho U LTRA KILL !!!!!!",16; else announce strcharinfo(0) +" A Hecho TRIPLE KILL !!!!!!",16; if ( .sound == 1 ) soundeffectall "triplekill.wav",0,.@map$; else if ( .sound == 2 ) soundeffectall "triplekill.wav",0; else if ( .sound == 3 ) soundeffect "triplekill.wav",0; } end; OnWhisperGlobal: dispbottom "Muertes : "+ @PlayersKilledStreak; dispbottom "Players Matados : "+ PlayersKilled; if ( .ownage && getcharid(.ownage) ) dispbottom "Tu "+( (.ownage ==1)?"party":"guild" )+" Own : "+ getd(".dotaown_"+ getcharid(.ownage) ); end; OnStreakReset: set @dota_multikills,0; end; }

You might also like