DailyRewards like this one so cool!

maczekiel

New member
Messages
30
Points
0
Github
maczekiel
Any one how to make this , is this possible here in herc?dailyrewards.png

 
Last edited by a moderator:
It's just a picture. So you need 31 pics + a method to track current state of character you want. For example char1 login 3rd day in row getting variable days = 3 and shows picture with 3rd day highlighted. Thats not hard at all, you probably can get any daily rewards npc and make changes in it.

 
It's just a picture. So you need 31 pics + a method to track current state of character you want. For example char1 login 3rd day in row getting variable days = 3 and shows picture with 3rd day highlighted. Thats not hard at all, you probably can get any daily rewards npc and make changes in it.
can you give sample script dude? TIA

 
I got a code from Stolao's "Daily login reward 1.59" for this sample.

//===== EinherjarRO Scripts ==================================
//= Daily Prize, OnPCLoginEvent
//===== By: ==================================================
//= Stolao
//===== Current Version: =====================================
//= 1.59
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
//= A reward system for players who play more frequently
//===== Comments: ============================================
//= Maybe Make .MinWait an array mins,days,weeks,months,years;
//===== Additional Comments: =================================
//= For Older See Forums
//= 1.51 Changed set .@g formula and move lower into script
//= 1.52 Replace all disbottom -> message
//= 1.53 Changed Format to Include minuets instead of just hours
//= 1.54 Made Time till next rewards display dynamic
//= 1.55 Changed a forgotten .PointType$ -> getd(.@TT[1])
//= 1.56 changed .@XT -> .@XT$
//= 1.57 Added Atoi where nessisary
//= 1.58 Fixed a swapped .@x and .@x+1
//= 1.59 Serveral Edit Undocumented to fix
//===== Contact Info: ========================================
//= [Stolao]
//= Email: [email protected]
//============================================================
- script LOGIN -1,{
OnWhisperGlobal:
OnLoginCmnd:
OnPCLoginEvent:
sleep2 1000 + .Rest * 60000;
set .@i, (gettime(7) * 365 * 24 * 60) + (gettime(8) * 24 * 60) + (gettime(3) * 60) +gettime(2);
if(.@i >= (#LastDailyReward + .MinWait)){
if(.@i < #LastDailyReward + .MaxWait){ set #DRewardCon, #DRewardCon + 1;
} else { set #DRewardCon, 1; }
set .@g, (#DRewardCon > getarraysize(.Rewards$)) ? (getarraysize(.Rewards$)-1) : #DRewardCon;
explode(.@XT$,.Rewards$[.@g],"|");
for(set .@x,0; .@x < getarraysize(.@XT$); set .@x,.@x + 1){
set .@TT[.@x], atoi(.@XT$[.@x]);
}
if(.Mode & 1 && .@TT[4]){ //[Note]: I need to figure out a checkweight for all items tired atm lol, for now ill leave it missing
for(set .@x,4; .@x < getarraysize(.@TT); set .@x,.@x + 2){ getitem .@TT[.@x], .@TT[.@x+1]; message strcharinfo(0),"Recived "+ .@TT[.@x+1] +" "+ getitemname(.@TT[.@x]); }
}
if(.Mode & 2){
if(.@TT[0]){ set zeny,zeny + .@TT[0]; message strcharinfo(0),"Recived "+ .@TT[0] +"z"; }
if(.@TT[1]){ setd getd(.Points$[0]),getd(.Points$[0]) + .@TT[1]; message strcharinfo(0),"Recived "+ .@TT[1] +" "+.Points$[1]; }
}
if(.Mode & 4 && (.@TT[3] || .@TT[4])) getexp .@TT[3], .@TT[4];
if(.Mode & 8){
for(set .@x,0; .@x < getarraysize(.BuffInfo); set .@x,.@x + 4){
if(#DRewardCon % .BuffInfo[.@x + 1] == 0)
sc_start .BuffInfo[.@x], .BuffInfo[.@x + 2] * 60000, .BuffInfo[.@x + 3];
}
}
message strcharinfo(0),"You have collected your daily reward, for "+#DRewardCon+" day"+((#DRewardCon > 1)?"s":"")+" in a row.";
//===============Display of pic's with day highlighted.=======================
cutin .Pic$[.@g],4;
//============================================================================
set #LastDailyReward, .@i;

} else {
set .@days,(#LastDailyReward + .MinWait - .@i)/60/24;
set .@hours,((#LastDailyReward + .MinWait - .@i)/60)%24;
set .@mins,(#LastDailyReward + .MinWait - .@i)%60;
message strcharinfo(0),"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
// (a bit value, e.g. 3 = Items & Points from Multi)
set .Mode,1;

//To Enable @ Command '@loginreward' unslash next lines
// * Needs extra commands for typos
bindatcmd("relog" ,"LOGIN::OnLoginCmnd",0,99);

//Minimum Minuets Between Collecting Daily Reward
// Day: 22*60 - 24*60
// Week: 10080
set .MinWait,1;

//Minuets Before Lose Consecutive Daily Reward
// Day: 48*60 - 50*60
// Week: 20160
set .MaxWait,3000;

//Number of mins after logging before collecting prize
set .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$,
"100", // Day 1: 100 Zeny
"0|0|0|0|501|5", // Day 2: 5 Red Potion
"0|0|0|0|503|5|506|5"; // Day 3: 5 White Potion + 5 Green Potion

setarray .Pic$,
"tutorial01", //pic with day1 highlighted
"tutorial02", //pic with day2 highlighted
"tutorial03"; //pic with day3 highlighted
end;
}


So that's what i added:

1) Way to setup pictures.

setarray .Pic$,
"tutorial01", //pic with day1 highlighted
"tutorial02", //pic with day2 highlighted
"tutorial03"; //pic with day3 highlighted

2) Way to show em up.

//===============Display of pic's with day highlighted.=======================
cutin .Pic$[.@g],4;
//============================================================================


Like i said its kinda easy. 

P.S. Script skips one day due 1.59 version bug. So you might want to get a 1.5D and change it if you want to use it at ur server and I set 1min timer to get a reward for testing purposes.

 
Last edited by a moderator:
Completely unrelated but, thanks to that cutin thing I found a way to make guidebook with images. ALL HAIL lmao

 
Completely unrelated but, thanks to that cutin thing I found a way to make guidebook with images. ALL HAIL lmao
default_ohmy.png


 
Completely unrelated but, thanks to that cutin thing I found a way to make guidebook with images. ALL HAIL lmao
I know it's way off topic, but I'd love to see it! It's another thing I've wanted to make for a while now.

And on topic, sorry we're not sharing our script, it's got too many unique functions to our server.

 
one last question ^^ where do i put the cutin or the picture for this script? sorry for my noob question

 
now its working ^^ thanks for this

[cbox]//===== EinherjarRO Scripts ==================================
//= Daily Prize, OnPCLoginEvent
//===== By: ==================================================
//= Stolao
//===== Current Version: =====================================
//= 1.5D
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
//= A reward system for players who play more frequently
//===== Comments: ============================================
//= Maybe Make .MinWait an array mins,days,weeks,months,years;
//===== Additional Comments: =================================
//= For Older See Old Versions
//= 1.51 Changed set .@g formula and move lower into script
//= 1.52 Replace all disbottom -> message
//= 1.53 Changed Format to Include minuets instead of just hours
//= 1.54 Made Time till next rewards display dynamic
//= 1.55 Changed a forgotten .PointType$ -> getd(.@TT[1])
//= 1.56 changed .@XT -> .@XT$
//= 1.57 Added Atoi where nessisary
//= 1.58 Fixed a swapped .@x and .@x+1
//= 1.59 Serveral Edit Undocumented to fix
//= 1.5A Fixed a logic bug, day 1 skipped
//= 1.5B Fixed a [-1] bug
//= 1.5C Actualy Fixed a logic bug, day 1 skipped
//= 1.5D Added A .Rest Notification
//===== Contact Info: ========================================
//= [stolao]
//= Email: [email protected]<script data-cfhash='f9e31' type="text/javascript">/* */</script>
//============================================================
- script LOGIN -1,{
OnWhisperGlobal:
OnLoginCmnd:
OnPCLoginEvent:
if(.Rest) message strcharinfo(0),"[Daily Rewards]: to collec reward you must remain logged in for "+ .Rest +" Minuets;
sleep2 1000 + .Rest * 60000;
set .@i, (gettime(7) * 365 * 24 * 60) + (gettime(8) * 24 * 60) + (gettime(3) * 60) +gettime(2);
if(.@i >= (#LastDailyReward + .MinWait)){
if(.@i < #LastDailyReward + .MaxWait){ set #DRewardCon, #DRewardCon + 1;
} else { set #DRewardCon, 0; }
set .@g, (#DRewardCon > getarraysize(.Rewards$)) ? (getarraysize(.Rewards$)-1) : #DRewardCon;
explode(.@XT$,.Rewards$[.@g],"|");
for(set .@x,0; .@x < getarraysize(.@XT$); set .@x,.@x + 1){
set .@TT[.@x], atoi(.@XT$[.@x]);
}
if(.Mode & 1 && .@TT[4]){ //[Note]: I need to figure out a checkweight for all items tired atm lol, for now ill leave it missing
for(set .@x,4; .@x < getarraysize(.@TT); set .@x,.@x + 2){ getitem .@TT[.@x], .@TT[.@x+1]; message strcharinfo(0),"Recived "+ .@TT[.@x+1] +" "+ getitemname(.@TT[.@x]); }
}
if(.Mode & 2){
if(.@TT[0]){ set zeny,zeny + .@TT[0]; message strcharinfo(0),"Recived "+ .@TT[0] +"z"; }
if(.@TT[1]){ setd getd(.Points$[0]),getd(.Points$[0]) + .@TT[1]; message strcharinfo(0),"Recived "+ .@TT[1] +" "+.Points$[1]; }
}
if(.Mode & 4 && (.@TT[3] || .@TT[4])) getexp .@TT[3], .@TT[4];
if(.Mode & 8){
for(set .@x,0; .@x < getarraysize(.BuffInfo); set .@x,.@x + 4){
if(#DRewardCon % .BuffInfo[.@x + 1] == 0)
sc_start .BuffInfo[.@x], .BuffInfo[.@x + 2] * 60000, .BuffInfo[.@x + 3];
}
}
message strcharinfo(0),"You have collected your daily reward, for "+#DRewardCon+" day"+((#DRewardCon > 1)?"s":"")+" in a row.";
cutin .Pic$[.@g],4;
set #LastDailyReward, .@i;
} else {
set .@days,(#LastDailyReward + .MinWait - .@i)/60/24;
set .@hours,((#LastDailyReward + .MinWait - .@i)/60)%24;
set .@mins,(#LastDailyReward + .MinWait - .@i)%60;
message strcharinfo(0),"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
// (a bit value, e.g. 3 = Items & Points from Multi)
set .Mode,1;

//To Enable @ Command '@loginreward' unslash next lines
// * Needs extra commands for typos
bindatcmd("relog" ,"LOGIN::OnLoginCmnd",0,99);

//Minimum Minuets Between Collecting Daily Reward
// Day: 22*60 - 24*60
// Week: 10080
set .MinWait,24*60;

//Minuets Before Lose Consecutive Daily Reward
// Day: 48*60 - 50*60
// Week: 20160
set .MaxWait,48*60;

//Number of mins after logging before collecting prize
set .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)
// ,,,, // Buff 1
// ,,,, // 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):
// "|||||||...etc", // Day 1
// "|||||||...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$,
"0|0|0|0|13550|1", // Day 1: 1 Fish Slice Box
"0|0|0|0|7608|10", // Day 2: 10 Kuro Tickets
"0|0|0|0|7776|5", // Day 3: 5 GymPass
"0|0|0|0|12210|1", // Day 4: 1 Bubble Gum
"0|0|0|0|12912|1", // Day 5: 1 Convex Mirror Box
"0|0|0|0|19329|50", // Day 6: 50 kuro coins
"0|0|0|0|7179|5"; // Day 7: 50 kuro coins

setarray .Pic$,
"day1", //pic with day1 highlighted
"day2", //pic with day2 highlighted
"day3", //pic with day3 highlighted
"day4", //pic with day4 highlighted
"day5", //pic with day5 highlighted
"day6", //pic with day6 highlighted
"day7"; //pic with day7 highlighted

end;
}
[/cbox]

 
Last edited by a moderator:
another question how to reset daily reward if player has reached 30days?

 
Back
Top