//===== Hourly Points Script ========================================= //===== By: ========================================================== //= GorthexTiger modified by Nibi //===== Current Version: ============================================= //= 1.0 //===== 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 //==================================================================== - script hourlypoints -1,{ //--Start of the Script OnPCLoginEvent: attachnpctimer ""+strcharinfo(0)+""; initnpctimer; end; OnTimer30000: //Check if Vending (normal or @at) if(checkvending() >= 1 || checkchatting() == 1) { dispbottom "The hourly points event stopped because you were vending / chatting. Please relog if you wish to start again."; stopnpctimer; end; } //Check if Idle getmapxy( .@map$, .@x, .@y, 0 ); if(@map$ == .@map$ && @x == .@x && @y == .@y) { set @afk, @afk + 1; } //If move timer resets else { set @afk, 0; } set @map$, .@map$; set @x, .@x; set @y, .@y; //Idle Check for 10 Minutes if(@afk == 10) { dispbottom "The hourly points event stopped because you were idle for 10 minutes. Please relog if you wish to start again."; stopnpctimer; end; } end; OnTimer60000: set @minute, @minute + 1; //Check for 1 Minute if(@minute == 60){ set @minute,0; set .@point_amt, 5; //Points to get every hour (default: 10) set #KAFRAPOINTS, #KAFRAPOINTS + .@point_amt; dispbottom "You received "+.@point_amt+" hourlypoints by staying ingame for 1 hour"; dispbottom "Current Balance = "+#KAFRAPOINTS+" hourlypoints"; set @consecutive_hour, @consecutive_hour + 1; } //Check for 3 hours consecutive if(@consecutive_hour == 5) { set @consecutive_hour,0; set .@cpoint_amt, 30; //Points to get for 4 Consecutive hours (default: 50) set #KAFRAPOINTS, #KAFRAPOINTS + .@cpoint_amt; dispbottom "You receive "+.@cpoint_amt+" hourlypoints in playing for 12 consecutive hours"; dispbottom "Current Balance = "+#KAFRAPOINTS+" hourlypoints"; } stopnpctimer; initnpctimer; end; OnInit: bindatcmd "checkoh",strnpcinfo(3)+"::OnCheckOH"; bindatcmd "checkhp",strnpcinfo(3)+"::OnCheckHP"; end; OnCheckHP: dispbottom "You have " +#KAFRAPOINTS+ " hourly points."; end; OnCheckOH: dispbottom "You are " +@minute+ " minute/s online."; dispbottom "You are online for "+@consecutive_hour+" consecutive hour/s."; end; } //--End of the Script