Jump to content
  • 0

Arena Master v1.6 Chris' Script Collection


WillJocker

Question


  • Group:  Members
  • Topic Count:  1
  • Topics Per Day:  0.00
  • Content Count:  11
  • Reputation:   0
  • Joined:  03/27/22
  • Last Seen:  

Can you help me please?
I'm with the (

) ARENA MASTER ... but it's not counting the kill ranking, only death, and it's giving an error in the map-server.1.6 but it's not counting the kill ranking, only death, and it's giving an error in the map-server.. print, please help! 

//===== rAthena Script =======================================
//= Arena Master
//===== By ===================================================
//= llchrisll
//===== Version ==============================================
//= 1.0 - Initial Version
//		  Added Multi Kill & SoundEffects
//		  Added Bounty & Promotion Feature
//		  Fully tested & Rewritten most of the code
//		  - Since it didn't wanted to work like I wanted
//		  - Couldn't test the Party PvP option though.
//		  Added a bonus at the bounty feature
//		  - If an player gains a "$@bty_bon_start" spree, "$@bty_bonus"
//			will be given to the player, who kill him/her.
//= 1.1 - Fixed an Bounty bug - Thanks to raijin91
//          = Also the bounty bonus wasn't added, kinda forgot that it seems
//      - Changed the First Blood part
//      - Changed the Chat blocking part
//      - Shorted the sphree part a bit, still testing it.
//      - Added an Cost Multiplier for the shop to adjust the prices for Mid Rate and higher Servers.
//      - Added another function to get the map users in each room and each pvp.
//= 1.2 - Compatible with rAthena
//      - Fixed some bugs
//= 1.3 - Made the Sphree Announcer dynamically
//      - Made modification regarding the sphree ranking, removed doPromote; function
//      - Shorted the ranking display choices
//= 1.4 - Moved writeStats; into the kill part, bug with Logout prevented from saving in ranking
//      - Fixed an bug with "First Blood" announcer
//      - Updated the MvP Ranker to rAthena, @getmonsterinfo has an check for MvP EXP now
//        - Removed limitation to MvP Arena, against every MvP useable now
//      - Fixed Ranking bug, didn't save Kills and stuff correctly.
//      - Added an addtional Player Counter for each PvP Room
//      - Added Class Limitation regarding 3rd Jobs
//      - Fixed an bug with Auto-Resurrect on Deathmatch Maps
//      - Fixed another Ranking bug, didn't display correctly
//= 1.5 - Added Custom Bounty Map Feature, see line around '861'
//      - Added to the Bounty Hunter an Locater, which locates the player...
//      - Fixed an bug about the Bounty Hunter, forgot to reset the @hunt variable
//      - Removed First Blood completely
//      - Removed Chat Block part completely + OnPCMapLoadEvent
//      - Fixed an Arena Shop bug by using $@arena_pay = 2 (Permanent Price Array) - Thanks to Lelantos for the bug report
//      - Rewrote the whole check at the Party PvP, also fixxed the check for 
//        online party member counting > misplaced the variables for "isloggedin" ... - Thanks to Lelantos for the bug report
//= 1.6 - Reduced PvP Rooms by adding Map Rotation Settings; Fixed Maps + Random Map each Day + Specific Map on an specific Day
//      - Removed the Player Limitation except Party PvP
//      - Reduced GvG Maps to 3
//      - Removed the functions getPvPMapUsers and getPartyMapUsers
//      - Added an announcer on Room Entry
//      - Added in Party PvP an display how many parties are in which room before joining
//      - Fixed minor bugs
//      - Exchanged #CASHPOINTS Reward with Custom Variable Support, you can decide now
//		- Modified the Arena Shop Multiplier by using an array to decide it for each Item seperatly
//      - Moved the Arena Shop Config to the Arena Master NPC and made $@arena_ to .arena_ or .@arena_ variables
//= 1.7 - Fixed PvP KIll Announcer and Kill display message
//      - Changed `hscore` to `hstreak` (confused people)
//      - Fixed typo at PvP Deathmatch warp "$dmpvp$" > "$@dmpvp$"
//		- Added some lines for the dynamic Map setting
//		- Fixed a typo in mapannounce (Thanks to Questune09 for the bug report)
//= 1.8 - Moved the writeStats use on killing to when the player dies or logs out (lessens SQL usage)
//      - Added OnPCLogoutEvent seperately
//      - Removed some left over messages I missed to delete with last update
//      - Removed MvP Ranker
//      - Fixed an issue the Shop, which made it possible buy items without cost
//===== Tested With ==========================================
//= rAthena 03/29/2021 Revision
//= GIT Hash: 47c471e3d0e7997ae605ebf45760349f3b25d365
//===== Description ==========================================
//= PvP / GvG Arenas with ranking ladder
//= PvP Types:
//  - Normal
//  - Dispell: You'll be dispelled on Room entry.
//  - Deathmatch: You'll be auto resurrect when you die.
//    If you type @die, get comaed and similar, you'll be warped to your save point.
//  - Party PvP: 2vs2, 3vs3, 4vs4, 5vs5
//  -----------------------------------------------
//= GvG: 3 Arenas, the default guild_vs1 - guild_vs3.
//===== Comments & Credits =============================================
// = Thanks to Lelantos for the idea of the Custom Bounty Map Feature
// = Thanks to Vayrus for the bug reports.
//===== MySQL Entries ========================================
/*
// v1.0
DROP TABLE IF EXISTS `arena_master`;
CREATE TABLE `arena_master` (
  `char_id` int(10) unsigned NOT NULL, 
  `kills` smallint(5) unsigned DEFAULT '0', 
  `death` smallint(5) unsigned DEFAULT '0', 
  `hstreak` smallint(5) unsigned DEFAULT '0', 
  `bounty` smallint(5) unsigned DEFAULT '0',
  `bounty_pts` smallint(5) unsigned DEFAULT '0',
  `killer` smallint(5) unsigned DEFAULT '0', 
  `domi` smallint(5) unsigned DEFAULT '0', 
  `mega` smallint(5) unsigned DEFAULT '0', 
  `unstopp` smallint(5) unsigned DEFAULT '0', 
  `wicked` smallint(5) unsigned DEFAULT '0', 
  `monster` smallint(5) unsigned DEFAULT '0', 
  `godlike` smallint(5) unsigned DEFAULT '0', 
  `holys` smallint(5) unsigned DEFAULT '0',
PRIMARY KEY (`char_id`)
) ENGINE=MyISAM;
*/
//============================================================
// ================= Arena Master ================== //
prontera,164,163,5	script	Arena Master	808,{

mes .n$;
mes "Hello, "+strcharinfo(0)+"!";
if(getgmlevel() > 79) 
	if(select("- GM Menu:- Player Menu") == 1) 
		goto GM_Menu;
if($@pvpgvg_load == 1) {
	mes "I'm sorry, but the Arena and it's features are not available yet. Try again in a few minutes please.";
	close;
}
mes "How can I help you?";
mes "Ranking Status: "+ ( ($@pvptable)?"Enabled":"Disabled");
next;
switch(select("- Arenas:- Rankings:- Arena Shop:- Information:- Nevermind")) {
	
// Arenas
	case 1:
	set @sphr,0;
	set @bty,0;
	set @killct,0;
	mes .n$;
	mes "In which arena do you want to fight?";
	next;
	switch(select("- PvP:- GvG:- Nevermind")) {
// PvP
		case 1:
		mes .n$;
		mes "Please choose the PvP Type:";
		mes "In the \"()\" stands, if 3rd Jobs, only 3rd Jobs or All Jobs are allowed to enter.";
		next;
		switch($@class_disp[$disppvp_map]) {
			case 0: set .@m_pvpdisp$,"No 3rd Jobs"; break;
			case 1: set .@m_pvpdisp$,"Only 3rd Jobs"; break;
			case 2: set .@m_pvpdisp$,"All Jobs"; break;
		}
		switch($@class_n[$npvp_map]) {
			case 0: set .@m_pvpn$,"No 3rd Jobs"; break;
			case 1: set .@m_pvpn$,"Only 3rd Jobs"; break;
			case 2: set .@m_pvpn$,"All Jobs"; break;
		}
		switch($@class_dm[$dmpvp_map]) {
			case 0: set .@m_pvpdm$,"No 3rd Jobs"; break;
			case 1: set .@m_pvpdm$,"Only 3rd Jobs"; break;
			case 2: set .@m_pvpdm$,"All Jobs"; break;
		}
		switch(select("- PvP Dispell ["+getmapusers($@disppvp$[$disppvp_map])+"] ("+.@m_pvpdisp$+"):- Normal PvP ["+getmapusers($@npvp$[$npvp_map])+"] ("+.@m_pvpn$+"):- PvP Deathmatch["+getmapusers($@dmpvp$[$dmpvp_map])+"] ("+.@m_pvpdm$+"):- Party PvP")) {
		
			// PvP Dispell
			case 1:
			mes .n$;
			if($@class_disp[$disppvp_map] == 0 && eaclass()&EAJL_THIRD) {
				mes "I'm sorry, but 3rd Classes are not allowed in this PvP Room.";
				close;
			} else if($@class_disp[$disppvp_map] == 1 && !(eaclass()&EAJL_THIRD)) {
				mes "I'm sorry, but only 3rd Classes are allowed in this PvP Room.";
				close;
			}
			mes "I'll warp you now to the PvP Room, also remove all your buffs.";
			close2;
			sc_end SC_ALL; // Remove every kind of buff
			warp $@disppvp$[$disppvp_map],0,0;
			announce "["+strcharinfo(0)+"] has entered the PvP Dispell Arena!",0;
			end;
			
			//PvP Normal
			case 2:
			mes .n$;
			if($@class_n[$npvp_map] == 0 && eaclass()&EAJL_THIRD) {
				mes "I'm sorry, but 3rd Classes are not allowed in this PvP Room.";
				close;
			} else if($@class_n[$npvp_map] == 1 && !(eaclass()&EAJL_THIRD)) {
				mes "I'm sorry, but only 3rd Classes are allowed in this PvP Room.";
				close;
			}
			mes "I'll warp you now to the Normal PvP Room.";
			close2;
			warp $@npvp$[$npvp_map],0,0;
			announce "["+strcharinfo(0)+"] has entered the Normal PvP Arena",0;
			end;
			
			// PvP DM	
			case 3:
			mes .n$;
			if($@class_dm[$dmpvp_map] == 0 && eaclass()&EAJL_THIRD) {
				mes "I'm sorry, but 3rd Classes are not allowed in this PvP Room.";
				close;
			} else if($@class_dm[$dmpvp_map] == 1 && !(eaclass()&EAJL_THIRD)) {
				mes "I'm sorry, but only 3rd Classes are allowed in this PvP Room.";
				close;
			}
			mes "I'll warp you now to the PvP Deathmatch Room.";
			close2;
			set @dm,1;
			warp $@dmpvp$[$dmpvp_map],0,0;
			announce "["+strcharinfo(0)+"] has entered the PvP Deathmatch Arena!",0;
			end;
		
			// Party PvP
			case 4:
			mes .n$;
			if(!getcharid(1)) {
				mes "I'm sorry, but you are not in a party.";
				mes "Please come back as soon you have found one.";
				close;
			}
			if(getpartyleader(getcharid(1)) != strcharinfo(0)) {
				mes "I'm sorry, but only your leader can register your party.";
				close;
			}
			mes "Parties in Rooms:";
			mes "2vs2: "+getmapusers($@pt2pvp$[$pt2pvp_map])/2;
			mes "3vs3: "+getmapusers($@pt3pvp$[$pt3pvp_map])/3;
			mes "4vs4: "+getmapusers($@pt4pvp$[$pt4pvp_map])/4;
			mes "5vs5: "+getmapusers($@pt5pvp$[$pt5pvp_map])/5;
			next;
			mes .n$;
			set @pty_id,getcharid(1);
			getpartymember(@pty_id,1);
			getpartymember(@pty_id,2);
			set @ptymem,$@partymembercount;
			copyarray @ptymemid[0],$@partymembercid,@ptymem; // Char ID
			copyarray @ptymemaid[0],$@partymemberaid,@ptymem; // Account ID
			set .@pt_ct,0;
			for ( set .@pm,0; .@pm < @ptymem; set .@pm,.@pm + 1) 
				if( isloggedin(@ptymemaid[.@pm],@ptymemid[.@pm]) == 1) 
					set .@pt_ct,.@pt_ct + 1;

			if(.@pt_ct < 2) {
				mes "It seems like you don't the required members for the Party vs Party Mode.";
				mes "You need at least two players, which have to be online, to be able to participate.";
				close;
			}
			set .@pt,.@pt_ct;
			mes "Chosen Party vs Party Mode:";
			mes .@pt+"vs"+.@pt+" Party PvP";
			mes "Class Restriction:";
			switch( getd("$@class_p"+.@pt+"["+getd("$pt"+.@pt+"pvp_map")+"]") ) {
				case 0: mes "No 3rd Jobs allowed"; break;
				case 1: mes "Only 3rd Jobs allowed"; break;
				case 2: mes "All Jobs allowed"; break;
			}
			next;
			mes .n$;
			if(getmapusers(getd("$@pt"+.@pt+"pvp$["+getd("$pt"+.@pt+"pvp_map")+"]")) >= (.@pt+.@pt)) {
				mes "I'm sorry, but the "+.@pt+"vs"+.@pt+" Arena is already full.";
				mes "Please come back later.";
				close;
			}
			getpartymember(@pty_id,1);
			getpartymember(@pty_id,2);
			set @ptymem,$@partymembercount;
			copyarray @ptymemid[0],$@partymembercid,@ptymem; // Char ID
			copyarray @ptymemaid[0],$@partymemberaid,@ptymem; // Account ID
			for ( set .@pm,0; .@pm < @ptymem; set .@pm,.@pm + 1) 
				if(isloggedin(@ptymemaid[.@pm],@ptymemid[.@pm]) == 1)
					if(getd("$@class_p"+.@pt+"["+getd("$pt"+.@pt+"pvp_map")+"]") == 0 && eaclass()&EAJL_THIRD) {
						mes "I'm sorry, but 3rd Classes are not allowed in this PvP Room.";
						close;
					} else if(getd("$@class_p"+.@pt+"["+getd("$pt"+.@pt+"pvp_map")+"]") == 1 && !(eaclass()&EAJL_THIRD)) {
						mes "I'm sorry, but only 3rd Classes are allowed in this PvP Room.";
						close;
					}
			mes "I'll warp your party now.";
			mes "Good luck.";
			close2;
			warpparty getd("$@pt"+.@pt+"pvp$["+getd("$pt"+.@pt+"pvp_map")+"]"),0,0,@pty_id;
			announce "The Party ["+getpartyname(getcharid(1))+"] has entered the "+.@pt+"vs"+.@pt+" Party PvP Arena!",0;
			end;
		}
		break;
	
		// GvG
		case 2:
		mes .n$;
		if(!getcharid(2)) {
			mes "I'm sorry, but you are not in a guild.";
			close;
		}
		mes "Please choose the room you want to join:";
		next;
		set .@rchoi,select("- GvG 1 ["+getmapusers($@gvgr$[0])+"]:- GvG 2 ["+getmapusers($@gvgr$[1])+"]:- GvG 3 ["+getmapusers($@gvgr$[2])+"]") - 1;
		mes .n$;
		mes "I will warp you now.";
		close2;
		warp $@gvgr$[.@rchoi],0,0;
		end;
		
	// Nevermind
		case 3: break;
	}
	close;
	
// Ranking
	case 2:
	mes .n$;
	if(!$@pvptable) {
		mes "I'm sorry, the ranking system is offline and thus I can't show you any ranking.";
		close;
	}
	mes "Which ranking do you wanna see?";
	next;
	
	set .@rank,select("- Kills:- Deaths:- Highest Streak:- Killing Sphree:- Dominating:- Mega Kill:- Unstoppable:- Wicked Sick:- Monster Kill:- GodLike:- Holy Sh1t");
	if(.@rank > 3 && .@rank < 12) // PvP Sphree Ranker
		set .@listr$,$@sphree_rank$[.@rank-4];
	else { // PvP General K/D/Highest Streak Rankers
		setarray .@db_rank$[0],"kills","death","hstreak";
		set .@listr$,.@db_rank$[.@rank-1];
	}
	mes .n$;
	mes "Which list do you want to see?";
	next;
	set .@limit,select("- Top 5:- Top 10:- Top 15:- Top 20:- Top 25:- Top 30:- Nevermind") * 5;
	if(.@limit == 35) 
		goto R_Bye;

	mes .n$;
	mes "Ranking:";
	switch(.@rank) {

		case 1:	mes set(.@rankn$,"Top "+.@limit+" Killers");	set .@rankt$,"Kills";	break;
		case 2:	mes set(.@rankn$,"Top "+.@limit+" Victims");	set .@rankt$,"Deaths";	break;
		case 3:	mes set(.@rankn$,"Top "+.@limit+" Highest Streak");	set .@rankt$,"Highest Streak";	break;
		default:	mes set(.@rankn$,"Top "+.@limit+" "+$@sphree_names$[@rank-4]+" Rankers");	set .@rankt$,$@sphree_names$[.@rank-4]+"s";	break;
	}
	mes "Correct?";
	next;
	if(select("- Yes:- No") == 2) goto R_Bye;
	mes .n$;
	mes "I will now list the ranking in your Chat Box.";
	close2;
	dispbottom "======= "+.@rankn$+" ===========";
	dispbottom "Player Name:    "+.@rankt$;
	if(query_sql("SELECT `char_id` , `"+.@listr$+"` FROM `arena_master` WHERE `"+.@listr$+"` > 0 ORDER BY `"+.@listr$+"` DESC LIMIT "+.@limit,.@ch_id,.@sh_r) == 0) {
		dispbottom "No Player found.";
		end;
	}
	for( set .@r,0; .@r < getarraysize(.@sh_r); set .@r,.@r + 1) {
		query_sql "SELECT `name` FROM `char` WHERE `char_id` = '"+.@ch_id[.@r]+"'",.@ch_na$;
		dispbottom .@ch_na$+":    "+.@sh_r[.@r];
	}
	end;
	
// Arena Shop
	case 3:
	mes .n$;
	mes "Hello, I can sell your useful items for the daily PvP need and more.";
	mes "Depending on the bounty, I will open the respective shop.";
	switch($@bty_type) {
		
		case 0:
		next;
		mes .n$;
		mes "I'm sorry, but the bounty feature is not enabled.";
		close;
		
		case 1:
		dispbottom "[Arena Shop]: I will now open the Bounty Shop, which uses \"Zeny\" as payment.";
		break;
		
		case 2:
		dispbottom "[Arena Shop]: I will now open the Bounty Shop, which uses \""+$@bty_cvard$+"\" as payment.";
		dispbottom "[Arena Shop]: You have "+getd(""+$@bty_cvarn$)+" "+$@bty_cvard$+".";
		break;
		
		case 3:
		set @pts,0;
		dispbottom "[Arena Shop]: I will now open the Bounty Shop, which uses \"Bounty Points\" as payment.";
		query_sql "SELECT `bounty_pts` FROM `arena_master` WHERE `char_id` = '"+getcharid(0)+"'",@pts;
		dispbottom "[Arena Shop]: You have "+@pts+" Bounty Points.";
		break;
	}
	close2;
	callshop "Arena_Shop",1;
	npcshopattach "Arena_Shop";
	end;

	OnBuyItem:
	for( set .@s,0; .@s < getarraysize(@bought_nameid); set .@s,.@s + 1) 
		for( set .@i,0; .@i < getarraysize(.arena_sh); set .@i,.@i + 1) 
			if(@bought_nameid[.@s] == .arena_sh[.@i]) 
				if(checkweight(@bought_nameid[.@s],@bought_quantity[.@s]) == 1) {
					set .@c_item,(@bought_quantity[.@s]*.arena_ar[.@i]);
					set .@total,(.@total + .@c_item);
					break;
					
				} else {
					dispbottom "[Arena Shop]: You have reached your weight limit, lose some weight and come back please.";
					end;
				}

	switch($@bty_type) {

		case 1:
		if(Zeny >= .@total) set Zeny,Zeny - .@total;
		else {
			dispbottom "[Arena Shop]: You don't have enough Zeny.";
			end;
		}
		break;
		
		case 2: 
		if(getd(""+$@bty_cvarn$) >= .@total) setd(""+$@bty_cvarn$),getd(""+$@bty_cvarn$) - .@total;
		else {
			dispbottom "[Arena Shop]: You don't have enough "+$@bty_cvard$+", currently "+getd(""+$@bty_cvarn$)+".";
			end;
		}
		break;
		
		case 3:
		if(@pts >= .@total) query_sql "UPDATE `arena_master` SET `bounty_pts` = `bounty_pts` - "+.@total+" WHERE `char_id` = '"+getcharid(0)+"'";
		else {
			dispbottom "[Arena Shop]: You don't have enough Bounty Points, currently "+@pts;
			end;
		}
		break;
	}
	
	for ( set .@b,0; .@b < getarraysize(@bought_nameid); set .@b,.@b + 1) 
		getitem @bought_nameid[.@b],@bought_quantity[.@b];

	deletearray @bought_nameid[0],getarraysize(@bought_nameid);
	deletearray @bought_quantity[0],getarraysize(@bought_quantity);
	end;
	
// Information
	case 4:
	mes .n$;
	mes "What do you want to know about?";
	next;
	switch(select("- PvP:- GvG:- Sphree:- Ranking:- Bounty Feature:- Nevermind")) {
		
		case 1:
		mes "[=== PvP ===]";
		mes "PvP Types:";
		mes " - Normal";
		mes " - Dispell";
		mes " - Deathmatch";
		mes " - Party PvP:";
		mes "   - 2vs2";
		mes "   - 3vs3";
		mes "   - 4vs4";
		mes "   - 5vs5";
		next;
		mes "[=== PvP ===]";
		mes "Dispell PvP:";
		mes " - You'll be dispelled, when you enter the room.";
		mes " ";
		mes "Deathmatch PvP:";
		mes " - You'll be auto-resurrect on death, except you type @die, get comaed or similar, then you'll be warped to your savepoint.";
		close;
		
		case 2:
		mes "[=== GvG ===]";
		mes "In these rooms, you can see what WoE would look like.";
		close;
		
		case 3:
		mes "[=== Sphree ===]";
		mes "Sphree - Required Kills.";
		for ( set .@s,0; .@s < getarraysize($@sphree_names$); set .@s,.@s + 1) 
			mes $@sphree_names$[.@s] +" - "+$@sphree_kills[.@s];
		
		next;
		mes "[=== Sphree ===]";
		mes "For each sphree you accomplish, except First Blood, you gain an point for the bounty feature, if it has been activated.";
		mes "For more ask me about the Bounty Feature.";
		next;
		mes "[=== Sphree ===]";
		mes "Also there is the Multi Kill Sphrees, but you won't recieve points for them.";
		mes "The time span you can achieve them is "+ $@multi/1000+" seconds.";
		next;
		mes "[=== Sphree ===]";
		mes "In this time you, if you kill";
		mes " - one more player = Double Kill";
		mes " - two more players = Triple Kill";
		mes " - three or more players = Ultra Kill";
		close;
		
		case 4:
		mes "[=== Ranking ===]";
		mes "Kills, Deaths, Sphree Counts (like Killing Sphree), the highest kill count till you died and lists it in either a Top 5, 10, 15, 20, 25 or	a Top 30 List with the wanted information you have chosen.";
		close;
		
		case 5:
		mes .n$;
		if(!$@bty_type) {
			mes "This feature isn't activate.";
			close;
		}
		mes "Current Bounty Reward: "+ $@bty_price + " " + ( ($@bty_type == 1)?"Zeny": ( ($@bty_type == 2)?$@bty_cvard$:"Bounty Points") );
		mes "Also an Shop exists so you can prepare you for battle easier.";
		mes "Next is an Bounty Bonus, which automatically activates when someone reaches "+$@bty_bon_start+" kills.";
		mes "An announce will be displayed, to stop him and that you get an bonus to the bounty price, which depends on the bounty type.";
		mes "Current Bonus is: "+$@bty_bonus+" " + ( ($@bty_type == 1)?"Zeny": ( ($@bty_type == 2)?$@bty_cvard$:"Bounty Points") );
		mes "Also there is an Bounty Bonus Multiplier, but the value of that will stay an secret.";
		next;
		mes .n$;
		mes "The bounty depends on your victims sphree.";
		mes "Here is a list of them:";
		mes " ";
		mes "Sphree - Points";
		for ( set .@s,0; .@s < getarraysize($@sphree_names$); set .@s,.@s + 1) 
			mes $@sphree_names$[.@s] +" - "+.@s;
			
		next;
		
		case 6:
		break;
	}

// Nevermind
	case 5:
	break;
}

R_Bye:
mes .n$;
mes "Okay, see ya.";
close;

// GM Menu
GM_Menu:
mes "How can I help you?";
next;
switch(select("- Table Settings:- Debug State:- Nevermind")) {
	
	case 1:
	mes .n$;
	mes "Table Status: "+( ($@pvptable == 1)?"":"Not ")+"Installed";
	mes "What do you want to do?";
	next;
	if($@pvptable == 1) {
		switch(select("- Erase Content from Table:- Delete Table completely:- Nevermind")) {
			case 1:
			mes .n$;
			mes "Are you sure, that you want to delete the rankings from the tables?";
			if(select("- Yes:- No") - 1) close;
			next;
			mes .n$;
			mes "Here we go!";
			query_sql "TRUNCATE TABLE `arena_master`";
			break;
			
			case 2:
			mes .n$;
			mes "Are you sure, that you want to delete the whole table from the database?";
			if(select("- Yes:- No") - 1) close;
			next;
			mes .n$;
			mes "Here we go!!!";
			query_sql "DROP TABLE IF EXISTS `arena_master`";
			set $@pvp_table,0;
			break;
			
			case 3:
			break;
		}
	} else if($@pvptable == 0) {
		if(select("- Create Tables:- Nevermind") - 1) close;
		mes .n$;
		mes "Are you sure, that you want to create the tables for the rankings?";
		if(select("- Yes:- No") - 1) close;
		next;
		mes .n$;
		mes "Here we go!";
		query_sql "CREATE TABLE `arena_master` ( `char_id` int(10) unsigned NOT NULL, `kills` smallint(5) unsigned DEFAULT '0', `death` smallint(5) unsigned DEFAULT '0', `hstreak` smallint(5) unsigned DEFAULT '0', `bounty` smallint(5) unsigned DEFAULT '0', `bounty_pts` smallint(5) unsigned DEFAULT '0', `killer` smallint(5) unsigned DEFAULT '0', `domi` smallint(5) unsigned DEFAULT '0', `mega` smallint(5) unsigned DEFAULT '0', `unstopp` smallint(5) unsigned DEFAULT '0', `wicked` smallint(5) unsigned DEFAULT '0', `monster` smallint(5) unsigned DEFAULT '0', `godlike` smallint(5) unsigned DEFAULT '0', `holys` smallint(5) unsigned DEFAULT '0')";
		set $@pvp_table,1;
		break;
	}
	close;
	
	case 2:
	mes .n$;
	mes "Debug State: "+( ($arena_debug == 1)?"Online":"Offline");
	mes "Do you want to change it?";
	if(select("- Yes:- No") - 1) close;
	next;
	mes .n$;
	mes "Debug State has been turned "+ ( (!$arena_debug)?"on":"off")+".";
	set $arena_debug,!$arena_debug;
	break;
	
	case 3:
	break;
}
close;

OnLoading:
set .n$,"["+strnpcinfo(1)+"]";
while($@pvpgvg_load) {
	delwaitingroom;
	waitingroom "Arena: Closed",0;
	sleep 2000;
}
delwaitingroom;
announce "PvP/GvG Arena is now opened.",0;
waitingroom "PvP/GvG Arena: Open",0;
if($arena_debug) debugmes "Main OnInit Loaded, continuing with Arena Shop";
if($@bty_type) { // If Bounty is enabled
	// Shop Items: PvP useful stuff, like Elements, Boxes and Food
	// These will be used for all shops, but the prices depends on the Bounty Type you have set.
	setarray .arena_sh[0],12020, // [0] == Cursed Water
						   12028, // [1] == Box of Thunder
						   12029, // [2] == Box of Gloom
						   12030, // [3] == Box of Resentment
						   12031, // [4] == Box of Drowsiness
						   12032, // [5] == Box of Stroms
						   12033, // [6] == Box of Sunlight
						   12034, // [7] == Box of Panting
						   12108, // [8] == Scroll Package
						   12215, // [9] == LV 10 Blessing Scroll
						   12216, // [10] == LV 10 Agi Scroll
						   12217, // [11] == LV 5 Aspersio Scroll
						   12218, // [12] == LV 5 Assumptio Scroll
						   12219, // [13] == LV 10 Wind Walker Scroll
						   12075, // [14] == Steamed Tongue
						   12080, // [15] == Dragon Breath Cocktail
						   12085, // [16] == Immortal Stew
						   12090, // [17] == Steamed Desert Scorpions
						   12095, // [18] == Hwergelmir's Tonic
						   12100, // [19] == Cooked Nice Tail's Tails
						   12114, // [20] == Elemental Converter[Fire]
						   12115, // [21] == Elemental Converter[Water]
						   12116, // [22] == Elemental Converter[Earth]
						   12117, // [23] == Elemental Converter[Wind]
						   12118, // [24] == Fireproof Potion
						   12119, // [25] == Coldproof Potion
						   12120, // [26] == Earthproof Potion
						   12121, // [27] == Thunderproof Potion
						   13543, // [28] == Chemical Protection Helm Scroll Box
						   13544, // [29] == Chemical Protection Shield Scroll Box
						   13545, // [30] == Chemical Protection Armor Scroll Box
						   13546, // [31] == Chemical Protection Weapon Scroll Box
						   13547, // [32] == Repair Weapon Scroll Box
						   14593; // [33] == Mystical Amplification Scroll

	// Prices:
	// Two ways of doing so:
	// - Per formula
	// - Per Array
	// You can determine for each currency the way of calculation and prices.
	// If you want to use the formula, set ".@arena_pay" to 1.
	// If you wanna use the array, set ".@arena_pay" to 2, 
	// but remember to put the prices for all items, also there is no multiplier added for this.
	set .@arena_pay,1;
	
	// Cost Multiplier:
	// The value here will multiply the costs in the shop.
	// Fill in the index of the item array for which Item you want to use the multiplier.
	// * Suggested Values:
	// - Minimum: 1
	// - Maximum: 10
	// Note: On Mid Rate and High Rate Servers, it's easy to gain money very fast.
	// So I added this to only increase the costs in the shop, but not the gain per kill.
	// Note2: NEVER PUT '0' ALSO I DIDN'T ADD AN PREVENTION IF YOU GO HIGHER THAN '10'!!!
	setarray .@arena_multi[0],1, // [0]
							  2, // [1]
							  2, // [2]
							  2, // [3]
							  2, // [4]
							  2, // [5]
							  2, // [6]
							  2, // [7]
							  4, // [8]
							  4, // [9]
							  4, // [10]
							  4, // [11]
							  4, // [12]
							  4, // [13]
							  5, // [14]
							  5, // [15]
							  5, // [16]
							  5, // [17]
							  5, // [18]
							  5, // [19]
							  3, // [20]
							  3, // [21]
							  3, // [22]
							  3, // [23]
							  1, // [24]
							  1, // [25]
							  1, // [26]
							  1, // [27]
							  4, // [28]
							  4, // [29]
							  4, // [30]
							  4, // [31]
							  3, // [32]
							  2; // [33]

	if(.@arena_pay == 1) {
// ============== * By Formula * ================
// Note: If the formula results in a decimal number it will be degraded.

		for ( set .@s,0; .@s < getarraysize(.arena_sh); set .@s,.@s + 1) {
		// =============== Zeny Formula ========== //
			// Default: (($@bty_price+(.@s*($@bty_price/10)))/2)*.@arena_multi
			// Base Price = $@bty_price, "Bonus" = + (Index ID* ($@bty_price/10))/2
			// Example: 5000 + (4(=Index of 12031)*(5000/10=500) > 7000/2 = 3500 Zeny for 12031
			// With Multiplier: ".@arena_multi[4] = 5": 3500 * 5 = 17500
			if($@bty_type == 1) set .@arena_fo,(($@bty_price+(.@s*($@bty_price/10)))/2)*.@arena_multi[.@s];
			
		// =============== Custom Points Formula ========== //
			// Default: (($@bty_price+.@s)/2)*.@arena_multi
			// Base Price = $@bty_price, "Bonus" = + Index ID/2
			// Example: 2 + 4(=Index of 12031) > 6/2 = 3 Custom Points for 12031
			// With Multiplier: ".@arena_multi[4] = 5": 3 * 5 = 15
			else if($@bty_type == 2) set .@arena_fo,(($@bty_price+.@s)/2)*.@arena_multi[.@s];
			
		// =============== Bounty Points Formula ========== //
			// Default: (($@bty_price+(.@s*10))/2)*.@arena_multi
			// Base Price = $@bty_price, "Bonus" = + (Index ID* 10)/2
			// Example: 5 + (4(=Index of 12031)*10) > 45/2 = 22 Bounty Points for 12031
			// With Multiplier: ".@arena_multi[4] = 5": 22 * 5 = 110
			else if($@bty_type == 3) set .@arena_fo,(($@bty_price+(.@s*10))/2)*.@arena_multi[.@s];
			
		// =============== Adding the price (calculated by the formula) to the array ========== //
			setarray .arena_ar[.@s],.@arena_fo;
		}

	// Price Array
	} else 
		setarray .arena_ar[0],100, // [0]
							   100, // [1]
							   100, // [2]
							   100, // [3]
							   100, // [4]
							   100, // [5]
							   100, // [6]
							   100, // [7]
							   100, // [8]
							   100, // [9]
							   100, // [10]
							   100, // [11]
							   100, // [12]
							   100, // [13]
							   100, // [14]
							   100, // [15]
							   100, // [16]
							   100, // [17]
							   100, // [18]
							   100, // [19]
							   100, // [20]
							   100, // [21]
							   100, // [22]
							   100, // [23]
							   100, // [24]
							   100, // [25]
							   100, // [26]
							   100, // [27]
							   100, // [28]
							   100, // [29]
							   100, // [30]
							   100, // [31]
							   100, // [32]
							   100; // [33]
	
	npcshopdelitem "Arena_Shop",512;
	// Adding Items and Prices to the Shop
	for ( set .@s,0; .@s < getarraysize(.arena_sh); set .@s,.@s + 1)
		npcshopadditem "Arena_Shop",.arena_sh[.@s],.arena_ar[.@s];
		
if($arena_debug) debugmes "Arena Shop loaded - Items: "+getarraysize(.arena_sh)+", Prices: "+getarraysize(.arena_ar);
}
end;
}
// =============== Bounty Shop =========== //
-	shop	Arena_Shop	-1,512:-1
// =============== Main Settings ===============//
-	script	PvPGvGMain	-1,{
end;

OnInit:
freeloop(1);
// =============== Ranking Check & Debug Messages ================//
set $@pvpgvg_load,1;
//set $arena_debug,1;
initnpctimer;
if($arena_debug) debugmes "====== Arena Master - Debug initiate... ========";
if(query_sql("SHOW TABLES LIKE 'arena_master'",.@pvptab) == 0) set $@pvptable,0; else set $@pvptable,1;
donpcevent "Arena Master::OnLoading";
// ============== Sphree Settings ============//
setarray $@sphree_names$[0],"Killing Sphree","Dominating","Mega Kill","Unstoppable","Wicked Sick","Monster Kill","GodLike","Holy Sh1t";
setarray $@sphree_kills[0],3,5,7,9,11,13,15,17; // Kills required for each sphree.
setarray $@sphree_wav$[0],"killingspree","dominating","megakill","unstoppable","wickedsick","monsterkill","godlike","holyshit"; // WAV file names
setarray $@sphree_rank$[0],"killer","domi","mega","unstopp","wicked","monster","godlike","holys"; // Variable Names for the ranking of each sphree
set $@multi,5000; // Time Span for chance to gain Multi-Kill in milliseconds.
if($arena_debug) debugmes "PvP Sphree Names loaded: "+getarraysize($@sphree_names$);
if($arena_debug) debugmes "PvP Sphree Kills loaded: "+getarraysize($@sphree_kills);
if($arena_debug) debugmes "PvP Sphree WAV Names loaded: "+getarraysize($@sphree_wav$);
if($arena_debug) debugmes "PvP Sphree Ranking Names loaded: "+getarraysize($@sphree_rank$);
// ============== Bounty Settings =========//
// Bounty Type: 
// * 0 = Off
// * 1 = Zeny
// * 2 = Custom Points
// * 3 = Bounty Points
set $@bty_type,2;
if($@bty_type) {
	set $@bty_bonus,5; // Bonus, if you kill an player
	set $@bty_bon_start,4; //which has achieved an spree of "$@bty_bon_start"
	set $@bty_bonus_multi,1; // Use Bonus Multiplier depending on the Bounty Type? See seperate sections below
	set $@bty_bonus_m,1000; // Multiplier for Bounty Bonus
	// Custom Points Settings
	set $@bty_cvard$,"Cash Points"; // What to display for players
	set $@bty_cvarn$,"#CASHPOINTS"; // Actual Variable Name
	
	// =============== Zeny ========== //
	if($@bty_type == 1) 
		set $@bty_price,5000; // Zeny per Sphree
	
	// =============== Custom Points ========== //
	else if($@bty_type == 2)
		set $@bty_price,2; // Custom Points per Sphree
	
	// =============== Bounty Points ========== //
	else if($@bty_type == 3)
		set $@bty_price,5; // Bounty Points per Sphree

	// Custom Bounty Maps
	// = Maps on which you also can gain the reward
	// 1 = On
	// 0 = Off, ordinary ones
	set $@bty_cmap,1;
	
	if($@bty_cmap == 1) {
		// Map Type:
		// 1 = Every Map with PvP/GvG Mapflags
		// 2 = Specific (Array below)
		set $@bty_cmap_type,2;
		
		if($@bty_cmap_type == 2) {
			// Map Array
			// Put the either the whole map name
			// or a part of it to add more maps with the part containing
			setarray $@bty_cmaps$[0],"prt_fild08","prt_gld";
			
			// Which map is a PvP/GvG Map?
			// 6 = PvP
			// 9 = GvG
			// Note: In the same order as above
			setarray $@bty_cmap_pg[0],6,9;
		}
		
		// Party Usage
		// 1 = No parties Allowed
		// 2 = Parties allowed
		setarray $@bty_cmap_pty,2,1;
		
		// Mapflags
		setarray $@bty_cmapfl[0],0, //mf_nomemo
							//	 1, //mf_noteleport
								 2, //mf_nosave
								 3, //mf_nobranch
								 4, //mf_nopenalty
								 5, //mf_nozenypenalty
								11, //mf_notrade
							//	13, //mf_nowarp
							//	22, //mf_nogo
								33, //mf_noreturn
							//	34, //mf_nowarpto
							//	35, //mf_nightmaredrop
								38, //mf_nodrop
								41, //mf_novending
								44, //mf_noexppenalty
								14, //mf_partylock
								 7; //mf_pvp_noparty

		// ======= Auto Mapflag Adding ===============//
		for ( set .@m,0; .@m < getarraysize($@bty_cmaps$); set .@m,.@m + 1 ) {
			if($arena_debug) debugmes "Mapflag set at "+$@bty_cmaps$[.@m] + " initiate...";
			for ( set .@mf,0; .@mf < getarraysize($@bty_cmapfl); set .@mf,.@mf + 1 ) {
				if(($@bty_cmapfl[.@mf] == 14 || $@bty_cmapfl[.@mf] == 7) && $@bty_cmap_pty[.@m] == 1) continue;
				setmapflag $@bty_cmaps$[.@m],$@bty_cmapfl[.@mf];
				if($arena_debug) debugmes "Mapflag "+ $@bty_cmapfl[.@mf] +" set at "+$@bty_cmaps$[.@m] + " complete";
			}
			// PvP or GvG Mapflag
			setmapflag $@bty_cmaps$[.@m],$@bty_cmap_pg[.@m];
			if($arena_debug) debugmes "Mapflag "+ $@bty_cmap_pg[.@m] +" set at "+$@bty_cmaps$[.@m] + " complete";
		}
	}
}
if($arena_debug) debugmes "Bounty Shop - Currency: " + ( ($@bty_type == 1)?"Zeny": ( ($@bty_type == 2)?$@bty_cvard$:"Bounty Points") ) + ", Basic Price: "+ $@bty_price;
// Bounty Calculation:
// Scroll down till the line with "function	getBounty	{"
if($arena_debug) debugmes "Bounty Type loaded: "+$@bty_type;
// ============ GvG Settings ============//
setarray $@gvgr$[0],"guild_vs1","guild_vs2","guild_vs3";
if($arena_debug) debugmes "Guild Maps loaded: "+getarraysize($@gvgr$);
// Party Usage
// 1 = No parties Allowed
// 2 = Parties allowed
setarray $@gvg_pty[0],2,2,2;
// ======== Mapflags ======== //
// If you want you can add more mapflags
setarray .gvg_mf[0],0, //mf_nomemo
					 1, //mf_noteleport
					 2, //mf_nosave
					 3, //mf_nobranch
					 4, //mf_nopenalty
					 5, //mf_nozenypenalty
					 9, //mf_gvg
					11, //mf_notrade
					13, //mf_nowarp
					15, //mf_noicewall
					22, //mf_nogo
					33, //mf_noreturn
					34, //mf_nowarpto
					35, //mf_nightmaredrop
					38, //mf_nodrop
					41, //mf_novending
					44, //mf_noexppenalty
					14, //mf_partylock
					10; //mf_gvg_noparty
					
if($arena_debug) debugmes "Guild Mapflags loaded: "+getarraysize(.gvg_mf);
if($arena_debug) debugmes "Array Reading of GvG Maps complete";
for ( set .@m,0; .@m < getarraysize($@gvgr$); set .@m,.@m + 1 ) {
	if($arena_debug) debugmes "Mapflag set at "+$@gvgr$[.@m] + " initiate...";
	for ( set .@mf,0; .@mf < getarraysize(.gvg_mf); set .@mf,.@mf + 1 ) {
		if((.gvg_mf[.@mf] == 14 || .gvg_mf[.@mf] == 10) && .gvg_pty[.@m] == 2) continue;
		setmapflag $@gvgr$[.@m],.gvg_mf[.@mf];
		if($arena_debug) debugmes "Mapflag "+ .gvg_mf[.@mf] +" set at "+$@gvgr$[.@m] + " complete";
	}
}
if($arena_debug) debugmes "Guild Mapflag loading completed";
// ============ PvP Settings ============//
// = You can use your own Maps as you like, even reduce or put more
// = These below are the default PvP Maps
// ====== Dispell PvP ==========//
setarray $@disppvp$[1],"pvp_y_1-1","pvp_y_1-4","pvp_y_1-2","pvp_y_1-3","pvp_y_1-5";
if($arena_debug) debugmes "PvP Dispell Maps loaded: "+(getarraysize($@disppvp$)-1);
// ================== Normal Maps ================//
setarray $@npvp$[1],"pvp_y_2-1","pvp_y_2-4","pvp_y_2-2","pvp_y_2-3","pvp_y_2-5";
if($arena_debug) debugmes "PvP Normal Maps loaded: "+(getarraysize($@npvp$)-1);
// ================== Deathmatch Maps ================//
setarray $@dmpvp$[1],"pvp_y_3-1","pvp_y_3-4","pvp_y_3-2","pvp_y_3-3","pvp_y_3-5";
if($arena_debug) debugmes "PvP DM Maps loaded: "+(getarraysize($@dmpvp$)-1);
// ========= 2vs2 Party PvP ==========//
setarray $@pt2pvp$[1],"pvp_y_4-1","pvp_y_4-4","pvp_y_4-2","pvp_y_4-3","pvp_y_4-5";
if($arena_debug) debugmes "Party PvP 2vs2 Maps loaded: "+(getarraysize($@pt2pvp$)-1);
// ========= 3vs3 Party PvP ==========//
setarray $@pt3pvp$[1],"pvp_y_5-1","pvp_y_5-4","pvp_y_5-2","pvp_y_5-3","pvp_y_5-5";
if($arena_debug) debugmes "Party PvP 3vs3 Maps loaded: "+(getarraysize($@pt3pvp$)-1);
// ========= 4vs4 Party PvP ==========//
setarray $@pt4pvp$[1],"pvp_y_6-1","pvp_y_6-4","pvp_y_6-2","pvp_y_6-3","pvp_y_6-5";
if($arena_debug) debugmes "Party PvP 4vs4 Maps loaded: "+(getarraysize($@pt4pvp$)-1);
// ========= 5vs5 Party PvP ==========//
setarray $@pt5pvp$[1],"pvp_y_7-1","pvp_y_7-4","pvp_y_7-2","pvp_y_7-3","pvp_y_7-5";
if($arena_debug) debugmes "Party PvP 5vs5 Maps loaded: "+(getarraysize($@pt5pvp$)-1);
// ======= Party Usage ==========
// 1 = No parties Allowed
// 2 = Parties allowed
setarray .disp_pty[1],2,2,2,2,2;
setarray .n_pty[1],2,2,2,2,2;
setarray .dm_pty[1],2,2,2,2,2;
// ============= Class Limitation ========//
// * Values:
// 0 = No 3rd Job Allowed
// 1 = Only 3rd Job Allowed
// 2 = All
// --------------------------------------
// * Dispell PvP Rooms
setarray $@class_disp[1],2,2,2,2,2;
// * Normal PvP Rooms
setarray $@class_n[1],2,2,2,2,2;
// * Deathmatch PvP Rooms
setarray $@class_dm[1],2,2,2,2,2;
// * Party PvP 2vs2 Rooms
setarray $@class_p2[1],2,2,2,2,2;
// * Party PvP 3vs3 Rooms
setarray $@class_p3[1],2,2,2,2,2;
// * Party PvP 4vs4 Rooms
setarray $@class_p4[1],2,2,2,2,2;
// * Party PvP 5vs5 Rooms
setarray $@class_p5[1],2,2,2,2,2;
//==============================
// ===== Map Rotation ====== //
// 1 = Fixed Map (Always Default)
// 2 = Random each Day
// 3 = Each specific Day an specific Map
set .pvp_map,3;
// ===== 1: Fixed Map (Always Default) ======== //
// Type the Index of $@<Type>pvp$ for the Map to be used
set $disppvp_map,2;
set $npvp_map,3;
set $dmpvp_map,1;
set $pt2pvp_map,4;
set $pt3pvp_map,4;
set $pt4pvp_map,4;
set $pt5pvp_map,4;
	
// ===== 3: Specific Day ======== //
if(.pvp_map == 3) {
	//     > Chose your time in the same row as the $@pvp_maps$ order
	//     > Values for the Array:
	//       MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
	// ============================== //
	setarray $@disppvp_day[1],MONDAY,MONDAY,WEDNESDAY,SATURDAY,TUESDAY;
	setarray $@npvp_day[1],TUESDAY,SATURDAY,WEDNESDAY,THURSDAY,MONDAY;
	setarray $@dmpvp_day[1],WEDNESDAY,MONDAY,SUNDAY,TUESDAY,FRIDAY;
	setarray $@pt2pvp_day[1],FRIDAY,TUESDAY,SATURDAY,MONDAY,TUESDAY;
	setarray $@pt3pvp_day[1],FRIDAY,TUESDAY,SATURDAY,MONDAY,TUESDAY;
	setarray $@pt4pvp_day[1],FRIDAY,TUESDAY,SATURDAY,MONDAY,TUESDAY;
	setarray $@pt5pvp_day[1],FRIDAY,TUESDAY,SATURDAY,MONDAY,TUESDAY;
}
// ======== Mapflags ======== //
// If you want to add more mapflags, 
// add them before the last two, which are for allowing party or not
setarray .pvp_mf[0],0, //mf_nomemo
					 1, //mf_noteleport
					 2, //mf_nosave
					 3, //mf_nobranch
					 4, //mf_nopenalty
					 5, //mf_nozenypenalty
					11, //mf_notrade
					13, //mf_nowarp
					22, //mf_nogo
					33, //mf_noreturn
					34, //mf_nowarpto
					35, //mf_nightmaredrop
					38, //mf_nodrop
					41, //mf_novending
					44, //mf_noexppenalty
					14, //mf_partylock
					 7; //mf_pvp_noparty
if($arena_debug) debugmes "PvP Mapflags loaded: "+(getarraysize(.pvp_mf)-1);
function writeStats;
if($arena_debug) debugmes "Write Stats Function loaded.";
function getBounty;
function writeBounty;
if($arena_debug) debugmes "Bounty Function loaded.";
function PVP_BTY_CMAP;
if($arena_debug) debugmes "Custom Bounty Map Function loaded.";
stopnpctimer;
set .time,getnpctimer(0);
if($arena_debug) debugmes "Loading Time: "+.time+" seconds.";
freeloop(0);
set $@pvpgvg_load,0;

OnClock0001:
freeloop(1);
setarray .@pre$[0],"disp","n","dm","pt2","pt3","pt4","pt5";
if(.pvp_map == 2) {
	if($arena_debug) debugmes "Random Map Rotation:";
	announce "[Arena Master]: New Day, new Battlefield!!! Random Map rotation has been loaded!",bc_all;
	for ( set .@l,0; .@l < getarraysize(.@pre$); set .@l,.@l + 1) {
		if($arena_debug) debugmes ".@pre$ = "+.@pre$[.@l];
		if($arena_debug) debugmes "Array Size: $@"+.@pre$[.@l]+"pvp$ = "+getarraysize(getd("$@"+.@pre$[.@l]+"pvp$"));
		
		setd("$"+.@pre$[.@l]+"pvp_map"),rand(1,getarraysize(getd("$@"+.@pre$[.@l]+"pvp$"))-1);
		
		if($arena_debug) debugmes "$"+.@pre$[.@l]+"pvp_map = "+getd("$"+.@pre$[.@l]+"pvp_map");
		if($arena_debug) debugmes "$@"+.@pre$[.@l]+"pvp$["+getd("$"+.@pre$[.@l]+"pvp_map")+"] == "+getd("$@"+.@pre$[.@l]+"pvp$["+getd("$"+.@pre$[.@l]+"pvp_map")+"]");
	
		if(!getd("$"+.@pre$[.@l]+"pvp_last") || getd("$"+.@pre$[.@l]+"pvp_last") != getd("$"+.@pre$[.@l]+"pvp_map")) { 
			setd("$"+.@pre$[.@l]+"pvp_last"),getd("$"+.@pre$[.@l]+"pvp_map");
			mapannounce getd("$@"+.@pre$[.@l]+"pvp$["+getd("$"+.@pre$[.@l]+"pvp_last")+"]"),"[Arena Master]: Duo the map change I will move every player from the current map to the new map in 3 seconds!",bc_all,0xFF0000;
			sleep 3000;
			mapwarp getd("$@"+.@pre$[.@l]+"pvp$["+getd("$"+.@pre$[.@l]+"pvp_last")+"]"),getd("$@"+.@pre$[.@l]+"pvp$["+getd("$"+.@pre$[.@l]+"pvp_map")+"]"),0,0;
		}
		
	}
} else if(.pvp_map == 3) {
	if($arena_debug) debugmes "Specific Day an Specific Map:";
	announce "[Arena Master]: New Day, new Battlefield!!! Map selection depending on the day has been loaded!",bc_all;
	for ( set .@l,0; .@l < getarraysize(.@pre$); set .@l,.@l + 1) {
		if($arena_debug) debugmes ".@pre$ = "+.@pre$[.@l];
		if($arena_debug) debugmes "Previous Map: "+getd("$"+.@pre$[.@l]+"pvp_map");
		// Saving the previous Map
		if($arena_debug) debugmes "Saving Previous Map: "+getd("$@"+.@pre$[.@l]+"pvp_last");		
		setd("$"+.@pre$[.@l]+"pvp_last"),getd("$"+.@pre$[.@l]+"pvp_map");	
		
		for ( set .@t,1; .@t < getarraysize(getd("$@"+.@pre$[.@l]+"pvp$")); set .@t,.@t + 1) {
			if($arena_debug) debugmes "Checking Day of ["+.@t+"]: "+getd("$@"+.@pre$[.@l]+"pvp_day["+.@t+"]")+" == "+gettime(DT_DAYOFWEEK);			
			if(getd("$@"+.@pre$[.@l]+"pvp_day["+.@t+"]") == gettime(DT_DAYOFWEEK)) {
				setd("$"+.@pre$[.@l]+"pvp_map"),.@t;
				if($arena_debug) debugmes "Day Check passed: "+getd("$"+.@pre$[.@l]+"pvp_map")+" == "+.@t;
				mapannounce getd("$@"+.@pre$[.@l]+"pvp$["+getd("$"+.@pre$[.@l]+"pvp_last")+"]"),"[Arena Master]: Duo the map change I will move every player from the current map to the new map in 3 seconds!",bc_all,0xFF0000;
				sleep 3000;
				mapwarp getd("$@"+.@pre$[.@l]+"pvp$["+getd("$"+.@pre$[.@l]+"pvp_last")+"]"),getd("$@"+.@pre$[.@l]+"pvp$["+getd("$"+.@pre$[.@l]+"pvp_map")+"]"),0,0;
			}
		}
	}
}
if($arena_debug) debugmes "OnClock0001 and/or OnInit loaded, Auto Mapflag adding now....";
// ======= Auto Mapflag Adding ===============//
// ======= Dispell PvP ===============//
if($arena_debug) debugmes "Mapflag set at "+$@disppvp$[$disppvp_map] + " initiate...";
for ( set .@mf,0; .@mf < getarraysize(.pvp_mf); set .@mf,.@mf + 1 ) {
	if((.pvp_mf[.@mf] == 14 || .pvp_mf[.@mf] == 7) && .disp_pty[.@m] == 2) continue;
	setmapflag $@disppvp$[$disppvp_map],.pvp_mf[.@mf];
	if($disppvp_map != $disppvp_last) 
		removemapflag $@disppvp$[$disppvp_last],.pvp_mf[.@mf];
	if($arena_debug) debugmes "Mapflag "+ .pvp_mf[.@mf] +" set at "+$@disppvp$[$disppvp_map] + " complete";
}
if($arena_debug) debugmes "PvP Dispell Mapflags loaded.";
// ======= Normal PvP ===============//
if($arena_debug) debugmes "Mapflag set at "+$@npvp$[$npvp_map] + " initiate...";
for ( set .@mf,0; .@mf < getarraysize(.pvp_mf); set .@mf,.@mf + 1 ) {
	if((.pvp_mf[.@mf] == 14 || .pvp_mf[.@mf] == 7) && .n_pty[.@m] == 2) continue;
	setmapflag $@npvp$[$npvp_map],.pvp_mf[.@mf];
	if($npvp_map != $npvp_last) 
		removemapflag $@npvp$[$npvp_last],.pvp_mf[.@mf];
	if($arena_debug) debugmes "Mapflag "+ .pvp_mf[.@mf] +" set at "+$@npvp$[$npvp_map] + " complete";
}
if($arena_debug) debugmes "PvP Normal Mapflags loaded.";		
// ======= Deathmatch PvP ===============//
if($arena_debug) debugmes "Mapflag set at "+$@dmpvp$[$dmpvp_map] + " initiate...";
for ( set .@mf,0; .@mf < getarraysize(.pvp_mf); set .@mf,.@mf + 1 ) {
	if((.pvp_mf[.@mf] == 14 || .pvp_mf[.@mf] == 7) && .dm_pty[.@m] == 2) continue;
	setmapflag $@dmpvp$[$dmpvp_map],.pvp_mf[.@mf];
	if($dmpvp_map != $dmpvp_last) 
		removemapflag $@dmpvp$[$dmpvp_last],.pvp_mf[.@mf];
	if($arena_debug) debugmes "Mapflag "+ .pvp_mf[.@mf] +" set at "+$@dmpvp$[$dmpvp_map] + " complete";
}
if($arena_debug) debugmes "PvP DM Mapflags loaded.";	
// ============== Party 2vs2 =================//
if($arena_debug) debugmes "Mapflag set at "+$@pt2pvp$[$pt2pvp_map] + " initiate...";
for ( set .@mf,0; .@mf < getarraysize(.pvp_mf); set .@mf,.@mf + 1 ) {
	if(.pvp_mf[.@mf] == 14 || .pvp_mf[.@mf] == 7) continue;
	setmapflag $@pt2pvp$[$pt2pvp_map],.pvp_mf[.@mf];
	if($pt2pvp_map != $pt2pvp_last) 
		removemapflag $@pt2pvp$[$pt2pvp_last],.pvp_mf[.@mf];
	if($arena_debug) debugmes "Mapflag "+ .pvp_mf[.@mf] +" set at "+$@pt2pvp$[$pt2pvp_map] + " complete";
}
if($arena_debug) debugmes "Party 2v2 PvP Mapflags loaded.";
// ============== Party 3vs3 =================//
if($arena_debug) debugmes "Mapflag set at "+$@pt3pvp$[$pt3pvp_map] + " initiate...";
for ( set .@mf,0; .@mf < getarraysize(.pvp_mf); set .@mf,.@mf + 1 ) {
	if(.pvp_mf[.@mf] == 14 || .pvp_mf[.@mf] == 7) continue;
	setmapflag $@pt3pvp$[$pt3pvp_map],.pvp_mf[.@mf];
	if($pt3pvp_map != $pt3pvp_last) 
		removemapflag $@pt3pvp$[$pt3pvp_last],.pvp_mf[.@mf];
	if($arena_debug) debugmes "Mapflag "+ .pvp_mf[.@mf] +" set at "+$@pt3pvp$[$pt3pvp_map] + " complete";
}
if($arena_debug) debugmes "Party 3v3 PvP Mapflags loaded.";
// ============== Party 4vs4 =================//
if($arena_debug) debugmes "Mapflag set at "+$@pt4pvp$[$pt4pvp_map] + " initiate...";
for ( set .@mf,0; .@mf < getarraysize(.pvp_mf); set .@mf,.@mf + 1 ) {
	if(.pvp_mf[.@mf] == 14 || .pvp_mf[.@mf] == 7) continue;
	setmapflag $@pt4pvp$[$pt4pvp_map],.pvp_mf[.@mf];
	if($pt4pvp_map != $pt4pvp_last) 
		removemapflag $@pt4pvp$[$pt4pvp_last],.pvp_mf[.@mf];
	if($arena_debug) debugmes "Mapflag "+ .pvp_mf[.@mf] +" set at "+$@pt4pvp$[$pt4pvp_map] + " complete";
}
if($arena_debug) debugmes "Party 4v4 PvP Mapflags loaded.";
// ============== Party 5vs5 =================//
if($arena_debug) debugmes "Mapflag set at "+$@pt5pvp$[$pt5pvp_map] + " initiate...";
for ( set .@mf,0; .@mf < getarraysize(.pvp_mf); set .@mf,.@mf + 1 ) {
	if(.pvp_mf[.@mf] == 14 || .pvp_mf[.@mf] == 7) continue;
	setmapflag $@pt5pvp$[$pt5pvp_map],.pvp_mf[.@mf];
	if($pt5pvp_map != $pt5pvp_last) 
		removemapflag $@pt5pvp$[$pt5pvp_last],.pvp_mf[.@mf];
	if($arena_debug) debugmes "Mapflag "+ .pvp_mf[.@mf] +" set at "+$@pt5pvp$[$pt5pvp_map] + " complete";
}
freeloop(0);
if($arena_debug) debugmes "Party 5v5 PvP Mapflags loaded.";
if($arena_debug) debugmes "PvP Mapflags loaded.";
end;

OnPCLogoutEvent:
if($@pvptable) {
	if(@killct) writeStats(@killct,1);
	if($@bty_type) writeBounty(@sphr,getcharid(0));
}
end;

OnPCKillEvent:
if(PVP_BTY_CMAP() == 0) end;
set .@v,killedrid;
mapannounce strcharinfo(3),strcharinfo(0) + " has killed "+rid2name(.@v)+"!!!!!",0;
set @killct,@killct + 1;
if($arena_debug) {
	debugmes "[Arena]: Showing debug messages";

	for ( set .@l,0; .@l < getarraysize($@sphree_kills); set .@l,.@l + 1) 
		debugmes "[Arena]: Sphree Kills Array - Index #"+.@l+": "+$@sphree_kills[.@l];
	for ( set .@l,0; .@l < getarraysize($@sphree_names$); set .@l,.@l + 1) 
		debugmes "[Arena]: Sphree Names Array - Index #"+.@l+": "+$@sphree_names$[.@l];
	for ( set .@l,0; .@l < getarraysize($@sphree_wav$); set .@l,.@l + 1) 
		debugmes "[Arena]: Sphree WAV Names Array - Index #"+.@l+": "+$@sphree_wav$[.@l];

	debugmes "[Arena]: Kill Counter Check and announces...";
	debugmes "[Arena]: Kills: "+@killct+", Arraysize $@sphree_kills: "+getarraysize($@sphree_kills)+", last sphree kills: "+$@sphree_kills[getarraysize($@sphree_kills)-1];
}
// Checking if the kill counter is below the last sphree number
if(@killct <= $@sphree_kills[getarraysize($@sphree_kills)-1]) {
	if($arena_debug) debugmes "[Arena]: Kills is less than last sphree kill.";
	// Looping through the array to check for the sphree kill
	for ( set .@k,0; .@k < getarraysize($@sphree_kills); set .@k,.@k + 1) {
		if($arena_debug) debugmes "[Arena]: Array Index:"+.@k+", Array Content: "+$@sphree_kills[.@k];
		if(@killct == $@sphree_kills[.@k]) {
			if($arena_debug) debugmes "[Arena]: "+@killct+", "+$@sphree_kills[.@k];
			mapannounce strcharinfo(3),strcharinfo(0) + " is now on "+$@sphree_names$[.@k]+"!!!!",0;
			soundeffectall $@sphree_wav$[.@k]+".wav",0,strcharinfo(3);
			setd("@"+$@sphree_rank$[.@k]),getd("@"+$@sphree_rank$[.@k]) + 1; // Ranking Variable
			break;
		}
	}
// Checking if the kill counter is above the last sphree number
} else if(@killct >= $@sphree_kills[getarraysize($@sphree_kills)-1]) {
	mapannounce strcharinfo(3),strcharinfo(0) + " is now on "+$@sphree_names$[getarraysize($@sphree_names$)-1]+"!!!!",0;
	soundeffectall $@sphree_wav$[getarraysize($@sphree_wav$)-1]+".wav",0,strcharinfo(3);
}
if($arena_debug) debugmes "[Arena]: Check Done";
set @prokill,@prokill + 1;

set @mkillct,@mkillct + 1;
deltimer strnpcinfo(0)+"::OnMultiSpan";
addtimer $@multi,strnpcinfo(0)+"::OnMultiSpan";
if(@mkillct >= 4) sleep2 500; // Slowing down multi-kill sound effects
if(@mkillct == 2) {
	mapannounce strcharinfo(3),strcharinfo(0) + " has made an Double Kill!!!!",0;
	soundeffectall "doublekill.wav",0,strcharinfo(3);
} else if(@mkillct == 3) {	
	mapannounce strcharinfo(3),strcharinfo(0) + " has made an Triple Kill!!!!",0;
	soundeffectall "triplekill.wav",0,strcharinfo(3);
} else if(@mkillct >= 4) {
	mapannounce strcharinfo(3),strcharinfo(0) + " has made an Ultra Kill!!!!",0;
	soundeffectall "ultrakill.wav",0,strcharinfo(3);
}
if($@pvptable && $@bty_type) {
	if(@killct >= $@bty_bon_start) {
		if(!@hunt) {
			announce "Bounty Hunter: Oh My God!!! Someone stop "+strcharinfo(0)+" please!!! I'll give you a bonus of "+($@bty_bonus*$@bty_bonus_m)+" " + ( ($@bty_type == 1)?"Zeny": ( ($@bty_type == 2)?$@bty_cvard$:"Bounty Points") ) + " on "+ ( (Sex)?"his":"her") +" head!!",0;
			sleep2 2500;
			setarray .@pvp_pre$[0],"disp","n","dm","pt2","pt3","pt4","pt5";
			setarray .@pvp_n$[0],"Dispell","Normal","Deathmatch","Party 2vs2","Party 3vs3","Party 4vs4","Party 5vs5";
			for ( set .@l,0; .@l < getarraysize(.@pvp_pre$); set .@l,.@l + 1)
				for ( set .@m,1; .@m < getarraysize(getd("$@"+.@pvp_pre$[.@l]+"pvp$")); set .@m,.@m + 1)
					if(strcharinfo(3) == getd("$@"+.@pvp_pre$[.@l]+"pvp$["+.@m+"]")) {
						announce "Bounty Hunter: "+( (Sex)?"He":"She")+" is in the ["+.@pvp_n$[.@l]+" Arena]!!!",0;
						break;
					}
			for ( set .@m,0; .@m < getarraysize($@gvgr$); set .@m,.@m + 1)
				if(strcharinfo(3) == $@gvgr$[.@m]) {
					announce "Bounty Hunter: "+( (Sex)?"He":"She")+" is in the [Guild Room "+(.@m+1)+"]!!!",0;
					break;
				}
				
			if($@bty_cmap) 
				for ( set .@m,0; .@m < getarraysize($@bty_cmaps$); set .@m,.@m + 1)
					if(compare(strcharinfo(3),$@bty_cmaps$[.@m]) == 1) {
						announce "Bounty Hunter: "+( (Sex)?"He":"She")+" is on the map ["+$@bty_cmaps$[.@m]+"]!!!",0;
						break;
					}

			set @hunt,1;
		}
		set @sphr,@killct + $@bty_bonus;
	}
	if(query_sql("SELECT `bounty` FROM `arena_master` WHERE `char_id` = '"+getcharid(0,rid2name(.@v))+"'",.@bty) != 0)
		getBounty(.@bty,.@v);
	writeBounty(@sphr,getcharid(0));
}
if(@killct%5==0) message strcharinfo(0),"Defeated Players: "+@killct;
end;

OnPCDieEvent:
if(PVP_BTY_CMAP() == 0) end;
// ===== Should affects you only, if you warped to an player via @warpto/@goto or were @recall-ed
// ==== so you won't recieve a value for @map, which is required for the respawn in DM Maps
if(!@dm) 
	if(strcharinfo(3) == $@dmpvp$[$dmpvp_map]) 
		set @dm,1;

if($@pvptable) {
	writeStats(@killct,1);
	if($@bty_type) writeBounty(@sphr,getcharid(0));
}
set @sphr,0;
set @killct,0;

if(@dm) {
	if($arena_debug) debugmes "KillerRid: "+killerrid+", KilledRid: "+killedrid;
	sleep2 1300;
	if(killerrid != 0 && killerrid != getcharid(3)) {
		warp strcharinfo(3),0,0;
		if(HP == 0) atcommand "@alive";
		percentheal 100,100; 
	} else warp "SavePoint",0,0;
}
set @hunt,0;
end;

OnMultiSpan:
set @mkillct,0;
end;

	function	writeStats	{
	if(!$@pvptable) return; // To be save :O
	set .@k,getarg(0); // Kills
	set .@d,getarg(1); // Deaths
	if(query_sql("SELECT `char_id` FROM `arena_master` WHERE `char_id` = '"+getcharid(0)+"'",.@c_id) != 0) {
		if(.@k > query_sql("SELECT `hstreak` FROM `arena_master` WHERE `char_id` = '"+getcharid(0)+"'",.@hstreak)) set .@hstreak,.@k;
		// Adding General Kill/Death/Highstreak Values
		query_sql "UPDATE `arena_master` SET `kills` = `kills` + "+.@k+" , `death` = `death` + "+.@d+" , `hstreak` = '"+.@hstreak+"' , `killer` = `killer` + "+@killer+" , `domi` = `domi` + "+@domi+" , `mega` = `mega` + "+@mega+" , `unstopp` = `unstopp` + "+@unstopp+" , `wicked` = `wicked` + "+@wicked+" , `monster` = `monster` + "+@monster+" , `godlike` = `godlike` + "+@godlike+" , `holys` = `holys` + "+@holys+" WHERE `char_id` = '"+getcharid(0)+"'";
		// Reseting Ranking Variables
		for ( set .@l,0; .@l < getarraysize($@sphree_rank$); set .@l,.@l + 1)
			setd("@"+$@sphree_rank$[.@l]),0;
		
	} else 
		query_sql "INSERT INTO `arena_master` ( `char_id` , `kills` , `death` , `hstreak` , `killer` , `domi` , `mega` , `unstopp` , `wicked` , `monster` , `godlike` , `holys` ) VALUES ( '"+getcharid(0)+"' , '"+@k+"' , '"+@d+"' , '"+@k+"' , '"+@killer+"' , '"+@domi+"' , '"+@mega+"' , '"+@unstopp+"' , '"+@wicked+"' , '"+@monster+"' , '"+@godlike+"' , '"+@holys+"' )";
	return; 
	}
	
	function	getBounty	{
	// getarg(0) == Last Sphree of Victim
	// getarg(1) == RID of Victim
	if(!getarg(0)) return; // No Sphree = No Bounty ;I
	// Calculation:
	// Exchange the */+ with the symbol you want,
	// but note that it can be exploited if you change it too much,
	// like 8 (Sphree Index)*$@bty_price (Custom Points,5) = 40 Custom Points
		
		// If Bounty Bonus Multiplier is active
		if($@bty_bonus_multi == 1) 
			set .@bty_b_gain,$@bty_bonus*$@bty_bonus_m;
		else
			set .@bty_b_gain,$@bty_bonus;
			
		if(getarg(0) >= $@bty_bon_start) 
			mapannounce strcharinfo(3),"Bounty Hunter: "+strcharinfo(0)+" has ended "+rid2name(getarg(1))+"'s Spree and was rewarded with additional "+.@bty_b_gain+" " + ( ($@bty_type == 1)?"Zeny": ( ($@bty_type == 2)?$@bty_cvard$:"Bounty Points") ),0;
		
		switch($@bty_type) { // Bounty Reward Type
			case 1: // Zeny
			set Zeny,Zeny + ($@bty_price*getarg(0)) + .@bty_b_gain;
			dispbottom "Bounty Hunter: You have recieved "+($@bty_price*getarg(0)+.@bty_b_gain)+" Zeny for killing "+rid2name(getarg(1))+".";
			break;
			
			case 2: // Custom Points
			setd(""+$@bty_cvarn$),getd(""+$@bty_cvarn$) + ($@bty_price+getarg(0)) + .@bty_b_gain;
			dispbottom "Bounty Hunter: You have recieved "+($@bty_price+getarg(0)+.@bty_b_gain)+" "+$@bty_cvard$+" for killing "+rid2name(getarg(1))+".";
			dispbottom "You have now "+getd(""+$@bty_cvarn$)+" "+$@bty_cvard$+".";
			break;
			
			case 3: // Bounty Points
			query_sql "UPDATE `arena_master` SET `bounty_pts` = `bounty_pts` + "+($@bty_price+getarg(0)+.@bty_b_gain)+" WHERE `char_id` = '"+getcharid(0)+"'";
			dispbottom "Bounty Hunter: You have recieved "+($@bty_price+getarg(0)+.@bty_b_gain)+" Bounty Points for killing "+rid2name(getarg(1))+".";
			break;
		}
		writeBounty(0,getcharid(0,rid2name(getarg(1))));
		return;
	}
	
	function	writeBounty	{
	// getarg(0) == Kills
	// getarg(1) == Character ID
		query_sql "UPDATE `arena_master` SET `bounty` = '"+getarg(0)+"' WHERE `char_id` = '"+getarg(1)+"'";
		return;
	}
	
	function	PVP_BTY_CMAP	{
		// Regular Maps in $@<.>pvp$ & $@gvgr$ array
		setarray .@pvp_pre$[0],"disp","dm","n","pt2","pt3","pt4","pt5";
		for ( set .@l,0; .@l < getarraysize(.@pvp_pre$); set .@l,.@l + 1)
			for ( set .@m,1; .@m < getarraysize(getd("$@"+.@pvp_pre$[.@l]+"pvp$")); set .@m,.@m + 1)
				if(strcharinfo(3) == getd("$@"+.@pvp_pre$[.@l]+"pvp$["+.@m+"]"))
					return 1;
		
		for ( set .@m,0; .@m < getarraysize($@gvgr$); set .@m,.@m + 1)
				if(strcharinfo(3) == $@gvgr$[.@m])
					return 1;
		
		// Mapflag
		if($@bty_cmap_type == 1)
			if(getmapflag(strcharinfo(3),mf_pvp) == 1 && getmapflag(strcharinfo(3),mf_gvg) == 1) 
				return 1;

		// Custom Maps
		else if($@bty_cmap_type == 2) {
			// One Map
			if(getarraysize($@bty_cmaps$) == 1)
				if(compare(strcharinfo(3),$@bty_cmaps$[0]) == 1)
					return 1;

			// Array	
			else if(getarraysize($@bty_cmaps$) > 1)
				for ( set .@m,0; .@m < getarraysize($@bty_cmaps$); set .@m,.@m + 1)
					if(compare(strcharinfo(3),$@bty_cmaps$[.@m]) == 1)
						return 1;
		}
		return 0;
	}
// =========== End of Function ==========
}

and

CREATE TABLE `arena_master` (
  `char_id` int(10) unsigned NOT NULL, 
  `kills` smallint(5) unsigned DEFAULT '0', 
  `death` smallint(5) unsigned DEFAULT '0', 
  `hstreak` smallint(5) unsigned DEFAULT '0', 
  `bounty` smallint(5) unsigned DEFAULT '0',
  `bounty_pts` smallint(5) unsigned DEFAULT '0',
  `killer` smallint(5) unsigned DEFAULT '0', 
  `domi` smallint(5) unsigned DEFAULT '0', 
  `mega` smallint(5) unsigned DEFAULT '0', 
  `unstopp` smallint(5) unsigned DEFAULT '0', 
  `wicked` smallint(5) unsigned DEFAULT '0', 
  `monster` smallint(5) unsigned DEFAULT '0', 
  `godlike` smallint(5) unsigned DEFAULT '0', 
  `holys` smallint(5) unsigned DEFAULT '0',
PRIMARY KEY (`char_id`)
) ENGINE=MyISAM;

 

erro.jpg

Link to comment
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...