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

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

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×
×
  • Create New...

Important Information

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