Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //======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$ = "Your Server";
- //Set to desired item prizes
- setarray( .D_Prize, 501, 502, 503, 607, 608 );
- //Amount of prize to be given
- setarray( .D_Amt, 1, 2, 3, 2, 1 );
- 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 3 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 ) + "::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 more than 5 minutes in the last 3 hours reset to check if the person is the next 3 hours less idle than 5 minutes.
- if( #idleTime > 300 ) {
- #idleTime = 0;
- // Start a timer to clam the daily reward after 3 hours
- addtimer( 10800000, strnpcinfo(3) + "::StartClaim" );
- end;
- }
- deltimer( strnpcinfo(3 ) + "::IdleCheck" );
- // 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!" );
- 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!" );
- #LogStreak = 0;
- }
- end;
- OnPCLogoutEvent:
- // Reset idle time on logout.
- #idleTime = 0;
- end;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement