Jump to content

behemothcze

Members
  • Posts

    102
  • Joined

  • Last visited

Community Answers

  1. behemothcze's post in Daily Rewards w/o npc was marked as the answer   
    i try the official but it needs 2018 packetver.
    #ifndef PACKETVER /// Do NOT edit this line! To set your client version, please do this instead: /// In Windows: Add this line in your src\custom\defines_pre.hpp file: #define PACKETVER YYYYMMDD /// In Linux: The same as above or run the following command: ./configure --enable-packetver=YYYYMMDD #define PACKETVER 20170614 #endif #ifndef PACKETVER_RE /// From this point on only kRO RE clients are supported #if PACKETVER > 20151104 #define PACKETVER_RE #endif i use @Stolao daily rewards and try to mod the script but it became a mess xD
    //===== 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] //============================================================ - script LOGIN 111,{ 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; } else if(#VIPRewardCon >= .@VIPSize){ message strcharinfo(0),"[Daily Rewards]: No more VIP rewards remaining this month."; continue; } else if(.@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; } else if(.@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 = 60; // 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], "0,0,0,0,12257,25", // Day 1: 25 Cold Medicine "0,0,0,0,7621,2", // Day 2: 2 token "0,0,0,0,12103,2", // Day 3: 2 bloody branch "0,0,0,0,12214,2", // Day 4: 2 convex mirror "0,0,0,0,12210,2", // Day 5: 2 bubble gum "0,0,0,0,12257,50", // Day 6: 50 cold medecine "0,0,0,0,6417,10", // Day 7: 10 silvervine "0,0,0,0,12211,5", // Day 8: 5 kafra card "0,0,0,0,12214,3", // Day 9: 3 convex mirror "0,0,0,0,7621,3", // Day 10: 3 token "0,0,0,0,12257,75", // Day 11: 75 cold medicine "0,0,0,0,12212,10", // Day 12: 10 G Fly "0,0,0,0,12103,3", // Day 13: 3 Bloody branch "0,0,0,0,7776,3", // Day 14: 3 gym pass "0,0,0,0,12103,5", // Day 15: 5 bloody branch "0,0,0,0,12257,100", // Day 16: 100 cold medicine "0,0,0,0,12210,3", // Day 17: 3 bubble gum "0,0,0,0,7621,5", // Day 18: 5 token "0,0,0,0,12257,150", // Day 19: 150 cold medicine "0,0,0,0,12214,5", // Day 20: 5 convex mirror "0,0,0,0,6417,20", // Day 21: 20 silvervine "0,0,0,0,12210,5", // Day 22: 5 bubble gum "0,0,0,0,12211,10", // Day 23: 10 kafra card "0,0,0,0,12257,200", // Day 24: 200 cold medicine "0,0,0,0,12103,10", // Day 25: 10 blood branch "0,0,0,0,6488,500", // Day 26: 500 invest ticket "0,0,0,0,7619,25", // Day 27: 25 oridecon "0,0,0,0,7620,25", // Day 28: 25 enrich eluminium "0,0,0,0,7620,500", // Day 29: war badge 500 "0,0,0,0,7620,3", // Day 30: shadow box 3 "0,0,0,0,7620,1"; // Day 31: 1 MCA // 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], "0,0,0,0,12257,25", // Day 1: 25 Cold Medicine "0,0,0,0,7621,2", // Day 2: 2 token "0,0,0,0,12103,2", // Day 3: 2 bloody branch "0,0,0,0,12214,2", // Day 4: 2 convex mirror "0,0,0,0,12210,2", // Day 5: 2 bubble gum "0,0,0,0,12257,50", // Day 6: 50 cold medecine "0,0,0,0,6417,10", // Day 7: 10 silvervine "0,0,0,0,12211,5", // Day 8: 5 kafra card "0,0,0,0,12214,3", // Day 9: 3 convex mirror "0,0,0,0,7621,3", // Day 10: 3 token "0,0,0,0,12257,75", // Day 11: 75 cold medicine "0,0,0,0,12212,10", // Day 12: 10 G Fly "0,0,0,0,12103,3", // Day 13: 3 Bloody branch "0,0,0,0,7776,3", // Day 14: 3 gym pass "0,0,0,0,12103,5", // Day 15: 5 bloody branch "0,0,0,0,12257,100", // Day 16: 100 cold medicine "0,0,0,0,12210,3", // Day 17: 3 bubble gum "0,0,0,0,7621,5", // Day 18: 5 token "0,0,0,0,12257,150", // Day 19: 150 cold medicine "0,0,0,0,12214,5", // Day 20: 5 convex mirror "0,0,0,0,6417,20", // Day 21: 20 silvervine "0,0,0,0,12210,5", // Day 22: 5 bubble gum "0,0,0,0,12211,10", // Day 23: 10 kafra card "0,0,0,0,12257,200", // Day 24: 200 cold medicine "0,0,0,0,12103,10", // Day 25: 10 blood branch "0,0,0,0,6488,500", // Day 26: 500 invest ticket "0,0,0,0,7619,25", // Day 27: 25 oridecon "0,0,0,0,7620,25", // Day 28: 25 enrich eluminium "0,0,0,0,7620,500", // Day 29: war badge 500 "0,0,0,0,7620,3", // Day 30: shadow box 3 "0,0,0,0,7620,1"; // Day 31: 1 MCA // Cutin Array // Shows a cutin before collecting for each date // Start at 0 if showing next day setarray .Cutins$, "day1", "day2", "day3", "day4", "day5", "day6", "day7", "day8", "day9", "day10", "day11", "day12", "day13", "day14", "day15", "day16", "day17", "day18", "day19", "day20", "day21", "day22", "day23", "day24", "day25", "day26", "day27", "day28", "day29", "day30", "day31"; // Cutin Array // Shows a cutin on collecting for each date setarray .VIPCutins$, "day1", "day2", "day3", "day4", "day5", "day6", "day7", "day8", "day9", "day10", "day11", "day12", "day13", "day14", "day15", "day16", "day17", "day18", "day19", "day20", "day21", "day22", "day23", "day24", "day25", "day26", "day27", "day28", "day29", "day30", "day31"; end;  
  2. behemothcze's post in how to add custom sprite? was marked as the answer   
    follow this guide on how to add custom items .
  3. behemothcze's post in [DB]Error Unknown Column 'bound' in field list was marked as the answer   
    thanks mate problem solved, i just use ALTER TABLE `loginlog` ADD `unique_id` INT(11) UNSIGNED NOT NULL DEFAULT '0' AFTER `rcode`;    ,its on db mod that functor send me
    thank you.
×
×
  • Create New...