diff options
Diffstat (limited to 'npc/functions/daily.txt')
-rw-r--r-- | npc/functions/daily.txt | 154 |
1 files changed, 0 insertions, 154 deletions
diff --git a/npc/functions/daily.txt b/npc/functions/daily.txt deleted file mode 100644 index 6de9ef27..00000000 --- a/npc/functions/daily.txt +++ /dev/null @@ -1,154 +0,0 @@ -// The Mana World scripts. -// Author: -// TMW Team -// Jesusalva -// Description: -// Daily Quest framework -// Variables returned: -// .@dq_return - Code of what happend -// DAILY_LOWLEVEL = Low level -// DAILY_IGNORED = Ignored NPC -// DAILY_NOPTS = Not enough points -// DAILY_NOITEMS = Not enough items -// DAILY_OK = Success - -// Variables to set: -// .@dq_level - Minimal level needed to use the quest -// .@dq_cost - The number of points this quest uses -// .@dq_count - The number of given item needed -// .@dq_name - Item Aegis -// .@dq_money - The money reward for doing the quest -// .@dq_exp - Experince gained by doing the quest - -// Optional: -// .@dq_handle_return - When set to anything other then 0 the function will not print exiting text - -// Variables used inside: -// DailyQuestPoints - The number of points the player currently has -// DailyQuestTime - Time since DailyQuestPoints was lasted renewed -// DailyQuestBonus - Additional points added in addition to player BaseLevel - -// (DailyQuestBonus makes a good reward from non-daily quests) - -function script DailyQuestPointsFunc { - .@dq_earliest = gettimetick(2) - 86400; - if (DailyQuestTime < .@dq_earliest) - DailyQuestTime = .@dq_earliest; - - // how many whole daily quest points the player has earned - // we increment DailyQuestTime by the number of seconds in that many increments - .@dq_increments = (gettimetick(2) - DailyQuestTime)*BaseLevel / 86400; - DailyQuestTime = DailyQuestTime + .@dq_increments*86400/BaseLevel; - - // player can't regenerate any quest points, but might have a bonus - if (DailyQuestPoints < BaseLevel) { - // normal recharging case - increment, but don't let it recharge more than a day's worth - DailyQuestPoints = DailyQuestPoints + .@dq_increments; - if (DailyQuestPoints > BaseLevel) - DailyQuestPoints = BaseLevel; - } - - // fallthrough to bonus, which *is* allowed to push DailyQuestPoints above BaseLevel - DailyQuestPoints = DailyQuestPoints + DailyQuestBonus; - DailyQuestBonus = 0; - return; - -} - -// DailyQuest(lvl, cost, count, item, {exp, money}) -function script DailyQuest { - // Sanitize - DailyQuestPointsFunc(); - - // Load variables - .@dq_level=getarg(0); - .@dq_cost=getarg(1); - .@dq_count=getarg(2); - .@dq_name=getarg(3); - // Money defaults to 200% sell value, experience to 300% sell value - .@dq_exp=getarg(4, getiteminfo(.@dq_name, ITEMINFO_SELLPRICE)*.@dq_count*3); - .@dq_money=getarg(5, getiteminfo(.@dq_name, ITEMINFO_SELLPRICE)*.@dq_count*2); - - // Insufficient level - if (BaseLevel < .@dq_level) { - mesq l("Hey, you should go kill some things to get stronger first."); - return DAILY_LOWLEVEL; - } - - // Insufficient points - if (DailyQuestPoints < .@dq_cost) { - mesq l("You look exhausted, maybe you should rest a bit."); - return DAILY_NOPTS; - } - - mesq l("If you bring me %d %s, I will give you a reward.", .@dq_count, getitemlink(.@dq_name)); - select - l("I have what you want."), - l("Take all you need."), - l("Ok, I'll get to work."), - l("Nah, I'm not going to help you."); - mes ""; - - if (@menu >= 3) - return DAILY_IGNORED; - - if (countitem(.@dq_name) < .@dq_count) { - mesq l("I said %d %s; you should learn to count.", .@dq_count, getitemlink(.@dq_name)); - return DAILY_NOITEMS; - } - - // Default multiplier - .@multiplier = 1; - - if (@menu == 1) { - delitem .@dq_name, .@dq_count; - - Zeny = Zeny + .@dq_money; - getexp .@dq_exp, 0; - - DailyQuestPoints = DailyQuestPoints - .@dq_cost; - - } - else - { - - .@item_multiple = (countitem(.@dq_name) / .@dq_count); - .@dp_multiple = (DailyQuestPoints / .@dq_cost); - - if (.@dp_multiple > .@item_multiple) - .@multiplier = .@item_multiple; - if (.@item_multiple >= .@dp_multiple) - .@multiplier = .@dp_multiple; - - DailyQuestPoints = DailyQuestPoints - (.@dq_cost * .@multiplier); - - delitem .@dq_name, (.@dq_count * .@multiplier); - - Zeny = Zeny + (.@dq_money * .@multiplier); - getexp (.@dq_exp * .@multiplier), 0; - - if (.@dq_handle_return) - goto L_Exit_Good; - } - - mesq l("Thank you!"); - - if (DailyQuestPoints < .@dq_cost) - mesq l("You look exhausted, maybe you should rest a bit."); - else if (DailyQuestPoints > BaseLevel) - mesq l("Woah, you're bursting with power."); - else if (DailyQuestPoints > (BaseLevel*9)/10) - mesq l("You're in a very good shape."); - else if (DailyQuestPoints > (BaseLevel*7)/10) - mesq l("You don't seem very exhausted by my tasks."); - else if (DailyQuestPoints > (BaseLevel*5)/10) - mesq l("Aren't you getting weary yet?"); - else - mesq l("You look a little tired."); - - mes ""; - mesc l("+%d money", (.@dq_money * .@multiplier)); - mesc l("+%d experience points", (.@dq_exp * .@multiplier)); - return DAILY_OK; -} - |