//======Name======================================== // Daily Login Rewards //======Version===================================== // 1.1 // Author: Sandbox. Winterfox //======Comments==================================== // Updated outdated Synta // Made slight optimizations // Added a delay of 3 hours before the player is // able to claim his reward and only if he has // not been idle longer than 5 minutes in this // time frame. //================================================== - script DailyLoginRewards -1,{ OnInit: setarray .D_Prize, 501, 502, 503, 607, 608; //Set to desired item prizes setarray .D_Amt, 1, 2, 3, 2, 1; //Amount of prize to be given .Serv_Name$ = "Your Server"; //Set to your server name end; OnPCLoginEvent: // Start a timer after 1 minute to sum up idle time addtimer( 60000, strnpcinfo(3 )+ "::IdleCheck" ); // Start a timer to clam the daily reward after 3 hours addtimer( 10800000, strnpcinfo(3) + "::StartClaim" ); end; IdleCheck: // Add the current idle time to the idle time counter. #idleTime += checkidle(); // Set a new timer to recheck after 1 minute. addtimer( 60000, strnpcinfo(3) + "::IdleCheck" ); end; StartClaim: // If the idle time was less more than 5 minutes in the last 3 hours, end the script before doing anything. if( #idleTime < 300 ) end; if( gettimetick(2) < #ClaimDelay ) end; if( gettimetick(2) > #StreakDelay ) #LogStreak = 0; if( #RewardStreak == 0 ) dispbottom("Welcome to " + .Serv_Name$ + "! You've received " + .D_Amt[#RewardStreak] + " " + getitemname( .D_Prize[#RewardStreak] )+" for logging in! Visit us daily to get more prize! When you've managed to play with us for 5 consecutive days, you will receive bonus prizes!"); if( #RewardStreak > 0 ) dispbottom("Welcome back to " + .Serv_Name$ + "! You've received " + .D_Amt[#RewardStreak] + " " + getitemname( .D_Prize[#RewardStreak] ) + " for logging in! Visit us daily to get more prize! When you've managed to play with us for 5 consecutive days, you will receive bonus prizes!"); getitem( .D_Prize[#RewardStreak], .D_Amt[#RewardStreak]); #RewardStreak += 1; #LogStreak += 1; #ClaimDelay = gettimetick(2) + 86400; #StreakDelay = gettimetick(2) + 172800; if(#LogStreak >= 4) { for( .@i = 0; .@i < 4; set .@i, .@i++ ) getitem(.D_Prize[.@i],.D_Amt[.@i]); dispbottom( "Congratulations! You've received all the daily rewards for logging in 5 consecutive days!" ); #LogStreak = 0; } end; OnPCLogoutEvent: // Reset idle time on logout. #idleTime = 0; end; }