Jump to content
  • 0

need support for ranking system


Question

Posted
arlandria,169,171,6	script	Battle Arena#Prontera	4_BOARD3,{
function View_Rankings;
function Mail_Reward;
	goto L_Talk;
end;

OnInit:
	///////////////////////////////
	//      General Settings
	///////////////////////////////
	// [1] Enable Reward when Player is killed
	// [2] Item Reward when Player is killed
	// [4] Variable/Points Reward when Player is killed
	// [8] Enable Item Reward Chance [will override option 2]
	// [16] Enable IP Check
	//		- Rewards and points will not be credited
	//		  if a member has the same IP
	// [32] Enable Gepard Check
	//		- Rewards and points will not be credited
	//		  if a member has the same Unique ID
	// [64] Enable Announce Kill [If you have existing pvp announcer, No need to enable this].
	
	
	//.Options = 4|32|64;
	.Options = 4; //ENABLE TESTING PROCESS
	
	// PVP RANKING STATUE
	.pvp_statue = 1; //Enable Statue = 1 | Disable Statue = 0
	
	////////////////////////////////////////
	// [0] 0 to Disable
	// [1] Enable Points on Restricted Map
	////////////////////////////////////////
	.BattleOption = 1;
	
	// Reward Chance (%)
	// Only when Reward Chance is enabled
	.chance = 10;
	
	if ( .Options&1 && (!.Options&2) && (!.Options&4) ) 
		debugmes "[Error]: Please choose either item or variable reward for MvP Reward function. Else, disable Option 1";
	
	//////////////////////////////////////////
	// Ladder Ranking and Shop
	//////////////////////////////////////////
	// [1] - Enable Daily Ranking
	// [2] - Enable Weekly Ranking 
	// [4] - Enable Monthly Ranking 
	// [8] - Enable All Time Ranking
	// [16] - Enable My Enemy Ranking
	// [32] - Enable PvP Item Shop
	// [64] - Enable PvP Point Shop
	// [128] - Auto-clear ultimate_pvp_ranker table every month
	//		  This is recommended to clear up some space
	//		  in your sql database.
	.Opt = 1|2|4|8|16;
	
	//////////////////////////////////////////
	// Ladder Auto-reward Settings
	//////////////////////////////////////////
	// [1] - Enable Daily Reward
	// [2] - Enable Weekly Reward
	// [4] - Enable Monthly Reward
	.RewardOpt = 0;

	// Item Reward
	// Can add 1 or more..
	// "<item id>:<amount>{,<item id>:<amount>{,etc..}}"
	.item$ = "501:1";
	
	// Reward Chance (%)
	// Only when Reward Chance is enabled
	.chance = 10;

	// Item Shop data
	// item id to use to purchase in Item Shop.
	// NOTE: !!! Edit the "PvPItemShop" item shop at the end of the script. !!! <-------------- NOTE !!!!
	.item_shop_id = 501;

	// Variable/Points Reward
	// This points will also be used for point shop
	// NOTE: !!! Edit the "PvPPointShop" points shop at the end of the script. !!! <-------------- NOTE !!!!
	
	.var$[0] = "#BATTLEPOINTS"; 	// Variable (Account bound)
	.var$[1] = "Battle Points";			// Variable Name 
	.var$[2] = "1";						// Amount Gained
	
	.weapon_ranking = 0; //Enable Statue = 1 | Disable Statue = 0
	.var$[3] = "WEAPON_RANK_POINTS"; // Variable BP (Character bound)
	.var$[4] = "Weapon Rank Ponts";  // Variable Name 
	.var$[5] = "1"; 				 // Amount Gained

	// GM Level to not trigger the OnNPCKillEvent (when boss monster is killed)
	// Set to 100 to let GM trigger the OnNPCKillEvent for testing purposes
	// default = 60;
	// NOTE: Don't go below 60 if you don't know what you're doing.
	.gmlevel = 100;

	// Top x Count
	.top_count[0] = 20; // Daily
	.top_count[1] = 20; // Weekly
	.top_count[2] = 20; // Monthly
	.top_count[3] = 20; // All Time
	.top_count[4] = 10; // My enemies

	// Top X Hunters reward limit here..
	.top[0] = 3; // 3 Players will be rewarded daily
	.top[1] = 5; // 5 Players will be rewarded weekly
	.top[2] = 10;  // 10 Players will be rewarded monthly

	// Top x Reward list..
	// NOTE : only up to 5 items can be rewarded (RODex Compatibility)
	
	// For daily reward
	setarray .reward_daily$, // "<id,amount>{,<id,amount>{,etc..}}|<zeny>"
		"7711,10|75000", // Top 1 Reward
		"7711, 5|50000", // Top 2 Reward
		"7711, 3|25000"; // Top 3 Reward... you can add more from here.. just follow the pattern
	
	// For weekly reward
	setarray .reward_weekly$, // "<id,amount>{,<id,amount>{,etc..}}|<zeny>"
		"7711,25|100000", 	// Top 1 Reward
		"7711,15|75000", 	// Top 2 Reward
		"7711, 7|50000", 	// Top 3 Reward
		"7711, 5|40000", 		// Top 4 Reward
		"7711, 3|30000"; 		// Top 5 Reward... you can add more from here.. just follow the pattern
	
	// For monthly reward
	setarray .reward_monthly$, // "<id,amount>{,<id,amount>{,etc..}}|<zeny>"
		"7711,50|100000", // Top 1 Reward
		"7711,25|75000", // Top 2 Reward
		"7711,20|50000", // Top 3 Reward
		"7711,15|40000",  // Top 4 Reward
		"7711, 10|30000",  // Top 5 Reward
		"7711, 10|30000",  // Top 6 Reward
		"7711, 5|20000",   // Top 7 Reward
		"7711, 5|15000",   // Top 8 Reward
		"7711, 5|15000",   // Top 9 Reward
		"7711, 5|10000";   // Top 10 Reward... you can add more from here.. just follow the pattern
	
	// Disabled Maps enabled
	// 06guild_% maps
	// castle maps
	// instanced maps
	.disablemaps = false; //true | false

	if (.disablemaps)
		//setarray .disabled_map$, "06guild_%", "%g_cas%", "%@%";
		setarray .disabled_map$, "prontera", "06guild_%", "%g_cas%", "%@%";
	else 
		.disabled_map$ = "%@%";
	
	for (.@i = 0; .@i < getarraysize(.disabled_map$); .@i++)
		.disabled_map_query$ += "AND `map` NOT LIKE '"+escape_sql(.disabled_map$[.@i])+"' ";
		
	setarray .ArenaMaps$, "guild_vs3",
					"pvp_y_1-2",
					"pvp_y_1-3",
					"pvp_y_1-4",
					"pvp_y_1-5";
					//"1@colo",		
					//"mocg_cas01",
					//"mocg_cas02",
					//"mocg_cas03",
					//"mocg_cas04",
					//"mocg_cas05";
	set .lens,	getarraysize(.ArenaMaps$);
	
	for(set(.a,0);.a<.lens;set(.a,.a+1)) {
		setmapflag .ArenaMaps$[.a],	mf_loadevent ;
		set .tmp$  ,.tmp$+.ArenaMaps$[.a]+",";
	}

	//query_sql("DROP TABLE IF EXISTS `ultimate_pvp_ranker`");
	.@sql$ += "CREATE TABLE IF NOT EXISTS `ultimate_pvp_ranker` (";
	.@sql$ += "`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,";
	.@sql$ += "`char_id` INT(11) UNSIGNED NOT NULL DEFAULT '0',";
	.@sql$ += "`killed_char_id` INT(11) UNSIGNED NOT NULL DEFAULT '0',";
	.@sql$ += "`map` VARCHAR(30) NOT NULL DEFAULT '',";
	.@sql$ += "`time` TIMESTAMP NOT NULL DEFAULT NOW(),";
	.@sql$ += "PRIMARY KEY (`id`)) ENGINE=InnoDB";
	query_sql(.@sql$);
	
	//waitingroom "Battle Arena Ranking", 0;
		
	OnHour00:
		query_sql("SELECT YEAR(CURDATE()), MONTH(CURDATE()), WEEKOFYEAR(CURDATE()), DAY(CURDATE())", .year, .month, .week, .day);
		
		if ( $UMR_DAY != .day && .RewardOpt&1 ) {
		L_DailyR:
			Mail_Reward("Daily","WHERE DAY(`time`) = '"+ $UMR_DAY +"'",.top[0],.reward_daily$);
			$UMR_DAY = .day;
		}
		if ( $UMR_WEEK != .week && .RewardOpt&2 ) {
		L_WeeklyR:
			Mail_Reward("Weekly","WHERE WEEKOFYEAR(`time`) = '"+ $UMR_WEEK +"'",.top[1],.reward_weekly$);
			$UMR_WEEK = .week;
		}
		if ( $UMR_MONTH != .month && .RewardOpt&4 ) {
		L_MonthlyR:
			Mail_Reward("Monthly","WHERE MONTH(`time`) = '"+ $UMR_MONTH +"'",.top[2],.reward_monthly$);
			$UMR_MONTH = .month;
			if ( .Opt&128 )
				query_sql("TRUNCATE TABLE `ultimate_pvp_ranker`");
		}
		
	WAITINGPUB:
		showscript "PVP Ranking";
		sleep 5000;		
		
		showscript "Top 20 PVP Arena Player";
		sleep 5000;
	goto WAITINGPUB;
end;

L_Talk:
	.@cid = getcharid(0);
	switch(select(
		"~ ^009900My Statistics^000000", 
		( .Opt&1 ) ? "~ Top "+.top_count[0]+" Daily":"", 
		( .Opt&2 ) ? "~ Top "+.top_count[1]+" Weekly":"", 
		( .Opt&4 ) ? "~ Top "+.top_count[2]+" Monthly":"", 
		( .Opt&8 ) ? "~ Top "+.top_count[3]+" All Time":"", 
		( .Opt&16 ) ? "~ My Enemies (Top "+.top_count[4]+")":"", 
		( .Opt&32 ) ? "~ Open "+getitemname(.item_shop_id)+" Shop":"", 
		( .Opt&64 ) ? "~ Open "+getd(".var$[1]")+" Shop":"", 
		(getgmlevel() > 60) ? "^ff0000[GM MENU] Clear Data^000000":"",
		(getgmlevel() > 60) ? "^ff0000[GM MENU] Send Reward^000000":""
	)) {
	 case 1:
		query_sql("SELECT COUNT(`id`) FROM `ultimate_pvp_ranker` WHERE `char_id`='"+.@cid+"' "+.disabled_map_query$ +" GROUP BY `char_id`", .@total_kills);
		query_sql("SELECT COUNT(`id`) FROM `ultimate_pvp_ranker` WHERE `killed_char_id`='"+.@cid+"' "+.disabled_map_query$ +" GROUP BY `killed_char_id`", .@total_deaths);
		mes "^777777-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-^000000";
		mes "Total Kills : "+ .@total_kills;
		mes "Total Deaths : "+ .@total_deaths;
		mes "^777777-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-^000000";
		query_sql("SELECT c.name FROM `ultimate_pvp_ranker` rank INNER JOIN `char` c ON c.`char_id` = rank.`killed_char_id` WHERE rank.`char_id` = "+.@cid+" "+.disabled_map_query$+" ORDER BY `id` DESC LIMIT 1", .@killed_name$);
		query_sql("SELECT c.name FROM `ultimate_pvp_ranker` rank INNER JOIN `char` c ON c.`char_id` = rank.`char_id` WHERE rank.`killed_char_id` = "+.@cid+" "+.disabled_map_query$+" ORDER BY `id` DESC LIMIT 1", .@killer_name$);
		if ( .@killed_name$ == "" ) .@killed_name$ = "no data";
		if ( .@killer_name$ == "" ) .@killer_name$ = "no data";
		mes "Last Kill: "+ "^0055FF" + .@killed_name$ + "^000000";
		mes "Last Death: "+ "^FF8C00" + .@killer_name$ + "^000000";
		mes "^777777-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-^000000";
		close;
	 case 2: View_Rankings("Daily","DATE(`time`) = CURDATE() AND YEAR(`time`) = YEAR(CURDATE())",.top_count[0]); break;
	 case 3: View_Rankings("Weekly","WEEKOFYEAR(`time`) = WEEKOFYEAR(CURDATE()) AND YEAR(`time`) = YEAR(CURDATE())",.top_count[1]); break;
	 case 4: View_Rankings("Monthly","MONTH(`time`) = MONTH(CURDATE()) AND YEAR(`time`) = YEAR(CURDATE())",.top_count[2]); break;
	 case 5: View_Rankings("All Time","YEAR(`time`) = YEAR(CURDATE())",.top_count[3]); break;
	 case 6: View_Rankings("Enemy","rank.`killed_char_id` = "+.@cid,.top_count[4]); break;
	 case 7: // Item shop
		callshop "PvPItemShop", 4;
		mes "You currenlty have ^ff0000"+(countitem(.item_shop_id) ? countitem(.item_shop_id):"no" )+" "+ getitemname(.item_shop_id) +"^000000 to purchase from this shop.";
		end;
	 case 8: // Point shop
		callshop "PvPPointShop", 4;
		mes "You currenlty have ^ff0000"+((getd(.var$[0])) ? getd(.var$[0]):"no" )+" "+ getd(".var$[1]") +"^000000 to purchase from this shop.";
		end;
	 case 9:
		mes "Clearing data will delete";
		mes "Ranking data logs to clear some SQL space";
		mes " ";
		mes "Only 'ultimate_pvp_ranker' sql table will be deleted.";
		mes "All time, Global and Personal Record Statistics will remain.";
		next;
		select("Sure No problem");
		message strcharinfo(0), "Deleting...";
		progressbar "", 5;
		mes "All ranking data logs has been cleared..";
		close2;
		query_sql("TRUNCATE TABLE `ultimate_pvp_ranker`");
		end;
	 case 10:
		mes "Test sending rewards";
		switch(select("Daily:Weekly:Monthly")){
			case 1: goto L_DailyR; break;
			case 2: goto L_WeeklyR; break;
			case 3: goto L_MonthlyR; break;
		}
		end;
	}
end;

OnPCKillEvent:
	.@killedrid = killedrid;
	if ( .@killedrid != getcharid(3) && getgmlevel() < .gmlevel ) {
	 
		if(.pvp_statue == 1){
			//Insert in DB if you don't have data yet.
			set @char,getcharid(0);
			set @nome$,"";	
			query_sql "SELECT `name` FROM `ranking_pvp` WHERE `char_id`="+@char+"", @nome$;
			if (@nome$ == ""){
				query_sql("INSERT INTO `ranking_pvp` (`char_id`, `name`, `class`, `hair`, `hair_color`, `clothes_color`, `body`, `kill`, `death`, `kdr`) VALUES ('"+getcharid(0)+"', '"+strcharinfo(0)+"', '"+readparam(Class)+"', '"+getlook(LOOK_HAIR)+"', '"+getlook(LOOK_HAIR_COLOR)+"', '"+getlook(LOOK_CLOTHES_COLOR)+"', '"+getlook(LOOK_BODY2)+"', '1', '0', '0')");
			}else{
				//Pull from the database
				query_SQL("SELECT `kill`,`death` FROM `ranking_pvp` WHERE `char_id`='"+getcharid(0)+"'", .@kill, .@death);
				.@kill = .@kill + 1;
				if (.@death >= .@kill)
					.@kdr = 0;
				else
					.@kdr = .@kill - .@death;		
				
				//Update the database
				query_sql("UPDATE `ranking_pvp` SET `hair`='"+getlook(LOOK_HAIR)+"', `hair_color`='"+getlook(LOOK_HAIR_COLOR)+"', `clothes_color`='"+getlook(LOOK_CLOTHES_COLOR)+"', `body`='"+getlook(LOOK_BODY2)+"', `kill`='"+.@kill+"', `kdr`='"+.@kdr+"' WHERE `char_id`='"+getcharid(0)+"'");
			}
		}	
	
		if (.Options&16) {
			.@ip_src$ = replacestr(getcharip(),".","_");
			.@ip_tgt$ = replacestr(getcharip(.@killedrid),".","_");
			if ( .@ip_src$ == .@ip_tgt$ ) {
				dispbottom "Same IP Detected. Not recorded.";
				end;
			}
		}
		if (.Options&32) { 
			query_sql("SELECT `last_unique_id` FROM `login` WHERE `account_id`="+ .@killedrid, .@unique_id_tgt$);
			.@unique_id_src$ = get_unique_id();
			if ( .@unique_id_tgt$ == .@unique_id_src$ ) {
				dispbottom "Dual Client Detected. Not recorded.";
				end;
			}
		}
		
		if ( .Options&1 ) {
			if ( .Options&2 && (!.Options&8) || .Options&8 && .chance >= rand(100) )
				F_Reward_Item(.item$);
			
			if ( .Options&4 )
				F_Reward_Var(.var$[0],.var$[1],atoi(.var$[2]));	
				
				if(.weapon_ranking == 1){					
					F_Reward_Var(.var$[3],.var$[4],atoi(.var$[5]));	
				}
		}
		//if (.Options&64)
		//	.@map$ = strcharinfo(3);
		//	announce strcharinfo(0) +" has killed "+ .@killed$ +" in "+ .@map$, bc_all, 0x0ceedb;
			
		if(.BattleOption&1){
			set .@charmap$, strcharinfo(3);
			if(!compare(.tmp$,.@charmap$)){
//				dispbottom "Points not recorded";
				end;
			}
				
			if ( .Options&4 )
			
			F_Reward_Var(.var$[0],.var$[1],atoi(.var$[2]));	
			
			if(.weapon_ranking == 1){					
				F_Reward_Var(.var$[3],.var$[4],atoi(.var$[5]));	
			} 
		
			.@killed$ = rid2name(.@killedrid);
			.@cid = getcharid(0, .@killed$);
			.@map$ = strcharinfo(3);
			query_sql("INSERT INTO `ultimate_pvp_ranker` (`char_id`,`killed_char_id`,`map`) VALUES ("+getcharid(0)+","+.@cid+",'"+escape_sql(.@map$)+"')");
			
		}		
		
		if (.Options&64)
			set @kill,@kill+1;
			if(@kill == 1){ announce "[Gate Keeper] : The player "+strcharinfo(0)+" just killed "+rid2name(killedrid)+" [First Blood] !",1,0x0ceedb; soundeffect "firstblood.wav",0; }
			if(@kill == 2){ announce "[Gate Keeper] : The player "+strcharinfo(0)+" just killed "+rid2name(killedrid)+" [Double Kill] !",1,0x0ceedb; soundeffect "doublekill.wav",0; }
			if(@kill == 3){ announce "[Gate Keeper] : The player "+strcharinfo(0)+" just killed "+rid2name(killedrid)+" [Triple Kill] !",1,0x0ceedb; soundeffect "triplekill.wav",0; }
			if(@kill == 4){ announce "[Gate Keeper] : The player "+strcharinfo(0)+" just killed "+rid2name(killedrid)+" [Quadro Kill] !",1,0x0ceedb; soundeffect "quadra_kill.wav",0; }
			if(@kill == 5){ announce "[Gate Keeper] : The player "+strcharinfo(0)+" just killed "+rid2name(killedrid)+" [Penta Kill] !",1,0x0ceedb; soundeffect "pentakill.wav",0; }
			if(@kill == 7){ announce "[Gate Keeper] : The player "+strcharinfo(0)+" just killed "+rid2name(killedrid)+" [Savage] !",1,0x0ceedb; soundeffect "savage.wav",0; }
			if(@kill == 10){ announce "[Gate Keeper] : The player "+strcharinfo(0)+" just killed "+rid2name(killedrid)+" [Killing Spree] !",1,0x0ceedb; soundeffect "killingspree.wav",0; }
			if(@kill == 13){ announce "[Gate Keeper] : The player "+strcharinfo(0)+" just killed "+rid2name(killedrid)+" [Mega Kill] !",1,0x0ceedb; soundeffect "megakill.wav",0; }
			if(@kill == 15){ announce "[Gate Keeper] : The player "+strcharinfo(0)+" just killed "+rid2name(killedrid)+" [God Like] !",1,0x0ceedb; soundeffect "godlike.wav",0; }
			if(@kill == 20){ announce "[Gate Keeper] : The player "+strcharinfo(0)+" just killed "+rid2name(killedrid)+" [Unstoppable] !",1,0x0ceedb; soundeffect "unstoppable.wav",0; }
			if(@kill == 25){ announce "[Gate Keeper] : The player "+strcharinfo(0)+" just killed "+rid2name(killedrid)+" [Legendary] !",1,0x0ceedb; soundeffect "legendary.wav",0; }
			if(@kill == 30){ announce "[Gate Keeper] : The killing of "+strcharinfo(0)+" will have no end?!",bc_all,0x0ceedb; }
	}
	end;

	function	View_Rankings	{
		.@title$ = getarg(0,"");
		.@sql$ = getarg(1,"");
		.@limit = getarg(2,10);
		if ( .@title$ == "Enemy" ) .@enemy = true;
		mes "^777777-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-^000000";
		mes "^777777Top "+.@limit+" "+.@title$+" Arena "+(.@enemy ? "Enemy":"Killer")+"^000000";
		mes "^777777-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-^000000";
		if(!(.@nb = query_sql("SELECT c.name, COUNT(rank.`id`) AS `total` FROM `ultimate_pvp_ranker` rank INNER JOIN `char` c ON c.`char_id` = rank.`char_id` WHERE "+.@sql$+" "+.disabled_map_query$ +" GROUP BY rank.`char_id` ORDER BY `total` DESC LIMIT "+.@limit, .@name$, .@total))) {
			mes "^ff0000No data found...^000000";
			close;
		}
		for ( .@i = 0; .@i < .@nb; .@i++ )
			mes "^777777Top "+(.@i+1)+" -^000000 ^0000ff"+ .@name$[.@i] +"^000000 ^777777~^000000 ^ff0000"+ .@total[.@i] +"^000000 ^777777"+ (.@enemy ? "death":"kill") + ((.@total[.@i]>1)?"s":"")+"^000000";
		close;
	}

	function	Mail_Reward	{
		.@sender$ = "Battle Arena";
		.@title$ = getarg(0,"");
		.@sql$ = getarg(1,"");
		.@limit = getarg(2,0);

		if(!(.@nb = query_sql("SELECT `char_id`, COUNT(*) FROM `ultimate_pvp_ranker` "+.@sql$+" GROUP BY `char_id` ORDER BY COUNT(*) DESC LIMIT "+ .@limit, .@char_id, .@count)))
			return;
		freeloop(1);
		for (.@i = 0; .@i < .@nb; .@i++) {
			.@body$ = " Hey there!\r\n \r\n Congratulations!\r\n You have placed #"+(.@i+1)+" in "+.@title$+" PvP Hunter by killing "+.@count[.@i]+" Boss Monsters! \r\n \r\n \r\n [ Your reward is attached. ]";
			.@list$ = getelementofarray(getarg(3),.@i);
			explode(.@T$,.@list$,"|");
			explode(.@TT$,.@T$[0],",");
			.@reward_zeny = .@T$[1];
			for (.@j = 0; .@j < getarraysize(.@TT$); .@j +=2) {
				.@reward_id[getarraysize(.@reward_id)] = atoi(.@TT$[.@j]);
				.@reward_amount[getarraysize(.@reward_amount)] = atoi(.@TT$[.@j+1]);
			}
			if ( getarraysize(.@reward_id) )
				mail .@char_id[.@i], .@sender$, .@title$ +" Top "+ .@limit +" Hunter", .@body$, .@reward_zeny, .@reward_id, .@reward_amount;
			else
				mail .@char_id[.@i], .@sender$, .@title$ +" Top "+ .@limit +" Hunter", .@body$, .@reward_zeny;
			deletearray .@reward_id;
			deletearray .@reward_amount;
		}
		freeloop(0);
		return;
	}

OnPCDieEvent:
		
	set .@charmap$, strcharinfo(3);
	if(!compare(.tmp$, .@charmap$)){
		end;
	}
	
	.server_name$ = "Battle Arena";
	
	if (killerrid != getcharid(3)) {
		set @kill,0;
	}
	
	if(getd(.var$[0]) == 0){
		end;
	}
	
	//ENABLE THE WEAPON RANKING
	if(.weapon_ranking == 1){ 
		setd .var$[3], getd(.var$[3]) - 1;
	}
		
	//.var$[0] -= 1;
	
//	setd .var$[0], getd(.var$[0]) - 1;
//	dispbottom "[ "+.server_name$+" ] : You have Deducted 1 Battle Points. "+ getd(.var$[0]) +" PVP Score.";
	
end;

	
}

// PVP Item Shop Data
// Edit the items here.. ".item_shop_id" currently set to '501' (Red Potion)
// Must match the data you input above
-	itemshop	PvPItemShop	FAKE_NPC,501,502:2,503:1,504:5

// PVP Point Shop Data
// Edit the points here.. "#PVPPOINTS" currently set to '#PVPPOINTS'
// Must match the data you input above
-	pointshop	PvPPointShop	FAKE_NPC,#PVPPOINTS,901:2,903:1,904:5

image.thumb.png.38a9b06c9dc55396cf9763100f5be221.png

can someone help me on the script i want to add death conter after the kill counter

2 answers to this question

Recommended Posts

  • 0
Posted
1 hour ago, Outlook said:

OnPCDieEvent:

.....

i think its on sql query to show up the death counter. and not the OnPCDieEvent. 
bump~

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.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...