viewing paste Hourly Points Script (v1.4.1) | Athena

Posted on the
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
//===== Hourly Points Script =========================================
//===== By: ==========================================================
//= GorthexTiger modified by Nibi
//===== Current Version: =============================================
//= 1.4.1
//===== Compatible With: =============================================
//= Any eAthena Version
//===== Description: =================================================
//= Get Points every successful hours of gameplay, you cannot get
//= the points even if you miss a second or a minute. A player will
//= get a very big bonus if they played 3 hours consecutively
//= or without logging out of the game. If the player is vending
//= the script will then stop.
//===== Additional Comments: =========================================
//= You can modify the script to your liking.
//= The default points is Kafrapoints change it anyway if you like.
//= 1.1 = Check Chatting too
//= 1.2 = 5 Minute Idle Check & @at/@autotrade check.
//= 1.3 = Corrected the current balance line on 12 Hours Consecutive
//= 1.4 = Added command to check remaining time and updated idle check. (Skorm)
//= 1.4.1 = Modified the msgs to display according to .timer. (Skorm)
//====================================================================
-       script  hourlypoints    -1,{
   
OnPointGet:
        //Check for idle.
        while(checkvending() >= 1 || checkchatting() == 1 || checkidle() >= .idle) {
                if( .@mes$ == "" ) {
                        dispbottom set( .@mes$, "The hourly points event stopped because you were vending, chatting, or idle!" );
                        set @hourly_points_timer, 0;
                }
                sleep2 .delay;
        }
       
        @consecutive_timer++;
        .@time_string$ = Time2Str( @consecutive_timer * ( .timer / 1000 ) );
        dispbottom "You received "+.points+" Kafrapoint(s) by staying ingame for "+.@time_string$+".";
        #CASHPOINTS = #CASHPOINTS + .points;
        dispbottom "Current Balance = "+#CASHPOINTS+" Kafrapoints";
        @consecutive_bonus++;
 
        //Check for consecutive timer.
        if(@consecutive_bonus == .cdelay) {
                @consecutive_bonus = 0;
                #CASHPOINTS = #CASHPOINTS + .cpoints;
                dispbottom "You receive a bonus "+.cpoints+" Kafrapoint(s) by playing for "+.@time_string$+" consecutively!!!";
                dispbottom "Current Balance = "+#CASHPOINTS+" Kafrapoint(s)";
        }
       
OnPCLoginEvent:
        addtimer .timer,"hourlypoints::OnPointGet";
        @hourly_points_timer = gettimetick(2) + ( .timer / 1000 );
        end;
       
OnCmdHour:
        message strcharinfo(0),@hourly_points_timer ? Time2Str( @hourly_points_timer )+" remaining before you get your Hourly Reward(s).":"Something went wrong or you're considered idle at the moment, try relogging!";
        end;
 
OnInit:
        bindatcmd "ctr","hourlypoints::OnCmdHour"; //@ctr to view time till next point.
        .timer   = 1000*60*60; //Timer in milliseconds. ( Default: 1000*60*60 [ = 1 Hour ] )
        .cdelay  = 3;          //Delay before receiving the consecutive bonus. ( Default: 3 [ { ~ 3 Hours } *Using default timer ] )
        .cpoints = 10;         //Points gained for consecutive time online. ( Default: 10 )
        .points  = 1;          //Normal points gained. ( Default: 1 )
        .delay   = 1000;       //Delay for idle re-check check. ( Default: 1000 [ = 1 Second ] )
        .idle    = 60*5;       //Player is idle after not moving for this many seconds. ( Default: 60*5 [ = 5 Minutes ] )
}
Viewed 1226 times, submitted by Skorm.