//======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;
}