Jump to content

minx123

Members
  • Content Count

    283
  • Joined

  • Last visited

Posts posted by minx123


  1.  

     

    you can try this one...http://herc.ws/board/topic/5658-ndg-protection/

    or if you have a budget for adelay protection you can check it here...http://herc.ws/board/topic/4021-adelays-anti-nodelay-protection-v4/

    For 1st link i think its not work anymore.

    2nd link u gv i already have it.. Not i not sure if its still work or not.. Because got player report it still can bypass..

    AFAIK, 2nd one is server sided (wondering how player bypass it)

    ya u right its server side.

    maybe adelays not work anymore?


  2. this topic already open. but i cant get any way to solve it..

    right now i using hashield but kamishi still not answering my pm.

    how about adelays? but i dont if this adelays still on work or not?

    if any one know how to block 0 delay?

    or any security its good like hashield and adelays?


  3. //Title: Ghost's PvP System (Multi-announcer + Ladder)
    //Version: 1.3
    //Author: Ghost
    //Created: 12/27/2011
    //Released: 01/31/2012
    //Last Modified: 06/06/2013
    //Compatibility: rAthena | eAthena
    //Support: TXT & SQL
    
    /*SQL Table for Ghost's PvP System
    CREATE TABLE IF NOT EXISTS `pvp_rank` (
      `char_id` int(11) NOT NULL,
      `account_id` int(11) NOT NULL,
      `char` varchar(30) NOT NULL,
      `kill` int(11) NOT NULL,
      `death` int(11) NOT NULL,
      `kdr` varchar(30) NOT NULL,
      `killingstreak` int(11) NOT NULL,
      `multikill` int(11) NOT NULL,
      `killingspree` int(11) NOT NULL,
      `dominating` int(11) NOT NULL,
      `megakill` int(11) NOT NULL,
      `unstoppable` int(11) NOT NULL,
      `wickedsick` int(11) NOT NULL,
      `monsterkill` int(11) NOT NULL,
      `godlike` int(11) NOT NULL,
      `beyondgodlike` int(11) NOT NULL,
      `doublekill` int(11) NOT NULL,
      `triplekill` int(11) NOT NULL,
      `ultrakill` int(11) NOT NULL,
      `rampage` int(11) NOT NULL,
      `ownage` int(11) NOT NULL,
      `nemesiskill` int(11) NOT NULL,
      `feedcount` int(11) NOT NULL,
      PRIMARY KEY (`char_id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1; 
    */
    
    //rAthena Topic: http://rathena.org/board/topic/58222-ghosts-scripts/
    //Required File: 
    //	SQL Table: http://pastebin.com/dEqrkczy
    //	Wav Files: http://www.mediafire.com/?i3uutvdp00jw4r8
    //References: 
    //	http://www.wowwiki.com/Defense_of_the_Ancients:_Allstars
    //	http://honwiki.net/wiki/Kill_Streak
    //	http://honwiki.net/wiki/Multi_Kill
    //	http://honwiki.net/wiki/Patch_2.0.0#Nemesis_and_Payback
    //	http://igamepros.com/viewtopic.php?f=62&t=4342
    //Additional Note: 
    //	Multiple kill timer is set to Heroes of Newerth's 18 seconds.
    //	KDR Algorithm is originally written by me, Ghost.
    //	If you like this PvP System, say thanks at my rAthena topic.
    //Glossary:
    //	KDR: Kill Death Ratio
    //	SK: Streak Kill
    //	MK: Multi Kill
    //Credits:
    //	Thank you to the Athena community.
    //Changelog:
    //	v1.3 = Fixed .PvPMap$[0] settings [Ghost]
    //	     = Added .GMLevel at configuration [Ghost]
    //	     = Change SK Hex Color to ^00FF00 for visibility [Ghost]
    //	     = Fixed Streak Kill ended broadcast [Ghost]
    //	     = Typographical error (Ms. Pudding to Flamboyant) on Announcer Setting corrected [Ghost]
    //           = Changed Top 10 Players ranking from KDR to Kills [Ghost]
    //	v1.2 = Fixed obfuscation at PvP Statistics [Ghost]
    //	v1.1 = KDR Algorithm update for undefined calculation check [Lighta]
    //	     = Fixed obfuscation at Nemesis Kill [Lighta]
    //	v1.0 = Initial release
    //©2011-2012 Ghost
    //========================================================================================
    
    -	script	Versus	-1,{
    
    OnInit:
    	//CONFIGURATION
    	set .System, 1; //Toggle PvP System (0:Disable|1:Enable)
    	set .ServerType, 1; //Are you using TXT or SQL? (0:TXT|1:SQL)
    	set .gmlevel, 100; //GM levels above or equal this level will be ignored by the system
    	//setarray .PvPMap$[0],"All"; //List all pvp maps here (Index 0:"All" to enable all maps)
    	setarray .PvPMap$[0],	"guild_vs3","payg_cast01","gefg_Cast01","prtg_cas01","guild_vs1","guild_v5","artz_pvp","pvp_y_8-2";
    
    	set .Gfx, 1; //Enable Cutin count graphics features? (0:Disable|1:Enable)
    	set .Dcnt,1; //Death count enabled? (0:Disable|1:Enable)
    
    	//========================================================================================
    
    	//PVP LADDER
    	set .Top, 10; //What is the length of the list?
    	set .Reset, 1; //Allow players to reset their PvP statistics? (0:Disable|1:Zeny|2:Cashpoint|3:Skull)
    	set .ZenyFee, 10000000; //How much zeny you want to charge to reset their pvp stat?
    	set .CashFee, 0; //How much cashpoint you want to charge to reset their pvp stat?
    	set .SkullFee, 0; //How much skull you want to charge to reset their pvp stat?
    	set .AnnouncerFee, 100000000; //How much cashpoint per announcer? (DotA announcer is set as default)
    
    	//========================================================================================
    
    	//REWARD SETTING (Every Kill)
    	set .MaxZeny, 1000000000; //What is the max zeny of the server?
    	set .Zeny, 0; //Earn zeny each kill? (0:Disable)
    	set .Cash, 0; //How much #CASHPOINT every kill? (0:Disable)
    	set .Skull, 1; //Collect player's skull each kill? (0:Disable|1:Enable)
    	setarray .ItemID[0], 0,0; //Get items each kill? (0:Disable)
    	setarray .Amount[0], 0,0; //How many items per kill?
    	set .Exp, 0;  //Gain Exp each kill? (0:Disable|1:Enable)
    	set .Bexp, 3;  //How much % base Exp gain each kill? 
    	set .Jexp, 3;  //How much % job Exp gain each kill?
    	set .Reqkill,0; //Qualified number of kills before getting a chance for grand prize? (0:Disable)
    	set .Gprize, 0; //Grand Prize Percent? (0:Disable|1:Enable)
    
    	//========================================================================================
    
    	//PENALTY SETTING
    	set .Feed,10; //How many kills before feeding is called? (10:Recommended)
    	set .Penalty,1; //What is the penalty for the feedee? (0:Disable|1:Kill Rollback|2:Server Kick|3:Server Block|4:Server Ban|5:Server Prison)
    	set .Kick,2; //Who to punish? (0:Feedee|1:Feeder|2:Both)
    	set .Rollback,10; //How many times should the kill count rollback when feeding is called? (10:Recommended)
    
    	//========================================================================================
    
    	//ANNOUNCER SETTING
    	set .Broadcast, 1; //Where do you want to broadcast? (0:bc_all|1:bc_map)
    	set .Streak, 1; //Show number of killing streak in broadcast? e.g. Ghost is Beyond Godlike(8)
    	set .Multiple, 1; //Show number of multiple kill in broadcast? e.g. Makizushi just got an Ownage(5)
    	set .Nemesis, 1; //Show number of nemesis in broadcast? e.g. Epoque is owning Jguy(9)
    	set .Feeder, 1; //Show number of feed in broadcast? e.g. Cookies is feeding `KeiKun(10)
    	set .RandomKillWord, 1; //Randomize the kill words? e.g. Arcenciel "Kill Word" jTynne (0:Disable|Default:"pwned")
    	setarray .KillWord$[0], "pawned", "smashed", "disintegrated", "neutralized","took","cut","obliterated","thrashed","pulverized"; //Enable above setting for this to work
    
    	//Broadcast Color | See HexTable: http://johncfish.com/bggallery/otherchart/hextable.gif
    	set .KColor$, "0xFFFFCC"; //Kill Broadcast Color | e.g. Jguy pwned Mercurial 
    	set .KSColor$, "0xFFFFCC"; //Killing Streak Broadcast Color | e.g. jTynne is on a Killing Spree
    	set .MKColor$, "0x33FF00"; //Multiple Kill Broadcast Color | e.g. Mercurial just got a Double Kill
    	set .ESColor$, "0xFF0000"; //End Streak Broadcast Color | e.g. BrianL just ended Jguy's Killing Spree
    	set .NMColor$, "0x0099FF"; //Nemesis Broadcast Color | e.g. Xazax is owning Cookies
    	set .PBColor$, "0xFF0000"; //Payback Broadcast Color | e.g. Makizushi just have a payback againts lilcooldude69
    	set .FDColor$, "0xFF00CC"; //Feeder Broadcast Color | e.g. Cookies is feeding Z3R0
    
    	//--Warning: Critical Setting | Killing Streaks and Multiple Kills Announcer
    	setarray .KSDotA$[0], "is on a Killing Spree", "is Dominating", "has a Mega-Kill", "is Unstoppable", "is Wicked Sick", "has a M-m-m-m....Monster Kill", "is Godlike", "is Beyond Godlike";
    	setarray .MKDotA$[0], "just got a Double Kill", "just got a Triple Kill", "just got an Ultra Kill", "is on a Rampage", "is Owning his/her enemies";
    	setarray .ESDotA$[0], "Killing Spree", "Dominating", "Mega-Kill", "Unstoppable", "Wicked Sick", "Monster Kill", "Godlike", "Beyond Godlike";
    	setarray .EMDotA$[0], "Double Kill", "Triple Kill", "Ultra Kill", "Rampage", "Ownage";
    
    	setarray .KSHoN$[0], "is a Serial Killer", "is an Ultimate Warrior", "is Legendary", "is on an Onslaught!", "is Savage Sick", "is Dominating", "has a Bloodbath", "is Immortal"; //Took out #9. Champion of Newearth
    	setarray .MKHoN$[0], "just got a Double Tap", "just got a Hat Trick", "just got an Quad Kill", "annihilated his/her enemies", "just got a Genocide";
    	setarray .ESHoN$[0], "Serial Killer", "Ultimate Warrior", "Legendary", "Onslaught", "Savage Sick", "Dominating", "Bloodbath", "Immortal"; //Took out #9. Champion of Newearth
    	setarray .EMHoN$[0], "Double Tap", "Hat Trick", "Quad Kill", "Annihilation", "Genocide";
    
    	setarray .KSFLAM$[0],"is Homicidal","is Big Bear","is Diva","is Macho","is Savage Ohh","is on Domination","is Homewrecker","is Superstar","is Scary";
    	setarray .MKFLAM$[0], "is Fabulous","is on a Three Way","is on a Unicorn Stampede","is a Rainbow Warrior","Yey","is like O-M-G";
    	setarray .ESFLAM$[0],"Homicidal","Big Bear","Diva","Macho","Savage Ohh","Domination","Homewrecker","Superstar","Scary";
    	setarray .EMFLAM$[0], "Fabulous","Three Way","Unicorn Stampede","Rainbow Warrior","Yey","O-M-G";
    
    	setarray .KSENG$[0],"is on a Killing Spree", "is Dominating", "has a Mega-Kill", "is Unstoppable", "is Wicked Sick", "has a M-m-m-m....Monster Kill", "is Godlike", "is Beyond Godlike";
    	setarray .MKENG$[0], "is Splendid","is Absolutely Spiffing","is Marvelous","is Conquering The Game","is on Royal Thrashing","just got a Genocide";
    	setarray .ESENG$[0], "Killing Spree", "Dominating", "Mega-Kill", "Unstoppable", "Wicked Sick", "Monster Kill", "Godlike", "Beyond Godlike";
    	setarray .EMENG$[0], "Splendid","Absolutely Spiffing","Marvelous","Conquering The Game","Royal Thrashing","Genocide";
    
    	setarray .KSBALL$[0],"doesn't taking it Seriously","is on a Rush","has a Mega-Kill","is Unstoppable","is Bonafied Badass","has a M-m-m-m....Monster Kill","is Damn Good","is Unbelievable","is Beyond Godlike";
    	setarray .MKBALL$[0], "is Making it too Easy","isn't giving any Chance","is Ready for another kill","annihilated his/her enemies","just got a Genocide","made a Huge Mess";
    	setarray .ESBALL$[0], "Killing Spree", "Dominating", "Mega-Kill", "Unstoppable", "Bonafied Badass", "Monster Kill", "Damn Good", "Unbelievable";
    	setarray .EMBALL$[0], "Too Easy","No Chance","Ready for another kill","Annihilation","Genocide","Huge Mess";
    
    	setarray .KSBRKY$[0],"is a Serial Killer", "is an Ultimate Warrior", "is Legendary", "is on an Onslaught!", "is Savage Sick", "is Dominating", "has a Bloodbath", "is Immortal"; //Took out #9. Champion of Newearth
    	setarray .MKBRKY$[0],"just got a Double Tap", "just got a Hat Trick", "just got an Quad Kill", "annihilated his/her enemies", "just got a Genocide";
    	setarray .ESBRKY$[0], "Serial Killer", "Ultimate Warrior", "Legendary", "Onslaught", "Savage Sick", "Dominating", "Bloodbath", "Immortal"; //Took out #9. Champion of Newearth
    	setarray .EMBRKY$[0], "Double Tap", "Hat Trick", "Quad Kill", "Annihilation", "Genocide";
    
    	setarray .KSSDCT$[0],"is on a Hot Streak", "is an Ultimate Warrior", "is Too Hot", "is on an Onslaught!", "is Savage Sick", "is Dominating", "is on The Climax", "is Immortal"; //Took out #9. Champion of Newearth
    	setarray .MKSDCT$[0],"just got a Double Tap", "just got a Triple Kill", "just got an Quad Kill", "annihilated his/her enemies", "just got a Genocide","made a Huge Mess";
    	setarray .ESSDCT$[0], "Serial Killer", "Ultimate Warrior", "Legendary", "Onslaught", "Savage Sick", "Dominating", "Bloodbath", "Immortal";
    	setarray .EMSDCT$[0], "Double Tap", "Hat Trick", "Quad Kill", "Annihilation", "Genocide";
    
    	setarray .KSDUKE$[0],"is a Serial Killer", "is an Ultimate Warrior", "is Legendary", "is on an Onslaught!", "is Savage Sick", "is Dominating", "has a Bloodbath", "is Immortal"; //Took out #9. Champion of Newearth
    	setarray .MKDUKE$[0],"just got a Double Tap", "just got a Hat Trick", "just got an Quad Kill", "annihilated his/her enemies", "just got a Genocide";
    	setarray .ESDUKE$[0], "Serial Killer", "Ultimate Warrior", "Legendary", "Onslaught", "Savage Sick", "Dominating", "Bloodbath", "Immortal";
    	setarray .EMDUKE$[0], "Double Tap", "Hat Trick", "Quad Kill", "Annihilation", "Genocide";
    
    	setarray .KSVRZO$[0], "is on a Killing Spree", "is a Destoyer", "is on High 5", "is on Touch Down", "is a Killing Machine", "has a M-m-m-m....Monster Kill", "is Godlike", "is Beyond Godlike";
    	setarray .MKVRZO$[0], "just got a Double Kill", "just got a Triple Kill", "just got an Ultra Kill", "is on a Rampage", "is Owning his/her enemies";
    	setarray .ESVRZO$[0], "Killing Spree", "Destoyer", "High 5", "Touch Down", "Killing Machine", "Monster Kill", "Godlike", "Beyond Godlike";
    	setarray .EMVRZO$[0], "Double Kill", "Triple Kill", "Ultra Kill", "Rampage", "Ownage";
    
    	setarray .KSCCA$[0], "is Sweet", "is Tasty", "is Delicious", "is Divine", "is on Sugar Crush", "is on Sugar Crush", "is on Sugar Crush", "is on Sugar Crush";
    	setarray .MKCCA$[0], "is Sweet", "is Tasty", "is Delicious", "is Divine", "is on Sugar Crush";
    	setarray .ESCCA$[0], "Sweetness", "Tastiness", "Delicious", "Divine", "Sugar Crush", "Sugar Crush", "Sugar Crush", "Sugar Crush";
    	setarray .EMCCA$[0], "Sweetness", "Tastiness", "Delicious", "Divine", "Sugar Crush";
    
    	setarray .KSPMP$[0], "is a Serial Killer", "is an Ultimate Warrior", "is Legendary", "is on an Onslaught!", "is Savage Sick", "is Dominating", "has a Bloodbath", "is Immortal"; //Took out #9. Champion of Newearth
    	setarray .MKPMP$[0], "just got a Double Tap", "just got a Hat Trick", "just got an Quad Kill", "annihilated his/her enemies", "just got a Genocide";
    	setarray .ESPMP$[0], "Serial Killer", "Ultimate Warrior", "Legendary", "Onslaught", "Savage Sick", "Dominating", "Bloodbath", "Immortal"; //Took out #9. Champion of Newearth
    	setarray .EMPMP$[0], "Double Tap", "Hat Trick", "Quad Kill", "Annihilation", "Genocide";
    
    	setarray .KSSAM$[0], "is a Serial Killer", "is an Ultimate Warrior", "is Legendary", "is on an Onslaught!", "is Savage Sick", "is Dominating", "has a Bloodbath", "is Immortal"; //Took out #9. Champion of Newearth
    	setarray .MKSAM$[0], "just got a Double Tap", "just got a Hat Trick", "just got an Quad Kill", "annihilated his/her enemies", "just got a Genocide";
    	setarray .ESSAM$[0], "Serial Killer", "Ultimate Warrior", "Legendary", "Onslaught", "Savage Sick", "Dominating", "Bloodbath", "Immortal"; //Took out #9. Champion of Newearth
    	setarray .EMSAM$[0], "Double Tap", "Hat Trick", "Quad Kill", "Annihilation", "Genocide";
    
    	setarray .KSSPT$[0], "is a Serial Killer", "is an Ultimate Warrior", "is Legendary", "is on an Onslaught!", "is Savage Sick", "is Dominating", "has a Bloodbath", "is Immortal"; //Took out #9. Champion of Newearth
    	setarray .MKSPT$[0], "just got a Double Tap", "just got a Hat Trick", "just got an Quad Kill", "annihilated his/her enemies", "just got a Genocide";
    	setarray .ESSPT$[0], "Serial Killer", "Ultimate Warrior", "Legendary", "Onslaught", "Savage Sick", "Dominating", "Bloodbath", "Immortal"; //Took out #9. Champion of Newearth
    	setarray .EMSPT$[0], "Double Tap", "Hat Trick", "Quad Kill", "Annihilation", "Genocide";
    
    	//--Warning: Fail Safe | Do Not Touch
    	if(.System > 1){ set .System, 1; }
    	if(.System < 0){ set .System, 0; }
    	if(.ServerType > 1){ set .ServerType, 1; }
    	if(.ServerType < 0){ set .ServerType, 0; }
    	if(.GMLevel > 99){ set .GMLevel, 99; }
    	if(.GMLevel < 0){ set .GMLevel, 0; }
    	if((.PvPMap$[0] == "all")||(.PvPMap$[0] == "ALL")||(.PvPMap$[0] == "All")||(.PvPMap$[0] == "aLl")||(.PvPMap$[0] == "alL") || (.PvPMap$[0] == "ALl") || (.PvPMap$[0] == "aLL")|| (.PvPMap$[0] == "AlL")){ setarray .PvPMap$[0], "All"; }
    	if(.Ladder > 1){ set .Ladder, 1; }
    	if(.Ladder < 0){ set .Ladder, 0; }
    	if(.Top < 0){ set .Top, 0; }
    	if(.Reset > 3){ set .Reset, 0; }
    	if(.Reset < 0){ set .Reset, 0; }
    	if((.Reset == 1)&&(.ZenyFee <= 0)){ set .Reset, 0; }
    	if((.Reset == 1)&&(.ZenyFee >= .MaxZeny)){ set .Reset, 0; }
    	if((.Reset == 2)&&(.CashFee <= 0)){ set .Reset, 0; }
    	if((.Reset == 3)&&(.SkullFee <= 0)){ set .Reset, 0; }
    	if(.Zeny > .MaxZeny){ set .Zeny, 0; }
    	if(.Zeny < 0){ set .Zeny, 0; }
    	if(.Cash < 0){ set .Cash, 0; }
    	if(.Broadcast > 1){ set .Broadcast, 1; }
    	if(.Broadcast < 0){ set .Broadcast, 0; }
    	if(.Feed < 1){ set .Feed, 0; }
    	if(.Penalty > 5){ set .Penalty, 5; }
    	if(.Penalty < 1){ set .Penalty, 0; }
    	if(.Rollback < 1){ set .Rollback, 0; }
    	if(.Streak > 1){ set .Streak, 1; }
    	if(.Streak < 1){ set .Streak, 0; }
    	if(.Multiple > 1){ set .Multiple, 1; }
    	if(.Multiple < 1){ set .Multiple, 0; }
    	if(.Nemesis > 1){ set .Nemesis, 1; }
    	if(.Nemesis < 0){ set .Nemesis, 0; }
    	if(.Feeder > 1){ set .Feeder, 1; }
    	if(.Feeder < 1){ set .Feeder, 0; }
    	if(.RandomKillWord > 1){ set .RandomKillWord, 1; }
    	if(.RandomKillWord < 0){ set .RandomKillWord, 0; }
    	end;
    
    OnPCKillEvent:
    	if(.System==1) {
    		.@killedrid = killedrid;
    		for(set .@i, 0; .@i <getarraysize(.PvPMap$); set .@i, .@i + 1)
    		if((strcharinfo(3) == .PvPMap$[.@i]) | (.PvPMap$[0] =="All")) {
    			set Kill, Kill + 1; 
    			if(.Gfx == 1){
    				specialeffect2 EF_SPELLBREAKER,AREA,rid2name(.@killedrid);
    				specialeffect2 EF_WARP,AREA,rid2name(.@killedrid);
    			}
    			if((@nm == .Feed) && (.Penalty)){
    				callsub OnClearData;
    					switch(.Penalty){
    					case 0: break;
    					case 1: callsub OnRollback; break;
    					case 2: 
    						if(.Kick == 0){ atcommand "@kick "+strcharinfo(0); announce strcharinfo(0)+" has been kicked out from the server!!!", ((.Broadcast)?bc_all:bc_map), .PBColor$; }
    						if(.Kick == 1){ atcommand "@kick "+rid2name(.@killedrid); announce rid2name(.@killedrid)+" has been kicked out from the server!!!", ((.Broadcast)?bc_all:bc_map), .PBColor$; }
    						if(.Kick == 2){ atcommand "@kick "+strcharinfo(0); atcommand "@kick "+rid2name(.@killedrid); announce strcharinfo(0)+" has been kicked out from the server!!!", ((.Broadcast)?bc_all:bc_map), .PBColor$;
    								announce rid2name(.@killedrid)+" has been kicked out from the server!!!", ((.Broadcast)?bc_all:bc_map), .PBColor$; soundeffectall ""+#Announcer+"_Ragequit.wav", 0,strcharinfo(3); }
    								callsub OnRollback;
    						break;
    					case 3: 
    						if(.Kick == 0){ atcommand "@block "+strcharinfo(0); announce strcharinfo(0)+" has been blocked from the server!!!", ((.Broadcast)?bc_all:bc_map), .PBColor$; }
    						if(.Kick == 1){ atcommand "@block "+rid2name(.@killedrid); announce rid2name(.@killedrid)+" has been blocked from the server!!!", ((.Broadcast)?bc_all:bc_map), .PBColor$; }
    						if(.Kick == 2){ atcommand "@block "+strcharinfo(0); atcommand "@block "+rid2name(.@killedrid); announce strcharinfo(0)+" has been blocked from the server!!!", ((.Broadcast)?bc_all:bc_map), .PBColor$;
    								announce rid2name(.@killedrid)+" has been blocked from the server!!!", ((.Broadcast)?bc_all:bc_map), .PBColor$; soundeffectall ""+#Announcer+"_Ragequit.wav", 0,strcharinfo(3); }
    								callsub OnRollback;
    						break;
    					case 4: 
    						if(.Kick == 0){ atcommand "@ban 1yr "+strcharinfo(0); announce strcharinfo(0)+" has been banned from the server!!! (PVP Feeding)", ((.Broadcast)?bc_all:bc_map), .PBColor$; }
    						if(.Kick == 1){ atcommand "@ban 1yr "+rid2name(.@killedrid); announce rid2name(.@killedrid)+" has been banned from the server!!!", ((.Broadcast)?bc_all:bc_map), .PBColor$; }
    						if(.Kick == 2){ atcommand "@ban 1yr "+strcharinfo(0); atcommand "@ban 1yr "+rid2name(.@killedrid); announce strcharinfo(0)+" has been banned from the server!!! (PVP Feeding)", ((.Broadcast)?bc_all:bc_map), .PBColor$;
    								announce rid2name(.@killedrid)+" has been banned from the server!!! (PVP Feeding)", ((.Broadcast)?bc_all:bc_map), .PBColor$; soundeffectall ""+#Announcer+"_Ragequit.wav", 0,strcharinfo(3); } 
    								callsub OnRollback;
    						break;
    					case 5: 
    						if(.Kick == 0){ atcommand "#warp "+strcharinfo(0)+" sec_pri"; announce strcharinfo(0)+" has been prisoned!!!", ((.Broadcast)?bc_all:bc_map), .PBColor$; }
    						if(.Kick == 1){ atcommand "#warp "+rid2name(.@killedrid)+" sec_pri"; announce rid2name(.@killedrid)+" has been prisoned!!!", ((.Broadcast)?bc_all:bc_map), .PBColor$; }
    						if(.Kick == 2){ 
    						atcommand "@warp sec_pri";
    						atcommand "@recall "+(rid2name(.@killedrid));  
    						announce strcharinfo(0)+" has been prisoned!!!", ((.Broadcast)?bc_all:bc_map), .PBColor$;
    						announce rid2name(.@killedrid)+" has been prisoned!!!", ((.Broadcast)?bc_all:bc_map), .PBColor$; 
    						}
    						callsub OnRollback;
    						break;
    					default: break;
    					}
    				}
    
    			if(@nm < .Feed && rid2name(.@killedrid) != strcharinfo(0)){
    				if(strcharinfo(3) == "guild_vs1") {	
    					if(.Zeny && ((Zeny + .Zeny) < .MaxZeny)){ set Zeny, Zeny + .Zeny; }
    					if(.Cash){ dispbottom "[Point System] +1 Kill Point"; set #CASHPOINT, #CASHPOINT + .Cash; }
    					if(.Skull){ getnameditem 7420, rid2name(.@killedrid); }
    					if(.Exp){ getexp ((NextBaseExp)/(100/.Bexp)),((NextJobExp)/(100/.Jexp)); }
    					for(set .@i, 0; .@i < getarraysize(.ItemID); set .@i, .@i + 1){ if(.ItemID){ getitem .ItemID[.@i], .Amount[.@i]; }}
    					if(.Gprize) {
    						if( rand(100) <= .Gprize && Kill >= .Reqkill ){ 
    							setarray $@gprize[0],25500,25501;                   
    							specialeffect2 248;
    							getitem ($@gprize[rand(0,getarraysize($@gprize)-1)]),1;
    							announce strcharinfo(0)+" received a grand prize!!!", ((.Broadcast)?bc_all:bc_map), .KSColor$; 
    							soundeffectall ""+#Announcer+"_Victory.wav", 0,strcharinfo(3);
    						}
    					}                      
    				}
    			}
    			if(.RandomKillWord && rid2name(.@killedrid) != strcharinfo(0)){ announce strcharinfo(0)+" "+.KillWord$[rand(0, getarraysize(.KillWord$) - 1)]+" "+rid2name(.@killedrid)+"'s head", ((.Broadcast)?bc_all:bc_map), .KColor$; } 
    			else if( rid2name(.@killedrid) == strcharinfo(0) && .RandomKillWord){ announce strcharinfo(0)+" "+.KillWord$[rand(0, getarraysize(.KillWord$) - 1)]+" "+((Sex)?"his":"her")+" own head", ((.Broadcast)?bc_all:bc_map), .KColor$; } 
    			else if( rid2name(.@killedrid) == strcharinfo(0)) { announce strcharinfo(0)+" pwned "+((Sex)?"his":"her")+" own head", ((.Broadcast)?bc_all:bc_map), .KColor$; } 
    			else { announce strcharinfo(0)+" pwned "+rid2name(.@killedrid)+"'s head", ((.Broadcast)?bc_all:bc_map), .KColor$; } 
    
    			if(@ks < 10){ 
    				set @ks, @ks + 1; 
    			}   
    			if(@mk < 7){
    				set @mk, @mk + 1; 
    			} 
    			if(!NemesisKilled){ 
    				set NemesisKilled, .@killedrid; 
    			}    
    			if(NemesisKilled == .@killedrid){
    				set @nm, @nm + 1; 
    			}
    			else { 
    				set NemesisKilled, .@killedrid;   
    				set @nm,1;
    			}
    			deltimer "Versus::OnMKReset"; 
    			addtimer 18000, "Versus::OnMKReset"; 
    			callsub OnRecordStreak; 
    			callsub OnAnnounce; 
    			callsub OnDeath;
    			end;
    		}
    	}
    	else
    	{
    	end;
    	}
    
    
    OnPCDieEvent:
    	if(.System==1) {
    		.@killerrid = killerrid;
    		if ( strcharinfo(3) == "guild_vs2" ) {
    			dispbottom "You will respawn in 3 seconds";
    			sleep2 3000;
    			warp "guild_vs2", 0,0;
    			percentheal 100,100;
    			skilleffect AL_BLESSING,0;
    			sc_start SC_BLESSING,240000,10;
    			if(Hp>15) {
    				skilleffect AL_INCAGI,0;
    				sc_start SC_INC_AGI,240000,10;
    				heal -15,0;
    			}
    			atcommand "@speed 50";
    		}
    		for(set .@i, 0; .@i <getarraysize(.PvPMap$); set .@i, .@i + 1)
    		if((strcharinfo(3) == .PvPMap$[.@i]) | (.PvPMap$[0] =="All")) {
    			if ( .@killerrid > 3000000 ){
    				end; 
    			}
    			@killer_name$ = ( .@killerrid < 3000000 ? rid2name( .@killerrid ) : "" );  
    			if (.Dcnt) {
    				set Death, Death + 1;
    			}
    			//set @pb$,rid2name(.@killerrid);
    			
    			if(!NemesisKiller){
    				set NemesisKiller, .@killerrid; 
    			}    
    			if(NemesisKiller == .@killerrid){ 
    				set @nmk, @nmk + 1; 
    			}
    			else { 
    				set NemesisKiller, .@killerrid;   
    				set @nmk,1;
    			}
    			if(@ks > 2  && rid2name(killedrid) != strcharinfo(0)){
    				if(#Announcer == 0){ announce rid2name(.@killerrid)+" just ended "+strcharinfo(0)+"'s "+.ESDotA$[@ks - 3]+" "+((.Streak)?"("+@ks+")":"")+"", ((.Broadcast)?bc_all:bc_map), .ESColor$; if(.Gfx){ cutin "streakbreak.bmp",0; sleep2 1000; cutin "",255; } else { } }  
    				if(#Announcer == 1){ announce rid2name(.@killerrid)+" just ended "+strcharinfo(0)+"'s "+.ESHoN$[@ks - 3]+" "+((.Streak)?"("+@ks+")":"")+"", ((.Broadcast)?bc_all:bc_map), .ESColor$; if(.Gfx){ cutin "streakbreak.bmp",0; sleep2 1000; cutin "",255; } else { } }
    				if(#Announcer == 2){ announce rid2name(.@killerrid)+" just ended "+strcharinfo(0)+"'s "+.ESHoN$[@ks - 3]+" "+((.Streak)?"("+@ks+")":"")+"", ((.Broadcast)?bc_all:bc_map), .ESColor$; if(.Gfx){ cutin "streakbreak.bmp",0; sleep2 1000; cutin "",255; } else { } }
    				if(#Announcer == 3){ announce rid2name(.@killerrid)+" just ended "+strcharinfo(0)+"'s "+.ESFLAM$[@ks - 3]+" "+((.Streak)?"("+@ks+")":"")+"", ((.Broadcast)?bc_all:bc_map), .ESColor$; if(.Gfx){ cutin "streakbreak.bmp",0; sleep2 1000; cutin "",255; } else { } }
    				if(#Announcer == 4){ announce rid2name(.@killerrid)+" just ended "+strcharinfo(0)+"'s "+.ESENG$[@ks - 3]+" "+((.Streak)?"("+@ks+")":"")+"", ((.Broadcast)?bc_all:bc_map), .ESColor$; if(.Gfx){ cutin "streakbreak.bmp",0; sleep2 1000; cutin "",255; } else { } }
    				if(#Announcer == 5){ announce rid2name(.@killerrid)+" just ended "+strcharinfo(0)+"'s "+.ESBALL$[@ks - 3]+" "+((.Streak)?"("+@ks+")":"")+"", ((.Broadcast)?bc_all:bc_map), .ESColor$; if(.Gfx){ cutin "streakbreak.bmp",0; sleep2 1000; cutin "",255; } else { } }
    				if(#Announcer == 6){ announce rid2name(.@killerrid)+" just ended "+strcharinfo(0)+"'s "+.ESBRKY$[@ks - 3]+" "+((.Streak)?"("+@ks+")":"")+"", ((.Broadcast)?bc_all:bc_map), .ESColor$; if(.Gfx){ cutin "streakbreak.bmp",0; sleep2 1000; cutin "",255; } else { } }
    				if(#Announcer == 7){ announce rid2name(.@killerrid)+" just ended "+strcharinfo(0)+"'s "+.ESSDCT$[@ks - 3]+" "+((.Streak)?"("+@ks+")":"")+"", ((.Broadcast)?bc_all:bc_map), .ESColor$; if(.Gfx){ cutin "streakbreak.bmp",0; sleep2 1000; cutin "",255; } else { } }
    				if(#Announcer == 8){ announce rid2name(.@killerrid)+" just ended "+strcharinfo(0)+"'s "+.ESDUKE$[@ks - 3]+" "+((.Streak)?"("+@ks+")":"")+"", ((.Broadcast)?bc_all:bc_map), .ESColor$; if(.Gfx){ cutin "streakbreak.bmp",0; sleep2 1000; cutin "",255; } else { } }
    				if(#Announcer == 9){ announce rid2name(.@killerrid)+" just ended "+strcharinfo(0)+"'s "+.ESVRZO$[@ks - 3]+" "+((.Streak)?"("+@ks+")":"")+"", ((.Broadcast)?bc_all:bc_map), .ESColor$; if(.Gfx){ cutin "streakbreak.bmp",0; sleep2 1000; cutin "",255; } else { } }
    				if(#Announcer == 10){ announce rid2name(.@killerrid)+" just ended "+strcharinfo(0)+"'s "+.ESCCA$[@ks - 3]+" "+((.Streak)?"("+@ks+")":"")+"", ((.Broadcast)?bc_all:bc_map), .ESColor$; if(.Gfx){ cutin "streakbreak.bmp",0; sleep2 1000; cutin "",255; } else { } }
    				if(#Announcer == 11){ announce rid2name(.@killerrid)+" just ended "+strcharinfo(0)+"'s "+.ESPMP$[@ks - 3]+" "+((.Streak)?"("+@ks+")":"")+"", ((.Broadcast)?bc_all:bc_map), .ESColor$; if(.Gfx){ cutin "streakbreak.bmp",0; sleep2 1000; cutin "",255; } else { } }
    				if(#Announcer == 12){ announce rid2name(.@killerrid)+" just ended "+strcharinfo(0)+"'s "+.ESSAM$[@ks - 3]+" "+((.Streak)?"("+@ks+")":"")+"", ((.Broadcast)?bc_all:bc_map), .ESColor$; if(.Gfx){ cutin "streakbreak.bmp",0; sleep2 1000; cutin "",255; } else { } }
    				if(#Announcer == 13){ announce rid2name(.@killerrid)+" just ended "+strcharinfo(0)+"'s "+.ESSPT$[@ks - 3]+" "+((.Streak)?"("+@ks+")":"")+"", ((.Broadcast)?bc_all:bc_map), .ESColor$; if(.Gfx){ cutin "streakbreak.bmp",0; sleep2 1000; cutin "",255; } else { } }
    			}
    			if(@ks > 2  && rid2name(killedrid) == strcharinfo(0)){
    				if(#Announcer == 0){ announce strcharinfo(0)+" just ended "+((Sex)?"his":"her")+" "+.ESDotA$[@ks - 3]+" "+((.Streak)?"("+@ks+")":"")+"", ((.Broadcast)?bc_all:bc_map), .ESColor$; if(.Gfx){ cutin "streakbreak.bmp",0; sleep2 1000; cutin "",255; } else { } }
    				if(#Announcer == 1){ announce strcharinfo(0)+" just ended "+((Sex)?"his":"her")+" "+.ESHoN$[@ks - 3]+" "+((.Streak)?"("+@ks+")":"")+"", ((.Broadcast)?bc_all:bc_map), .ESColor$; if(.Gfx){ cutin "streakbreak.bmp",0; sleep2 1000; cutin "",255; } else { } }
    				if(#Announcer == 2){ announce strcharinfo(0)+" just ended "+((Sex)?"his":"her")+" "+.ESHoN$[@ks - 3]+" "+((.Streak)?"("+@ks+")":"")+"", ((.Broadcast)?bc_all:bc_map), .ESColor$; if(.Gfx){ cutin "streakbreak.bmp",0; sleep2 1000; cutin "",255; } else { } }
    				if(#Announcer == 3){ announce strcharinfo(0)+" just ended "+((Sex)?"his":"her")+" "+.ESFLAM$[@ks - 3]+" "+((.Streak)?"("+@ks+")":"")+"", ((.Broadcast)?bc_all:bc_map), .ESColor$; if(.Gfx){ cutin "streakbreak.bmp",0; sleep2 1000; cutin "",255; } else { } }
    				if(#Announcer == 4){ announce strcharinfo(0)+" just ended "+((Sex)?"his":"her")+" "+.ESENG$[@ks - 3]+" "+((.Streak)?"("+@ks+")":"")+"", ((.Broadcast)?bc_all:bc_map), .ESColor$; if(.Gfx){ cutin "streakbreak.bmp",0; sleep2 1000; cutin "",255; } else { } }
    				if(#Announcer == 5){ announce strcharinfo(0)+" just ended "+((Sex)?"his":"her")+" "+.ESBALL$[@ks - 3]+" "+((.Streak)?"("+@ks+")":"")+"", ((.Broadcast)?bc_all:bc_map), .ESColor$; if(.Gfx){ cutin "streakbreak.bmp",0; sleep2 1000; cutin "",255; } else { } }
    				if(#Announcer == 6){ announce strcharinfo(0)+" just ended "+((Sex)?"his":"her")+" "+.ESBRKY$[@ks - 3]+" "+((.Streak)?"("+@ks+")":"")+"", ((.Broadcast)?bc_all:bc_map), .ESColor$; if(.Gfx){ cutin "streakbreak.bmp",0; sleep2 1000; cutin "",255; } else { } }
    				if(#Announcer == 7){ announce strcharinfo(0)+" just ended "+((Sex)?"his":"her")+" "+.ESSDCT$[@ks - 3]+" "+((.Streak)?"("+@ks+")":"")+"", ((.Broadcast)?bc_all:bc_map), .ESColor$; if(.Gfx){ cutin "streakbreak.bmp",0; sleep2 1000; cutin "",255; } else { } }
    				if(#Announcer == 8){ announce strcharinfo(0)+" just ended "+((Sex)?"his":"her")+" "+.ESDUKE$[@ks - 3]+" "+((.Streak)?"("+@ks+")":"")+"", ((.Broadcast)?bc_all:bc_map), .ESColor$; if(.Gfx){ cutin "streakbreak.bmp",0; sleep2 1000; cutin "",255; } else { } }
    				if(#Announcer == 9){ announce strcharinfo(0)+" just ended "+((Sex)?"his":"her")+" "+.ESVRZO$[@ks - 3]+" "+((.Streak)?"("+@ks+")":"")+"", ((.Broadcast)?bc_all:bc_map), .ESColor$; if(.Gfx){ cutin "streakbreak.bmp",0; sleep2 1000; cutin "",255; } else { } }
    				if(#Announcer == 10){ announce strcharinfo(0)+" just ended "+((Sex)?"his":"her")+" "+.ESCCA$[@ks - 3]+" "+((.Streak)?"("+@ks+")":"")+"", ((.Broadcast)?bc_all:bc_map), .ESColor$; if(.Gfx){ cutin "streakbreak.bmp",0; sleep2 1000; cutin "",255; } else { } }
    				if(#Announcer == 11){ announce strcharinfo(0)+" just ended "+((Sex)?"his":"her")+" "+.ESPMP$[@ks - 3]+" "+((.Streak)?"("+@ks+")":"")+"", ((.Broadcast)?bc_all:bc_map), .ESColor$; if(.Gfx){ cutin "streakbreak.bmp",0; sleep2 1000; cutin "",255; } else { } }
    				if(#Announcer == 12){ announce strcharinfo(0)+" just ended "+((Sex)?"his":"her")+" "+.ESSAM$[@ks - 3]+" "+((.Streak)?"("+@ks+")":"")+"", ((.Broadcast)?bc_all:bc_map), .ESColor$; if(.Gfx){ cutin "streakbreak.bmp",0; sleep2 1000; cutin "",255; } else { } }
    				if(#Announcer == 13){ announce strcharinfo(0)+" just ended "+((Sex)?"his":"her")+" "+.ESSPT$[@ks - 3]+" "+((.Streak)?"("+@ks+")":"")+"", ((.Broadcast)?bc_all:bc_map), .ESColor$; if(.Gfx){ cutin "streakbreak.bmp",0; sleep2 1000; cutin "",255; } else { } }
    			}
    			if(@mk >1 && rid2name(killedrid) != strcharinfo(0)){  
    				if(#Announcer == 0){ announce rid2name(.@killerrid)+" just ended "+strcharinfo(0)+"'s "+.EMDotA$[@mk - 2]+" "+((.Multiple)?"("+@mk+")":"")+"", ((.Broadcast)?bc_all:bc_map), .ESColor$; if(.Gfx){ cutin "streakbreak.bmp",0; sleep2 1000; cutin "",255; } else { } }
    				if(#Announcer == 1){ announce rid2name(.@killerrid)+" just ended "+strcharinfo(0)+"'s "+.EMHoN$[@mk - 2]+" "+((.Multiple)?"("+@mk+")":"")+"", ((.Broadcast)?bc_all:bc_map), .ESColor$; if(.Gfx){ cutin "streakbreak.bmp",0; sleep2 1000; cutin "",255; } else { } }
    				if(#Announcer == 2){ announce rid2name(.@killerrid)+" just ended "+strcharinfo(0)+"'s "+.EMHoN$[@mk - 2]+" "+((.Multiple)?"("+@mk+")":"")+"", ((.Broadcast)?bc_all:bc_map), .ESColor$; if(.Gfx){ cutin "streakbreak.bmp",0; sleep2 1000; cutin "",255; } else { } }
    				if(#Announcer == 3){ announce rid2name(.@killerrid)+" just ended "+strcharinfo(0)+"'s "+.EMFLAM$[@mk - 2]+" "+((.Multiple)?"("+@mk+")":"")+"", ((.Broadcast)?bc_all:bc_map), .ESColor$; if(.Gfx){ cutin "streakbreak.bmp",0; sleep2 1000; cutin "",255; } else { } }
    				if(#Announcer == 4){ announce rid2name(.@killerrid)+" just ended "+strcharinfo(0)+"'s "+.EMENG$[@mk - 2]+" "+((.Multiple)?"("+@mk+")":"")+"", ((.Broadcast)?bc_all:bc_map), .ESColor$; if(.Gfx){ cutin "streakbreak.bmp",0; sleep2 1000; cutin "",255; } else { } }
    				if(#Announcer == 5){ announce rid2name(.@killerrid)+" just ended "+strcharinfo(0)+"'s "+.EMBALL$[@mk - 2]+" "+((.Multiple)?"("+@mk+")":"")+"", ((.Broadcast)?bc_all:bc_map), .ESColor$; if(.Gfx){ cutin "streakbreak.bmp",0; sleep2 1000; cutin "",255; } else { } }
    				if(#Announcer == 6){ announce rid2name(.@killerrid)+" just ended "+strcharinfo(0)+"'s "+.EMBRKY$[@mk - 2]+" "+((.Multiple)?"("+@mk+")":"")+"", ((.Broadcast)?bc_all:bc_map), .ESColor$; if(.Gfx){ cutin "streakbreak.bmp",0; sleep2 1000; cutin "",255; } else { } }
    				if(#Announcer == 7){ announce rid2name(.@killerrid)+" just ended "+strcharinfo(0)+"'s "+.EMSDCT$[@mk - 2]+" "+((.Multiple)?"("+@mk+")":"")+"", ((.Broadcast)?bc_all:bc_map), .ESColor$; if(.Gfx){ cutin "streakbreak.bmp",0; sleep2 1000; cutin "",255; } else { } }
    				if(#Announcer == 8){ announce rid2name(.@killerrid)+" just ended "+strcharinfo(0)+"'s "+.EMDUKE$[@mk - 2]+" "+((.Multiple)?"("+@mk+")":"")+"", ((.Broadcast)?bc_all:bc_map), .ESColor$; if(.Gfx){ cutin "streakbreak.bmp",0; sleep2 1000; cutin "",255; } else { } }
    				if(#Announcer == 9){ announce rid2name(.@killerrid)+" just ended "+strcharinfo(0)+"'s "+.EMVRZO$[@mk - 2]+" "+((.Multiple)?"("+@mk+")":"")+"", ((.Broadcast)?bc_all:bc_map), .ESColor$; if(.Gfx){ cutin "streakbreak.bmp",0; sleep2 1000; cutin "",255; } else { } }
    				if(#Announcer == 10){ announce rid2name(.@killerrid)+" just ended "+strcharinfo(0)+"'s "+.EMCCA$[@mk - 2]+" "+((.Multiple)?"("+@mk+")":"")+"", ((.Broadcast)?bc_all:bc_map), .ESColor$; if(.Gfx){ cutin "streakbreak.bmp",0; sleep2 1000; cutin "",255; } else { } }
    				if(#Announcer == 11){ announce rid2name(.@killerrid)+" just ended "+strcharinfo(0)+"'s "+.EMPMP$[@mk - 2]+" "+((.Multiple)?"("+@mk+")":"")+"", ((.Broadcast)?bc_all:bc_map), .ESColor$; if(.Gfx){ cutin "streakbreak.bmp",0; sleep2 1000; cutin "",255; } else { } }
    				if(#Announcer == 12){ announce rid2name(.@killerrid)+" just ended "+strcharinfo(0)+"'s "+.EMSAM$[@mk - 2]+" "+((.Multiple)?"("+@mk+")":"")+"", ((.Broadcast)?bc_all:bc_map), .ESColor$; if(.Gfx){ cutin "streakbreak.bmp",0; sleep2 1000; cutin "",255; } else { } }
    				if(#Announcer == 13){ announce rid2name(.@killerrid)+" just ended "+strcharinfo(0)+"'s "+.EMSPT$[@mk - 2]+" "+((.Multiple)?"("+@mk+")":"")+"", ((.Broadcast)?bc_all:bc_map), .ESColor$; if(.Gfx){ cutin "streakbreak.bmp",0; sleep2 1000; cutin "",255; } else { } }
    			}
    			if(@mk >1 && rid2name(killedrid) == strcharinfo(0)){  
    				if(#Announcer == 0){ announce strcharinfo(0)+" just ended "+((Sex)?"his":"her")+" "+.EMDotA$[@mk - 2]+" "+((.Multiple)?"("+@mk+")":"")+"", ((.Broadcast)?bc_all:bc_map), .ESColor$; if(.Gfx){ cutin "streakbreak.bmp",0; sleep2 1000; cutin "",255; } else { } }
    				if(#Announcer == 1){ announce strcharinfo(0)+" just ended "+((Sex)?"his":"her")+" "+.EMHoN$[@mk - 2]+" "+((.Multiple)?"("+@mk+")":"")+"", ((.Broadcast)?bc_all:bc_map), .ESColor$; if(.Gfx){ cutin "streakbreak.bmp",0; sleep2 1000; cutin "",255; } else { } }
    				if(#Announcer == 2){ announce strcharinfo(0)+" just ended "+((Sex)?"his":"her")+" "+.EMHoN$[@mk - 2]+" "+((.Multiple)?"("+@mk+")":"")+"", ((.Broadcast)?bc_all:bc_map), .ESColor$; if(.Gfx){ cutin "streakbreak.bmp",0; sleep2 1000; cutin "",255; } else { } }
    				if(#Announcer == 3){ announce strcharinfo(0)+" just ended "+((Sex)?"his":"her")+" "+.EMFLAM$[@mk - 2]+" "+((.Multiple)?"("+@mk+")":"")+"", ((.Broadcast)?bc_all:bc_map), .ESColor$; if(.Gfx){ cutin "streakbreak.bmp",0; sleep2 1000; cutin "",255; } else { } }
    				if(#Announcer == 4){ announce strcharinfo(0)+" just ended "+((Sex)?"his":"her")+" "+.EMENG$[@mk - 2]+" "+((.Multiple)?"("+@mk+")":"")+"", ((.Broadcast)?bc_all:bc_map), .ESColor$; if(.Gfx){ cutin "streakbreak.bmp",0; sleep2 1000; cutin "",255; } else { } }
    				if(#Announcer == 5){ announce strcharinfo(0)+" just ended "+((Sex)?"his":"her")+" "+.EMBALL$[@mk - 2]+" "+((.Multiple)?"("+@mk+")":"")+"", ((.Broadcast)?bc_all:bc_map), .ESColor$; if(.Gfx){ cutin "streakbreak.bmp",0; sleep2 1000; cutin "",255; } else { } }
    				if(#Announcer == 6){ announce strcharinfo(0)+" just ended "+((Sex)?"his":"her")+" "+.EMBRKY$[@mk - 2]+" "+((.Multiple)?"("+@mk+")":"")+"", ((.Broadcast)?bc_all:bc_map), .ESColor$; if(.Gfx){ cutin "streakbreak.bmp",0; sleep2 1000; cutin "",255; } else { } }
    				if(#Announcer == 7){ announce strcharinfo(0)+" just ended "+((Sex)?"his":"her")+" "+.EMSDCT$[@mk - 2]+" "+((.Multiple)?"("+@mk+")":"")+"", ((.Broadcast)?bc_all:bc_map), .ESColor$; if(.Gfx){ cutin "streakbreak.bmp",0; sleep2 1000; cutin "",255; } else { } }
    				if(#Announcer == 8){ announce strcharinfo(0)+" just ended "+((Sex)?"his":"her")+" "+.EMDUKE$[@mk - 2]+" "+((.Multiple)?"("+@mk+")":"")+"", ((.Broadcast)?bc_all:bc_map), .ESColor$; if(.Gfx){ cutin "streakbreak.bmp",0; sleep2 1000; cutin "",255; } else { } }
    				if(#Announcer == 9){ announce strcharinfo(0)+" just ended "+((Sex)?"his":"her")+" "+.EMVRZO$[@mk - 2]+" "+((.Multiple)?"("+@mk+")":"")+"", ((.Broadcast)?bc_all:bc_map), .ESColor$; if(.Gfx){ cutin "streakbreak.bmp",0; sleep2 1000; cutin "",255; } else { } }
    				if(#Announcer == 10){ announce strcharinfo(0)+" just ended "+((Sex)?"his":"her")+" "+.EMCCA$[@mk - 2]+" "+((.Multiple)?"("+@mk+")":"")+"", ((.Broadcast)?bc_all:bc_map), .ESColor$; if(.Gfx){ cutin "streakbreak.bmp",0; sleep2 1000; cutin "",255; } else { } }
    				if(#Announcer == 11){ announce strcharinfo(0)+" just ended "+((Sex)?"his":"her")+" "+.EMPMP$[@mk - 2]+" "+((.Multiple)?"("+@mk+")":"")+"", ((.Broadcast)?bc_all:bc_map), .ESColor$; if(.Gfx){ cutin "streakbreak.bmp",0; sleep2 1000; cutin "",255; } else { } }
    				if(#Announcer == 12){ announce strcharinfo(0)+" just ended "+((Sex)?"his":"her")+" "+.EMSAM$[@mk - 2]+" "+((.Multiple)?"("+@mk+")":"")+"", ((.Broadcast)?bc_all:bc_map), .ESColor$; if(.Gfx){ cutin "streakbreak.bmp",0; sleep2 1000; cutin "",255; } else { } }
    				if(#Announcer == 13){ announce strcharinfo(0)+" just ended "+((Sex)?"his":"her")+" "+.EMSPT$[@mk - 2]+" "+((.Multiple)?"("+@mk+")":"")+"", ((.Broadcast)?bc_all:bc_map), .ESColor$; if(.Gfx){ cutin "streakbreak.bmp",0; sleep2 1000; cutin "",255; } else { } }
    			}
    		}
    	}	
    	end;
    	
    OnPCLogoutEvent:
    	if(.System){
    		if(strcharinfo(3) == "guild_vs2") {
    			sc_end SC_ALL;
    		}	
    		if((.ServerType) && (Kill)){ query_sql("REPLACE INTO `pvp_rank` (`char_id`, `account_id`, `char`, `kill`, `death`, `kdr`, `killingstreak`, `multikill`,  `nemesiskill`, `feedcount`,`killingspree`, `dominating`, `megakill`, `unstoppable`, `wickedsick`, `monsterkill`, `godlike`, `beyondgodlike`, `doublekill`, `triplekill`, `ultrakill`, `rampage`, `ownage`) VALUES ("+getcharid(0)+","+getcharid(3)+", '"+rid2name(getcharid(3))+"', "+Kill+", "+Death+", '"+callfunc("KDR_Calc", Kill, Death)+"', "+KillingStreak+", "+MultiKill+",  "+NemesisKill+", "+FeedCount+", "+KillingSpree+", "+Dominating+", "+MegaKill+", "+Unstoppable+", "+WickedSick+", "+MonsterKill+", "+Godlike+", "+BeyondGodlike+", "+DoubleKill+", "+TripleKill+", "+UltraKill+", "+Rampage+", "+Ownage+")"); }
    		if(.PvPMap$[0] != "All"){
    			for(set .@i, 0; .@i < getarraysize(.PvPMap$); set .@i, .@i + 1){
    				if(strcharinfo(3) != .PvPMap$[.@i]){ end; }
    			}
    		}
    		callsub OnClearData; 
    		deltimer "Versus::OnMKReset";
    	} 
    	end;
    
    OnRecordStreak:
    	if(@ks > 2){
    		set KillingStreak, KillingStreak + 1;
    		switch(@ks){
    			case 0:	case 1:	case 2: break; 
    			case 3: set KillingSpree, KillingSpree + 1; break; 
    			case 4: set Dominating, Dominating + 1; break;
    			case 5: set MegaKill, MegaKill + 1; break; 
    			case 6: set Unstoppable, Unstoppable + 1; break; 
    			case 7: set WickedSick, WickedSick + 1; break;
    			case 8: set MonsterKill, MonsterKill + 1; break; 
    			case 9: set Godlike, Godlike + 1; break; 
    			case 10: set BeyondGodlike, BeyondGodlike + 1; break;
    			default: break;
    		}
    	}
    	if(@mk > 1){
    		set MultiKill, MultiKill + 1;
    		switch(@mk){
    			case 0:	case 1: break; 
    			case 2: set DoubleKill, DoubleKill + 1; break; 
    			case 3: set TripleKill, TripleKill + 1; break;
    			case 4: set UltraKill, UltraKill + 1; break;
    			case 5: set Rampage, Rampage + 1; break; 
    			case 6: set Ownage, Ownage + 1; break;
    			default: break;
    		}
    	}
    	if((@nm > 2) && (@nm < .Feed)){
    		set NemesisKill, NemesisKill + 1; 
    	}
    	if(@nm >= .Feed){
    		set FeedCount, FeedCount + 1; 
    		return;
    	}
    	
    	
    OnAnnounce:
    	if(@ks < 2 && @ks > 0  && rid2name(killedrid) != strcharinfo(0)){
    		if(#Announcer == 0){ announce strcharinfo(0)+" drew first blood!", ((.Broadcast)?bc_all:bc_map), .KSColor$; if(.Gfx){ cutin "ks1.bmp",0; } else { } }
    		if(#Announcer == 1){ announce strcharinfo(0)+" got bloodlust!", ((.Broadcast)?bc_all:bc_map), .KSColor$; if(.Gfx){ cutin "ks1.bmp",0; } else { } }
    		if(#Announcer == 2){ announce strcharinfo(0)+" got bloodlust!", ((.Broadcast)?bc_all:bc_map), .KSColor$; if(.Gfx){ cutin "ks1.bmp",0; } else { } }
    		if(#Announcer == 3){ announce strcharinfo(0)+" is a cherry popper!", ((.Broadcast)?bc_all:bc_map), .KSColor$; if(.Gfx){ cutin "ks1.bmp",0; } else { } }
    		if(#Announcer == 4){ announce strcharinfo(0)+" is dedicating "+((Sex)?"his":"her")+" first kill for the queen and "+((Sex)?"his":"her")+" country!", ((.Broadcast)?bc_all:bc_map), .KSColor$; if(.Gfx){ cutin "ks1.bmp",0; } else { } }
    		if(#Announcer == 5){ announce strcharinfo(0)+" just got "+((Sex)?"his":"her")+" first victim!", ((.Broadcast)?bc_all:bc_map), .KSColor$; if(.Gfx){ cutin "ks1.bmp",0; } else { } }
    		if(#Announcer == 6){ announce strcharinfo(0)+" is showing up!", ((.Broadcast)?bc_all:bc_map), .KSColor$; if(.Gfx){ cutin "ks1.bmp",0; } else { } }
    		if(#Announcer == 7){ announce strcharinfo(0)+" just had "+((Sex)?"his":"her")+" first $%!", ((.Broadcast)?bc_all:bc_map), .KSColor$; if(.Gfx){ cutin "ks1.bmp",0; } else { } }
    		if(#Announcer == 8){ announce strcharinfo(0)+" is starting to shed some blood!", ((.Broadcast)?bc_all:bc_map), .KSColor$; if(.Gfx){ cutin "ks1.bmp",0; } else { } }
    		if(#Announcer == 9){ announce strcharinfo(0)+" got bloodlust!", ((.Broadcast)?bc_all:bc_map), .KSColor$; if(.Gfx){ cutin "ks1.bmp",0; } else { } }
    		if(#Announcer == 10){ announce strcharinfo(0)+" is Sweet!", ((.Broadcast)?bc_all:bc_map), .KSColor$; if(.Gfx){ cutin "ks1.bmp",0; } else { } }
    		if(#Announcer == 11){ announce strcharinfo(0)+" is a first timer!", ((.Broadcast)?bc_all:bc_map), .KSColor$; if(.Gfx){ cutin "ks1.bmp",0; } else { } }
    		if(#Announcer == 12){ announce strcharinfo(0)+" got bloodlust!", ((.Broadcast)?bc_all:bc_map), .KSColor$; if(.Gfx){ cutin "ks1.bmp",0; } else { } }
    		if(#Announcer == 13){ announce strcharinfo(0)+" got bloodlust!", ((.Broadcast)?bc_all:bc_map), .KSColor$; if(.Gfx){ cutin "ks1.bmp",0; } else { } }
    		sleep2 1000;
    		soundeffectall ""+#Announcer+"_KS"+1+".wav", 0, strcharinfo(3);
    		cutin "",255;
    	}
    	if(@ks == 2 && .Gfx){ cutin "ks2.bmp",0; sleep2 1000; cutin "",255; } else { } 
    	if(@ks > 2){
    		if(#Announcer == 0){ announce strcharinfo(0)+" "+.KSDotA$[@ks - 3]+" "+((.Streak)?"("+@ks+")":"")+"", ((.Broadcast)?bc_all:bc_map), .KSColor$; if(.Gfx){ cutin "ks"+@ks+".bmp",0; } else { } }
    		if(#Announcer ==1){ announce strcharinfo(0)+" "+.KSHoN$[@ks - 3]+" "+((.Streak)?"("+@ks+")":"")+"", ((.Broadcast)?bc_all:bc_map), .KSColor$; if(.Gfx){ cutin "ks"+@ks+".bmp",0; } else { } } 
    		if(#Announcer ==2){ announce strcharinfo(0)+" "+.KSHoN$[@ks - 3]+" "+((.Streak)?"("+@ks+")":"")+"", ((.Broadcast)?bc_all:bc_map), .KSColor$; if(.Gfx){ cutin "ks"+@ks+".bmp",0; } else { } } 
    		if(#Announcer ==3){ announce strcharinfo(0)+" "+.KSFLAM$[@ks - 3]+" "+((.Streak)?"("+@ks+")":"")+"", ((.Broadcast)?bc_all:bc_map), .KSColor$; if(.Gfx){ cutin "ks"+@ks+".bmp",0; } else { } } 
    		if(#Announcer ==4){ announce strcharinfo(0)+" "+.KSENG$[@ks - 3]+" "+((.Streak)?"("+@ks+")":"")+"", ((.Broadcast)?bc_all:bc_map), .KSColor$; if(.Gfx){ cutin "ks"+@ks+".bmp",0; } else { } } 
    		if(#Announcer ==5){ announce strcharinfo(0)+" "+.KSBALL$[@ks - 3]+" "+((.Streak)?"("+@ks+")":"")+"", ((.Broadcast)?bc_all:bc_map), .KSColor$; if(.Gfx){ cutin "ks"+@ks+".bmp",0; } else { } } 
    		if(#Announcer ==6){ announce strcharinfo(0)+" "+.KSBRKY$[@ks - 3]+" "+((.Streak)?"("+@ks+")":"")+"", ((.Broadcast)?bc_all:bc_map), .KSColor$; if(.Gfx){ cutin "ks"+@ks+".bmp",0; } else { } } 
    		if(#Announcer ==7){ announce strcharinfo(0)+" "+.KSSDCT$[@ks - 3]+" "+((.Streak)?"("+@ks+")":"")+"", ((.Broadcast)?bc_all:bc_map), .KSColor$; if(.Gfx){ cutin "ks"+@ks+".bmp",0; } else { } } 
    		if(#Announcer ==8){ announce strcharinfo(0)+" "+.KSDUKE$[@ks - 3]+" "+((.Streak)?"("+@ks+")":"")+"", ((.Broadcast)?bc_all:bc_map), .KSColor$; if(.Gfx){ cutin "ks"+@ks+".bmp",0; } else { } }
    		if(#Announcer ==9){ announce strcharinfo(0)+" "+.KSVRZO$[@ks - 3]+" "+((.Streak)?"("+@ks+")":"")+"", ((.Broadcast)?bc_all:bc_map), .KSColor$; if(.Gfx){ cutin "ks"+@ks+".bmp",0; } else { } }  
    		if(#Announcer ==10){ announce strcharinfo(0)+" "+.KSCCA$[@ks - 3]+" "+((.Streak)?"("+@ks+")":"")+"", ((.Broadcast)?bc_all:bc_map), .KSColor$; if(.Gfx){ cutin "ks"+@ks+".bmp",0; } else { } }
    		if(#Announcer ==11){ announce strcharinfo(0)+" "+.KSPMP$[@ks - 3]+" "+((.Streak)?"("+@ks+")":"")+"", ((.Broadcast)?bc_all:bc_map), .KSColor$; if(.Gfx){ cutin "ks"+@ks+".bmp",0; } else { } }  	
    		if(#Announcer ==12){ announce strcharinfo(0)+" "+.KSSAM$[@ks - 3]+" "+((.Streak)?"("+@ks+")":"")+"", ((.Broadcast)?bc_all:bc_map), .KSColor$; if(.Gfx){ cutin "ks"+@ks+".bmp",0; } else { } }  	
    		if(#Announcer ==13){ announce strcharinfo(0)+" "+.KSSPT$[@ks - 3]+" "+((.Streak)?"("+@ks+")":"")+"", ((.Broadcast)?bc_all:bc_map), .KSColor$; if(.Gfx){ cutin "ks"+@ks+".bmp",0; } else { } }  	
    		sleep2 1500;
    		soundeffectall ""+#Announcer+"_KS"+@ks+".wav", 0, strcharinfo(3);
    		cutin "",255;
    	}
    	if(@mk > 1){
    		if(#Announcer == 0){ announce strcharinfo(0)+" "+.MKDotA$[@mk - 2]+" "+((.Multiple)?"("+@mk+")":"")+"", ((.Broadcast)?bc_all:bc_map), .MKColor$; if(.Gfx){ cutin "mk"+@mk+".bmp",0; } else { } }
    		if(#Announcer ==1){ announce strcharinfo(0)+" "+.MKHoN$[@mk - 2]+" "+((.Multiple)?"("+@mk+")":"")+"", ((.Broadcast)?bc_all:bc_map), .MKColor$; if(.Gfx){ cutin "mk"+@mk+".bmp",0; } else { } }
    		if(#Announcer ==2){ announce strcharinfo(0)+" "+.MKHoN$[@mk - 2]+" "+((.Multiple)?"("+@mk+")":"")+"", ((.Broadcast)?bc_all:bc_map), .MKColor$; if(.Gfx){ cutin "mk"+@mk+".bmp",0; } else { } }
    		if(#Announcer ==3){ announce strcharinfo(0)+" "+.MKFLAM$[@mk - 2]+" "+((.Multiple)?"("+@mk+")":"")+"", ((.Broadcast)?bc_all:bc_map), .MKColor$; if(.Gfx){ cutin "mk"+@mk+".bmp",0; } else { } }
    		if(#Announcer ==4){ announce strcharinfo(0)+" "+.MKENG$[@mk - 2]+" "+((.Multiple)?"("+@mk+")":"")+"", ((.Broadcast)?bc_all:bc_map), .MKColor$; if(.Gfx){ cutin "mk"+@mk+".bmp",0; } else { } }
    		if(#Announcer ==5){ announce strcharinfo(0)+" "+.MKBALL$[@mk - 2]+" "+((.Multiple)?"("+@mk+")":"")+"", ((.Broadcast)?bc_all:bc_map), .MKColor$; if(.Gfx){ cutin "mk"+@mk+".bmp",0; } else { } }
    		if(#Announcer ==6){ announce strcharinfo(0)+" "+.MKBRKY$[@mk - 2]+" "+((.Multiple)?"("+@mk+")":"")+"", ((.Broadcast)?bc_all:bc_map), .MKColor$; if(.Gfx){ cutin "mk"+@mk+".bmp",0; } else { } }
    		if(#Announcer ==7){ announce strcharinfo(0)+" "+.MKSDCT$[@mk - 2]+" "+((.Multiple)?"("+@mk+")":"")+"", ((.Broadcast)?bc_all:bc_map), .MKColor$; if(.Gfx){ cutin "mk"+@mk+".bmp",0; } else { } }
    		if(#Announcer ==8){ announce strcharinfo(0)+" "+.MKDUKE$[@mk - 2]+" "+((.Multiple)?"("+@mk+")":"")+"", ((.Broadcast)?bc_all:bc_map), .MKColor$; if(.Gfx){ cutin "mk"+@mk+".bmp",0; } else { } }
    		if(#Announcer ==9){ announce strcharinfo(0)+" "+.MKVRZO$[@mk - 2]+" "+((.Multiple)?"("+@mk+")":"")+"", ((.Broadcast)?bc_all:bc_map), .MKColor$; if(.Gfx){ cutin "mk"+@mk+".bmp",0; } else { } }
    		if(#Announcer ==10){ announce strcharinfo(0)+" "+.MKCCA$[@mk - 2]+" "+((.Multiple)?"("+@mk+")":"")+"", ((.Broadcast)?bc_all:bc_map), .MKColor$; if(.Gfx){ cutin "mk"+@mk+".bmp",0; } else { } }
    		if(#Announcer ==11){ announce strcharinfo(0)+" "+.MKPMP$[@mk - 2]+" "+((.Multiple)?"("+@mk+")":"")+"", ((.Broadcast)?bc_all:bc_map), .MKColor$; if(.Gfx){ cutin "mk"+@mk+".bmp",0; } else { } }	
    		if(#Announcer ==12){ announce strcharinfo(0)+" "+.MKSAM$[@mk - 2]+" "+((.Multiple)?"("+@mk+")":"")+"", ((.Broadcast)?bc_all:bc_map), .MKColor$; if(.Gfx){ cutin "mk"+@mk+".bmp",0; } else { } }	
    		if(#Announcer ==13){ announce strcharinfo(0)+" "+.MKSPT$[@mk - 2]+" "+((.Multiple)?"("+@mk+")":"")+"", ((.Broadcast)?bc_all:bc_map), .MKColor$; if(.Gfx){ cutin "mk"+@mk+".bmp",0; } else { } }	
    		sleep2 2000;
    		soundeffectall ""+#Announcer+"_MK"+@mk+".wav", 0, strcharinfo(3);
    		cutin "",255;
    	}
    	if((@nm > 2) && (@nm < .Feed)){
    		announce strcharinfo(0)+" is owning "+rid2name(NemesisKilled)+" "+((.Nemesis)?"("+@nm+")":"")+"", ((.Broadcast)?bc_all:bc_map), .NMColor$;
    		sleep2 2000;
    		if(#Announcer > 0){ soundeffectall #Announcer+"_Nemesis.wav", 0, strcharinfo(3); } else { soundeffectall "1_Nemesis.wav", 0;}
    	}
    	if(@nm >= .Feed){
    		announce rid2name(NemesisKilled)+" is Feeding "+strcharinfo(0)+" "+((.Feeder)?"("+@nm+")":"")+"", ((.Broadcast)?bc_all:bc_map), .FDColor$;
    		sleep2 1500;
    		soundeffectall "Feeder.wav", 0, strcharinfo(3);
    	} 
    	return;
    
    OnDeath:	
    	if(killedrid==NemesisKiller && @nmk > 2 ){
    		announce strcharinfo(0)+" just have a payback againts "+rid2name(killedrid)+" "+((.Nemesis)?"("+@nmk+")":"")+"", ((.Broadcast)?bc_all:bc_map), .PBColor$; if(.Gfx){ cutin "payback.bmp",4; } else { }
    		sleep2 2500;
    		soundeffectall ""+#Announcer+"_Payback.wav", 0,strcharinfo(3);  
    		cutin "",255;
    	}
    	attachrid(killedrid); 
    	callsub OnClearData;
    	return;
    
    OnMKReset: 
    	set @mk, 0; 
    	end;
    
    OnClearData: 
    	sleep2 3000; 
    	set NemesisKilled, 0;
    	set @ks, 0; 
    	set @mk, 0; 
    	set @nm, 0; 
    	return;
    
    OnRollback:
    	if(.Zeny){ set Zeny, Zeny - (.Zeny * .Rollback); }
    	if(.Cash){ dispbottom "[Point System] -"+(.Cash * .Rollback)+" Kill Point"; set #CASHPOINT, #CASHPOINT - (.Cash * .Rollback); }
    	if(.Skull){ delitem 7420,min( countitem( 7420 ), .Rollback ); }
    	for(set .@i, 0; .@i < getarraysize(.ItemID); set .@i, .@i + 1){ if(.ItemID){ delitem .ItemID[.@i], min( countitem( .ItemID[.@i] ),(.Amount[.@i] * .Rollback) ); }}
    	if((Kill - .Rollback) > 0){ set Kill, Kill - .Rollback; } else { set Kill, 0; }
    	if((KillingSpree - 1) > 0){ set KillingSpree, KillingSpree - 1; } else { set KillingSpree, 0; }
    	if((Dominating - 1) > 0){ set Dominating, Dominating - 1; } else { set Dominating, 0; }
    	if((MegaKill - 1) > 0){ set MegaKill, MegaKill - 1; } else { set MegaKill, 0; }
    	if((Unstoppable - 1) > 0){ set Unstoppable, Unstoppable - 1; } else { set Unstoppable, 0; }
    	if((WickedSick - 1) > 0){ set WickedSick, WickedSick - 1; } else { set WickedSick, 0; }
    	if((MonsterKill - 1) > 0){ set MonsterKill, MonsterKill - 1; } else { set MonsterKill, 0; }
    	if((Godlike - 1) > 0){ set Godlike, Godlike - 1; } else { set Godlike, 0; }
    	if((BeyondGodlike - 1) > 0){ set BeyondGodlike, BeyondGodlike - 1; } else { set BeyondGodlike, 0; }
    	if((DoubleKill - 1) > 0){ set DoubleKill, DoubleKill - 1; } else { set DoubleKill, 0; }
    	if((TripleKill - 1) > 0){ set TripleKill, TripleKill - 1; } else { set TripleKill, 0; }
    	if((UltraKill - 1) > 0){ set UltraKill, UltraKill - 1; } else { set UltraKill, 0; }
    	if((Rampage - 1) > 0){ set Rampage, Rampage - 1; } else { set Rampage, 0; }
    	if((Ownage - 1) > 0){ set Ownage, Ownage - 1; } else { set Ownage, 0; }
    	if((NemesisKill - (.Rollback - 3)) > 0){ set NemesisKill, NemesisKill - (.Rollback - 3); } else { set NemesisKill, 0; }
    	announce "[Anti-Feed] Your kill count has been rollbacked "+.Rollback+" times.",bc_self,0xFF0000;
    	return;
    }
    
    
    florian,121,160,5	script	PVP Top Ranks	4_M_CRU_SOLD,{
    mes "[Top Ranking]"; mes "What can I do for you today?";
    switch(select("PVP Ranking:MvP Ranking:PvP Statistic:Announcer Setting")){
    case 1: //Player Ranking
    	next; 
    	if(getvariableofnpc(.ServerType, "Versus")){
    		mes "[Top "+getvariableofnpc(.Top, "Versus")+" PvP Players]";
    		mes "^0000FFKill^000000 | ^FF0000Death^000000 | ^FF22FFKDR^000000 | ^00FF00SK^000000 | ^666666MK^000000";
    		query_sql "SELECT `char`, `kill`, `death`, `kdr`, `killingstreak`, `multikill` FROM `pvp_rank` ORDER BY `pvp_rank`.`kill` DESC LIMIT "+getvariableofnpc(.Top, "Versus")+"", .@char$, .@kill, .@[member=Death], .@kdr$, .@sk, .@mk;
    		for(set .@i, 0; .@i < getarraysize(.@char$); set .@i, .@i + 1){
    			mes .@i+1+". "+.@char$[.@i]+" ^0000FF"+.@kill[.@i]+"^000000 ^FF0000"+.@[member=Death][.@i]+"^000000 ^FF22FF"+.@kdr$[.@i]+"^000000 ^00FF00"+.@sk[.@i]+"^000000 ^666666"+.@mk[.@i]+"^000000 ";
    		}
    		close;
    	} else { 
    		mes "Top "+getvariableofnpc(.Top, "Versus")+" ranking is not yet implemented for this server type."; 
    	}
    case 2: //MvP Ranking
    	next; 
    	if(getvariableofnpc(.ServerType, "Versus")){
    		mes "[Top "+getvariableofnpc(.Top, "Versus")+" MvP Ranking]";
    		mes "^0000FFPlayer^000000 | ^FF0000Kills^000000";
    		query_sql "SELECT `name`, `kills` FROM `mvp` ORDER BY `mvp`.`kills` DESC LIMIT "+getvariableofnpc(.Top, "Versus")+"", .@name$, .@kills;
    		for(set .@i, 0; .@i < getarraysize(.@name$); set .@i, .@i + 1){
    			mes .@i+1+". "+.@name$[.@i]+" ^0000FF"+.@kills[.@i]+"^000000";
    		}
    		close;
    	} else { 
    		mes "Top "+getvariableofnpc(.Top, "Versus")+" ranking is not yet implemented for this server type."; 
    	}	
    case 3: //PvP Statistic
    	next;
    	
    	mes strcharinfo(0)+"'s PvP Statistic"; mes "^666666Kill:^000000 "+Kill+" ^666666Death:^000000 "+Death+" ^666666KDR:^000000 "+callfunc("KDR_Calc", Kill, Death)+"^000000";
    	mes "^666666Killing Streak:^000000 "+KillingStreak+" ^666666Multi-Kills:^000000 "+MultiKill+"";
    	switch(select("Killing Streak:Multi-Kill Streak:Nemesis Streak:"+(getvariableofnpc(.Reset, "Versus")?"Reset":"")+"")){
    	case 1: //Killing Streak
    		next;
    		setarray .LSDotA$[0], ""+KillingSpree+"", ""+Dominating+"", ""+MegaKill+"", ""+Unstoppable+"", ""+WickedSick+"", ""+MonsterKill+"", ""+Godlike+"", ""+BeyondGodlike+"";
    		mes "Killing Streak Stats";
    		switch(#Announcer){
    		case 0:
    			for(set .@i, 0; .@i < getarraysize(.LSDotA$); set .@i, .@i + 1){
    				mes "^666666"+getvariableofnpc(.ESDotA$[.@i], "Versus")+"^000000: "+ .LSDotA$[.@i];
    			 }
    			close;
    		default:
    			for(set .@i, 0; .@i < getarraysize(.LSDotA$); set .@i, .@i + 1){
    				mes "^666666"+getvariableofnpc(.ESHoN$[.@i], "Versus")+"^000000: "+ .LSDotA$[.@i];
    			 }
    			close;
    		}
    		close;
    	case 2: //Multi-Kill
    		next;
    		setarray .LMDotA$[0], ""+DoubleKill+"", ""+TripleKill+"", ""+UltraKill+"", ""+Rampage+"", ""+Ownage+"";
    		mes "Multi-Kill Stats";
    		switch(#Announcer){
    		case 0:
    			for(set .@i, 0; .@i < getarraysize(.LMDotA$); set .@i, .@i + 1){
    				mes "^666666"+getvariableofnpc(.EMDotA$[.@i], "Versus")+"^000000: "+ .LMDotA$[.@i];
    			 }
    			close;
    		default:
    			for(set .@i, 0; .@i < getarraysize(.LMDotA$); set .@i, .@i + 1){
    				mes "^666666"+getvariableofnpc(.EMHoN$[.@i], "Versus")+"^000000: "+ .LMDotA$[.@i];
    			 }
    			close;
    		}
    	case 3:	//Nemesis
    		next;
    		mes "Nemesis Stat";
    		mes "^666666Nemesis Kill^000000: "+NemesisKill;
    		mes "^666666Feed Count^000000: "+FeedCount;
    		close;
    	case 4: //Reset Stat
    		next;
    		set .Reset, getvariableofnpc(.Reset, "Versus");
    		set .ZenyFee, getvariableofnpc(.ZenyFee, "Versus");
    		set .CashFee, getvariableofnpc(.CashFee, "Versus");
    		set .SkullFee, getvariableofnpc(.SkullFee, "Versus");
    		mes "[PVP Top10]"; mes "Are you sure you want to reset your PvP Statistics?";
    		if(.Reset == 1){ mes "^FF0000Reset Fee:^000000 "+.ZenyFee+" Zeny"; }
    		if(.Reset == 2){ mes "^FF0000Reset Fee:^000000 "+.CashFee+" Kill Point"; }
    		if(.Reset == 3){ mes "^FF0000Reset Fee:^000000 "+.SkullFee+" Skull"; }
    		switch(select("No:Yes")){
    			case 1: close;
    			case 2:
    			switch(.Reset){
    				case 0: break;
    				case 1:
    					if(Zeny < .ZenyFee){ next; mes "[PVP Top10]"; mes "You don't have enough Zeny."; close; }
    					set Zeny, Zeny - .ZenyFee; break;
    				case 2:
    					if(#CASHPOINTS < .CashFee){ next; mes "[PVP Top10]"; mes "You don't have enough Kill Point."; close; }
    					set #CASHPOINTS, #CASHPOINTS - .CashFee; break;
    				case 3:
    					if(countitem(7420) < .SkullFee){ next; mes "[PVP Top10]"; mes "You don't have enough Skull."; close; }
    					delitem 7420, .SkullFee; break;
    				default: break;
    			}
    		if(getvariableofnpc(.ServerType, "Versus")){ query_sql "DELETE FROM `pvp_rank` WHERE `pvp_rank`.`char_id` = "+getcharid(0)+""; }
    		callsub OnPvPReset; announce "[PVP Top10] Your PvP Statistic has been reset.",bc_self,0xFF0000; close;
    		}
    		close;
    	}
    	close;
    case 4: //Announcer Setting
    	next; mes "[PVP Top10]"; mes "What kind of announcer you want to use?";
    	if(getvariableofnpc(.AnnouncerFee, "Versus")){ set .AnnouncerFee, getvariableofnpc(.AnnouncerFee, "Versus"); }
    	L_Announce:
    //	switch(select(""+((#Announcer == 0)?"^FF0000DotA^000000":"DotA")+":"+((#Announcer == 1)?"^FF0000HoN^000000":"HoN")+":"+((#Announcer == 2)?"^FF0000Ms. Pudding^000000":"Ms. Pudding")+":"+((#Announcer == 3)?"^FF0000Flamboyant^000000":"Flamboyant")+":"+((#Announcer == 4)?"^FF0000English^000000":"English")+":"+((#Announcer == 5)?"^FF0000Balls of Steel^000000":"Balls of Steel")+":"+((#Announcer == 6)?"^FF0000BreakyCPK^000000":"BreakyCPK")+":"+((#Announcer == 7)?"^FF0000Seductive Announcer^000000":"Seductive Announcer")+":"+((#Announcer == 8)?"^FF0000Duke Nukem^000000":"Duke Nukem")+":"+((#Announcer == 9)?"^FF0000VRZO^000000":"VRZO")+":"+((#Announcer == 10)?"^FF0000Candy Crush^000000":"Candy Crush")+":"+((#Announcer == 11)?"^FF0000Pimp^000000":"Pimp")+":"+((#Announcer == 12)?"^FF0000Samuel Jackson^000000":"Samuel Jackson")+":"+((#Announcer == 13)?"^FF0000Scurvy Pirate^000000":"Scurvy Pirate")+"")){
    	switch(select(""+((#Announcer == 0)?"^FF0000DotA^000000":"DotA")+":"+((#Announcer == 1)?"^FF0000HoN^000000":"HoN")+":"+((#Announcer == 2)?"^FF0000Ms. Pudding^000000":"Ms. Pudding")+":"+((#Announcer == 3)?"^FF0000Flamboyant^000000":"Flamboyant")+":"+((#Announcer == 4)?"^FF0000English^000000":"English")+":"+((#Announcer == 5)?"^FF0000Balls of Steel^000000":"Balls of Steel")+":"+((#Announcer == 6)?"^FF0000BreakyCPK^000000":"BreakyCPK")+":"+((#Announcer == 7)?"^FF0000Seductive Announcer^000000":"Seductive Announcer")+"")){
    
    		case 1: //DotA
    			if(#Announcer == 0){ goto L_Announce; }
    			soundeffect "0_KS1.wav", 0;
    			set #Announcer, 0;
    			announce "[PVP Top10] DotA announcer has been configured to your account.",bc_self,0xFF0000;
    			close;
    		case 2: //HoN
    			if(#Announcer == 1){ goto L_Announce; }
    			if((.AnnouncerFee) && (!#Hon)){
    			next; mes "[PVP Top10]"; mes "Do you want to purchase HoN announcer for "+callfunc("F_InsertComma",.AnnouncerFee)+" Zeny?";
    			switch(select("No:Yes")){
    				case 1: close;
    				case 2: 
    				if(Zeny < .AnnouncerFee){ next; mes "[PVP Top10]"; mes "You don't have enough Zeny."; close; }
    				set Zeny, Zeny - .AnnouncerFee;
    				set #Hon, 1;
    			 }
    			}
    			soundeffect "1_KS1.wav", 0;
    			set #Announcer, 1;
    			announce "[PVP Top10] HoN announcer has been configured to your account.",bc_self,0xFF0000;
    			close;
    		case 3: //Ms. Pudding
    			if(#Announcer == 2){ goto L_Announce; }
    			if((.AnnouncerFee) && (!#MsPudding)){
    			next; mes "[PVP Top10]"; mes "Do you want to purchase Ms. Pudding announcer for "+callfunc("F_InsertComma",.AnnouncerFee)+" Zeny?";
    			switch(select("No:Yes")){
    				case 1: close;
    				case 2: 
    				if(Zeny < .AnnouncerFee){ next; mes "[PVP Top10]"; mes "You don't have enough Zeny."; close; }
    				set Zeny, Zeny - .AnnouncerFee;
    				set #MsPudding, 1;
    			 }
    			}
    			soundeffect "2_KS1.wav", 0;
    			set #Announcer, 2;
    			announce "[PVP Top10] Ms. Pudding announcer has been configured to your account.",bc_self,0xFF0000;
    			close;		
    		case 4: //Flamboyant
    			if(#Announcer == 3){ goto L_Announce; }
    			if((.AnnouncerFee) && (!#Flamboyant)){
    			next; mes "[PVP Top10]"; mes "Do you want to purchase Flamboyant announcer for "+callfunc("F_InsertComma",.AnnouncerFee)+" Zeny?";
    			switch(select("No:Yes")){
    				case 1: close;
    				case 2: 
    				if(Zeny < .AnnouncerFee){ next; mes "[PVP Top10]"; mes "You don't have enough Zeny."; close; }
    				set Zeny, Zeny - .AnnouncerFee;
    				set #Flamboyant, 1;
    			 }
    			}
    			soundeffect "3_KS1.wav", 0;
    			set #Announcer, 3;
    			announce "[PVP Top10] Flamboyant announcer has been configured to your account.",bc_self,0xFF0000;
    			close;			
    		case 5: //English
    			if(#Announcer == 4){ goto L_Announce; }
    			if((.AnnouncerFee) && (!#English)){
    			next; mes "[PVP Top10]"; mes "Do you want to purchase English announcer for "+callfunc("F_InsertComma",.AnnouncerFee)+" Zeny?";
    			switch(select("No:Yes")){
    				case 1: close;
    				case 2: 
    				if(Zeny < .AnnouncerFee){ next; mes "[PVP Top10]"; mes "You don't have enough Zeny."; close; }
    				set Zeny, Zeny - .AnnouncerFee;
    				set #English, 1;
    			 }
    			}
    			soundeffect "4_KS1.wav", 0;
    			set #Announcer, 4;
    			announce "[PVP Top10] English announcer has been configured to your account.",bc_self,0xFF0000;
    			close;
    		case 6: //Balls of Steel
    			if(#Announcer == 5){ goto L_Announce; }
    			if((.AnnouncerFee) && (!#BallsofSteel)){
    			next; mes "[PVP Top10]"; mes "Do you want to purchase Balls of Steel announcer for "+callfunc("F_InsertComma",.AnnouncerFee)+" Zeny?";
    			switch(select("No:Yes")){
    				case 1: close;
    				case 2: 
    				if(Zeny < .AnnouncerFee){ next; mes "[PVP Top10]"; mes "You don't have enough Zeny."; close; }
    				set Zeny, Zeny - .AnnouncerFee;
    				set #BallsofSteel, 1;
    			 }
    			}
    			soundeffect "5_KS1.wav", 0;
    			set #Announcer, 5;
    			announce "[PVP Top10] Balls of Steel announcer has been configured to your account.",bc_self,0xFF0000;
    			close;
    		case 7: //BreakyCPK
    			if(#Announcer == 6){ goto L_Announce; }
    			if((.AnnouncerFee) && (!#BreakyCPK)){
    			next; mes "[PVP Top10]"; mes "Do you want to purchase BreakyCPK announcer for "+callfunc("F_InsertComma",.AnnouncerFee)+" Zeny?";
    			switch(select("No:Yes")){
    				case 1: close;
    				case 2: 
    				if(Zeny < .AnnouncerFee){ next; mes "[PVP Top10]"; mes "You don't have enough Zeny."; close; }
    				set Zeny, Zeny - .AnnouncerFee;
    				set #BreakyCPK, 1;
    			 }
    			}
    			soundeffect "6_KS1.wav", 0;
    			set #Announcer, 6;
    			announce "[PVP Top10] BreakyCPK announcer has been configured to your account.",bc_self,0xFF0000;
    			close;
    		case 8: //Seductive
    			if(#Announcer == 7){ goto L_Announce; }
    			if((.AnnouncerFee) && (!#HoN2)){
    			next; mes "[PVP Top10]"; mes "Do you want to purchase Seductive Announcer for "+callfunc("F_InsertComma",.AnnouncerFee)+" Zeny?";
    			switch(select("No:Yes")){
    				case 1: close;
    				case 2: 
    				if(Zeny < .AnnouncerFee){ next; mes "[PVP Top10]"; mes "You don't have enough Zeny."; close; }
    				set Zeny, Zeny - .AnnouncerFee;
    				set #HoN2, 1;
    			 }
    			}
    			soundeffect "7_KS1.wav", 0;
    			set #Announcer, 7;
    			announce "[PVP Top10] Seductive announcer has been configured to your account.",bc_self,0xFF0000;
    			close;
    /*
    		case 9: //Duke Nukem
    			if(#Announcer == 8){ goto L_Announce; }
    			if((.AnnouncerFee) && (!#DKNK)){
    			next; mes "[PVP Top10]"; mes "Do you want to purchase Duke Nukem announcer for "+callfunc("F_InsertComma",.AnnouncerFee)+" Zeny?";
    			switch(select("No:Yes")){
    				case 1: close;
    				case 2: 
    				if(Zeny < .AnnouncerFee){ next; mes "[PVP Top10]"; mes "You don't have enough Zeny."; close; }
    				set Zeny, Zeny - .AnnouncerFee;
    				set #DKNK, 1;
    			 }
    			}
    			soundeffect "8_KS1.wav", 0;
    			set #Announcer, 8;
    			announce "[PVP Top10] Duke Nukem announcer has been configured to your account.",bc_self,0xFF0000;
    			close;
    		case 10: //VRZO
    			if(#Announcer == 9){ goto L_Announce; }
    			if((.AnnouncerFee) && (!#VRZO)){
    			next; mes "[PVP Top10]"; mes "Do you want to purchase VRZO announcer for "+callfunc("F_InsertComma",.AnnouncerFee)+" Zeny?";
    			switch(select("No:Yes")){
    				case 1: close;
    				case 2: 
    				if(Zeny < .AnnouncerFee){ next; mes "[PVP Top10]"; mes "You don't have enough Zeny."; close; }
    				set Zeny, Zeny - .AnnouncerFee;
    				set #VRZO, 1;
    			 }
    			}
    			soundeffect "9_KS1.wav", 0;
    			set #Announcer, 9;
    			announce "[PVP Top10] VRZO announcer has been configured to your account.",bc_self,0xFF0000;
    			close;
    		case 11: //Candy Crush
    			if(#Announcer == 10){ goto L_Announce; }
    			if((.AnnouncerFee) && (!#CCA)){
    			next; mes "[PVP Top10]"; mes "Do you want to purchase Candy Crush announcer for "+callfunc("F_InsertComma",.AnnouncerFee)+" Zeny?";
    			switch(select("No:Yes")){
    				case 1: close;
    				case 2: 
    				if(Zeny < .AnnouncerFee){ next; mes "[PVP Top10]"; mes "You don't have enough Zeny."; close; }
    				set Zeny, Zeny - .AnnouncerFee;
    				set #CCA, 1;
    			 }
    			}
    			soundeffect "10_KS1.wav", 0;
    			set #Announcer, 10;
    			announce "[PVP Top10] Candy Crush announcer has been configured to your account.",bc_self,0xFF0000;
    			close;
    		case 12: //PIMP
    			if(#Announcer == 11){ goto L_Announce; }
    			if((.AnnouncerFee) && (!#PIMP)){
    			next; mes "[PVP Top10]"; mes "Do you want to purchase Pimp announcer for "+callfunc("F_InsertComma",.AnnouncerFee)+" Zeny?";
    			switch(select("No:Yes")){
    				case 1: close;
    				case 2: 
    				if(Zeny < .AnnouncerFee){ next; mes "[PVP Top10]"; mes "You don't have enough Zeny."; close; }
    				set Zeny, Zeny - .AnnouncerFee;
    				set #PIMP, 1;
    			 }
    			}
    			soundeffect "11_KS1.wav", 0;
    			set #Announcer,11;
    			announce "[PVP Top10] Pimp announcer has been configured to your account.",bc_self,0xFF0000;
    			close;
    		case 13: //Samuel Jackson
    			if(#Announcer == 12){ goto L_Announce; }
    			if((.AnnouncerFee) && (!#SAM)){
    			next; mes "[PVP Top10]"; mes "Do you want to purchase Samuel Jackson announcer for "+callfunc("F_InsertComma",.AnnouncerFee)+" Zeny?";
    			switch(select("No:Yes")){
    				case 1: close;
    				case 2: 
    				if(Zeny < .AnnouncerFee){ next; mes "[PVP Top10]"; mes "You don't have enough Zeny."; close; }
    				set Zeny, Zeny - .AnnouncerFee;
    				set #SAM, 1;
    			 }
    			}
    			soundeffect "12_KS1.wav", 0;
    			set #Announcer, 12;
    			announce "[PVP Top10] Samuel Jackson announcer has been configured to your account.",bc_self,0xFF0000;
    			close;	
    		case 14: //Scurvy Pirate
    			if(#Announcer == 13){ goto L_Announce; }
    			if((.AnnouncerFee) && (!#SPRT)){
    			next; mes "[PVP Top10]"; mes "Do you want to purchase Scurvy Pirate announcer for "+callfunc("F_InsertComma",.AnnouncerFee)+" Zeny?";
    			switch(select("No:Yes")){
    				case 1: close;
    				case 2: 
    				if(Zeny < .AnnouncerFee){ next; mes "[PVP Top10]"; mes "You don't have enough Zeny."; close; }
    				set Zeny, Zeny - .AnnouncerFee;
    				set #SPRT, 1;
    			 }
    			}
    			soundeffect "13_KS1.wav", 0;
    			set #Announcer,13;
    			announce "[PVP Top10] Scurvy Pirate announcer has been configured to your account.",bc_self,0xFF0000;
    			close;	
    */		
    	default: close;
    	}
    end;
    OnInit:
    waitingroom "Top 10 PVP/MVP",0;
    end;
     }
    close;
     
    OnPvPReset:
    set Kill, 0;
    set Death, 0;
    set KillingStreak, 0; 
    set MultiKill, 0;
    set KillingSpree, 0;
    set Dominating, 0;
    set MegaKill, 0;
    set Unstoppable, 0;
    set WickedSick, 0;
    set MonsterKill, 0;
    set Godlike, 0;
    set BeyondGodlike, 0;
    set DoubleKill, 0;
    set TripleKill, 0;
    set UltraKill, 0;
    set Rampage, 0;
    set Ownage, 0;
    set NemesisKill, 0;
    set FeedCount, 0;
    return;
    }
    
    //Ghost's KDR Algorithm
    function	script	KDR_Calc	{
    if(!getarg(1)) { debugmes "Error in KDR function, getarg(1) invalid value"; return 0; } // [Lighta]
    if(getarg(0) >= getarg(1)){
    	if(getarg(1)){
    		set .@i, getarg(0)/getarg(1);
    		if((getarg(0)%getarg(1)) == 0){ return .@i+".00"; }
    		set .@j, (getarg(0)%getarg(1))*100/getarg(1);
    		return .@i+"."+.@j;
    	} else {
    		return getarg(0)+".00";
    	}
    }
    if(getarg(0) < getarg(1)){
    	if(getarg(0)){ 
    		set .@i, (getarg(0)*10)/getarg(1);
    		set .@j, ((getarg(0)*10)%getarg(1))*10/getarg(1);
    	return "0."+.@i +.@j;
    	} else {
    		return "0.00";
    	}
     }
    }
    
    
    
    
    

    Can Some help me fix this problem?

     

    21etfdl.png


  4.  

    Untested but should work. And there are plenty ways to optimize that script :|

    prontera,155,143,4	script	Guild Base	722,{
    set .npcname$,"[ ^0000FF Guild Base ^000000 ]";
    set .mapname$,"guild_vs1";
    OnMenu:
    mes .npcname$;
    mes "How may i help you sir ?";
    mes "^FF0000_____________________________^000000";
    mes "Guild Base Owner :";
    if ( $@RoomOwner$ == "0" ){
    mes "It is ^0000FFNOT Assigned^000000 yet.";
    }
    if ( $@RoomOwner$ != "0" ){
    mes "^0000FF"+$@RoomOwner"^000000 Guild";
    }
    mes "^FF0000_____________________________^000000";
    next;
    switch(select("^4EEE94Guild Base Information^000000",
    			( getguildname(getcharid(2)) != $@RoomOwner$ )?"":"^0000FFReturn To Base^000000",
    			( getgmlevel() < 80 || $@RoomOwner$ != "0" )?"":"^0000FFAssign Guild Base Owner^000000",	
    			( getgmlevel() < 80 || $@RoomOwner$ == "0" )?"":"^FF0000Remove Guild Base Owner^000000")) {
    			
    	case 1:
    		mes .npcname$;
    		mes "To get into this Guild Base, The guild leader of your guild must talk with GM Team who incharge of assigning the Guild Base. ";
    		next;
    		mes .npcname$;
    		mes "Inside the Guild Base have alot of facilities to help the Guild who owned the Guild Base.";
    		close;
    	
    	case 2:
    		warp .mapname$,50,48;
    		flagemblem getcharid(2);
    		end;
    	
    	case 3:
    		mes .npcname$;
    		mes "Please input the ^FF0000Name of the Guild^000000, So that the member of that guild can go into the Base.";
    		mes "^FF0000_____________________________^000000";
    		mes "The name is ^FF0000VERY SENSITIVE^000000, please write it ^0000FFCorrectly^000000...";
    		input $@RoomOwner$;
    		next;
    		mes .npcname$;
    		mes "The room has been assigned to ^FF0000"+$@RoomOwner"^000000 Guild.";
    		mes "The member for this guild will be warped here by now.";
    		atcommand "@guildrecall "+$@RoomOwner"";
    		message strcharinfo(0),"Emblem of Guild Base Holder will be displayed upon the members get into the Base.";
    		next;
    		goto OnMenu;
    	
    	case 4:
    		mes .npcname$;
    		mes "Guild base ownership has been removed.";
    		set $@RoomOwner$,"0";
    		mapannounce .mapname$,"The Guild Base Ownership has been WIPE Off/Changed.",bc_blue;
    		mapwarp .mapname$,"prontera",155,185;
    		next;
    		goto OnMenu;
    	}
    
    OnInit:
    set $@RoomOwner$,"0";
    end;
    }
    
    
    guild_vs1,50,50,5	script	Guild Base Manager	1907,{
    set .npcname$,"[ ^0000FF Guild Base Manager ^000000 ]";
    set .BuffDuration,3600000;
    mes .npcname$;
    mes "How can i help you here ?";
    next;
    switch(select( ( getguildname(getcharid(2)) != $@RoomOwner$ || getcharid(0) != getguildmasterid(getcharid(2)) )?"":"^4EEE94Guild Members Recalling^000000",
    			( getguildname(getcharid(2)) != $@RoomOwner$ )?"":"^0000FFHeal / Buffs^000000",
    			( getguildname(getcharid(2)) != $@RoomOwner$ )?"":"^0000FFEquipment Repairing^000000",
    			( getguildname(getcharid(2)) != $@RoomOwner$ )?"":"^0000FFPVP Room Warp^000000",
    			( getguildname(getcharid(2)) != $@RoomOwner$ )?"":"^0000FFWOE Castle Warp^000000",
    			( getguildname(getcharid(2)) != $@RoomOwner$ )?"":"^0000FFMall Room Warp^000000",		
    			( getguildname(getcharid(2)) != $@RoomOwner$ )?"":"^0000FFRefiner^000000",
    			"^FF0000Close^000000")) {
    			
    	case 1:	goto Guild_Recall;
    	case 2:	goto Healing;
    	case 3:	goto Repairing;
    	case 4:	goto PVP_Warp;
    	case 5:	goto WOE_Warp;
    	case 6:	goto Mall_Room;
    	case 7:	goto Refiner;
    	case 8:	close;
    		}
    		
    Guild_Recall:
    	mes .npcname$;
    	mes "Your guild members has been recalled. They shall arrive here within couple of time.";
    	atcommand "@guildrecall "+$@RoomOwner"";
    	close;
    
    Healing:
    	mes .npcname$;
    	mes "Thank you for using our services.";
    	close2;
    	percentheal 100,100;
    	sc_start SC_SPIRIT,.BuffDuration,5;
    	specialeffect2 503,SELF,strcharinfo(0);
    	skilleffect 34,0; sc_start SC_BLESSING,.BuffDuration,10;
    	skilleffect 29,0; sc_start SC_INC_AGI,.BuffDuration,10;
    	skilleffect 66,0; sc_start SC_IMPOSITIO,.BuffDuration,5;
    	skilleffect 67,0; sc_start SC_SUFFRAGIUM,.BuffDuration,3;
    	skilleffect 74,0; sc_start SC_MAGNIFICAT,.BuffDuration,5;
    	skilleffect 361,0; sc_start SC_ASSUMPTIO,.BuffDuration,5;
    	skilleffect 383,0; sc_start SC_WINDWALK,.BuffDuration,10; 
    	skilleffect 543,0; sc_start SC_NJ_NEN,.BuffDuration,5; 
    	skilleffect 357,0; sc_start SC_CONCENTRATION,.BuffDuration,10;
    	skilleffect 380,0; sc_start SC_TRUESIGHT,.BuffDuration,5;
    	skilleffect 114,0; sc_start SC_MAXIMIZEPOWER,.BuffDuration,100;
    	skilleffect 234,0;sc_start SC_PROTECTWEAPON,.BuffDuration,5;
    	skilleffect 235,0;sc_start SC_PROTECTSHIELD,.BuffDuration,5;
    	skilleffect 236,0;sc_start SC_PROTECTARMOR,.BuffDuration,5;
    	skilleffect 237,0;sc_start SC_PROTECTHELM,.BuffDuration,5;
    	skilleffect 355,0; sc_start SC_AURABLADE,.BuffDuration,5;
    	skilleffect 384,0; sc_start SC_MELTDOWN,.BuffDuration,10;
    	skilleffect 378,0; sc_start SC_EDP,.BuffDuration,5;
    	sc_start SC_ATTHASTE_POTION3,.BuffDuration,0;
    	sc_start SC_FOOD_STR,.BuffDuration,10;
    	sc_start SC_FOOD_AGI,.BuffDuration,10;
    	sc_start SC_FOOD_VIT,.BuffDuration,10;
    	sc_start SC_FOOD_INT,.BuffDuration,10;
    	sc_start SC_FOOD_DEX,.BuffDuration,10;
    	sc_start SC_FOOD_LUK,.BuffDuration,10;
    	sc_start SC_FOOD_BASICHIT,.BuffDuration,10;
    	sc_start SC_FOOD_BASICAVOIDANCE,.BuffDuration,10;
    	sc_start SC_BATKFOOD,.BuffDuration,10;
    	sc_start SC_MATKFOOD,.BuffDuration,10;
    	sc_start SC_ATTHASTE_POTION3,.BuffDuration,5;
    	sc_start SC_MOVHASTE_INFINITY,.BuffDuration,0;
    	sc_start SC_CASH_PLUSEXP,.BuffDuration,150;
    	sc_end SC_STONE;
    	sc_end SC_SLOWDOWN;
    	sc_end SC_FREEZE;
    	sc_end SC_SLEEP;
    	sc_end SC_CURSE;
    	sc_end SC_SILENCE;
    	sc_end SC_CONFUSION;
    	sc_end SC_BLIND;
    	sc_end SC_BLOODING;
    	sc_end SC_DEC_AGI;
    	sc_end SC_POISON;
    	sc_end SC_ILLUSION;
    	sc_end SC_NOEQUIPWEAPON;
    	sc_end SC_NOEQUIPARMOR;
    	sc_end SC_NOEQUIPHELM;
    	sc_end SC_NOEQUIPSHIELD;
    	sc_end SC_PROPERTYUNDEAD;
    	sc_end SC_ORCISH;
    	sc_end SC_BERSERK;
    	sc_end SC_SKE;
    	sc_end SC_SWOO;
    	sc_end SC_SKA;
    	end;
    	
    Repairing:
    	mes .npcname$;
    	if ( getbrokenid(1) == 0 ){
    	mes "You have nothing cant be repair by now.";
    	close;
    	}
    	atcommand "@repairall";
    	mes "All the broken equipments has been repaired.";
    	close;
    
    PVP_Warp:
    	warp "prontera",151,181;
    	end;
    	
    Mall_Room:
    	warp "prontera",151,181;
    	end;
    	
    WOE_Warp:
    	mes .npcname$;
    	mes "Please choose your destination...";
    	next;
    	switch(select("^4EEE94Prontera WOE Castle^000000",
    				"^4EEE94Geffen WOE Castle^000000",
    				"^4EEE94Payon WOE Castle^000000",
    				"^4EEE94Yuno WOE Castle^000000",
    				"^4EEE94Aldebaran WOE Castle^000000",
    				"^4EEE94Rachel WOE Castle^000000",
    				"^FF000Close^000000")) {
    				
    		case 1:	callsub	CastleWarp,"prt_gld",159,94;
    		case 2:	callsub	CastleWarp,"gef_fild13",164,243;
    		case 3:	callsub	CastleWarp,"pay_gld",200,173;
    		case 4:	callsub	CastleWarp,"sch_gld",137,79;
    		case 5:	callsub	CastleWarp,"alde_gld",186,155;
    		case 6:	callsub	CastleWarp,"aru_gld",219,219;
    		case 7:	callsub	CastleWarp,"prt_gld",159,94;
    		case 8:	callsub	CastleWarp,"prt_gld",159,94;
    		case 9:	close;
    		}
    		
    CastleWarp:
    	warp getarg(0),getarg(1),getarg(2);
    	end;
    	
    	
    Refiner:
    	mes .npcname$;
    	mes "I am a great refiner.. i can refine all your equipments into +8.";
    	next;
    	switch(select( ( getequipisequiped(EQI_HEAD_TOP) == 0 || getequiprefinerycnt(EQI_HEAD_TOP) > 7 )?"":"Headgear [ ^4EEE94"+getequipname(EQI_HEAD_TOP)+"^000000 ]",
    				( getequipisequiped(EQI_ARMOR) == 0 || getequiprefinerycnt(EQI_ARMOR) > 7 )?"":"Armor [ ^4EEE94"+getequipname(EQI_ARMOR)+"^000000 ]",
    				( getequipisequiped(EQI_HAND_L) == 0 || getequiprefinerycnt(EQI_HAND_L) > 7 )?"":"Left Hand [ ^4EEE94"+getequipname(EQI_HAND_L)+"^000000 ]",
    				( getequipisequiped(EQI_HAND_R) == 0 || getequiprefinerycnt(EQI_HAND_R) > 7 )?"":"Right Hand [ ^4EEE94"+getequipname(EQI_HAND_R)+"^000000 ]",
    				( getequipisequiped(EQI_GARMENT) == 0 || getequiprefinerycnt(EQI_GARMENT) > 7 )?"":"Garment [ ^4EEE94"+getequipname(EQI_GARMENT)+"^000000 ]",
    				( getequipisequiped(EQI_SHOES) == 0 || getequiprefinerycnt(EQI_SHOES) > 7 )?"":"Shoes [ ^4EEE94"+getequipname(EQI_SHOES)+"^000000 ]",
    				"^FF0000Close^000000")) {
    				
    		case 1:	callsub EquipRefine,256,8-getequiprefinerycnt(EQI_HEAD_TOP);
    		case 2:	callsub EquipRefine,16,8-getequiprefinerycnt(EQI_ARMOR);
    		case 3:	callsub EquipRefine,32,8-getequiprefinerycnt(EQI_HAND_L);
    		case 4:	callsub EquipRefine,2,8-getequiprefinerycnt(EQI_HAND_R);
    		case 5:	callsub EquipRefine,4,8-getequiprefinerycnt(EQI_GARMENT);
    		case 6:	callsub EquipRefine,64,8-getequiprefinerycnt(EQI_SHOES);
    		case 7:	close;
    		}
    EquipRefine:
    	mes .npcname$;
    	mes "Your equipment has been refined.";
    	atcommand "@refine "+getarg(0)+" "+getarg(1)+"";
    	next;
    	goto Refiner;
    } 

    thank you so much. its work but there are problem. when i reload script. npc will reset back.

    so i need to set it back.. @@Ridley


  5. 
    
    prontera,155,143,4	script	Guild Base	722,{
    set .npcname$,"[ ^0000FF Guild Base ^000000 ]";
    set .mapname$,"guild_vs1";
    Menu:
    mes .npcname$;
    mes "How may i help you sir ?";
    mes "^FF0000_____________________________^000000";
    mes "Guild Base Owner :";
    if ( $@RoomOwner$ == "0" ){
    mes "It is ^0000FFNOT Assigned^000000 yet.";
    }
    if ( $@RoomOwner$ != "0" ){
    mes "^0000FF"+$@RoomOwner$+"^000000 Guild";
    }
    mes "^FF0000_____________________________^000000";
    next;
    switch(select("^4EEE94Guild Base Information^000000",
    			( getguildname(getcharid(2)) != $@RoomOwner$ )?"":"^0000FFReturn To Base^000000",
    			( getgmlevel() < 80 || $@RoomOwner$ != "0" )?"":"^0000FFAssign Guild Base Owner^000000",	
    			( getgmlevel() < 80 || $@RoomOwner$ == "0" )?"":"^FF0000Remove Guild Base Owner^000000")) {
    			
    	Case 1:
    		mes .npcname$;
    		mes "To get into this Guild Base, The guild leader of your guild must talk with GM Team who incharge of assigning the Guild Base. ";
    		next;
    		mes .npcname$;
    		mes "Inside the Guild Base have alot of facilities to help the Guild who owned the Guild Base.";
    		close;
    	
    	Case 2:
    		warp .mapname$,50,48;
    		flagemblem getcharid(2);
    		end;
    	
    	Case 3:
    		mes .npcname$;
    		mes "Please input the ^FF0000Name of the Guild^000000, So that the member of that guild can go into the Base.";
    		mes "^FF0000_____________________________^000000";
    		mes "The name is ^FF0000VERY SENSITIVE^000000, please write it ^0000FFCorrectly^000000...";
    		input $@RoomOwner$;
    		next;
    		mes .npcname$;
    		mes "The room has been assigned to ^FF0000"+$@RoomOwner$+"^000000 Guild.";
    		mes "The member for this guild will be warped here by now.";
    		atcommand "@guildrecall "+$@RoomOwner$+"";
    		message strcharinfo(0),"Emblem of Guild Base Holder will be displayed upon the members get into the Base.";
    		next;
    		goto Menu;
    	
    	Case 4:
    		mes .npcname$;
    		mes "Guild base ownership has been removed.";
    		set $@RoomOwner$,"0";
    		mapannounce .mapname$,"The Guild Base Ownership has been WIPE Off/Changed.",bc_blue;
    		mapwarp .mapname$,"prontera",155,185;
    		next;
    		goto Menu;
    	}
    
    OnInit:
    set $@RoomOwner$,"0";
    end;
    }
    
    
    guild_vs1,50,50,5	script	Guild Base Manager	1907,{
    set .npcname$,"[ ^0000FF Guild Base Manager ^000000 ]";
    set .BuffDuration,3600000;
    
    
    Menu:
    mes .npcname$;
    mes "How can i help you here ?";
    next;
    switch(select( ( getguildname(getcharid(2)) != $@RoomOwner$ || getcharid(0) != getguildmasterid(getcharid(2)) )?"":"^4EEE94Guild Members Recalling^000000",
    			( getguildname(getcharid(2)) != $@RoomOwner$ )?"":"^0000FFHeal / Buffs^000000",
    			( getguildname(getcharid(2)) != $@RoomOwner$ )?"":"^0000FFEquipment Repairing^000000",
    			( getguildname(getcharid(2)) != $@RoomOwner$ )?"":"^0000FFPVP Room Warp^000000",
    			( getguildname(getcharid(2)) != $@RoomOwner$ )?"":"^0000FFWOE Castle Warp^000000",
    			( getguildname(getcharid(2)) != $@RoomOwner$ )?"":"^0000FFMall Room Warp^000000",		
    			( getguildname(getcharid(2)) != $@RoomOwner$ )?"":"^0000FFRefiner^000000",
    			"^FF0000Close^000000")) {
    			
    	Case 1:	goto Guild_Recall;
    	Case 2:	goto Healing;
    	Case 3:	goto Repairing;
    	Case 4:	goto PVP_Warp;
    	Case 5:	goto WOE_Warp;
    	Case 6:	goto Mall_Room;
    	Case 7:	goto Refiner;
    	Case 8:	close;
    		}
    		
    Guild_Recall:
    	mes .npcname$;
    	mes "Your guild members has been recalled. They shall arrive here within couple of time.";
    	atcommand "@guildrecall "+$@RoomOwner$+"";
    	close;
    
    Healing:
    	mes .npcname$;
    	mes "Thank you for using our services.";
    	close2;
    	percentheal 100,100;
    	sc_start SC_SPIRIT,.BuffDuration,5;
    	specialeffect2 503,SELF,strcharinfo(0);
    	skilleffect 34,0; sc_start SC_BLESSING,.BuffDuration,10;
    	skilleffect 29,0; sc_start SC_INCREASEAGI,.BuffDuration,10;
    	skilleffect 66,0; sc_start SC_IMPOSITIO,.BuffDuration,5;
    	skilleffect 67,0; sc_start SC_SUFFRAGIUM,.BuffDuration,3;
    	skilleffect 74,0; sc_start SC_MAGNIFICAT,.BuffDuration,5;
    	skilleffect 361,0; sc_start SC_ASSUMPTIO,.BuffDuration,5;
    	skilleffect 383,0; sc_start SC_WINDWALK,.BuffDuration,10; 
    	skilleffect 543,0; sc_start SC_NEN,.BuffDuration,5; 
    	skilleffect 357,0; sc_start SC_CONCENTRATION,.BuffDuration,10;
    	skilleffect 380,0; sc_start SC_TRUESIGHT,.BuffDuration,5;
    	skilleffect 114,0; sc_start SC_MAXIMIZEPOWER,.BuffDuration,100;
    	skilleffect 234,0;sc_start SC_CP_WEAPON,.BuffDuration,5;
    	skilleffect 235,0;sc_start SC_CP_SHIELD,.BuffDuration,5;
    	skilleffect 236,0;sc_start SC_CP_ARMOR,.BuffDuration,5;
    	skilleffect 237,0;sc_start SC_CP_HELM,.BuffDuration,5;
    	skilleffect 355,0; sc_start SC_AURABLADE,.BuffDuration,5;
    	skilleffect 384,0; sc_start SC_MELTDOWN,.BuffDuration,10;
    	skilleffect 378,0; sc_start SC_EDP,.BuffDuration,5;
    	sc_start SC_ASPDPOTION2,.BuffDuration,0;
    	sc_start SC_STRFood,.BuffDuration,10;
    	sc_start SC_AGIFood,.BuffDuration,10;
    	sc_start SC_VITFood,.BuffDuration,10;
    	sc_start SC_INTFood,.BuffDuration,10;
    	sc_start SC_DEXFood,.BuffDuration,10;
    	sc_start SC_LUKFood,.BuffDuration,10;
    	sc_start SC_HitFood,.BuffDuration,10;
    	sc_start SC_FleeFood,.BuffDuration,10;
    	sc_start SC_BATKFood,.BuffDuration,10;
    	sc_start SC_MATKFood,.BuffDuration,10;
    	sc_start SC_ASPDPOTION2,.BuffDuration,5;
    	sc_start SC_SpeedUp1,.BuffDuration,0;
    	sc_start SC_EXPBOOST,.BuffDuration,150;
    	sc_end sc_stone;
    	sc_end sc_slowdown;
    	sc_end sc_freeze;
    	sc_end sc_sleep;
    	sc_end sc_curse;
    	sc_end sc_silence;
    	sc_end sc_confusion;
    	sc_end sc_blind;
    	sc_end sc_bleeding;
    	sc_end sc_decreaseagi;
    	sc_end sc_poison;
    	sc_end sc_hallucination;
    	sc_end sc_stripweapon;
    	sc_end sc_striparmor;
    	sc_end sc_striphelm;
    	sc_end sc_stripshield;
    	sc_end sc_changeundead;
    	sc_end sc_orcish;
    	sc_end sc_berserk;
    	sc_end sc_ske;
    	sc_end sc_swoo;
    	sc_end sc_ska;
    	end;
    	
    Repairing:
    	mes .npcname$;
    	if ( getbrokenid(1) == 0 ){
    	mes "You have nothing cant be repair by now.";
    	close;
    	}
    	atcommand "@repairall";
    	mes "All the broken equipments has been repaired.";
    	close;
    
    PVP_Warp:
    	warp "prontera",151,181;
    	end;
    	
    Mall_Room:
    	warp "prontera",151,181;
    	end;
    	
    WOE_Warp:
    	mes .npcname$;
    	mes "Please choose your destination...";
    	next;
    	switch(select("^4EEE94Prontera WOE Castle^000000",
    				"^4EEE94Geffen WOE Castle^000000",
    				"^4EEE94Payon WOE Castle^000000",
    				"^4EEE94Yuno WOE Castle^000000",
    				"^4EEE94Aldebaran WOE Castle^000000",
    				"^4EEE94Rachel WOE Castle^000000",
    				"^FF000Close^000000")) {
    				
    		Case 1:	callsub	CastleWarp,"prt_gld",159,94;
    		Case 2:	callsub	CastleWarp,"gef_fild13",164,243;
    		Case 3:	callsub	CastleWarp,"pay_gld",200,173;
    		Case 4:	callsub	CastleWarp,"sch_gld",137,79;
    		Case 5:	callsub	CastleWarp,"alde_gld",186,155;
    		Case 6:	callsub	CastleWarp,"aru_gld",219,219;
    		Case 7:	callsub	CastleWarp,"prt_gld",159,94;
    		Case 8:	callsub	CastleWarp,"prt_gld",159,94;
    		Case 9:	close;
    		}
    		
    CastleWarp:
    	warp getarg(0),getarg(1),getarg(2);
    	end;
    	
    	
    Refiner:
    	mes .npcname$;
    	mes "I am a great refiner.. i can refine all your equipments into +8.";
    	next;
    	switch(select( ( getequipisequiped(EQI_HEAD_TOP) == 0 || getequiprefinerycnt(EQI_HEAD_TOP) > 7 )?"":"Headgear [ ^4EEE94"+getequipname(EQI_HEAD_TOP)+"^000000 ]",
    				( getequipisequiped(EQI_ARMOR) == 0 || getequiprefinerycnt(EQI_ARMOR) > 7 )?"":"Armor [ ^4EEE94"+getequipname(EQI_ARMOR)+"^000000 ]",
    				( getequipisequiped(EQI_HAND_L) == 0 || getequiprefinerycnt(EQI_HAND_L) > 7 )?"":"Left Hand [ ^4EEE94"+getequipname(EQI_HAND_L)+"^000000 ]",
    				( getequipisequiped(EQI_HAND_R) == 0 || getequiprefinerycnt(EQI_HAND_R) > 7 )?"":"Right Hand [ ^4EEE94"+getequipname(EQI_HAND_R)+"^000000 ]",
    				( getequipisequiped(EQI_GARMENT) == 0 || getequiprefinerycnt(EQI_GARMENT) > 7 )?"":"Garment [ ^4EEE94"+getequipname(EQI_GARMENT)+"^000000 ]",
    				( getequipisequiped(EQI_SHOES) == 0 || getequiprefinerycnt(EQI_SHOES) > 7 )?"":"Shoes [ ^4EEE94"+getequipname(EQI_SHOES)+"^000000 ]",
    				"^FF0000Close^000000")) {
    				
    		Case 1:	callsub EquipRefine,256,8-getequiprefinerycnt(EQI_HEAD_TOP);
    		Case 2:	callsub EquipRefine,16,8-getequiprefinerycnt(EQI_ARMOR);
    		Case 3:	callsub EquipRefine,32,8-getequiprefinerycnt(EQI_HAND_L);
    		Case 4:	callsub EquipRefine,2,8-getequiprefinerycnt(EQI_HAND_R);
    		Case 5:	callsub EquipRefine,4,8-getequiprefinerycnt(EQI_GARMENT);
    		Case 6:	callsub EquipRefine,64,8-getequiprefinerycnt(EQI_SHOES);
    		Case 7:	close;
    		}
    EquipRefine:
    	mes .npcname$;
    	mes "Your equipment has been refined.";
    	atcommand "@refine "+getarg(0)+" "+getarg(1)+"";
    	next;
    	goto Refiner;
    
    
    }
    
    
    
    

    if get someone to fix this script?


  6. Hello.. i need some help to fix this script.

     

    1-when player try to talk the npc and take the skill.. player will stuck cant move.

    2-when player get skill enter other map. the skill gone.

     

    florian,102,158,4	script	Stalker	909,{
    
    if ( StalkerSkill != 0 )goto Remove_Skill;
    if ( getskilllv(225) == 0 ) goto End_Talk;
    if ( getskilllv(225) > 0 ) goto Start_Talk;
    Remove_Skill:
    skill StalkerSkill,0,0;
    set StalkerSkill,0;
    dispbottom "[ Stalker NPC ] : Previous Skills has been Removed..";
    dispbottom "[ Stalker NPC ] : Even Skills Icons remained. But [ Un-Useable ]";
    end;
    End_Talk:
    	mes "[ ^FF0000Stalker NPC^000000 ]";
    	mes "Please make sure you have the skills required to copy a skills.";
    	close;
    
    // -- Edit Format :   "<Skill Name>", for each case at a new line in order for a Better viewing..
    Start_Talk:
    switch(select("Jupiter Thuner",				        // Case 1:
    			"Heal",				        // Case 2:
    			"Napalm Beat",				// Case 3:
    			"Soul Strike",				// Case 4:
    			"Cold Bolt",				// Case 5:
    			"Frost Diver",				// Case 6:
    			"Fire Ball",				// Case 7:
    			"Fire Wall",			        // Case 8:
    			"Fire Bolt",				// Case 9:
    			"Lightning Bolt",			// Case 10:
    			"Thunderstorm",				// Case 11:
    			"Mammonite",				// Case 12:
    			"Bowling Bash",				// Case 13:
    			"Fire Pillar",				// Case 14:
    			"Meteor Storm",				// Case 15:
    			"Lord of Vermilion",		        // Case 16:
    			"Storm Gust",				// Case 17:
    			"Heaven's Drive",			// Case 18:
    			"Earth Spike",				// Case 19:
    			"Bomb",				        // Case 20:
    			"Acid Terror",				// Case 21:
    			"Grand Cross",				// Case 22:
    			"Triple Attack",			// Case 23:
    			"Pressure",			        // Case 24:
    			"Crimson Fire Blossom",		        // Case 25:
    			"Dragon Fire Formation",	        // Case 26:
    			"Lightning Spear of Ice",	        // Case 27:
    			"Falling Ice Pillar",		        // Case 28:
    			"Wind Blade",				// Case 29:
    			"North Wind")){				// Case 30:
    
    
    // -- Edit Format :  callsub S_CopySkill,<Skill ID>,<Skill Level 10>,<Skill Cost>;
    // -- Leave the Level as 10 better.because after they relog ..they will auto get level 10 Skills.
    // -- I think can add up to 128 Case. Which is 128 Skills choose-able~
    // -- If you want it to announce then add "announce" at the back of <skill cost> like Case 10.
    
    	case 1:	callsub S_CopySkill,84,10,0;				// Jupiter Thuner
    	case 2:	callsub S_CopySkill,28,10,0;				// Heal
    	case 3:	callsub S_CopySkill,11,10,0;				// Napalm Beat
    	case 4:	callsub S_CopySkill,13,10,0;				// Soul Strike
    	case 5:	callsub S_CopySkill,14,10,0;				// Cold Bolt
    	case 6:	callsub S_CopySkill,15,10,0;				// Frost Diver
    	case 7:	callsub S_CopySkill,17,10,0;				// Fire Ball
    	case 8:	callsub S_CopySkill,18,10,0;				// Fire Wall
    	case 9:	callsub S_CopySkill,19,10,0;				// Fire Bolt
    	case 10: callsub S_CopySkill,20,10,0;				// Lightning Bolt
    	case 11: callsub S_CopySkill,21,10,0;				// Thunderstorm
    	case 12: callsub S_CopySkill,42,10,0;				// Mammonite
    	case 13: callsub S_CopySkill,62,10,0;				// Bowling Bash
    	case 14: callsub S_CopySkill,80,10,0;				// Fire Pillar
    	case 15: callsub S_CopySkill,83,10,0;				// Meteor Storm
    	case 16: callsub S_CopySkill,85,10,0;				// Lord of Vermilion
    	case 17: callsub S_CopySkill,89,10,0;				// Storm Gust
    	case 18: callsub S_CopySkill,91,10,0;				// Heaven's Drive
    	case 19: callsub S_CopySkill,90,10,0;				// Earth Spike
    	case 20: callsub S_CopySkill,229,5,0;				// Bomb
    	case 21: callsub S_CopySkill,230,5,0;				// Acid Terror
    	case 22: callsub S_CopySkill,254,10,0;				// Grand Cross
    	case 23: callsub S_CopySkill,263,10,0;				// Triple Attack
    	case 24: callsub S_CopySkill,367,5,0;				// Pressure
    	case 25: callsub S_CopySkill,534,10,0;				// Crimson Fire Blossom
    	case 26: callsub S_CopySkill,536,5,0;				// Dragon Fire Formation
    	case 27: callsub S_CopySkill, 537,10,0;				// Lightning Spear of Ice
    	case 28: callsub S_CopySkill,539,5,0;				// Falling Ice Pillar
    	case 29: callsub S_CopySkill,540,10,0;				// Wind Blade
    	case 30: callsub S_CopySkill,542,5,0;				// North Wind
    end;
    	}
    	
    	
    S_CopySkill:
    	if ( Zeny < getarg(2)){
    		mes "[ ^FF0000Stalker NPC^000000 ]";
    		mes "You must have at least "+getarg(2)+" Zeny to get the Skill.";
    		close;
    		}
    	skill getarg(0),getarg(1),0;
    	set Zeny,Zeny-getarg(2);
    	set StalkerSkill,getarg(0);
    	dispbottom "[ Stalker NPC ] : New Skill fee is [ "+getarg(2)+" Zeny ].";
    	dispbottom "[ Stalker NPC ] : Check Your Skill Tree Now..for the New Skill.";
    	if (compare(getarg(3),"announce")) announce strcharinfo(0) + " has just obtained a new skill !!",bc_map;
    	close;
    
    OnPCLoginEvent:
    	if ( StalkerSkill != 0 ){
    	skill StalkerSkill,getskilllv(225),0;
    	}
    	end;
    	
    }
    

     


  7. hello.. i need some help.. how to disable npc BG when Woe/Koe start?

     

    -	script	wow_domi#main	-1,{OnInit:	.eventlasting = 25*60; // how long will the event last or it auto-reset. 25*60 = 25 mins	.minplayer2start = 2; // how many players require to start ? if 3vs3, set to 3	.score2win = 100; // score will start at 0, and end at this value	.time2capture = 3; // when capture a flag, how long does it takes to turn to your side	.distance = 3; // how far does the player allow to capture a flag ? example, if set to 15, will allow archers to capture the flag using bows	.tick[1] = 12000; // when capture 1 flag ...	.point[1] = 1; // 12 seconds to gain 1 point	.tick[2] = 9000; // when capture 2 flags ...	.point[2] = 1; // 9 seconds to gain 1 point	.tick[3] = 6000; // when capture 3 flags ...	.point[3] = 1; // 6 seconds to gain 1 point	.tick[4] = 3000; // when capture 4 flags ...	.point[4] = 1; // 3 seconds to gain 1 point	.tick[5] = 1000; // when capture ALL flags ...	.point[5] = 3; // gain 3 points every second !	.color[0] = 0xFFFFFF; // white color for uncaptured flag	.color[1] = 0x0099FF; // blue color for Alliance	.color[2] = 0xFF0000; // red color for Horde	setarray .rewardwin, 670,2, 7620,2, 7619,2; // reward to winning team	setarray .rewardlose, 670,1, 7620,1, 7619,1; // reward to losing team	.back2map$ = "florian"; // after event ends, they will warp back to this location	.back2x = 111;	.back2y = 150;//	for those who want to translate this script ...	.team1name$ = "Alliance";	.team2name$ = "Horde";	.team1base$ = "Alliance Base";	.team2base$ = "Horde Base";	.flagname$[1] = "Stable";	.flagname$[2] = "Gold Mine";	.flagname$[3] = "Blacksmith";	.flagname$[4] = "Lumber Mill";	.flagname$[5] = "Farm";	.ann$[0] = "[WoW Battleground] Alliance : %d/%d. Horde : %d/%d";	.ann$[1] = "[WoW Battleground] Battleground has started";	.ann$[2] = "[WoW Battleground] %s has captured %s !"; // Alliance has captured Stable !	.ann$[3] = "[WoW Battleground] All %s members has quit !";	.ann$[4] = "[WoW Battleground] %s has won !";	.ann$[5] = "[WoW Battleground] Time out ! Aborting the match.";		.msg$[0] = "Get out"; // not a battleground member	.msg$[1] = "Event has ended";	.msg$[2] = "Your team has captured this flag";	.msg$[3] = "You can't capture a flag while hiding";	.msg$[4] = "You have to stand nearer to the flag";//	---- END of Config ---	.tick = .eventlasting * 1000;	.rewardwinsize = getarraysize( .rewardwin );	.rewardlosesize = getarraysize( .rewardlose );	setnpcdisplay "wow_domi_base#1", .team1base$;	setnpcdisplay "wow_domi_base#2", .team2base$;	mapwarp "guild_vs2", .back2map$, .back2x, .back2y;	for ( .@i = 1; .@i <= 5; .@i++ )		setnpcdisplay "wow_domi_flag#"+ .@i, .flagname$[.@i] +"#"+ .@i;	end;OnStart:	if ( getwaitingroomstate( 0, .alliance$ ) < .minplayer2start || getwaitingroomstate( 0, .horde$ ) < .minplayer2start ) {		announce sprintf( .ann$[0], getwaitingroomstate( 0, .alliance$ ), .minplayer2start, getwaitingroomstate( 0, .horde$ ), .minplayer2start ), bc_all, 0x00CED1;		end;	}	.start = 1;	announce .ann$[1], bc_all, 0x00CED1;	.alliance = waitingroom2bg( "guild_vs2", 49, 91, strnpcinfo(0)+"::OnAllianceQuit", strnpcinfo(0)+"::OnAllianceDied", .alliance$ );	copyarray .team1aid, $@arenamembers, $@arenamembersnum;	.horde = waitingroom2bg( "guild_vs2", 49, 8, strnpcinfo(0)+"::OnHordeQuit", strnpcinfo(0)+"::OnHordeDied", .horde$ );	copyarray .team2aid, $@arenamembers, $@arenamembersnum;	.team1count = .team2count = .minplayer2start;	donpcevent "wow_domi_score_team#1::OnStart";	donpcevent "wow_domi_score_team#2::OnStart";	bg_warp .alliance, "guild_vs2", 50,92;	bg_warp .horde, "guild_vs2", 50,7;	delwaitingroom .alliance$;	delwaitingroom .horde$;	disablenpc .alliance$;	disablenpc .horde$;	donpcevent "wow_domi_viewpoint::OnStart";	sleep .eventlasting * 1000;	.start = 2;	awake "wow_domi_score_team#1";	awake "wow_domi_score_team#2";	if ( .winside ) {		mapannounce "guild_vs2", sprintf( .ann$[4], getd( ".team"+ .winside +"name$" ) ), bc_map, 0x00CED1;		callsub L_reward, .winside, .rewardwin, .rewardwinsize;		callsub L_reward, ( .winside == 1 )? 2:1, .rewardlose, .rewardlosesize;		sleep 5000;	}	else		mapannounce "guild_vs2", .ann$[5], bc_map, 0x00CED1;	donpcevent "wow_domi_viewpoint::OnEnd";	mapwarp "guild_vs2", .back2map$, .back2x, .back2y;	bg_destroy .alliance;	bg_destroy .horde;	enablenpc .alliance$;	enablenpc .horde$;	donpcevent .alliance$ +"::OnStart";	donpcevent .horde$ +"::OnStart";	for ( .@i = 1; .@i <= 5; .@i++ )		setnpcdisplay .flagname$[.@i], 722;	cleararray .flag[1], 0, 5;	deletearray .team1capture;	deletearray .team2capture;	.start = .score[1] = .score[2] = .alliance = .horde = .winside = .team1capturesize = .team2capturesize = 0;	end;L_reward:	for ( .@i = 0; .@i < getd(".team"+ getarg(0) +"count"); .@i++ )		for ( .@j = 0; .@j < getarg(2); .@j += 2 )			getitem getelementofarray( getarg(1), .@j ), getelementofarray( getarg(1), .@j +1 ), getd(".team"+ getarg(0) +"aid["+ .@i +"]" );	return;OnAllianceDied: callsub L_died, 1;OnHordeDied: callsub L_died, 2;L_died:	sleep2 1250;	percentheal 100,100;	if ( getcharid(4) )		for ( .@i = 1; .@i <= 5; .@i++ )			viewpoint 1, .flagx[.@i], .flagy[.@i], .@i, .color[ .flag[.@i] ];	end;OnAllianceQuit: callsub L_quit, 1, 2;OnHordeQuit: callsub L_quit, 2, 1;L_quit:	while ( getd( ".team"+ getarg(0) +"aid["+ .@i +"]" ) != getcharid(3) && .@i < getd(".team"+ getarg(0) +"count") ) .@i++;	deletearray getd( ".team"+ getarg(0) +"aid["+ .@i +"]" ), 1;	setd ".team"+ getarg(0) +"count", getd(".team"+ getarg(0) +"count") -1;	if ( bg_get_data( getarg(0), 0) ) end;	announce sprintf( .ann$[3], getd( ".team"+ getarg(0) +"name$" ) ), bc_map, 0xFF0000;	.winside = getarg(1);	awake strnpcinfo(0);	end;OnDebug:	announce "Alliance", 0;	for ( .@i = 0; .@i < .team1capturesize; .@i++ )		announce ( .@i +1 )+". "+ .flagname$[ .team1capture[.@i] ], 0;	announce "Horde", 0;	for ( .@i = 0; .@i < .team2capturesize; .@i++ )		announce ( .@i +1 )+". "+ .flagname$[ .team2capture[.@i] ], 0;	end;}-	script	wow_domi_viewpoint	-1,{OnStart:	sleep 7000; // long enough I guess ?OnCapture:	callsub L_display, 1;	end;OnEnd:	callsub L_display, 2;	end;L_display:	.@main$ = "wow_domi#main";	for ( .@j = 1; .@j <= 2; .@j++ ) {		for ( .@i = 0; .@i < getvariableofnpc( getd(".team"+ .@j +"count"), .@main$ ); .@i++ ) {			attachrid getvariableofnpc( getd(".team"+ .@j +"aid["+ .@i +"]"), .@main$ );			for ( .@k = 1; .@k <= 5; .@k++ )				viewpoint getarg(0), getvariableofnpc( .flagx[.@k], .@main$ ), getvariableofnpc( .flagy[.@k], .@main$ ), .@k, getvariableofnpc( getelementofarray( .color, getvariableofnpc( .flag[.@k], .@main$ ) ), .@main$ );		}	}	end;}-	script	wow_domi_score_team	-1,{OnStart:	.@team = atoi( strnpcinfo(2) );	.@main$ = "wow_domi#main";	while ( getvariableofnpc( .start, .@main$ ) == 1 ) {		.@catched = getvariableofnpc( getd( ".team"+ .@team +"capturesize" ), .@main$ );		.@tick = getvariableofnpc( .tick[ .@catched ], .@main$ );		set getvariableofnpc( .score[.@team], .@main$ ), getvariableofnpc( .score[.@team], .@main$ ) + getvariableofnpc( .point[ .@catched ], .@main$ );		if ( getvariableofnpc( .score[.@team], .@main$ ) >= getvariableofnpc( .score2win, .@main$ ) ) {			set getvariableofnpc( .winside, .@main$ ), .@team;			awake .@main$;			if ( .@team == 1 )				bg_updatescore "guild_vs2", 100, getvariableofnpc( .score[2], .@main$ );			else				bg_updatescore "guild_vs2", getvariableofnpc( .score[1], .@main$ ), 100;			break;		}		bg_updatescore "guild_vs2", getvariableofnpc( .score[1], .@main$ ), getvariableofnpc( .score[2], .@main$ );		sleep .@tick;	}	end;}-	duplicate(wow_domi_score_team)	wow_domi_score_team#1	-1-	duplicate(wow_domi_score_team)	wow_domi_score_team#2	-1-	script	wow_domi_flag	-1,{	.@id = atoi( strnpcinfo(2) );	.@main$ = "wow_domi#main";	.@alliance = getvariableofnpc( .alliance, .@main$ );	.@horde = getvariableofnpc( .horde, .@main$ );	.@flag = getvariableofnpc( .flag[.@id], .@main$ );	if ( !getcharid(4) || ( getcharid(4) != .@alliance && getcharid(4) != .@horde ) ) {		message strcharinfo(0), getvariableofnpc( .msg$[0], .@main$ );		end;	}	if ( getvariableofnpc( .start, .@main$ ) != 1 ) {		message strcharinfo(0), getvariableofnpc( .msg$[1], .@main$ );		end;	}	if ( getcharid(4) == .@alliance && .@flag == 1 || getcharid(4) == .@horde && .@flag == 2 ) {		message strcharinfo(0), getvariableofnpc( .msg$[2], .@main$ );		end;	}	if ( checkoption(0x4046) ) {		message strcharinfo(0), getvariableofnpc( .msg$[3], .@main$ );		end;	}	getmapxy .@map$, .@x, .@y, 0;	getmapxy .@map$, .@x1, .@y1, 1;	if ( distance( .@x, .@y, .@x1, .@y1 ) > getvariableofnpc( .distance, .@main$ ) ) {		message strcharinfo(0), getvariableofnpc( .msg$[4], .@main$ );		end;	}	progressbar "", getvariableofnpc( .time2capture, .@main$ );	if ( getvariableofnpc( .start, .@main$ ) != 1 ) {		message strcharinfo(0), getvariableofnpc( .msg$[1], .@main$ );		end;	}	.@flag = getvariableofnpc( .flag[.@id], .@main$ );	if ( getcharid(4) == .@alliance && .@flag == 1 || getcharid(4) == .@horde && .@flag == 2 ) {		message strcharinfo(0), getvariableofnpc( .msg$[2], .@main$ );		end;	}	.@team = ( getcharid(4) == .@alliance )? 1 : 2;	set getvariableofnpc( .flag[.@id], .@main$ ), .@team;	setnpcdisplay "wow_domi_flag#"+ .@id, ( .@team == 1 )? 1_FLAG_LION : 1_FLAG_EAGLE;	announce sprintf( getvariableofnpc( .ann$[2], .@main$ ), getvariableofnpc( getd( ".team"+ .@team +"name$" ), .@main$ ), getvariableofnpc( .flagname$[.@id], .@main$ ) ), bc_map, 0x00CED1;	bg_team_setxy getcharid(4), getvariableofnpc( .flagx[.@id], .@main$ ), getvariableofnpc( .flagy[.@id], .@main$ );	set getvariableofnpc( getd( ".team"+ .@team +"capture["+ getvariableofnpc( getd( ".team"+ .@team +"capturesize" ), .@main$ ) +"]" ), .@main$ ), .@id;	set getvariableofnpc( getd( ".team"+ .@team +"capturesize" ), .@main$ ), getvariableofnpc( getd( ".team"+ .@team +"capturesize" ), .@main$ ) +1;	awake "wow_domi_score_team#"+ .@team;	.@team = ( .@team == 1 )? 2 : 1;	while ( getvariableofnpc( getd( ".team"+ .@team +"capture["+ .@i +"]" ), .@main$ ) != .@id && .@i < getvariableofnpc( getd( ".team"+ .@team +"capturesize" ), .@main$ ) ) .@i++;	if ( .@i < getvariableofnpc( getd( ".team"+ .@team +"capturesize" ), .@main$ ) ) {		copyarray getelementofarray( getvariableofnpc( getd( ".team"+ .@team +"capture" ), .@main$ ), .@i ), getelementofarray( getvariableofnpc( getd( ".team"+ .@team +"capture" ), .@main$ ), .@i +1 ), getvariableofnpc( getd( ".team"+ .@team +"capturesize" ), .@main$ );		set getvariableofnpc( getd( ".team"+ .@team +"capturesize" ), .@main$ ), getvariableofnpc( getd( ".team"+ .@team +"capturesize" ), .@main$ ) -1;		.@teamid = ( getcharid(4) == .@alliance )? .@horde : .@alliance;		if ( getvariableofnpc( getd( ".team"+ .@team +"capturesize" ), .@main$ ) ) {			.@id = getelementofarray( getvariableofnpc( getd( ".team"+ .@team +"capture" ), .@main$ ), getvariableofnpc( getd( ".team"+ .@team +"capturesize" ), .@main$ ) -1 );//			announce ".@id = "+ .@id +" means "+ getvariableofnpc( getd(".team"+ .@team +"name$"), .@main$ ) +" last id is "+ getelementofarray( getvariableofnpc( .flagname$, .@main$ ), .@id ) , 0;			bg_team_setxy .@teamid, getvariableofnpc( .flagx[.@id], .@main$ ), getvariableofnpc( .flagy[.@id], .@main$ );		}		else if ( .@teamid == .@alliance )			bg_team_setxy .@teamid, 49, 91;		else			bg_team_setxy .@teamid, 49, 8;	}	donpcevent "wow_domi_viewpoint::OnCapture";//	donpcevent .@main$+"::OnDebug";	end;OnInit:	sleep 1;	.@id = atoi( strnpcinfo(2) );	.@main$ = "wow_domi#main";	getmapxy .@map$, getvariableofnpc( .flagx[.@id], .@main$ ), getvariableofnpc( .flagy[.@id], .@main$ ), 1;	set getvariableofnpc( .flagx[.@id], .@main$ ), getvariableofnpc( .flagx[.@id], .@main$ )+1;	end;}guild_vs2,49,69,4	duplicate(wow_domi_flag)	wow_domi_flag#1	722guild_vs2,72,50,4	duplicate(wow_domi_flag)	wow_domi_flag#2	722guild_vs2,49,49,4	duplicate(wow_domi_flag)	wow_domi_flag#3	722guild_vs2,26,49,4	duplicate(wow_domi_flag)	wow_domi_flag#4	722guild_vs2,49,28,4	duplicate(wow_domi_flag)	wow_domi_flag#5	722-	script	wow_domi_base	-1,{	end;}guild_vs2,50,92,5	duplicate(wow_domi_base)	wow_domi_base#1	973guild_vs2,50,7,5	duplicate(wow_domi_base)	wow_domi_base#2	974florian,142,120,5	script	Alliance	100,{	end;OnInit:	sleep 1;	set getvariableofnpc( .alliance$, "wow_domi#main" ), strnpcinfo(0);OnStart:	waitingroom strnpcinfo(1), getvariableofnpc( .minplayer2start, "wow_domi#main" ) +1, "wow_domi#main::OnStart", 1;	end;}florian,134,120,5	script	Horde	100,{	end;OnInit:	sleep 1;	set getvariableofnpc( .horde$, "wow_domi#main" ), strnpcinfo(0);OnStart:	waitingroom strnpcinfo(1), getvariableofnpc( .minplayer2start, "wow_domi#main" ) +1, "wow_domi#main::OnStart", 1;	end;}guild_vs2	mapflag	battleground	2guild_vs2	mapflag	nosave	SavePointguild_vs2	mapflag	nowarpguild_vs2	mapflag	nowarptoguild_vs2	mapflag	noteleportguild_vs2	mapflag	nomemoguild_vs2	mapflag	nopenaltyguild_vs2	mapflag	nobranchguild_vs2	mapflag	noicewall

     


  8. i need some help.. can some make a script to give a log?

     

    example

     

    player will change how much they have item 607 to same quantity item 607 to item 608.

    when they change item. it will be has log so i will know how much player change for that item.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.