I got a problem. even though I'm not Idle the message still pop up"You were afk for 5 minutes therefore you have to wait 2 hours again without ideling for more than 5 minutes to get your prize."
//======Name========================================
// Daily Login Rewards
//======Version=====================================
// 1.1
// Author: Sandbox, Winterfox
//======Comments====================================
// Updated outdated Syntax-
// 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:
//Set to your server name
.Serv_Name$ = "Republic";
//Set to desired item prizes
setarray( .D_Prize, 11501, 11502, 14533, 12210, 7539 );
//Amount of prize to be given
setarray( .D_Amt, 400, 400, 4, 3, 2 );
end;
OnPCLoginEvent:
if( gettimetick( 2 ) < #ClaimDelay ) {
dispbottom( "Daily Login Activated. You allready got your daily login reward. " );
end;
}
// Show notice about the Daily Login Rewards
dispbottom( "Daily Login Activated. Please be Online for 2 hours without being idle for more than 5 minutes to receive daily login reward. " );
// Start a timer after 1 minute to sum up idle time
addtimer( 60000, strnpcinfo(3 ) + "::OnIdleCheck" );
// Start a timer to clam the daily reward after 3 hours
addtimer( 7200000, strnpcinfo(3) + "::OnStartClaim" );
end;
OnIdleCheck:
// Add the current idle time to the idle time counter.
#overallIdleTime += checkidle();
// Set a new timer to recheck after 1 minute.
addtimer( 60000, strnpcinfo( 3 ) + "::OnIdleCheck" );
end;
OnStartClaim:
// If the idle time was 5 minutes or more in the last 3 hours reset to check if the person is the next 3 hours less idle than 5 minutes.
if( #overallIdleTime >= 300 ) {
#overallIdleTime = 0;
// Start a timer to clam the daily reward after 2 hours
addtimer( 7200000, strnpcinfo(3) + "::OnStartClaim" );
dispbottom( "You were afk for 5 minutes therefore you have to wait 2 hours again without ideling for more than 5 minutes to get your prize." );
end;
}
deltimer( strnpcinfo(3 ) + "::OnIdleCheck" );
// If the streak was broken reset the streak count.
if( gettimetick( 2 ) > #StreakDelay ) #LogStreak = 0;
// If the rewards reached their end, reset them.
if( #RewardStreak > getarraysize( .D_Prize ) ) #RewardStreak = 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!" );
announce "Announcement: " + strcharinfo(0) + " have received the daily reward",0;
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 == 5 ) {
for( .@i = 0; .@i < getarraysize( .D_Prize ); 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!" );
announce "Announcement:" + strcharinfo(0) + " have received all the daily rewards for logging in 5 consecutive days!",0;
#LogStreak = 0;
}
end;
OnPCLogoutEvent:
// Reset idle time on logout.
#overallIdleTime = 0;
end;
}
Question
darking123
I got a problem. even though I'm not Idle the message still pop up"You were afk for 5 minutes therefore you have to wait 2 hours again without ideling for more than 5 minutes to get your prize."
Edited by glemor1231 answer to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.