// TMW2 Script. // Authors: // Jesusalva // Description: // Daily Login Reward function script daily_login_bonus_handler { // Handle daily login bonus // The Strange Coin output wasn't changed, but now it relies on streaks. // Variables: // #LOGIN_DAY // Current day // #LOGIN_TABLE // Current month // #LOGIN_STREAK // Number of monthly connections // #LOGIN_ALLTIME // Number of times you claimed the top prize (27 days streak) //debugmes "DLBH"; if (#LOGIN_DAY != gettime(5)) { // demure check: Are you on a start area? getmapxy(.@m$,.@x,.@y,0); if (compare(.@m$, "000-0")) return; //debugmes "[DLBH] Mapcheck ok"; // Is it a new month? if (#LOGIN_TABLE == gettime(6)) { #LOGIN_STREAK=#LOGIN_STREAK+1; } else { #LOGIN_STREAK=1; #LOGIN_TABLE=gettime(6); #TMW2_LOGINBONUS=0; } // Update last day you've claimed a reward #LOGIN_DAY = gettime(5); //debugmes "[DLBH] month checks ok"; // Handle rewards: Streaks first, daily later. Streak reward prevail over daily reward. if ($@NOUPDATES) { dispbottom col(l("Updates were disabled"), 1); } else { .@value=max(20, rand2(#LOGIN_STREAK, #LOGIN_STREAK*2)); .@value+=(BaseLevel*5/2)+rand2(JobLevel, JobLevel*7/20); .@value=.@value * 5 / 4; // Bonus 25% Zeny=Zeny+.@value; dispbottom l("##2Daily login bonus: ##B%d GP##b", .@value); } if (gettime(6) == JULY) { if (#TMW2_LOGINBONUS != gettime(GETTIME_YEAR) && gettime(5) == 7) { #TMW2_LOGINBONUS=gettime(GETTIME_YEAR); getitem ChocolateBar, 1; dispbottom "##B##2"+l("It's International Chocolate Day!")+"##b "+l("All monsters may drop chocolate during this period. And here is one for you!")+"##0"; } } if (gettime(6) == SEPTEMBER) { if (#TMW2_LOGINBONUS != gettime(GETTIME_YEAR) && gettime(5) == 9) { #TMW2_LOGINBONUS=gettime(GETTIME_YEAR); getitem any(ScentGrenade, Grenade, SmokeGrenade), 2; dispbottom "##B##2"+l("It's the Free Software Day!")+" "+l("Licensing was one of the worst hassle we had. Enjoy!")+"##b##0"; } } if (gettime(6) == OCTOBER) { if (#TMW2_LOGINBONUS != gettime(GETTIME_YEAR) && gettime(5) == 1) { #TMW2_LOGINBONUS=gettime(GETTIME_YEAR); getitem Coffee, 2; dispbottom "##B##2"+l("It's the International Coffee Day!")+" "+l("Have a warm cup of Coffee on the house, and enjoy!")+"##b##0"; } } if (gettime(6) == DECEMBER) { if (!#XMAS_LOGINBONUS && gettime(5) >= 24 && gettime(5) <= 26) { #XMAS_LOGINBONUS=1; Zeny+=1500; dispbottom "##B##2"+l("Merry Christmas!")+" "+l("You have gained a special login bonus!")+"##b##0"; } } } //debugmes "[DLBH] Finished: "+#LOGIN_DAY+" ok"; return; } // Gives you guild coins, but weekly (based on Guild Level) function script guild_login_bonus { .@g=getcharid(2); if (.@g < 1) return; .@c=min(5, getguildavg(.@g)/20) + min(1+getguildlvl(.@g)/5, 10); if (#LOGIN_GUILD_WEEK != gettimeparam(GETTIME_WEEKDAY)) { #LOGIN_GUILD_WEEK=gettimeparam(GETTIME_WEEKDAY); getitem GuildCoin, .@c; dispbottom l("##2Guild's Weekly login bonus: ##B%d %s##b", .@c, getitemlink(GuildCoin)); } return; }