[Error]: script error in file 'npc/custom/daily_reward.txt' line 67 column 18
parse_simpleexpr: unmatched ')'64: sleep2 1000;65:for(.@k=0;.@k<2;.@k++){66:if(!.@k){*67:if(!vip_status(VIP_STATUS_ACTIVE)&&.VIPRewards$[#VIPRewardCon+1]!=""){~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^68://message strcharinfo(0),"[Daily Rewards]: Become a VIP for more rewards.";69:continue;70:}elseif(#VIPRewardCon>=.@VIPSize){
Daily reward script
//===== EinherjarRO Scripts ================================== //= Requested //===== By: ================================================== //= Stolao//===== Current Version: =====================================//= 2.1C//===== Compatible With: =====================================//= rAthena SVN//===== Description: =========================================//= A reward system for players who play more frequently//===== Todo =================================================//= Make Logging out then it continue count//===== Additional Comments: =================================//= 2.00 Origional Make//= 2.01 Fixed Logic Bug//= 2.02 Fixed Year Multiplier//= 2.03 Added an IP check//= 2.04 Split Rewards up//= 2.05 Move ip check to Daily reward collection//= 2.06 Added ability to see next day via commands/relogging//= 2.07 Added Delay//= 2.08 Moved Delay to none VIP only//= 2.09 Removed some useless lines//= 2.0A Removed Menus due to bugs//= 2.0B Fixed VIP Cutin//= 2.0C Added it showing previos day cutin//= 2.0D Added a for loop//= 2.0E Fixed Ramined logged in time calculation (visual bug)//= 2.0F Added a F_InsertPlural to "more minute"//= 2.10 Added a Mac Check//= 2.11 Changed the IP check to [Sader1992] version//= 2.12 Enable Bound Type//= 2.13 Added 'collectreward', 'dailyreward', 'collectdaily' Commands//= 2.14 Added 'nextreward' Command//= 2.15 Added Daily Buffs//= 2.16 Added Exp Rewards//= 2.17 Removed Reards for Autotraders//= 2.18 Move Buffs to Daily so VIP wont trigger twice//= 2.19 Optimized Slightly//= 2.1A Fixed a bug with VIP getting bonus rewards in normal rewards//= 2.1B Fixed some documentaion//= 2.1C Fixed extra '['//===== Contact Info: ========================================//= [Stolao] //= Email: [email protected]//============================================================
prontera,5,5,5 script LOGIN HIDDEN_NPC,{OnPCLoginEvent:if(!@logintime)@logintime= gettime(DT_YEAR)*60*24*365+ gettime(DT_DAYOFYEAR)*60*24+ gettime(DT_HOUR)*60+ gettime(DT_MINUTE);OnLoginCmnd:.@i= gettime(DT_YEAR)*12*31+ gettime(DT_MONTH)*31+ gettime(DT_DAYOFMONTH);if(.Reset&&.@i>#LastDailyReward + 1)#DRewardCon = 0;if(.Reset&&.@i>#LastVIPReward + 1)#VIPRewardCon = 0;.@VIPSize= getarraysize(.VIPRewards$);.@Size= getarraysize(.Rewards$);if(#DRewardCon>=.@Size&&#VIPRewardCon >= .@VIPSize){#LastDailyReward = .@i;#LastVIPReward = .@i;
end;}
sleep2 1000;for(.@k=0;.@k<2;.@k++){if(!.@k){if(!vip_status(VIP_STATUS_ACTIVE)&&.VIPRewards$[#VIPRewardCon+1]!=""){//message strcharinfo(0),"[Daily Rewards]: Become a VIP for more rewards.";continue;}elseif(#VIPRewardCon>=.@VIPSize){
message strcharinfo(0),"[Daily Rewards]: No more VIP rewards remaining this month.";continue;}elseif(.@i<=#LastVIPReward){
message strcharinfo(0),"[Daily Rewards]: VIP Rewards already collected today";continue;}}else{if(#DRewardCon>=.@Size){
message strcharinfo(0),"[Daily Rewards]: No more rewards remaining this month.";continue;}elseif(.@i<=#LastDailyReward){
message strcharinfo(0),"[Daily Rewards]: Rewards already collected today.";continue;}}if(!.@k)
explode(.@XT$,.VIPRewards$[#VIPRewardCon+1],",");else{if(.IPCheck){
query_sql("SELECT account_id FROM `login` WHERE last_ip = '"+getcharip()+"'",.@AccountId);.@Size= getarraysize(.@AccountId);for(.@i=0;.@i<.@Size;.@i++){
query_sql("SELECT `value` FROM `acc_reg_num` WHERE `account_id` = '"+.@AccountId[.@i]+"' AND `key` = '#LastDailyReward'",.@LastIp2);if(.@i<=.@LastIp2){
message strcharinfo(0),"[Daily Rewards]: Rewards are limited to 1 per IP sorry.";continue;}}}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);.@Size= getarraysize(.@AccountId2);for(.@i=0;.@i<.@Size;.@i++){
query_sql("SELECT `value` FROM `acc_reg_num` WHERE `account_id` = '"+.@AccountId2[.@i]+"' AND `key` = '#LastDailyReward'",.@MacCheck2);if(.@i<=.@MacCheck2){
message strcharinfo(0),"[Daily Rewards]: Rewards are limited to 1 per computer sorry.";continue;}}}if(.Rest){.@time= gettime(DT_YEAR)*60*24*365+ gettime(DT_DAYOFYEAR)*60*24+ gettime(DT_HOUR)*60+ gettime(DT_MINUTE);if(.@time<@logintime+.Rest){.@delay=@logintime+.Rest-.@time;
message strcharinfo(0),"[Daily Rewards]: to collect reward you must remain logged in for "+callfunc("F_InsertPlural",.@delay,"more minute")+".";continue;}}
deletearray .@XT$[0],getarraysize(.@XT$);.@NextDay=#DRewardCon + 1;
explode(.@XT$,.Rewards$[.@NextDay],",");}if(checkvending()&2&&.Mode&256){
message strcharinfo(0),"[Daily Rewards]: Venders cannot recive rewards.";
end;}.@Size= getarraysize(.@XT$);
deletearray .@TT[0],getarraysize(.@TT);
deletearray .@itms[0],getarraysize(.@itms);
deletearray .@qnts[0],getarraysize(.@qnts);for(.@x= y =0;.@x<.@Size;.@x++).@TT[.@x]= atoi(.@XT$[.@x]);if(.Mode&1&&(.@TT[4]>0||.@vip[4]>0)){.@Size= getarraysize(.@TT);for(.@x=4;.@x<=.@Size-1;.@x+=2){.@itms[.@y]=.@TT[.@x];.@qnts[.@y]=.@TT[.@x+1];.@y++;}if(checkweight2(.@itms,.@qnts)){for(.@x=0;.@x<.@y;.@x++){if(.Mode&128)
getitembound .@itms[.@x],.@qnts[.@x],.Bound_Mode;else getitem .@itms[.@x],.@qnts[.@x];}}else{
message strcharinfo(0),"[Daily Rewards]: You cannot carry the prizes, please use storage and relog.";continue;}}if(.Mode&2&&(.@TT[1])){#Loyalty += .@TT[1];
message strcharinfo(0),"[Daily Rewards]: Recieved "+.@TT[1]+" "+.Points$;}if(.Mode&4&&(.@TT[0])){
zeny +=.@TT[0];
message strcharinfo(0),"[Daily Rewards]: Recieved "+.@TT[0]+"z";}if(.Mode&8&&(.@TT[3]||.@TT[4]))
getexp .@TT[3],.@TT[4];if(!.@k){if(.Mode&32)
cutin .VIPCutins$[#VIPRewardCon],4;#VIPRewardCon++;#LastVIPReward = .@i;
sleep2 1000;if(.Mode&64)
cutin .VIPCutins$[#VIPRewardCon],4;
message strcharinfo(0),"[Daily Rewards]: You have collected your VIP reward, for "+callfunc("F_InsertPlural",#VIPRewardCon,"day")+" this month.";}else{if(.Mode&16){.@Size= getarraysize(.BuffInfo);for(.@x=0;.@x<.@Size;.@x+=4){if(.@NextDay==.BuffInfo[.@x+1])
sc_start .BuffInfo[.@x],.BuffInfo[.@x+2]*60000,.BuffInfo[.@x+3];}}if(.Mode&32)
cutin .Cutins$[#DRewardCon],4;#DRewardCon++;#LastDailyReward = .@i;
sleep2 1000;if(.Mode&64)
cutin .Cutins$[#DRewardCon],4;
message strcharinfo(0),"[Daily Rewards]: You have collected your daily reward, for "+callfunc("F_InsertPlural",#DRewardCon,"day")+" this month.";}if(.Mode&32||.Mode&64){
sleep2 15000;
cutin "",255;}}
end;OnNextCmnd:.@time= gettime(DT_YEAR)*60*24*365+ gettime(DT_DAYOFYEAR)*60*24+ gettime(DT_HOUR)*60+ gettime(DT_MINUTE);if(.@time>=@logintime+.Rest){
message strcharinfo(0),"[Daily Rewards]: your next reward is available.";}else{.@i= gettime(DT_YEAR)*12*31+ gettime(DT_MONTH)*31+ gettime(DT_DAYOFMONTH);if(.@i<=#LastDailyReward)
message strcharinfo(0),"[Daily Rewards]: Your next reward will be aviable tomorrow.";else{.@days=(.@time>=@logintime+.Rest)/60/24;.@hours=((.@time>=@logintime+.Rest)/60)%24;.@mins=(.@time>=@logintime+.Rest)%60;
message strcharinfo(0),"[Daily Rewards]: You have "+((.@days)?.@days+" Days ":"")+((.@hours)?.@hours+" Hours ":"")+((.@mins)?.@mins+" Minutes ":"")+"till your next reward.";}if(.Mode&32||.Mode&64){if(.@NextDay>= getarraysize(.Rewards$)).@g=0;else.@g=#DRewardCon + 1;
cutin .Cutins$[.@g],4;}}
end;OnHour00:if(gettime(DT_DAYOFMONTH)==1){
query_sql("DELETE FROM `acc_reg_num` WHERE `key` = '#DRewardCon' OR `key` = '#VIPRewardCon' OR `key` = '#LastVIPReward' OR `key` = '#LastDailyReward'");
addrid(0);#DRewardCon = #VIPRewardCon = #LastVIPReward = #LastDailyReward = 0;}
end;OnInit:// Basic Settings// 1: Item | 2: Points | 4: Zeny | 8: Exp// 16: Gain Buffs// 32: Show Cutins | 64: Show Next Day Cutin// 128: Item Rewards Bound// 256: No Rewards for Autotraders // (a bit value, e.g. 3 = Items & Points from Multi).Mode=1|2|4|16|32|64|128|256;// 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","LOGIN::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);// Reset days back to 0 on a skipped day.// Toggle // [0] = Off// [1] = On.Reset=0;// .Rest// Delay after login to collect rewards// In Minutes.Rest=0;// Point Name.Points$="Loyalty Points";// Ip check to prevent multi accounts// Toggle // [0] = Off// [1] = On.IPCheck=0;// Consecutive Days Buff// Each buff contains 4 variables// <Type>,<Days>,<Duration>,<Rate>, // Buff 1// <Type>,<Days>,<Duration>,<Rate>, // Buff 2// ...;//// Example: 188,7,45,3// -On the 7th 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 val1, in this example player gains 3 Str
setarray .BuffInfo,260,2,360,1// Life Insurance for 360 on 2nd Day,198,3,120,10// +10% Hp for 120 Mins on 3rd Day,260,4,360,1// Life Insurance for 360 on 4th Day,196,5,120,25// +25 Flee for 120 Mins on 5th Day,198,6,120,10// +10% Hp for 120 Mins on 6th Day,257,7,240,50// +50% Exp for 240 Mins on 7th Day,260,8,360,1// Life Insurance for 360 on 8th Day,198,9,120,10// +10% Hp for 120 Mins on 9th Day,196,10,120,25// +25 Flee for 120 Mins on 10th Day,198,12,120,10// +10% Hp for 120 Mins on 12th Day,257,14,240,50// +50% Exp for 240 Mins on 14th Day,196,15,120,25// +25 Flee for 120 Mins on 15th Day,260,16,360,1// Life Insurance for 360 on 16th Day,198,18,120,10// +10% Hp for 120 Mins on 18th Day,196,20,120,25// +25 Flee for 120 Mins on 20th Day,257,21,240,50// +50% Exp for 240 Mins on 21st Day,260,22,360,1// Life Insurance for 360 on 22nd Day,198,24,120,10// +10% Hp for 120 Mins on 24th Day,196,25,120,25// +25 Flee for 120 Mins on 25th Day,260,26,360,1// Life Insurance for 360 on 26th Day,198,27,120,10// +10% Hp for 120 Mins on 27th Day,257,28,240,50// +50% Exp for 240 Mins on 28th Day,196,30,120,25;// +25 Flee for 120 Mins on 30th Day// Daily Prize items:// "<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
setarray .Rewards$[1],"1000",// Day 1: 1000 Zeny"0,0,0,0,501,5",// Day 2: 5 Red Potion"0,0,0,0,506,5",// Day 3: 5 Green Potion"2000",// Day 4: 2000 Zeny"2000",// Day 5: 2000 Zeny"0,0,0,0,502,5",// Day 6: 5 Orange Potion"0,0,0,0,12208,1",// Day 7: 1 Battle Manual"2500",// Day 8: 2500 Zeny"2500",// Day 8: 2500 Zeny"2500",// Day 9: 2500 Zeny"0,0,0,0,503,5",// Day 10: 5 White Potion"2500",// Day 11: 2500 Zeny"2500",// Day 12: 2500 Zeny"2500",// Day 13: 2500 Zeny"0,0,0,0,503,5,506,3",// Day 14: 5 White Potion + 3 Green Potion"2500",// Day 15: 2500 Zeny"2500",// Day 16: 2500 Zeny"2500",// Day 17: 2500 Zeny"0,0,0,0,503,5,506,3",// Day 18: 5 White Potion + 3 Green Potion"2500",// Day 19: 2500 Zeny"2500",// Day 20: 2500 Zeny"0,0,0,0,604,3",// Day 21: 1 Dead Branch"2500",// Day 22: 2500 Zeny"0,0,0,0,503,5,506,3",// Day 23: 5 White Potion + 3 Green Potion"2500",// Day 24: 2500 Zeny"2500",// Day 25: 2500 Zeny"0,0,0,0,503,5,506,3",// Day 26: 5 White Potion + 3 Green Potion"2500",// Day 27: 2500 Zeny"2500";// Day 28: 2500 Zeny// VIP Prize items:// "<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//// Note VIPs Collect both VIP and Normal Player rewards
setarray .VIPRewards$[1],"1000",// Day 1: 1000 Zeny"0,0,0,0,501,5",// Day 2: 5 Red Potion"0,0,0,0,506,5",// Day 3: 5 Green Potion"2000",// Day 4: 2000 Zeny"2000",// Day 5: 2000 Zeny"0,0,0,0,502,5",// Day 6: 5 Orange Potion"0,0,0,0,12208,1",// Day 7: 1 Battle Manual"2500",// Day 8: 2500 Zeny"2500",// Day 8: 2500 Zeny"2500",// Day 9: 2500 Zeny"0,0,0,0,503,5",// Day 10: 5 White Potion"2500",// Day 11: 2500 Zeny"2500",// Day 12: 2500 Zeny"2500",// Day 13: 2500 Zeny"0,0,0,0,503,5,506,3",// Day 14: 5 White Potion + 3 Green Potion"2500",// Day 15: 2500 Zeny"2500",// Day 16: 2500 Zeny"2500",// Day 17: 2500 Zeny"0,0,0,0,503,5,506,3",// Day 18: 5 White Potion + 3 Green Potion"2500",// Day 19: 2500 Zeny"2500",// Day 20: 2500 Zeny"0,0,0,0,604,3",// Day 21: 1 Dead Branch"2500",// Day 22: 2500 Zeny"0,0,0,0,503,5,506,3",// Day 23: 5 White Potion + 3 Green Potion"2500",// Day 24: 2500 Zeny"2500",// Day 25: 2500 Zeny"0,0,0,0,503,5,506,3",// Day 26: 5 White Potion + 3 Green Potion"2500",// Day 27: 2500 Zeny"2500";// Day 28: 2500 Zeny// Cutin Array// Shows a cutin before collecting for each date// Start at 0 if showing next day
setarray .Cutins$,"kafra_01","kafra_02","kafra_03","kafra_04","kafra_05","kafra_06","kafra_07","kafra_01","kafra_02","kafra_03","kafra_04","kafra_05","kafra_06","kafra_07","kafra_01","kafra_02","kafra_03","kafra_04","kafra_05","kafra_06","kafra_07","kafra_08","kafra_01","kafra_02","kafra_03","kafra_04","kafra_05","kafra_06","kafra_07","kafra_08","kafra_09","kafra_01","kafra_02","kafra_03";// Cutin Array// Shows a cutin on collecting for each date
setarray .VIPCutins$,"kafra_01","kafra_02","kafra_03","kafra_04","kafra_05","kafra_06","kafra_07","kafra_01","kafra_02","kafra_03","kafra_04","kafra_05","kafra_06","kafra_07","kafra_01","kafra_02","kafra_03","kafra_04","kafra_05","kafra_06","kafra_07","kafra_08","kafra_01","kafra_02","kafra_03","kafra_04","kafra_05","kafra_06","kafra_07","kafra_08","kafra_09","kafra_01","kafra_02","kafra_03";
end;}
This is the error
Daily reward script
Share this post
Link to post
Share on other sites