Advertisement
johnlol

MVP LadderR

May 22nd, 2019
283
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*
  2. ________________     ______            ________      
  3. ___    |_____  /________  /______      ___  __ \_____
  4. __  /| |  __  /_  __ \_  __ \  _ \     __  /_/ /  __ \
  5. _  ___ / /_/ / / /_/ /  /_/ /  __/     _  _, _// /_/ /
  6. /_/  |_\__,_/  \____//_.___/\___/      /_/ |_| \____/
  7.  
  8. */
  9.  
  10. /*
  11. alter table `char` add column mvp_rank int(11) default 0 after delete_date, add index (mvp_rank);
  12.  
  13. create table mvp_rank_archive (
  14. `date` datetime,
  15. pos tinyint(4) unsigned,
  16. cid int(11) unsigned default 0,
  17. name varchar(23) default '',
  18. points int(11) unsigned not null,
  19. primary key ( `date`, pos )
  20. ) engine innodb;
  21. */
  22. prontera,164,175,3  script  MVP Ladder  746,{
  23.     mes "[MVP Ladder]";
  24.     mes "Hello!";
  25.     mes "What are you doing here?";
  26.     next;
  27.     switch(select("Check rankings.:My stats.:Previous Month ranking")) {
  28.     case 1:
  29.         mes "[MVP Ladder]";
  30.         mes "Rankings :->";
  31.         .@nb = query_sql( "select name, mvp_rank from `char` where mvp_rank > 0 order by mvp_rank desc limit 10", .@name$, .@count );
  32.         if ( !.@nb ) {
  33.             mes "no entry";
  34.             close;
  35.         }
  36.         for ( .@i = 0; .@i < .@nb; .@i++ )
  37.             mes ( .@i +1 )+". "+ .@name$[.@i] +" -> "+ .@count[.@i] +" points";
  38.         close;
  39.     case 2:
  40.         query_sql "select mvp_rank from `char` where char_id = "+ getcharid(0), .@killed;
  41.         mes "[MVP Ladder]";
  42.         mes "You have killed "+ .@killed +" MVPs";
  43.         close;
  44.     case 3:
  45.         mes "[MVP Ladder]";
  46.         mes "Last month ranking";
  47.         if ( gettime(6) > 10 )
  48.             .@store_date$ = gettime(7) +"-"+( gettime(6) -1 )+"-00 00:00:00";
  49.         else if ( gettime(6) > 1 )
  50.             .@store_date$ = gettime(7) +"-0"+( gettime(6) -1 )+"-00 00:00:00";
  51.         else
  52.             .@store_date$ = ( gettime(7) -1 ) +"-12-00 00:00:00";
  53.         .@nb = query_sql( "select name, points from mvp_rank_archive where `date` = '"+ .@store_date$ +"' order by pos", .@name$, .@count );
  54.         if ( !.@nb ) {
  55.             mes "no entry";
  56.             close;
  57.         }
  58.         for ( .@i = 0; .@i < .@nb; .@i++ )
  59.             mes ( .@i +1 )+". "+ .@name$[.@i] +" -> "+ .@count[.@i] +" points";
  60.         close;
  61.     }
  62.     close;
  63. OnInit:
  64.     if ( $mvp_ladder_last_given == atoi( gettime(7) +""+ gettime(6) ) ) end;
  65.     goto L_give;
  66. OnClock0000:
  67.     if ( gettime(5) != 1 ) end;
  68. L_give:
  69.     .@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 );
  70.     if ( !.@nb ) end;
  71.     setarray .@reward, 12692, 12692, 616, 616, 616, 12214, 12214, 12281, 14596, 12863;
  72.     setarray .@amount, 2, 2, 3, 3, 3, 4, 7, 10, 15, 20;
  73.     for ( .@i = 0; .@i < .@nb; .@i++ )
  74.         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() ) )";
  75.     if ( gettime(6) > 10 )
  76.         .@store_date$ = gettime(7) +"-"+( gettime(6) -1 )+"-00 00:00:00";
  77.     else if ( gettime(6) > 1 )
  78.         .@store_date$ = gettime(7) +"-0"+( gettime(6) -1 )+"-00 00:00:00";
  79.     else
  80.         .@store_date$ = ( gettime(7) -1 ) +"-12-00 00:00:00";
  81.     for ( .@i = 0; .@i < .@nb; .@i++ )
  82.         .@store$[.@i] = "( '"+ .@store_date$ +"', "+( .@i +1 )+", "+ .@cid[.@i] +", '"+ escape_sql( .@name$[.@i] ) +"', "+ .@killed[.@i] +" )";
  83.     query_sql "insert into mvp_rank_archive values "+ implode( .@store$, "," );
  84.     query_sql "update `char` set mvp_rank = 0"; // reset the ladder
  85.     $mvp_ladder_last_given = atoi( gettime(7) +""+ gettime(6) );
  86.     end;
  87. OnNPCKillEvent:
  88.     if ( getmonsterinfo( killedrid, MOB_MVPEXP ) ) {
  89.         query_sql "update `char` set mvp_rank = mvp_rank +1 where char_id = "+ getcharid(0);
  90.         query_sql "select mvp_rank from `char` where char_id = "+ getcharid(0), .@killed;
  91.         dispbottom "~ You've killed "+ .@killed +" MVP. ~";
  92.         specialeffect2 EF_HEAL2;
  93.     }
  94.     end;
  95. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement