Jump to content
  • 0

need support for ranking system


Kudo

Question


  • Group:  Members
  • Topic Count:  54
  • Topics Per Day:  0.01
  • Content Count:  135
  • Reputation:   0
  • Joined:  08/18/12
  • Last Seen:  

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

Link to comment
Share on other sites

5 answers to this question

Recommended Posts

  • 0

  • Group:  Members
  • Topic Count:  25
  • Topics Per Day:  0.04
  • Content Count:  64
  • Reputation:   5
  • Joined:  07/10/22
  • Last Seen:  

Posted (edited)

OnPCDieEvent:

.....

Edited by Outlook
Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  54
  • Topics Per Day:  0.01
  • Content Count:  135
  • Reputation:   0
  • Joined:  08/18/12
  • Last Seen:  

1 hour ago, Outlook said:

OnPCDieEvent:

.....

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

Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  25
  • Topics Per Day:  0.04
  • Content Count:  64
  • Reputation:   5
  • Joined:  07/10/22
  • Last Seen:  

OnPCDieEvent:

>SQL >Table> Field> NPC > Query

Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  54
  • Topics Per Day:  0.01
  • Content Count:  135
  • Reputation:   0
  • Joined:  08/18/12
  • Last Seen:  

if you don't mind can you give me the exact code for this? and where to put in my script?

Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  25
  • Topics Per Day:  0.04
  • Content Count:  64
  • Reputation:   5
  • Joined:  07/10/22
  • Last Seen:  

7 hours ago, Outlook said:

OnPCDieEvent:

>SQL >Table> Field> NPC > Query

This is guide for you.

Link to comment
Share on other sites

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...