//===== Hercules Script ====================================== //= Event Helper //===== By: ================================================== //= ZelosAvalon //= Rokimoki //===== Current Version: ===================================== //= 1.3 //===== Description: ========================================= //= 1.0 NPC that manages the earnings event points in Invasion Event, // where you can exchange your points for event Event Coins and see the ranking of the event. [ZelosAvalon] //===== Additional Comments: ================================= //= 1.0 Now can see how many points you have earned during the invasion event and exchange them for Event Coins. [ZelosAvalon] //= 1.1 Now you can see how many Events Points you have earned at all events, //= and how many you can still exchange for Event Coins [ZelosAvalon] //= 1.3 Ranking was migrated into a SQL table (SQL: event_rank) //= Now you can see the ranking of the event, the top 10 players with the highest score. [ZelosAvalon] & [Rokimoki] //============================================================ prontera,146,156,3 script Event Helper 1_M_SIGNALCHE,{ mes "[Event Helper]"; mes "Hello ^3355FF"+strcharinfo(0)+"^000000"; mes "I'm the Event Helper."; mes "Here you can check your points, exchanging them and see their position in the top event players"; next; Main: mes "[Event Helper]"; mes "What would you like to check?"; next; switch(select("^22AA22Event Points^000000:^3355FFPrizes^000000:Ranking:Exit")) { case 1: query_sql "SELECT `event_points`, `t_event_points` FROM `event_rank` WHERE `id` = '"+getcharid(0)+"'", .@points, .@tpoints; .@events = .@points; .@tevents = .@tpoints; mes "[Event Helper]"; mes "You already earned ^3355FF"+.@tevents+"^000000 Event Points"; mes "You have ^3355FF"+.@events+"^000000 Event Points to use"; next; goto Main; case 2: query_sql "SELECT `event_points` FROM `event_rank` WHERE `id` = '"+getcharid(0)+"'", .@events; .@events = .@points; mes "[Event Helper]"; mes "You have ^3355FF"+.@events+"^000000 Event Points for exchange"; mes "Exchange rate:"; mes "^3355FF20^000000 Event Point = ^3355FF1^000000 Bronze Event Coin"; next; switch(select("Convert Event Points:Back")) { case 1: .@item_id = 8302; .@item_cost = 20; query_sql "SELECT `event_points` FROM `event_rank` WHERE `id` = '"+getcharid(0)+"'", .@points; if (.@item_cost > .@points) { // We don't have what we need. mes "Sorry, but you don't have " + .@item_cost + " Event Points."; close; } else { .@result = .@points / .@item_cost; .@rest = .@points % .@item_cost; mes "You can get "+.@result+"x " + getitemname(.@item_id) + ""; mes "You want trade?"; if (select("Yes:No") == 2) close; getitem .@item_id, .@result; query_sql "UPDATE `event_rank` SET `event_points` = '"+.@rest+"' WHERE `id` = '"+getcharid(0)+"'"; mes "Here it is"; close; } case 2: goto Main; } case 3: mes "[Event Helper Ranking]"; cleararray .@players$[0], "", 10; // defining 10 positions cleararray .@event_point[0], 0, 10; query_sql("SELECT `name`, `t_event_points` FROM `event_rank` ORDER BY `t_event_points` DESC LIMIT 10;", .@players$, .@event_point); for (.@i = 0; .@i < 10; .@i++) { if (strcmp(.@players$[.@i], "") == 0) break; // if some is empty, stop printing mes (.@i + 1) + " - ^0000FF" + .@players$[.@i] + "^000000 - ^FF0000" + .@event_point[.@i] + "^000000 Pts."; } close; } }