Jump to content
  • 1

MVP Ladder Reward (HELP ~~)


fallen0519

Question


  • Group:  Members
  • Topic Count:  20
  • Topics Per Day:  0.01
  • Content Count:  52
  • Reputation:   2
  • Joined:  02/15/14
  • Last Seen:  

I found a MVP Rank script and it gives Monthly Reward for the top players, where to edit the players to top 10 and make it per week reward instead of per month, thank you.

 

One more stupid question yea, sorry for being noob, what is the meaning of,

alter table `char` add column mvp_rank int(11) default 0 after delete_date, add index (mvp_rank);

 

How to do it in sql table for the top part, I just know to execute the following,

create table mvp_rank_archive (
`date` datetime,
pos tinyint(4) unsigned,
cid int(11) unsigned default 0,
name varchar(23) default '',
points int(11) unsigned not null,
primary key ( `date`, pos )
) engine innodb;

/*
alter table `char` add column mvp_rank int(11) default 0 after delete_date, add index (mvp_rank);

create table mvp_rank_archive (
`date` datetime,
pos tinyint(4) unsigned,
cid int(11) unsigned default 0,
name varchar(23) default '',
points int(11) unsigned not null,
primary key ( `date`, pos )
) engine innodb;
*/
prontera,158,183,3	script	MVP Ladder	100,{
	mes "[MVP Ladder]";
	mes "Hello!";
	mes "What are you doing here?";
	next;
	switch(select("Check rankings.:My stats.:Previous Month ranking")) {
	case 1:
		mes "[MVP Ladder]";
		mes "Rankings :->";
		.@nb = query_sql( "select name, mvp_rank from `char` where mvp_rank > 0 order by mvp_rank desc limit 10", .@name$, .@count );
		if ( !.@nb ) {
			mes "no entry";
			close;
		}
		for ( .@i = 0; .@i < .@nb; .@i++ )
			mes ( .@i +1 )+". "+ .@name$[.@i] +" -> "+ .@count[.@i] +" points";
		close;
	case 2:
		query_sql "select mvp_rank from `char` where char_id = "+ getcharid(0), .@killed;
		mes "[MVP Ladder]";
		mes "You have killed "+ .@killed +" MVPs";
		close;
	case 3:
		mes "[MVP Ladder]";
		mes "Last month ranking";
		if ( gettime(6) > 10 )
			.@store_date$ = gettime(7) +"-"+( gettime(6) -1 )+"-00 00:00:00";
		else if ( gettime(6) > 1 )
			.@store_date$ = gettime(7) +"-0"+( gettime(6) -1 )+"-00 00:00:00";
		else
			.@store_date$ = ( gettime(7) -1 ) +"-12-00 00:00:00";
		.@nb = query_sql( "select name, points from mvp_rank_archive where `date` = '"+ .@store_date$ +"' order by pos", .@name$, .@count );
		if ( !.@nb ) {
			mes "no entry";
			close;
		}
		for ( .@i = 0; .@i < .@nb; .@i++ )
			mes ( .@i +1 )+". "+ .@name$[.@i] +" -> "+ .@count[.@i] +" points";
		close;
	}
	close;
OnInit:
	if ( $mvp_ladder_last_given == atoi( gettime(7) +""+ gettime(6) ) ) end;
	goto L_give;
OnClock0000:
	if ( gettime(5) != 1 ) end;
L_give:
	.@nb = query_sql( "select char_id, name, mvp_rank from `char` where mvp_rank > 0 order by mvp_rank desc limit 10", .@cid, .@name$, .@killed );
	if ( !.@nb ) end;
	setarray .@reward, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510;
	setarray .@amount, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1;
	for ( .@i = 0; .@i < .@nb; .@i++ )
		query_sql "insert into mail ( send_name, dest_id, title, message, nameid, amount, identify, zeny, time ) values ( '"+ escape_sql( .@name$[.@i] ) +"', "+ .@cid[.@i] +", '[MVP RANK]', 'Congratulations for earning No. "+( .@i +1 )+" position in MVP rank. Here is your reward.', "+ .@reward[.@i] +", "+ .@amount[.@i] +", 1, 0, unix_timestamp( now() ) )";
	if ( gettime(6) > 10 )
		.@store_date$ = gettime(7) +"-"+( gettime(6) -1 )+"-00 00:00:00";
	else if ( gettime(6) > 1 )
		.@store_date$ = gettime(7) +"-0"+( gettime(6) -1 )+"-00 00:00:00";
	else
		.@store_date$ = ( gettime(7) -1 ) +"-12-00 00:00:00";
	for ( .@i = 0; .@i < .@nb; .@i++ )
		.@store$[.@i] = "( '"+ .@store_date$ +"', "+( .@i +1 )+", "+ .@cid[.@i] +", '"+ escape_sql( .@name$[.@i] ) +"', "+ .@killed[.@i] +" )";
	query_sql "insert into mvp_rank_archive values "+ implode( .@store$, "," );
	query_sql "update `char` set mvp_rank = 0"; // reset the ladder
	$mvp_ladder_last_given = atoi( gettime(7) +""+ gettime(6) );
	end;
OnNPCKillEvent:
	if ( getmonsterinfo( killedrid, MOB_MVPEXP ) ) {
		query_sql "update `char` set mvp_rank = mvp_rank +1 where char_id = "+ getcharid(0);
		query_sql "select mvp_rank from `char` where char_id = "+ getcharid(0), .@killed;
		dispbottom "~ You've killed "+ .@killed +" MVP. ~";
		specialeffect2 EF_HEAL2;
	}
	end;
}
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...