Before anything else, here's the script I want to edit.
//===== 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:
if(.Rest){
set @login, (gettime(7) * 365 * 24 * 60) + (gettime(8) * 24 * 60) + (gettime(3) * 60) + gettime(2);
query_sql("SELECT REPLACE (`last_ip`,'.','_') FROM `login` WHERE `account_id` = "+getcharid(3),@ip$); if((getd("$G_LIP_"+@ip$)+(60*60*24)) <= @c) setd("$G_LIP_"+@ip$,@c);
if(@login > #LastDailyReward + .MaxWait ){
set #logintimer, 0;
set @login, 0;
}
set .@rest, (gettime(7) * 365 * 24 * 60) + (gettime(8) * 24 * 60) + (gettime(3) * 60) + .Rest;
message strcharinfo(0),"[ Daily Rewards ]: to collect reward you must remain logged in for "+ ( @login - .@rest ) +" Minuets";
}
set .@i, (gettime(7) * 365 * 24 * 60) + (gettime(8) * 24 * 60) + (gettime(3) * 60) + gettime(2);
if(.@i - .Rest >= (#LastDailyReward + .MinWait)){
sleep2 100 + ( .Rest * 60000 ) - ( .@i - #logintimer );
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),"[ Daily Rewards ]: Recived "+ .@TT[.@x+1] +" "+ getitemname(.@TT[.@x]); }
}
if(.Mode & 2){
if(.@TT[0]){ set zeny,zeny + .@TT[0]; message strcharinfo(0),"[ Daily Rewards ]: Recived "+ .@TT[0] +"z"; }
if(.@TT[1]){ setd getd(.Points$[0]),getd(.Points$[0]) + .@TT[1]; message strcharinfo(0),"[ Daily Rewards ]: 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),"[ Daily Rewards ]: You have collected your daily reward, for "+#DRewardCon+" day"+((#DRewardCon > 1)?"s":"")+" in a row.";
cutin .Pic$[.@g],4;
set #LastDailyReward, .@i;
set #logintimer, 0;
set @login, 0;
} else {
set .@days,(#LastDailyReward + .MinWait - .@i)/60/24;
set .@hours,((#LastDailyReward + .MinWait - .@i)/60)%24;
set .@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";
}
end;
OnPCLogoutEvent:
if(@login){
set .@i, (gettime(7) * 365 * 24 * 60) + (gettime(8) * 24 * 60) + (gettime(3) * 60) + gettime(2);
set #logintimer, .@i - @login + #logintimer;
set @login, 0;
}
return;
end;
OnInit:
waitingroom ">->Daily Rewards",0;
//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 + 2 + 4 + 8;
//To Enable @ Command '@loginreward' unslash next lines
// * Needs extra commands for typos
bindatcmd("daily" ,"LOGIN::OnLoginCmnd",0,99);
//Enable Delay if @afk or @autotrade are available to players
// remove // to enable certain command checks
//bindatcmd("at" ,"LOGIN::OnPCLogoutEvent",0,99);
//bindatcmd("autotrade" ,"LOGIN::OnPCLogoutEvent",0,99);
//bindatcmd("AT" ,"LOGIN::OnPCLogoutEvent",0,99);
//bindatcmd("Autotrade" ,"LOGIN::OnPCLogoutEvent",0,99);
//bindatcmd("afk" ,"LOGIN::OnPCLogoutEvent",0,99);
//bindatcmd("AFK" ,"LOGIN::OnPCLogoutEvent",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,3000;
//Number of mins after logging before collecting prize
set .Rest,60;
//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$,
"0|0|0|0|7059|5", // Day 1: 5 Free Ticket for Kafra Storage
"0|0|0|0|7060|5", // Day 2: 5 Free Ticket for Kafra Transportation
"0|0|0|0|12208|1", // Day 3: 1 Battle Manual
"0|0|0|0|12766|1", // Day 4: 1 JOB Battle Manual
"0|0|0|0|12210|1", // Day 5: 1 Bubble Gum
"0|0|0|0|12211|3", // Day 6: 3 Kafra Card
"0|0|0|0|601|1", // Day 7: ######### 1 Random Box ##########
"0|0|0|0|11503|50", // Day 8: 50 Siege White Potions
"0|0|0|0|11504|20", // Day 9: 20 Siege Blue Potions
"0|0|0|0|12411|1", // Day 10: 1 HE Battle Manual
"0|0|0|0|12016|5", // Day 11: 5 Speed Potion
"0|0|0|0|12216|10", // Day 12: 10 LV10 Agil Scroll
"0|0|0|0|12215|10", // Day 13: 10 LV10 Blessing Scroll
"0|0|0|0|601|1", // Day 14: ######### 1 Random Box ##########
"0|0|0|0|12622|1", // Day 15: 1 Boarding Halter
"0|0|0|0|12214|2", // Day 16: 2 Convex Mirror
"0|0|0|0|12103|1", // Day 17: 1 Bloody Branch
"0|0|0|0|6910|1", // Day 18: 1 Enriched Oridecon
"0|0|0|0|6911|1", // Day 19: 1 Enriched Eluminium
"0|0|0|0|14003|3", // Day 20: 3 Elite Siege Supply Box
"0|0|0|0|601|1", // Day 21: ######### 1 Random Box ##########
"0|0|0|0|6286|1", // Day 22: 1 Gym Pass
"0|0|0|0|12535|1", // Day 23: 1 Yggdrasil Berry
"0|0|0|0|12817|3", // Day 24: 3 Old Card Album
"0|0|0|0|6833|10", // Day 25: 10 Token of Ziegfried
"0|0|0|0|12261|2", // Day 26: 2 Miracle Medicine
"0|0|0|0|601|1", // Day 27: ######### 1 I ♥ Games Hat ##########
"0|0|0|0|601|1"; // Day 28: ######### 1 Random Box ##########
setarray .Pic$,
"Daily_00_1", //pic with day1 highlighted
"Daily_01_1", //pic with day2 highlighted
"Daily_02_1", //pic with day3 highlighted
"Daily_03_1", //pic with day4 highlighted
"Daily_04_1", //pic with day5 highlighted
"Daily_05_1", //pic with day6 highlighted
"Daily_06_1", //pic with day7 highlighted
"Daily_07_1", //pic with day8 highlighted
"Daily_08_1", //pic with day8 highlighted
"Daily_09_1", //pic with day8 highlighted
"Daily_10_1", //pic with day8 highlighted
"Daily_11_1", //pic with day8 highlighted
"Daily_12_1", //pic with day8 highlighted
"Daily_13_1", //pic with day8 highlighted
"Daily_14_1", //pic with day8 highlighted
"Daily_15_1", //pic with day8 highlighted
"Daily_16_1", //pic with day8 highlighted
"Daily_17_1", //pic with day8 highlighted
"Daily_18_1", //pic with day8 highlighted
"Daily_19_1", //pic with day8 highlighted
"Daily_20_1", //pic with day8 highlighted
"Daily_21_1", //pic with day8 highlighted
"Daily_22_1", //pic with day8 highlighted
"Daily_23_1", //pic with day8 highlighted
"Daily_24_1", //pic with day8 highlighted
"Daily_25_1", //pic with day8 highlighted
"Daily_26_1", //pic with day8 highlighted
"Daily_27_1"; //pic with day8 highlighted
end;
}
I would like to add several months let me explain ^^
-------------------------------------------------
First:
January = Daily_01_1
February= Daily_01_2
March= Daily_01_3
October= Daily_01_h
December= Daily_01_n etc...
I created the other months after ^^
-------------------------------------------------
Second:
-I would like a system where it is easy to add the other months .
-when I restart the server the script doesn't start at the beginning of the month.
-------------------------------------------------
Thank you to all who will help me!
"i can pay for this script"
ps: I am looking for a good writer for my server .we are a team of 4 people and we are looking for 1 scripteur and 1 animator, the server is about 90% finished.
Question
max65
Hello rAthena Community,
Before anything else, here's the script I want to edit.
Daily_01_n.bmpDaily_01_h.bmpDaily_01_4.bmpDaily_01_3.bmpDaily_01_2.bmpDaily_01_1.bmp
What i would?
This script works perfectly!
I would like to add several months let me explain ^^
-------------------------------------------------
First:
January = Daily_01_1
February= Daily_01_2
March= Daily_01_3
October= Daily_01_h
December= Daily_01_n etc...
I created the other months after ^^
-------------------------------------------------
Second:
-I would like a system where it is easy to add the other months .
-when I restart the server the script doesn't start at the beginning of the month.
-------------------------------------------------
Thank you to all who will help me!
"i can pay for this script"
ps: I am looking for a good writer for my server .we are a team of 4 people and we are looking for 1 scripteur and 1 animator, the server is about 90% finished.
Edited by max652 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.