Emistry icon

[RO] Hourly Point - Stop when Vending Chat AFK

Emistry | PRO | 05/21/17 08:02:00 AM UTC | 0 ⭐ | 735 👁️ | Never ⏰ | []
text |

5.17 KB

|

None

|

0 👍

/

0 👎

// https://rathena.org/board/topic/110719-hourly-vending-timer-stop/#comment-324042
 -	script	hourly_point_main	-1,{
     OnInit:
        .duration = 3600;
	.vip_multi = 2;
        .npc_name$ = strnpcinfo(3);
	.delay   = 1000;       //Delay for idle re-check check. ( Default: 1000 [ = 1 Second ] )
	.idle    = 60*1;       //Player is idle after not moving for this many seconds. ( Default: 60*5 [ = 5 Minutes ] )
	set .2cpoint_amt, 20; //Points gained for consecutive time online.
	set .3cpoint_amt, 30; //Points gained for consecutive time online.
	set .4cpoint_amt, 40; //Points gained for consecutive time online.
	set .5cpoint_amt, 50; //Points gained for consecutive time online.
	set .6cpoint_amt, 60; //Points gained for consecutive time online.
	set .7cpoint_amt, 70; //Points gained for consecutive time online.
	set .8cpoint_amt, 80; //Points gained for consecutive time online.    
	set .point_amt, 10; //Normal points gained.
        bindatcmd "reward",    .npc_name$ + "::OnCheck";
        end;
     OnUpdate:
	//Check for idle.
	if (@hourly_point_stopped || checkvending() >= 1 || checkchatting() == 1 || checkidle() >= .idle) {
		@hourly_point_stopped = 1;
		dispbottom "The hourly points event stopped because you were vending, chatting, or idle!";
		end;
	}
	set #HourlyPoints, #HourlyPoints + .point_amt * 1 * ( vip_status(1) ? .vip_multi : 1 );
	dispbottom "You received "+.point_amt+" Reward Hourly Points by staying ingame for 1 hour";
	dispbottom "Current Balance = "+#HourlyPoints+" Reward Hourly Points";
	set @consecutive_hour, @consecutive_hour + 1;
 	//Check for 2 hours consecutive
	if(@consecutive_hour == 2) {
		set #HourlyPoints, #HourlyPoints + .2cpoint_amt * 1 * ( vip_status(1) ? .vip_multi : 1 );
		dispbottom "You received "+.2cpoint_amt+" Reward Hourly Points due to playing for 2 consecutive hours";
		dispbottom "Current Balance = "+#HourlyPoints+" Reward Hourly Points";
	}
 	//Check for 3 hours consecutive
	else if(@consecutive_hour == 3) {
		set #HourlyPoints, #HourlyPoints + .3cpoint_amt * 1 * ( vip_status(1) ? .vip_multi : 1 );
		dispbottom "You received "+.3cpoint_amt+" Reward Hourly Points due to playing for 3 consecutive hours";
		dispbottom "Current Balance = "+#HourlyPoints+" Reward Hourly Points";
	}
 	//Check for 4 hours consecutive
	else if(@consecutive_hour == 4) {
		set #HourlyPoints, #HourlyPoints + .4cpoint_amt * 1 * ( vip_status(1) ? .vip_multi : 1 );
		dispbottom "You received "+.4cpoint_amt+" Reward Hourly Points due to playing for 4 consecutive hours";
		dispbottom "Current Balance = "+#HourlyPoints+" Reward Hourly Points";
	}
 	//Check for 5 hours consecutive
	else if(@consecutive_hour == 5) {
		set #HourlyPoints, #HourlyPoints + .5cpoint_amt * 1 * ( vip_status(1) ? .vip_multi : 1 );
		dispbottom "You received "+.5cpoint_amt+" Reward Hourly Points due to playing for 5 consecutive hours";
		dispbottom "Current Balance = "+#HourlyPoints+" Reward Hourly Points";
	}
 	//Check for 6 hours consecutive
	else if(@consecutive_hour == 6) {
		set #HourlyPoints, #HourlyPoints + .6cpoint_amt * 1 * ( vip_status(1) ? .vip_multi : 1 );
		dispbottom "You received "+.6cpoint_amt+" Reward Hourly Points due to playing for 6 consecutive hours";
		dispbottom "Current Balance = "+#HourlyPoints+" Reward Hourly Points";
	}
 	//Check for 7 hours consecutive
	else if(@consecutive_hour == 7) {
		set #HourlyPoints, #HourlyPoints + .7cpoint_amt * 1 * ( vip_status(1) ? .vip_multi : 1 );
		dispbottom "You received "+.7cpoint_amt+" Reward Hourly Points due to playing for 7 consecutive hours";
		dispbottom "Current Balance = "+#HourlyPoints+" Reward Hourly Points";
	}
 	//Check for 8 hours consecutive
	else if(@consecutive_hour == 8) {
		set @consecutive_hour,0;
		set #HourlyPoints, #HourlyPoints + .8cpoint_amt * 1 * ( vip_status(1) ? .vip_multi : 1 );
		dispbottom "You received "+.8cpoint_amt+" Reward Hourly Points due to playing for 8 consecutive hours";
		dispbottom "Current Balance = "+#HourlyPoints+" Reward Hourly Points";
	}
	@timer = gettimetick(2) + .duration;
	addtimer ( .duration * 1000 ), .npc_name$+"::OnUpdate";
	end;
     OnPCLoginEvent:
        atcommand "@refresh "+strcharinfo(0);
	@timer = gettimetick(2) + .duration;
	addtimer ( .duration * 1000 ), .npc_name$+"::OnUpdate";
	dispbottom "Hourly Rewards have been started for this character.";
	end;
     OnCheck:
        .@min = (@timer - gettimetick(2))/60;
        .@sec = (@timer - gettimetick(2))%60;
        dispbottom "War Server",0x9ae2d7;
        dispbottom "Total Hours Online " +@consecutive_hour+ "",0x9ae2d7;
        dispbottom "Reward Hourly Points : ^FF0000[ "+#HourlyPoints+" ]^000000",0x9ae2d7;
		if ( @hourly_point_stopped ) {
			dispbottom "The hourly points event stopped because you were previously vending, chatting, or idle!";
		}
		else {
			dispbottom "[ Hourly Rewards ] Your next reward will be achieved in " +
						((.@min)?            "[ " + .@min + " ] minute"         + ((.@min > 1)?"s":""):"") +
						((.@min && .@sec)?    " and ":"") +
						((.@sec)?            "[ " + .@sec + " ] second"    + ((.@sec > 1)?"s":""):"") +
						"!",0x9ae2d7;
		}
        end;            
}

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎