viewing paste Event_Helper_v1.3 | Athena | Private

Posted on the | Last edited on
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
//===== 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;
 
    }
}
Viewed 392 times, submitted by ZelosAvalon.