// TMW2 Script
// Author:
// Jesusalva
// Description:
// Professor - allows you to gain EXP for idling (Speech skill)
003-0-1,35,29,0 script Professor NPC_PLAYER,{
mesn;
mesq l("I've mastered the art of speech and communication.");
next;
mesn;
mesq l("Sit on the rug in front of me and learn wisdom! Maybe you'll learn something this way.");
if (!TUTORIAL) close;
next;
mes ".:: AFK EXP AREA ::.";
mesc l("By sitting in the rug in front of the professor (the one with benches)");
mesc l("and \"listening\" to his speech, you'll get EXP!");
mes "";
mesc l("If you get too much exp this way, a skill will level up and you'll get even more!");
mesc l("But remember: %s", b(l("You cannot sit idle for too long gaining EXP!")));
mesc l("After about 15 minutes AFK, you won't get EXP anymore.");
mes "";
mesc l("In overall, you'll get more experience by fighting monsters.");
mesc l("But if you only want to sit down and chat, this area is ideal for you!");
close;
OnInit:
.@npcId = getnpcid(.name$);
setunitdata(.@npcId, UDT_HEADTOP, GraduationCap);
setunitdata(.@npcId, UDT_HEADMIDDLE, GraduationRobe);
setunitdata(.@npcId, UDT_HEADBOTTOM, DeepBlackBoots);
setunitdata(.@npcId, UDT_WEAPON, CottonGloves);
setunitdata(.@npcId, UDT_HAIRSTYLE, 2);
setunitdata(.@npcId, UDT_HAIRCOLOR, 4);
.sex=G_MALE;
.distance=5;
initnpctimer;
end;
OnTimer3000:
areatimer2("003-0-1", 29, 34, 41, 38, 10, .name$+"::OnSpeeching");
initnpctimer;
end;
OnSpeeching:
deltimer(.name$+"::OnSpeeching"); // safeguard
// Max AFK time is determined as 15 minutes + 1 second every 20 minutes AFKed
// Capped at 1 hour (you've AFK'ed 37 days and 12 hours)
.@maxafk=max(3600, 900+(AFKING/1200));
// If you have been IDLE for at least 2 seconds you'll get the EXP.
// Note you don't need to sit, only be idle.
if (is_between(2, .@maxafk, checkidle())) {
.@sk=getskilllv(TMW2_SPEECH);
getexp 1+.@sk,1+(.@sk/2);
// dispbottom l("It is a boring speech...");
// If you are learning TMW2_READANCIENTLANGUAGES
if (ANCIENTLANGUAGEBOUNCER) {
ANCIENTLANGUAGEBOUNCER-=1;
if (ANCIENTLANGUAGEBOUNCER == 1) {
ANCIENTLANGUAGEBOUNCER=0;
skill TMW2_ANCIENTLANGUAGES, 1, 0;
dispbottom l("It was a boring speech, but you have learned ancient languages.");
}
}
// You're being annoying, now
AFKING+=1;
switch (AFKING) {
case 1200:
// 24 hours, 1200 exp, enough from level 1 to level 10
sk_lvup(TMW2_SPEECH);
npctalk3 l("@@, you're a good student. You have a bright future if you keep listening to me.");
dispbottom l("Learning from seeing (aka. AFK-ing) skill LEVEL UP!!");
break;
case 8400:
// +1 week, 16800 exp, enough from level 1 to 23 (only AFK-ing!)
sk_lvup(TMW2_SPEECH);
npctalk3 l("@@, you're a good student. You have a bright future if you keep listening to me.");
dispbottom l("Learning from seeing (aka. AFK-ing) skill LEVEL UP!!");
break;
case 36000:
// +1 month, 108000 exp, enough from level 1 to ~36 (only AFK-ing!)
sk_lvup(TMW2_SPEECH);
npctalk3 l("@@, you're a good student. You have a bright future if you keep listening to me.");
dispbottom l("Learning from seeing (aka. AFK-ing) skill LEVEL UP!!");
break;
case 108000:
// +3 months, 432000 exp, enough from level 1 to ~46 (only AFK-ing!)
// Note: In the needed time (~4 months) you should be over 60 if you
// were fighting instead...
sk_lvup(TMW2_SPEECH);
npctalk3 l("@@, you're a good student. You have a bright future if you keep listening to me.");
dispbottom l("Learning from seeing (aka. AFK-ing) skill LEVEL UP!!");
break;
}
// There are no further upgrades to TMW2_SPEECH skill
// You'll need to get the AFK Set if you want to level from 4 to 10.
}
deltimer(.name$+"::OnSpeeching"); // safeguard
end;
}