Jump to content

Question

Posted

Hi guys! I'm using this Script:

//===== 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 3 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:
	addtimer .timer,"hourlypoints::OnPointGet";
	end;
    
OnPointGet:
	while(checkvending() >= 1 || checkchatting() == 1 || checkidle()>=.dlimit) {
		sleep2 .delay;
		if(.@mes$=="")
			dispbottom set(.@mes$,"The hourly points event haulted because you were vending, chatting, or idle.");
	}

	set #KAFRAPOINTS, #KAFRAPOINTS + .point_amt;
	dispbottom "You received "+.point_amt+" Kafrapoints by staying ingame for 1 hour";
	dispbottom "Current Balance = "+#KAFRAPOINTS+" Kafrapoints";
	set @consecutive_hour, @consecutive_hour + 1;

	//Check for 3 hours consecutive
	if(@consecutive_hour == 3) {
		set @consecutive_hour,0;
		set #KAFRAPOINTS, #KAFRAPOINTS + .cpoint_amt;
		dispbottom "You receive "+.cpoint_amt+" Kafrapoints in playing for 12 consecutive hours";
		dispbottom "Current Balance = "+#KAFRAPOINTS+" Kafrapoints";
	}
	addtimer .timer,"hourlypoints::OnPointGet";
	end;

OnInit:
	set .timer, 1000*60*60; //Timer in milliseconds.
	set .cpoint_amt, 50; //Points gained for consecutive time online.
	set .point_amt, 10; //Normal points gained.
	set .delay, 1000; //Delay for idle re-check check.
	set .dlimit, 60*5; //Stop points if afk greater then in seconds.
}

How can i save the timer?

for example, I logout and login again, the remaining timer before will continue. Thank you so much.

7 answers to this question

Recommended Posts

  • 0
Posted
On 11/19/2016 at 0:01 PM, UnknownUser0317 said:

addtimer .timer,"hourlypoints::OnPointGet";

 

Change the temporary NPC timer to permanent player variable will fix.

answer: change .timer to timer

  • 0
Posted (edited)

i see, thank you!

 

@Winz got this error:

[Error]: script_rid2sd: fatal error ! player not attached!
[Debug]: Function: __setr (2 parameters):
[Debug]: Data: variable name='timer' index=0
[Debug]: Data: number value=3600000
[Debug]: Source (NPC): hourlypoints (invisible/not on a map)
[Error]: script:set: no player attached for player variable 'timer'

 

bump?

Edited by Emistry
Merged + Hidden Duplicated Content.
  • 0
Posted

Here you go. This ones is based on minutes, not hours, so, at 180 minutes, the reward is coming.

-	script	hourlypoints	-1,{
//--Start of the Script
OnPCLoginEvent:
	addtimer .timer,"hourlypoints::OnPointGet";
	end;
    
OnPointGet:
	while(checkvending() >= 1 || checkchatting() == 1 || checkidle()>=.dlimit) {
		sleep2 .delay;
		if(.@mes$=="")
			dispbottom set(.@mes$,"The hourly points event haulted because you were vending, chatting, or idle.");
	}

	set #KAFRAPOINTS, #KAFRAPOINTS + .point_amt;
	dispbottom "You received "+.point_amt+" Kafrapoints by staying ingame for 1 hour";
	dispbottom "Current Balance = "+#KAFRAPOINTS+" Kafrapoints";
	set consecutive_minutes, consecutive_minutes + 1;

	//Check for 3 hours consecutive
	if(consecutive_minutes == 3*60) {
		set consecutive_minutes,0;
		set #KAFRAPOINTS, #KAFRAPOINTS + .cpoint_amt;
		dispbottom "You receive "+.cpoint_amt+" Kafrapoints in playing for 12 consecutive hours";
		dispbottom "Current Balance = "+#KAFRAPOINTS+" Kafrapoints";
	}
	addtimer .timer,"hourlypoints::OnPointGet";
	end;

OnInit:
	set .timer, 1000*60; //Timer in milliseconds.
	set .cpoint_amt, 50; //Points gained for consecutive time online.
	set .point_amt, 10; //Normal points gained.
	set .delay, 1000; //Delay for idle re-check check.
	set .dlimit, 60*5; //Stop points if afk greater then in seconds.
}

 

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.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...