summaryrefslogtreecommitdiff
path: root/world/map/npc/functions/dailyquest.txt
diff options
context:
space:
mode:
Diffstat (limited to 'world/map/npc/functions/dailyquest.txt')
-rw-r--r--world/map/npc/functions/dailyquest.txt189
1 files changed, 0 insertions, 189 deletions
diff --git a/world/map/npc/functions/dailyquest.txt b/world/map/npc/functions/dailyquest.txt
deleted file mode 100644
index 4bbe7800..00000000
--- a/world/map/npc/functions/dailyquest.txt
+++ /dev/null
@@ -1,189 +0,0 @@
-// The daily quests
-
-// Variables returned:
-// @dq_return - Code of what happend
-// 0 = Low level
-// 1 = Ignored NPC
-// 2 = Not enough points
-// 3 = Not enough items
-// 4 = 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$ - String name of the item as seen by server
-// @dq_friendly_name$ - String name of the item as seen by user
-// @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|DailyQuestPoints
-{
- set @dq_earliest, gettimetick(2) - 86400;
- if (DailyQuestTime < @dq_earliest)
- set 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
- set @dq_increments, (gettimetick(2) - DailyQuestTime)*BaseLevel / 86400;
- set DailyQuestTime, DailyQuestTime + @dq_increments*86400/BaseLevel;
-
- // player can't regenerate any quest points, but might have a bonus
- if (DailyQuestPoints >= BaseLevel)
- goto L_Bonus;
-
- // normal recharging case - increment, but don't let it recharge more than a day's worth
- set DailyQuestPoints, DailyQuestPoints + @dq_increments;
- if (DailyQuestPoints > BaseLevel)
- set DailyQuestPoints, BaseLevel;
- // fallthrough to bonus, which *is* allowed to push DailyQuestPoints above BaseLevel
- goto L_Bonus;
-
-L_Bonus:
- set DailyQuestPoints, DailyQuestPoints + DailyQuestBonus;
- set DailyQuestBonus, 0;
-
- return;
-}
-
-function|script|DailyQuest
-{
- callfunc "DailyQuestPoints";
-
- if (BaseLevel < @dq_level)
- goto L_Low_Level;
- if (DailyQuestPoints < @dq_cost)
- goto L_Not_Enough_Points;
-
- mes "\"If you bring me " + @dq_count + " " + @dq_friendly_name$ + ", I will give you a reward.\"";
- menu
- "I have what you want.", L_Trade,
- "Take all you need.", L_All,
- "Ok, I'll get to work.", L_Next,
- "Nah, I'm not going to help you.", L_Next;
-
-L_Next:
- set @dq_return, 1;
- goto L_Exit;
-
-L_Trade:
- if (countitem(@dq_name$) < @dq_count)
- goto L_Not_Enough;
- delitem @dq_name$, @dq_count;
-
- set Zeny, Zeny + @dq_money;
- getexp @dq_exp, 0;
-
- set DailyQuestPoints, DailyQuestPoints - @dq_cost;
-
- if (@dq_handle_return)
- goto L_Exit_Good;
-
- mes "\"Thank you!\"";
- callsub S_SayPhrase;
- mes "";
- mes "[" + @dq_money + " money]";
- mes "[" + @dq_exp + " experience points]";
- goto L_Exit_Good;
-
-L_All:
- if (countitem(@dq_name$) < @dq_count)
- goto L_Not_Enough;
-
- set @item_multiple, (countitem(@dq_name$) / @dq_count);
- set @dp_multiple, (DailyQuestPoints / @dq_cost);
-
- if (@dp_multiple > @item_multiple)
- set @multipler, @item_multiple;
- if (@item_multiple >= @dp_multiple)
- set @multipler, @dp_multiple;
-
- set DailyQuestPoints, DailyQuestPoints - (@dq_cost * @multipler);
-
- delitem @dq_name$, (@dq_count * @multipler);
-
- set Zeny, Zeny + (@dq_money * @multipler);
- getexp (@dq_exp * @multipler), 0;
-
- if (@dq_handle_return)
- goto L_Exit_Good;
-
- mes "\"Thank you!\"";
- callsub S_SayPhrase;
- mes "";
- mes "[" + (@dq_money * @multipler) + " money]";
- mes "[" + (@dq_exp * @multipler) + " experience points]";
- goto L_Exit_Good;
-
-L_Exit_Good:
- set @dq_return, 4;
- goto L_Exit;
-
-L_Not_Enough:
- if (!@dq_handle_return)
- mes "\"I said " + @dq_count + " " + @dq_friendly_name$ + "; you should learn to count.\"";
- set @dq_return, 3;
- goto L_Exit;
-
-L_Low_Level:
- if (!@dq_handle_return)
- mes "\"Hey, you should go kill some things to get stronger first.\"";
- set @dq_return, 0;
- goto L_Exit;
-
-L_Not_Enough_Points:
- mes "\"You look exhausted, maybe you should rest a bit.\"";
- set @dq_return, 2;
- goto L_Exit;
-
-L_Exit:
- set @dq_handle_return, 0; // Incase they forget
- return;
-
-S_SayPhrase:
- if (@dq_handle_return)
- goto L_Return;
- if (DailyQuestPoints < @dq_cost)
- goto L_Exhausted;
- if (DailyQuestPoints > BaseLevel)
- goto L_Over;
- if (DailyQuestPoints > (BaseLevel*9)/10)
- goto L_P90;
- if (DailyQuestPoints > (BaseLevel*7)/10)
- goto L_P70;
- if (DailyQuestPoints > (BaseLevel*5)/10)
- goto L_P50;
- goto L_Low;
-
-L_Over:
- mes "\"Woah, you're bursting with power.\"";
- return;
-L_P90:
- mes "\"You're in a very good shape.\"";
- return;
-L_P70:
- mes "\"You don't seem very exhausted by my tasks.\"";
- return;
-L_P50:
- mes "\"Aren't you getting weary yet?\"";
- return;
-L_Low:
- mes "\"You look a little tired.\"";
- return;
-L_Exhausted:
- mes "\"You look exhausted, maybe you should rest a bit.\"";
- return;
-
-L_Return:
- return;
-}