Jump to content
  • 0
Petey Pablo

Need help daily reward

Question

Need help to fix this error

[Error]: script_rid2sd: fatal error ! player not attached!
[Debug]: Function: __setr (2 parameters):
[Debug]: Data: variable name='.Bound_Mode' index=0
[Debug]: Data: variable name='Bound_Account' index=0
[Debug]: Source (NPC): LOGIN (invisible/not on a map)
[Warning]: script_get_val: cannot access player variable 'Bound_Account', defaulting to 0

 

This is the full script

//===== EinherjarRO Scripts ================================== 
//= Daily Rewards
//===== By: ================================================== 
//= Stolao
//===== Current Version: ===================================== 
//= 1.8D
//===== Compatible With: ===================================== 
//= rAthena SVN
//===== Description: ========================================= 
//= A reward system for players who play more frequently
//===== Todo: ================================================
//= Maybe make .MinWait an array mins,days,weeks,months,years;
//= Make Logging out then it continue count
//= Seperate Timer from script for optional go collect reward
//= Remove use of sleep2
//= Suggestions?
//===== Additional Comments: =================================
//= For Older See Old Versions
//= 1.7C Added custom item binding mode [Secretdataz]
//= 1.7D Added cutin for next day option + command
//= 1.7E Added IP Check
//= 1.7F Moved .Rest Message to after .MinWait Check
//= 1.80 Added MacAddress check for those using Gepard Shield (disabled by default)
//= 1.81 Fixed Typo in .MacCheck
//= 1.82 Moved .Rest Check before rewards check to prevent bug
//= 1.83 Added strnpcinfo(3) for bindatcomands
//= 1.84 Rephrased some conf settings
//= 1.85 Fixed Capilazation
//= 1.86 Small Tabulation Tweaks
//= 1.87 Noted Changes to Reward Farmatting
//= 1.88 Added 'fixreward' Command for those who get negative wait times ( not sure of issues still)
//= 1.89 Changed soeme Messaging Formatting
//= 1.8A Made Fix Command GM 99 Only, to use on others do '#fixreward'
//= 1.8B Added Overwieght Collection
//= 1.8C Added 'collectreward', 'collectdaily' and 'dailyreward' commands
//= 1.8D Fix MacAddress and IP Check [sader1992]
//===== Contact Info: ========================================
//= [Stolao] 
//= Email: [email protected]
//============================================================
-	script	LOGIN	FAKE_NPC,{
OnWhisperGlobal:
OnLoginCmnd:
OnPCLoginEvent:
	.@t = (gettime(7) * 365 * 24 * 60) + (gettime(8) * 24 * 60) + (gettime(3) * 60) + gettime(2) - .Rest;
	if(.IPCheck){
		query_sql("SELECT account_id FROM `login` WHERE last_ip = '"+getcharip()+"'", .@AccountId);
		for(.@i=0;.@i<getarraysize(.@AccountId);.@i++){
			query_sql("SELECT `value` FROM `acc_reg_num` WHERE `account_id` = '"+.@AccountId[.@i]+"' AND `key` = '#LastDailyReward'",.@LastIp2);
			if(.@t < (.@LastIp2 + .MinWait)){
				message strcharinfo(0),"[Daily Rewards]: Rewards are limited to 1 per IP sorry.";
			end;
			}
		}
	}
	if(.MacCheck){
		query_sql("SELECT last_unique_id FROM `login` WHERE account_id = "+getcharid(3)+"", .@last_unique_id$);
		query_sql("SELECT account_id FROM `login` WHERE last_unique_id = '"+.@last_unique_id$+"'", .@AccountId2);
		for(.@i=0;.@i<getarraysize(.@AccountId2);.@i++){
			query_sql("SELECT `value` FROM `acc_reg_num` WHERE `account_id` = '"+.@AccountId2[.@i]+"' AND `key` = '#LastDailyReward'",.@MacCheck2);
			if(.@t < (.@MacCheck2 + .MinWait)){
				message strcharinfo(0),"[Daily Rewards]: Rewards are limited to 1 per computer sorry.";
			end;
			}
		}
	}
	.@i = (gettime(7) * 365 * 24 * 60) + (gettime(8) * 24 * 60) + (gettime(3) * 60) + gettime(2);
	if(.@i >= (#LastDailyReward + .MinWait) && .Rest && !#DROverweight){
		message strcharinfo(0),"[Daily Rewards]: To collect reward you must remain logged in for "+ .Rest +" minutes";
		sleep2 1000 + .Rest * 60000;
	}
	if(.@i >= (#LastDailyReward + .MinWait)){
		if(checkvending() & 2 && .Mode & 64){
			message strcharinfo(0),"[Daily Rewards]: Venders cannot recive rewards.";
			end;
		}
		if(.@i < #LastDailyReward + .MaxWait)
			#DRewardCon += 1;
		else	#DRewardCon = 1;
		if(#DRewardCon >= getarraysize(.Rewards$)){
			if(.Reset)
				#DRewardCon = 1;
			else	.@g = getarraysize(.Rewards$)-1;
		} else	.@g = #DRewardCon;
		explode(.@XT$,.Rewards$[.@g],",");
		for(.@x = 0; .@x < getarraysize(.@XT$); .@x++)
			.@TT[.@x] = atoi(.@XT$[.@x]);
		if(.Mode & 1 && .@TT[4] > 0){
			for(.@x = 4; .@x <= getarraysize(.@TT) - 1 ; .@x += 2){
				.@itms[getarraysize(.@itms)] = .@TT[.@x];
				.@qnts[getarraysize(.@qnts)] = .@TT[.@x + 1];
			}
			if(checkweight2(.@itms,.@qnts)){
				for(.@x = 0; .@x < getarraysize(.@itms) && .@x < getarraysize(.@qnts); .@x++){
					if(.Mode & 32)
						getitembound  .@itms[.@x], .@qnts[.@x], .Bound_Mode;
					else	getitem  .@itms[.@x], .@qnts[.@x];
				}
				#DROverweight = 0;
			} else {
				message strcharinfo(0),"[Daily Rewards]: You can not carry the prizes, please use storage and type @relog.";
				if(#DRewardCon) #DRewardCon -= 1;
				#DROverweight = 1;
				end;
			}
		}
		if(.Mode & 16)
			cutin .Cutins$[#DRewardCon],4;
		if(.Mode & 2){
			if(.@TT[0]){
				Zeny += .@TT[0];
				message strcharinfo(0),"[Daily Rewards]: Recieved "+ .@TT[0] +"z";
			}
			if(.@TT[1]){
				setd getd(.Points$[0]),getd(.Points$[0]) + .@TT[1];
				message strcharinfo(0),"[Daily Rewards]: Recieved "+ .@TT[1] +" "+.Points$[1];
			}
		}
		if(.Mode & 4 && (.@TT[3] || .@TT[4]))
			getexp .@TT[3], .@TT[4];
		if(.Mode & 8){
			for(.@x = 0; .@x < getarraysize(.BuffInfo); .@x += 4){
				if(#DRewardCon % .BuffInfo[.@x + 1] == 0)
					sc_start .BuffInfo[.@x], .BuffInfo[.@x + 2] * 60000, .BuffInfo[.@x + 3];
			}
		}
		message strcharinfo(0),"[Daily Rewards]: You have collected your daily reward, for "+callfunc("F_InsertPlural",#DRewardCon,"day")+" now.";
		#LastDailyReward = (gettime(7) * 365 * 24 * 60) + (gettime(8) * 24 * 60) + (gettime(3) * 60) + gettime(2) - .Rest;
		end;
	}
OnNextCmnd:
	if(!.@i) .@i = (gettime(7) * 365 * 24 * 60) + (gettime(8) * 24 * 60) + (gettime(3) * 60) + gettime(2) - .Rest;
	if(#LastDailyReward + .MinWait - .@i < 0){
		message strcharinfo(0),"[Daily Rewards]: Your rewards should be available.";
	} else {
		.@days = (#LastDailyReward + .MinWait - .@i) / 60 / 24;
		.@hours = ((#LastDailyReward + .MinWait - .@i) / 60) % 24;
		.@mins = (#LastDailyReward + .MinWait - .@i) % 60;
		message strcharinfo(0),"[Daily Rewards]: You have "+ ((.@days) ? .@days +" Days " : "") + ((.@hours) ? .@hours +" Hours " : "") + ((.@mins) ? .@mins +" Minutes " : "") +"till your next reward.";
		if(.Mode & 128){
			if(#DRewardCon + 1 >= getarraysize(.Rewards$)){
				if(.Reset)	.@DRewardCon = 1;
				else	.@g = getarraysize(.Rewards$)-1;
			} else	.@g = #DRewardCon + 1;
			cutin .Cutins$[.@g],4;
		}
	}
	end;
OnFixCmnd:
	#LastDailyReward = (gettime(7) * 365 * 24 * 60) + (gettime(8) * 24 * 60) + (gettime(3) * 60) + gettime(2);
	message strcharinfo(0),"[Daily Rewards]: Next reward has be forcively reset.";
	.@days = .MinWait / 60 / 24;
	.@hours = .MinWait / 60 % 24;
	.@mins = .MinWait % 60;
	message strcharinfo(0),"[Daily Rewards]: You have "+ ((.@days) ? .@days +" Days " : "") + ((.@hours) ? .@hours +" Hours " : "") + ((.@mins) ? .@mins +" Minutes " : "") +"till your next reward.";
	end;
OnInit:
	// Basic Settings
	//   1: Item | 2: Points | 4: Exp  
	//   8: Gain Buffs Every X Consecutive Days logged in
	//   16: Show Cutins | 32: Bound Items
	//   64: No Rewards ffor Autotraders
	//   128: Show Next Day Cutin
	//     (a bit value, e.g. 3 = Items & Points from Multi)
	.Mode = 1|2|4|8|16|64;

	// Which if IP limit Enabled or not
	//   0 = Disable | 1 = Enable
	.IPCheck = 1;

	// Which if (Mac Address) limit Enabled or not [You would need External application like Gepard Shield for that]
	//   0 = Disable | 1 = Enable
	.MacCheck = 0;

	// Item Binding Mode
	//	 Bound_Account : Account Bound item
	//	 Bound_Guild   : Guild Bound item
	//	 Bound_Party   : Party Bound item
	//	 Bound_Char    : Character Bound item
	.Bound_Mode = Bound_Account;
	
	// To disable the command '@loginreward' comment the next lines
	// * Needs extra commands for typos
	bindatcmd("relog",strnpcinfo(3)+"::OnLoginCmnd",0,99);
	bindatcmd("collectreward",strnpcinfo(3)+"::OnLoginCmnd",0,99);
	bindatcmd("dailyreward",strnpcinfo(3)+"::OnLoginCmnd",0,99);
	bindatcmd("collectdaily",strnpcinfo(3)+"::OnLoginCmnd",0,99);
	bindatcmd("nextreward",strnpcinfo(3)+"::OnNextCmnd",0,99);

	// GM Command to fix the negative time till reward issue
	// #fixreward <playername>
	// * Needs extra commands for typos
	bindatcmd("fixreward",strnpcinfo(3)+"::OnFixCmnd",99,99);

	// Minimum minutes between collecting daily reward
	//   Day: 22*60 - 24*60
	//   Week: 10080
	.MinWait = 1320;

	// Minutes before losing the consecutive reward
	//   Day: 48*60 - 50*60
	//   Week: 20160
	.MaxWait = 3000;

	// What to do upon reaching last day defined
	//   [0] Repeat last day
	//   [1] Restart at 1
	.Reset = 1;

	// Number of mins after logging before collecting prize
	.Rest = 0;

	// Point Type
	//   [0] Points earned
	//   [1] Point name in mes
	setarray .Points$,"#KAFRAPOINTS","K-Points";

	// Consecutive Days Buff
	// Each buff contains 4 variables (32 Total Max)
	// <Type>,<Days>,<Duration>,<Rate>, // Buff 1
	// <Type>,<Days>,<Duration>,<Rate>, // Buff 2
	//   ...;
	//
	//  Example: 188,7,45,3
	//    -Every 7th consecutive day logged in Player gains +3 Str for 45 mins
	//
	//  Type is 188, which references which SC_ to use, SC_INCSTR in this example
	//     -For a full list of SC_ visit the db/const.txt
	//  Days is days buff is applied, in this example 7, so every 7th day, 14,21,28....
	//  Duration is buff duration is Minuits, in this example 45 mins
	//  Rate is buff strength, in this example player gains 3 Str
	setarray .BuffInfo	,260,2,360,1	// Life Insurance for 360 Mins Every 2nd Day
				,198,3,120,10	// +10% Hp for 120 Mins Every 3th Day
				,196,5,120,25	// +25 Flee for 120 Mins Every 5th Day
				,257,7,240,50;	// +50% Exp for 240 Mins Every 7th Day

	// Daily Prize items (max 128 days):
	//   "<Zeny>,<Points>,<BaseExp>,<JobExp>,<itemID-1>,<amount-1>,<itemID-2>,<amount-2>...etc", // Day 1
	//   "<Zeny>,<Points>,<BaseExp>,<JobExp>,<itemID-1>,<amount-1>,<itemID-2>,<amount-2>...etc"  // Day 2
	//   ...;
	// Total length of any days string must be 255 or shorter
	// * If players login longer than the last set
	//   day, they will keep getting the last prize.
	setarray .Rewards$[1],
		"0,0,0,0,503,5,506,5",			// Day 1: 5 White Potion + 5 Green Potion
		"100",					// Day 2: 100 Zeny
		"0,0,0,0,501,5",			// Day 3: 5 Red Potion
		"0,0,0,0,503,5,506,5",			// Day 4: 5 White Potion + 5 Green Potion
		"100",					// Day 5: 100 Zeny
		"0,0,0,0,501,5",			// Day 6: 5 Red Potion
		"1000",					// Day 7: 100 Zeny
		"1000",					// Day 8: 100 Zeny
		"0,0,0,0,503,5,506,5";			// Day 9: 5 White Potion + 5 Green Potion

	// Cutin Array
	//	Shows a cuting for each date
	//	
	setarray .Cutins$[1],
			"kafra_01",
			"kafra_02",
			"kafra_03",
			"kafra_04",
			"kafra_05",
			"kafra_06",
			"kafra_07",
			"kafra_08",
			"kafra_09";
end;
}

 

Share this post


Link to post
Share on other sites

4 answers to this question

Recommended Posts

  • 0
5 hours ago, HD Scripts said:

your emulator don't have bound system included... try new version of emulator hercules.

 

Im using latest version of Hercules

Share this post


Link to post
Share on other sites
  • 0
8 hours ago, WillzonePH said:

 

Im using latest version of Hercules

Maybe, you are having a problem with your source. 

Share this post


Link to post
Share on other sites
  • 0
Posted (edited)

Show me this error when put @dailyreward command.

 

[Warning]: Unexpected type for argument 1. Expected variable, got C_INT.
[Debug]: Data: number value=45224
[Debug]: Function: __setr
[Debug]: Source (NPC): LOGIN (invisible/not on a map)
[Error]: script:set: not a variable
[Debug]: Data: number value=45224
[Debug]: Source (NPC): LOGIN (invisible/not on a map)
 

 

I have the daily rewards 2.1D  

Edited by SuyinVC

Share this post


Link to post
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.   Restore formatting

  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.

Loading...

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.