Jump to content
  • 0

Hourly Points Problem


Question

Posted

help with this script Not Giving Hourly points.

//===== 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;

OnTimer30000:
//Check if Vending (normal or @at)
if(checkvending() >= 1 || checkchatting() == 1) {
   dispbottom "The hourly points event stopped because you were vending / chatting. Please relog if you wish to start again.";
   stopnpctimer;
   end;
}
//Check if Idle
getmapxy( .@map$, .@x, .@y, 0 );
if(@map$ == .@map$ && @x == .@x && @y == .@y) {
   set @afk, @afk + 1;
}
//If move timer resets
else {
   set @afk, 0;
}
   set @map$, .@map$; set @x, .@x; set @y, .@y;
//Idle Check for 5 Minutes
if(@afk == 5) {
   dispbottom "The hourly points event stopped because you were idle for 5 minutes. Please relog if you wish to start again.";
   stopnpctimer;
   end;
}
end;

OnTimer60000:
set @minute, @minute + 1;
//Check for 1 Minute
if(@minute == 60){
   set @minute,0;
   set .@point_amt, 1; //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 + 1;
   }
//Check for 12 hours consecutive
   if(@consecutive_hour == 12) {
   set @consecutive_hour,0;
   set .@cpoint_amt, 5; //Points to get for 12 Consecutive hours (default: 50)
   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

Recommended Posts

Posted

make sure your character is not in vending mode / chatroom mode...the script will stop automatically upon you create a chatroom / vending shop and afk for a while like 5 minutes as stated above.

Posted

does this script stop automatically when you go to gvg maps? or something like that? some of my players complain that their hourly points stops, but mostly it works fine.

Posted (edited)

Can I have an edited script of this which only gives Items? Example "7227,1" every hour and "7185,1" for staying online for 6 hours.

Script will stop if players will chatroom,vend,afk(5mins) THANKS

Edited by Paulinds
Posted

//===== 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;

OnTimer30000:
//Check if Vending (normal or @at)
if(checkvending() >= 1 || checkchatting() == 1) {
   dispbottom "The Hourly Rewards event stopped because you were vending / chatting. Please relog if you wish to start again.";
   stopnpctimer;
   end;
}
//Check if Idle
getmapxy( .@map$, .@x, .@y, 0 );
if(@map$ == .@map$ && @x == .@x && @y == .@y) {
   set @afk, @afk + 1;
}
//If move timer resets
else {
   set @afk, 0;
}
   set @map$, .@map$; set @x, .@x; set @y, .@y;
//Idle Check for 5 Minutes
if(@afk == 5) {
   dispbottom "The Hourly Rewards event stopped because you were idle for 5 minutes. Please relog if you wish to start again.";
   stopnpctimer;
   end;
}
end;

OnTimer60000:
set @minute, @minute + 1;
//Check for 1 Minute
if(@minute == 60){
   set @minute,0;
   set .@item_amt, 1; //Points to get every hour (default: 10)
   getitem 7227,.@item_amt;
   dispbottom "You received "+.@point_amt+" [i]<7227's displayname>[/i] by staying ingame for 1 hour";
   }
//Check for 6 hours consecutive
   if(@consecutive_hour == [b][i]6[/i][/b]) {
   set @consecutive_hour,0;
   set .@item_amt, 1; //Points to get for 6 Consecutive hours (default: 50)
   getitem 7185,.@item_amt;
   dispbottom "You receive "+.@item_amt+" [i]<7185's displayname>[/i] in playing for 6 consecutive hours";
   }
stopnpctimer;
initnpctimer;
end;

}
//--End of the Script

@Paulinds try that

Posted

careful with the 1 posted by @mnjfx..

because..inside there script..there are some forum text tag inside it...

most probably it occur during he copying the script / posting the script...

you just need to remove all the tag then the script should be work fine...

anyway...here is another mirror for it

[ Pastebin ] Hourly Item Reward

Posted

Can we do the same but to prevend afk lvl.?

like, if player stay away for 5min exp and autoloot will be stop.

right now for autoloot is alredy possible i wonder if we can do something for exp too.

Posted

how to enable the idle one in this script ???

thx in advance

 

//Idle Check for 5 Minutes
if(@afk == 5) {
    dispbottom "The hourly points event stopped because you were idle for 5 minutes. Please relog if you wish to start again.";
    stopnpctimer;
    end;
}
 
Posted

How do we add specific map for this script?

- Ex. People will only get afk points from prontera. etc.

 

if(@map$ == "yourmap1" || @map$ == "yourmap2" || @map$ == "yourmap3") {
Posted

What if he goes out of the area? the points is still adding.



Hi,

 

I'm sorry im just stucked on this. So people gets points from afk'ing. from certain map. But what if he goes out from 'prontera' for instance? How'd I do that from script?

Posted

Here's the script without idle.

 


-    script    hourlypoints    -1,{

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

OnTimer60000:
set @minute, @minute + 1;
//Check for 1 Minute
if(@minute == 60){
    set @minute,0;
    getitem 7227,1;
    dispbottom "You received 1 "+getitemname( 7227 )+" by staying ingame for 1 hour";
    set @consecutive_hour, @consecutive_hour + 1;
    }
//Check for 12 hours consecutive
    if(@consecutive_hour == 6) {
    set @consecutive_hour,0;
    getitem 7227,1;
    dispbottom "You received 6 "+getitemname( 7227 )+" by staying ingame for consecutive of 6 hour";
    }
stopnpctimer;
initnpctimer;
end;

}
Posted

Here's the script without idle.

 


-    script    hourlypoints    -1,{

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

OnTimer60000:
set @minute, @minute + 1;
//Check for 1 Minute
if(@minute == 60){
    set @minute,0;
    getitem 7227,1;
    dispbottom "You received 1 "+getitemname( 7227 )+" by staying ingame for 1 hour";
    set @consecutive_hour, @consecutive_hour + 1;
    }
//Check for 12 hours consecutive
    if(@consecutive_hour == 6) {
    set @consecutive_hour,0;
    getitem 7227,1;
    dispbottom "You received 6 "+getitemname( 7227 )+" by staying ingame for consecutive of 6 hour";
    }
stopnpctimer;
initnpctimer;
end;

}

Thanks .. I Will Try it Later

Posted
-	script	hourlypoints	-1,{

//--Start of the Script
OnPCLoginEvent:
attachnpctimer ""+strcharinfo(0)+"";
initnpctimer;
end;
	
OnTimer30000:
//Check if Vending (normal or @at)
if(checkvending() >= 1 || checkchatting() == 1) {
	dispbottom "The hourly points event stopped because you were vending / chatting. Please relog if you wish to start again.";
	stopnpctimer;
	end;
}
//Check if Idle
getmapxy( .@map$, .@x, .@y, 0 );
if(@map$ == .@map$ && @x == .@x && @y == .@y) {
	set @afk, @afk + 1;
}
//If move timer resets
else {
	set @afk, 0;
}
	set @map$, .@map$; set @x, .@x; set @y, .@y;
//Idle Check for 5 Minutes
if(@afk == 5) {
	dispbottom "The hourly points event stopped because you were idle for 5 minutes. Please relog if you wish to start again.";
	stopnpctimer;
	end;
}
end;

OnTimer60000:
set @minute, @minute + 1;
//Check for 1 Minute
if(@minute == 60){
	set @minute,0;
	set .@point_amt, 5; //Points to get every hour (default: 10)
	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 12 hours consecutive
	if(@consecutive_hour == 12) {
	set @consecutive_hour,0;
	set .@cpoint_amt, 50; //Points to get for 12 Consecutive hours (default: 50)
	set #KAFRAPOINTS, #KAFRAPOINTS + .@cpoint_amt;
	dispbottom "You receive "+.@cpoint_amt+" Kafrapoints in playing for 12 consecutive hours";
	dispbottom "Current Balance = "+#KAFRAPOINTS+" Kafrapoints";
	}
stopnpctimer;
initnpctimer;
end;

}
//--End of the Script

 

 

How can i disable this in certain map like sec_prison? So this not work on that map

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...