diff options
Diffstat (limited to 'npc/002-2/kps.txt')
-rwxr-xr-x | npc/002-2/kps.txt | 152 |
1 files changed, 152 insertions, 0 deletions
diff --git a/npc/002-2/kps.txt b/npc/002-2/kps.txt new file mode 100755 index 00000000..bcdfb1e7 --- /dev/null +++ b/npc/002-2/kps.txt @@ -0,0 +1,152 @@ +002-2,120,89,0 script KPS Manager NPC191,{ + @run = ((QUEST_NorthTulimshar & TWOBIT_8_MASK) >> TWOBIT_8_SHIFT); + @run_cnt = ((QUEST_NorthTulimshar & TWOBIT_9_MASK) >> TWOBIT_9_SHIFT); + if (QL_KYLIAN == 15) + goto L_SeeKylian; + if (QL_KYLIAN == 14) + goto L_RunComplete; + if (QL_KYLIAN == 13) + goto L_RunStarted; + if (QL_KYLIAN == 12) + goto L_JobSelect; + if (QL_KYLIAN == 11) + goto L_AcceptJob; + if (QL_KYLIAN == 10) + goto L_OfferJob; + goto L_Default; + +L_Default: + mes "[KPS Manager]"; + mes "\"A rich salesman named Kylian bought this shop recently.\""; + mes "\"I'm waiting for him to give the go-ahead on opening it up, but I haven't heard from him in a while.\""; + next; + mes "\"I wonder if he needs any help...\""; + next; + mes "\"If you could go over and check on him in the inn while I tend to the store, I'd really appreciate it.\""; + goto L_close; + +L_OfferJob: + mes "[KPS Manager]"; + mes "\"Hello! How can I help you today?\""; + menu + "My name is " + strcharinfo(0) + ".", L_MyName, + "Nothing.", L_close; + +L_MyName: + QL_KYLIAN = 11; + mes "\"Ah. Kylian said you would be dropping by.\""; + next; + mes "\"I assume you are looking for some work?\""; + menu + "Yes.", L_StartJob, + "No.", L_close; + +L_AcceptJob: + mes "[KPS Manager]"; + mes "\"Interested in some work?\""; + menu + "Yes.", L_StartJob, + "No.", L_close; + +L_StartJob: + @run = 0; + callfunc "SetKylianRun"; + @run_cnt = 0; + callfunc "SetKylianRunCnt"; + QL_KYLIAN = 12; + goto L_JobSelect; + +L_StartJobAgain: + @run = 0; + callfunc "SetKylianRun"; + QL_KYLIAN = 12; + goto L_JobSelect; + +L_JobSelect: + if ((gettimetick(2) - Kylian_Timer) < 86400) + goto L_NoPackages; + mes "[KPS Manager]"; + mes "\"We have a number of deliveries that need to go all over the world.\""; + next; + goto L_RandJob; + +L_RandJob: + @rand_quest = rand(1,3); + goto L_JobInfo; + +L_JobInfo: + mes "\"We have a delivery for ##B" + $@random_quests$[@rand_quest] + "##b.\""; + menu + "I'll take it.", L_StartRun, + "Anything else?", L_RandJob, + "I need a break.", L_close; + +L_StartRun: + QL_KYLIAN = 13; + @run = @rand_quest; + callfunc "SetKylianRun"; + Kylian_Timer = gettimetick(2); + goto L_close; + +L_RunStarted: + mes "Deliver this package to ##B" + $@random_quests$[@run] + "##b.\""; + goto L_close; + +L_RunComplete: + @elapsed_time = (gettimetick(2) - Kylian_Timer); + if (@elapsed_time > 600) + goto L_Failed; + @run_cnt = (@run_cnt + 1); + callfunc "SetKylianRunCnt"; + // Set Kylian wants to see you reward state + if (@run_cnt > 3) + goto L_KylianReward; + goto L_RunAgain; + +L_SeeKylian: + mes "\"You need to go see Kylian before I can give you any more work.\""; + goto L_close; + +L_Failed: + mes "\"If you're faster next time, you can earn a bonus.\""; + next; + goto L_RunAgain; + +L_KylianReward: + Zeny = Zeny + $@delivery_money; + getexp ($@delivery_exp_mod * BaseLevel), 0; + callfunc "SetKylianRun"; + QL_KYLIAN = 15; + mes "[" + $@delivery_money + " money]"; + mes "[" + ($@delivery_exp_mod * BaseLevel) + " experience points]"; + next; + mes "\"I've got news for you! Kylian wants me to send you over right away.\""; + goto L_close; + +L_RunAgain: + Zeny = Zeny + $@delivery_money; + getexp ($@delivery_exp_mod * BaseLevel), 0; + callfunc "SetKylianRun"; + mes "[" + $@delivery_money + " money]"; + mes "[" + ($@delivery_exp_mod * BaseLevel) + " experience points]"; + next; + mes "\"Good job! Keep up the nice work, and I'm sure the boss will give you a bonus.\""; + next; + goto L_StartJobAgain; + +L_NoPackages: + mes "\"Sorry, but we don't have any more jobs open right now.\""; + mes "\"Come back tomorrow; maybe we will have some more work then.\""; + goto L_close; + +L_close: + close; +} +function script SetKylianRun { + QUEST_NorthTulimshar = (QUEST_NorthTulimshar & ~(TWOBIT_8_MASK)) | (@run << TWOBIT_8_SHIFT); + return; +} +function script SetKylianRunCnt { + QUEST_NorthTulimshar = (QUEST_NorthTulimshar & ~(TWOBIT_9_MASK)) | (@run_cnt << TWOBIT_9_SHIFT); + return; +} |