-	script	ResetLadder	FAKE_NPC,{
	function func_item_name;
end;

OnClock0000:

	if (gettime(GETTIME_WEEKDAY)!=1) end;
	L_give:
		setarray .@mvpr, 7179, 7179, 7179, 7179, 7179, 7179, 7179, 7179, 7179, 7179;
		setarray .@mvpa, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1;

		setarray .@pvpr, 616, 684, 603, 12260, 607, 14541, 668, 12266, 985, 984;
		setarray .@pvpa, 3, 10, 5, 1, 10, 10, 10, 5, 3, 3;

		if ( gettime(GETTIME_MONTH) > 10 ) {
			.@mdate$ = gettime(GETTIME_MONTH);
		} else if ( gettime(GETTIME_MONTH) > 1 ) {
			.@mdate$ = "0"+gettime(GETTIME_MONTH);
		}

		if ( gettime( GETTIME_DAYOFMONTH) > 10 ) {
			.@ddate$ = gettime(GETTIME_DAYOFMONTH);
		} else if ( gettime( GETTIME_DAYOFMONTH) < 10 ) {
			.@ddate$ = "0"+gettime(GETTIME_DAYOFMONTH);
		}
			    
		.@store_date$ = gettime(GETTIME_YEAR) +"-"+.@mdate$+"-"+.@ddate$;


		// get database names, for join
		query_sql    "SELECT DATABASE()", .@rag_db$;
		query_logsql "SELECT DATABASE()", .@log_db$;
		query_sql "SELECT `name`,COUNT(mvp_id) , `kill_char_id` FROM "+.@log_db$+".mvplog " + 
			"LEFT JOIN "+.@rag_db$+".`char` ON mvplog.kill_char_id=`char`.char_id " + 
			"GROUP BY kill_char_id ORDER BY COUNT(mvp_id) DESC limit "+ .ladder_length, .@name$, .@killed, .@cid;

		if (getarraysize( .@name$ )) {
			for ( .@i = 0; .@i < getarraysize( .@name$ ); .@i++) {
				.@gm_aid = 1;
				.@gm_name$="Reward";
				.@r_refine = 0;
				.@sold_refine = 0;
				.@sold_card1 = 0;
				.@sold_card2 = 0;
				.@sold_card3 = 0;
				.@sold_card4 = 0;
				.@note$ = "Top "+(.@i+1)+" Weekly MVP Reward";
				.@formatted_name$ = func_item_name( .@mvpr[.@i],.@mvpa[.@i],.@r_refine );
				query_sql( "INSERT INTO `gm_reward` ( `gm_aid`,`gm_name`,`nameid`,`amount`,`refine`,`format_name`,`card1`,`card2`,`card3`,`card4`,`reward_time`,`claim_aid`,`claim_name`,`note` ) VALUES ( "+.@gm_aid+",'"+escape_sql( .@gm_name$ )+"',"+.@mvpr[.@i]+","+.@mvpa[.@i]+","+.@sold_refine+",'"+escape_sql( .@formatted_name$ )+"',"+.@sold_card1+","+.@sold_card2+","+.@sold_card3+","+.@sold_card4+",NOW(),"+.@cid[(.@i)]+",'"+escape_sql( .@name$[(.@i)]  )+"','"+.@note$+"' )" );	
				rodex_sendmail(.@cid[.@i], "[ "+.@gm_name$+" ]", "[ Reward Notice ]", "You have a pending reward [ "+.@formatted_name$+" ] for [ "+.@note$+" ] to be claim.  Type @gmreward to claim.",0);				 
			}
		}

		if (getarraysize( .@name$ )) {
			for ( .@i = 0; .@i < getarraysize( .@name$ ); .@i++ ) {
                		.@store$[.@i] = "( '"+ .@store_date$ +"', "+( .@i +1 )+", "+ .@cid[.@i] +", '"+ escape_sql( .@name$[.@i] ) +"', "+ .@killed[.@i] +","+0+" )";
      				query_sql "insert into mvp_rank_archive values "+ implode( .@store$, "," );
       				query_logsql "TRUNCATE TABLE mvplog"; // reset the ladder
        			$mvp_ladder_last_given = atoi( gettime(GETTIME_YEAR) +""+ gettime(GETTIME_MONTH) +""+ gettime(GETTIME_DAYOFMONTH) );
			}
		}

/*
	// Reset PvP

	query_sql "SELECT `char_id`, `account_id`, `char`, `kill`, `death`, `kdr`, `killingstreak`, `multikill` FROM `pvp_rank` ORDER BY `kill` DESC LIMIT "+.ladder_length, .@char_id, .@account_id, .@char$, .@kill, .@death, .@kdr$, .@sk, .@mk;
	if (.@char_id) {
		for ( .@i = 0; .@i < getarraysize( .@char$ ); .@i++ )
 	 		//query_sql "insert into mail ( send_name, dest_id, title, message, nameid, amount, identify, zeny, time ) values ( '"+ escape_sql( .@char$[.@i] ) +"', "+ .@char_id[.@i] +", '[PVP RANK]', 'Congratulations for earning No. "+( .@i +1 )+" position in PVP rank for this week. Here is your reward.', "+ .@pvpr[.@i] +", "+ .@pvpa[.@i] +", 1, 0, unix_timestamp( now() ) )";
   			if(.debug){ 
				announce "[PvP] Sending Reward to "+.@char$[.@i],0;	
			}
			for ( .@i = 0; .@i < getarraysize( .@char$ ); .@i++ )
	     			.@storepvp$[.@i] = "( '"+ .@store_date$ +"', "+( .@i +1 )+", "+ .@char_id[.@i] +", "+ .@account_id[.@i] +", '"+ escape_sql( .@char$[.@i] ) +"', "+ .@kill[.@i]   +", "+ .@death[.@i] +",'"+ escape_sql( .@kdr$[.@i] ) +"', "+ .@sk[.@i] +", "+ .@mk[.@i] +","+0+" )";
				query_sql "insert into pvp_rank_archive values "+ implode( .@storepvp$, "," );
				query_sql "TRUNCATE TABLE `pvp_rank`";
				$mvp_ladder_last_given = atoi( gettime(GETTIME_YEAR) +""+ gettime(GETTIME_MONTH) +""+ gettime(GETTIME_DAYOFMONTH) );
		
		query_sql( "SELECT COUNT(`account_id`) FROM `char` WHERE `online` = 1 ", .@total );
		while( .@count < .@total ){
			query_sql( "SELECT `account_id`,`char_id`,`name` FROM `char` WHERE `online` = 1 ORDER BY `account_id` LIMIT 128 OFFSET "+.@offset, .@aid,.@char_id,.@name$ );
			set .@i,0;
			set .@size,getarraysize( .@char_id );	
			while( .@i < .@size ){
				if (isloggedin(.@char_id[.@i])) {
					set Kill, 0;
					set Death, 0;
					set KillingStreak, 0; 
					set MultiKill, 0;
					set KillingSpree, 0;
					set Dominating, 0;
					set MegaKill, 0;
					set Unstoppable, 0;
					set WickedSick, 0;
					set MonsterKill, 0;
					set Godlike, 0;
					set BeyondGodlike, 0;
					set DoubleKill, 0;
					set TripleKill, 0;
					set UltraKill, 0;
					set Rampage, 0;
					set Ownage, 0;
					set NemesisKill, 0;
					set FeedCount, 0;
				}
				if(.debug){ 
					announce "[PvP] Resetting PvP Record of online player "+.@aid[.@i],0;	
				}
				set .@count,.@count + 1;
				set .@i,.@i + 1;
			}
			freeloop 0;
			set .@offset,.@offset + .@size;
			deletearray .@char_id,.@size;
			deletearray .@name$,.@size;
			}

			query_sql ("DELETE FROM `char_reg_num_db` WHERE `key` = 'Kill'");
			query_sql ("DELETE FROM `char_reg_num_db` WHERE `key` = 'Death'");
			query_sql ("DELETE FROM `char_reg_num_db` WHERE `key` = 'KillingStreak'");
			query_sql ("DELETE FROM `char_reg_num_db` WHERE `key` = 'MultiKill'");
			query_sql ("DELETE FROM `char_reg_num_db` WHERE `key` = 'KillingSpree'");
			query_sql ("DELETE FROM `char_reg_num_db` WHERE `key` = 'Dominating'");
			query_sql ("DELETE FROM `char_reg_num_db` WHERE `key` = 'MegaKill'");
			query_sql ("DELETE FROM `char_reg_num_db` WHERE `key` = 'Unstoppable'");
			query_sql ("DELETE FROM `char_reg_num_db` WHERE `key` = 'WickedSick'");
			query_sql ("DELETE FROM `char_reg_num_db` WHERE `key` = 'MonsterKill'");
			query_sql ("DELETE FROM `char_reg_num_db` WHERE `key` = 'Godlike'");
			query_sql ("DELETE FROM `char_reg_num_db` WHERE `key` = 'BeyondGodlike'");
			query_sql ("DELETE FROM `char_reg_num_db` WHERE `key` = 'DoubleKill'");
			query_sql ("DELETE FROM `char_reg_num_db` WHERE `key` = 'TripleKill'");
			query_sql ("DELETE FROM `char_reg_num_db` WHERE `key` = 'UltraKill'");
			query_sql ("DELETE FROM `char_reg_num_db` WHERE `key` = 'Rampage'");
			query_sql ("DELETE FROM `char_reg_num_db` WHERE `key` = 'Ownage'");
			query_sql ("DELETE FROM `char_reg_num_db` WHERE `key` = 'NemesisKill'");
			query_sql ("DELETE FROM `char_reg_num_db` WHERE `key` = 'FeedCount'");

			if(.@debug){ 
				announce "[PvP] Resetting PvP Record of offline players.",0;	
			}		
	
	}	
*/
	announce "[System] MVP Ladders has been reset.  Congratulations to the Top Rankers for this week. Use @gmreward to claim..",0;
	end;

OnInit:
	.ladder_length = 10;
	.debug = 0;
	if ( $mvp_ladder_last_given == atoi( gettime(GETTIME_YEAR) +""+ gettime(GETTIME_MONTH)+""+gettime(GETTIME_DAYOFMONTH) ) ) end;
	//goto L_give;



	function	func_item_name	{
		.@item_id = getarg(0);
		.@amount = getarg(1);
		.@refine = getarg(2);
		
		.@string$ = getitemname( .@item_id );
		.@type = getiteminfo( .@item_id,2 );
			
		if ( .@string$ == "null" )
			return "none";
			
		if ( .@refine ) 
			.@string$ = "+"+.@refine+" "+.@string$;
		if ( .@type == IT_WEAPON || .@type == IT_ARMOR )
			.@string$ = .@string$ + " ["+getitemslots( .@item_id )+"]";
		if ( .@amount > 1 )
			.@string$ = .@amount+" x "+.@string$;
			
		return .@string$;
	}

}