Jump to content
  • 0

Hourly Rewards with Per day limit


Mabuhay

Question


  • Group:  Members
  • Topic Count:  105
  • Topics Per Day:  0.02
  • Content Count:  446
  • Reputation:   229
  • Joined:  03/20/12
  • Last Seen:  

I tried to search every hourly points in the forum but i cant find the one that suits my needs.

 

Here are my request: 

-- crossed out means done

-- bold ones needs to be done

 

*Timer starts when player is online.

*Timer still continues even the player is idle or in chatting.

*Timer stops when player will vend (@at) 

*Timer stops when player logs out.

*Timer will start again, from where it stopped, upon re-logging.  (if possible)

*Gives cashpoints on these hours of being online:

  • Hour 1 = 100 Cashpoints
  • Hour 2 = 200 Cashpoints
  • Hour 4 = 400 Cashpoints // Yes, I skipped hour 3 on purpose. No reward in hour 3
  • Hour 8 = 1300 Cashpoints // And so hour 5 ~ 7 will give no reward
  • Then timer stops

*Total of 2000 Cashpoints limit per day.

*After the next day in the server, the timer resets.

 

Thank you!

 

Here is a script I found and modify:

//===== Hourly Points Script =========================================
//===== By: ==========================================================
//= GorthexTiger modified by Nibi
//===== Current Version: =============================================
//= 1.0
//===== Compatible With: =============================================
//= Any eAthena Version
//===== Description: =================================================
//= Get Points every successful hours of gameplay, you cannot get
//= the points even if you miss a second or a minute. A player will
//= get a very big bonus if they played 12 hours consecutively
//= or without logging out of the game. If the player is vending
//= the script will then stop.
//===== Additional Comments: =========================================
//= You can modify the script to your liking.
//= The default points is Kafrapoints change it anyway if you like.
//= 1.1 = Check Chatting too
//= 1.2 = 5 Minute Idle Check & @at/@autotrade check.
//= 1.3 = Corrected the current balance line on 12 Hours Consecutive
//====================================================================

-	script	hourlypoints	-1,{

//--Start of the Script
OnPCLoginEvent:
attachnpctimer ""+strcharinfo(0)+"";
initnpctimer;
end;
	
OnTimer500:
//Check if Vending (normal or @at)
if(checkvending() >= 1) {
	dispbottom "The hourly points event stopped because you were vending. Please relog if you wish to start again.";
	stopnpctimer;
	end;
}


OnTimer600000:
set @minute, @minute + 1;
//Check for 1 Minute
if(@minute == 6000){
	//set @minute,0;
	set .@point_amt, 100; //Points to get every hour (default: 10)
	set #CASHPOINTS, #CASHPOINTS + .@point_amt;
	dispbottom "You received "+.@point_amt+" Cashpoints by staying ingame for 1 hour";
	dispbottom "Current Balance = "+#CASHPOINTS+" Cashpoints";
	//set @consecutive_hour, @consecutive_hour + 10;
	}
if(@minute == 12000){
	//set @minute,0;
	set .@point_amt, 200; //Points to get every hour (default: 10)
	set #CASHPOINTS, #CASHPOINTS + .@point_amt;
	dispbottom "You received "+.@point_amt+" Cashpoints by staying ingame for 2 hour";
	dispbottom "Current Balance = "+#CASHPOINTS+" Cashpoints";
	//set @consecutive_hour, @consecutive_hour + 10;
	}
if(@minute == 24000){
	//set @minute,0;
	set .@point_amt, 400; //Points to get every hour (default: 10)
	set #CASHPOINTS, #CASHPOINTS + .@point_amt;
	dispbottom "You received "+.@point_amt+" Cashpoints by staying ingame for 4 hour";
	dispbottom "Current Balance = "+#CASHPOINTS+" Cashpoints";
	//set @consecutive_hour, @consecutive_hour + 10;
	}
if(@minute == 48000){
	set @minute,0;
	set .@point_amt, 1300; //Points to get every hour (default: 10)
	set #CASHPOINTS, #CASHPOINTS + .@point_amt;
	dispbottom "You received "+.@point_amt+" Cashpoints by staying ingame for 8 hour";
	dispbottom "Current Balance = "+#CASHPOINTS+" Cashpoints";
	//set @consecutive_hour, @consecutive_hour + 10;
	}
//Check for 12 hours consecutive
//	if(@consecutive_hour == 12) {
//	set @consecutive_hour,0;
//	set .@cpoint_amt, 100; //Points to get for 12 Consecutive hours (default: 100)
//	set #CASHPOINTS, #CASHPOINTS + .@cpoint_amt;
//	dispbottom "You receive "+.@cpoint_amt+" Cashpoints in playing for 12 consecutive hours";
//	dispbottom "Current Balance = "+#CASHPOINTS+" Cashpoints";
	}
stopnpctimer;
initnpctimer;
end;

}
//--End of the Script
Edited by MrVandalBus
Link to comment
Share on other sites

2 answers to this question

Recommended Posts


  • Group:  Developer
  • Topic Count:  48
  • Topics Per Day:  0.01
  • Content Count:  1443
  • Reputation:   337
  • Joined:  10/17/12
  • Last Seen:  

//===== Hourly Points Script =========================================
//===== By: ==========================================================
//= GorthexTiger modified by Nibi
//===== Current Version: =============================================
//= 1.0
//===== Compatible With: =============================================
//= Any eAthena Version
//===== Description: =================================================
//= Get Points every successful hours of gameplay, you cannot get
//= the points even if you miss a second or a minute. A player will
//= get a very big bonus if they played 12 hours consecutively
//= or without logging out of the game. If the player is vending
//= the script will then stop.
//===== Additional Comments: =========================================
//= You can modify the script to your liking.
//= The default points is Kafrapoints change it anyway if you like.
//= 1.1 = Check Chatting too
//= 1.2 = 5 Minute Idle Check & @at/@autotrade check.
//= 1.3 = Corrected the current balance line on 12 Hours Consecutive
//====================================================================

-	script	hourlypoints	-1,{

//--Start of the Script
OnPCLoginEvent:
	set .@i, (gettime(7) * 365 * 24) + (gettime(8) * 24) + gettime(3);// this will set time of origional loging
		if(.@i >= (#LastClock + .ResetHours)){
			set #LastClock,.@i;
			set #Clock,0;
		} else { set @minute,#Clock; }

attachnpctimer ""+strcharinfo(0)+"";
initnpctimer;
end;

OnPCLoginEvent:
	set #Clock,@minute;
end;

OnInit:
	set .ResetHours,24;
	end;

OnTimer500:
//Check if Vending (normal or @at)
if(checkvending() >= 1) {
	dispbottom "The hourly points event stopped because you were vending. Please relog if you wish to start again.";
	stopnpctimer;
	end;
}


OnTimer600000:
set @minute, @minute + 1;
//Check for 1 Minute
if(@minute == 6000){
	//set @minute,0;
	set .@point_amt, 100; //Points to get every hour (default: 10)
	set #CASHPOINTS, #CASHPOINTS + .@point_amt;
	dispbottom "You received "+.@point_amt+" Cashpoints by staying ingame for 1 hour";
	dispbottom "Current Balance = "+#CASHPOINTS+" Cashpoints";
	//set @consecutive_hour, @consecutive_hour + 10;
	}
if(@minute == 12000){
	//set @minute,0;
	set .@point_amt, 200; //Points to get every hour (default: 10)
	set #CASHPOINTS, #CASHPOINTS + .@point_amt;
	dispbottom "You received "+.@point_amt+" Cashpoints by staying ingame for 2 hour";
	dispbottom "Current Balance = "+#CASHPOINTS+" Cashpoints";
	//set @consecutive_hour, @consecutive_hour + 10;
	}
if(@minute == 24000){
	//set @minute,0;
	set .@point_amt, 400; //Points to get every hour (default: 10)
	set #CASHPOINTS, #CASHPOINTS + .@point_amt;
	dispbottom "You received "+.@point_amt+" Cashpoints by staying ingame for 4 hour";
	dispbottom "Current Balance = "+#CASHPOINTS+" Cashpoints";
	//set @consecutive_hour, @consecutive_hour + 10;
	}
if(@minute == 48000){
	set @minute,0;
	set .@point_amt, 1300; //Points to get every hour (default: 10)
	set #CASHPOINTS, #CASHPOINTS + .@point_amt;
	dispbottom "You received "+.@point_amt+" Cashpoints by staying ingame for 8 hour";
	dispbottom "Current Balance = "+#CASHPOINTS+" Cashpoints";
	//set @consecutive_hour, @consecutive_hour + 10;
	}
//Check for 12 hours consecutive
//	if(@consecutive_hour == 12) {
//	set @consecutive_hour,0;
//	set .@cpoint_amt, 100; //Points to get for 12 Consecutive hours (default: 100)
//	set #CASHPOINTS, #CASHPOINTS + .@cpoint_amt;
//	dispbottom "You receive "+.@cpoint_amt+" Cashpoints in playing for 12 consecutive hours";
//	dispbottom "Current Balance = "+#CASHPOINTS+" Cashpoints";
	}
stopnpctimer;
initnpctimer;
end;

}
//--End of the Script

i made it 24 (configurable via .ResetHours) hour period from initial login, will reset initial login on 1st login after 24 hours are up.

Added Stop on player logout and restart on relogging in (assuming its not been 24 hours)

as for 2000 points that will never be reached if your other settings are correct so that option is moot

 

ps this script can be easily optimized and shortened maybe ill even do it myself if i get bored

  • Upvote 1
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  105
  • Topics Per Day:  0.02
  • Content Count:  446
  • Reputation:   229
  • Joined:  03/20/12
  • Last Seen:  

Thanks Stolao. I'll be testing this now. I noted your point and i will optimize this my own, thanks again

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...