viewing paste Unknown #21004 | Athena

Posted on the
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
//======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;
}
Viewed 888 times, submitted by Guest.