// http://rathena.org/board/topic/78486-breaker-rankings-npc/ // NPC that: // - displays top 10 emperium breaker (Rank, Char Name, Guild Name, Breaker Points) // - when a player was the last to break the emp after the WoE he will get 1 point // - selection which enables the player to trade their points into TCG (item id: 7227) // but their break points are still displayed prontera,155,188,0 script Emp Break Ladder 910,{ switch(select("View Emp Break Ladder:Redeem points for TCG:More Info:" + ((getgmlevel()>=99) ? "Reset Ladder":""))) { case 1: query_sql "SELECT `char`.`name`, `char`.`class`, guild.`name`, CAST(`value` AS UNSIGNED) " + "FROM global_reg_value " + "LEFT JOIN `char` ON global_reg_value.char_id=`char`.char_id " + "LEFT JOIN `guild` ON `char`.guild_id=guild.guild_id " + "WHERE global_reg_value.`str`='breaker_points' " + "ORDER BY CAST(`value` AS UNSIGNED) DESC LIMIT 10", .@name$, .@job, .@guild$, .@points; mes "[Top 10 Emp Breakers]"; for (set .@i,0; .@i .@count) { set .@count, .@count + query_sql("SELECT account_id FROM `char` WHERE online=1 LIMIT 128 OFFSET "+.@count, .@account_id); set .@i, 0; while (.@i < getarraysize(.@account_id)) { if (attachrid(.@account_id[.@i])) doevent strnpcinfo(3)+"::OnResetBreakerPoints"; set .@i, .@i +1; } deletearray .@account_id, 128; sleep 1; // prevent infinity loop } attachrid .@AID; mes "Emp Break Ladder has been reset."; break; } close; OnResetBreakerPoints: set breaker_points, 0; set breaker_tcg, 0; end; }