diff options
Diffstat (limited to 'npc/004-1')
-rw-r--r-- | npc/004-1/_import.txt | 2 | ||||
-rw-r--r-- | npc/004-1/_mobs.txt | 3 | ||||
-rw-r--r-- | npc/004-1/_warps.txt | 5 | ||||
-rw-r--r-- | npc/004-1/anwar.txt | 222 | ||||
-rw-r--r-- | npc/004-1/elanore.txt | 71 |
5 files changed, 248 insertions, 55 deletions
diff --git a/npc/004-1/_import.txt b/npc/004-1/_import.txt index a44560da1..d8897b37d 100644 --- a/npc/004-1/_import.txt +++ b/npc/004-1/_import.txt @@ -2,4 +2,4 @@ // This file is generated automatically. All manually added changes will be removed when running the Converter. "npc/004-1/_mobs.txt", "npc/004-1/_warps.txt", -"npc/004-1/elanore.txt",
\ No newline at end of file +"npc/004-1/elanore.txt", diff --git a/npc/004-1/_mobs.txt b/npc/004-1/_mobs.txt index 97f55c942..aa397b90b 100644 --- a/npc/004-1/_mobs.txt +++ b/npc/004-1/_mobs.txt @@ -4,5 +4,4 @@ 004-1,44,26,7,5 monster Croc 1006,3,35000,150000 004-1,38,77,8,21 monster Scorpion 1071,20,35000,300000 004-1,108,65,10,7 monster Giant Maggot 1031,4,35000,300000 -004-1,106,114,11,7 monster Golden Scoprion 1078,1,99000,300000 -004-1,66,74,21,8 monster Black Scorpion 1075,1,35000,300000 +004-1,106,114,11,7 monster Golden Scorpion 1078,1,99000,300000 diff --git a/npc/004-1/_warps.txt b/npc/004-1/_warps.txt index 1c64ab80e..03cef589f 100644 --- a/npc/004-1/_warps.txt +++ b/npc/004-1/_warps.txt @@ -1,6 +1,7 @@ // This file is generated automatically. All manually added changes will be removed when running the Converter. // Map 004-1: Tulimshar warps 004-1,63,56,0 warp #004-1_63_56 4,0,003-1,60,156 -004-1,92,114,0 warp #004-1_92_114 0,0,007-1,85,51 -004-1,33,109,0 warp #004-1_33_109 0,0,007-1,51,36 +004-1,92,114,0 warp #004-1_92_114 0,0,007-1,90,51 +004-1,33,109,0 warp #004-1_33_109 0,0,007-1,56,36 004-1,120,95,0 warp #004-1_120_95 0,2,004-2,21,48 +004-1,49,20,0 warp #004-1_49_20 0,0,003-1-1,29,61 diff --git a/npc/004-1/anwar.txt b/npc/004-1/anwar.txt new file mode 100644 index 000000000..64b560c85 --- /dev/null +++ b/npc/004-1/anwar.txt @@ -0,0 +1,222 @@ +// TMW2 Script +// Author: +// TMW Org. +// Jesusalva +// Description: +// Part of Anwar Field quest + +004-1,107,67,0 script Anwar NPC_RAIJIN,{ + .@q=getq(TulimsharQuest_AnwarField); + if (BaseLevel < 18) goto L_Weak; + + if (.@q > 10) goto L_Complete; + if (.@q == 10) goto L_SecondReward; + if (.@q == 9) goto L_FirstReward; + if (.@q == 8) goto L_SecondTry; + if (.@q == 7) goto L_AnwarField; + if (.@q == 6) goto L_FirstTry; + if (.@q == 5) goto L_TryIt; + if (.@q >= 1) goto L_FirstTry; + + mesn; + mesq l("Hi. Could you perhaps be interested in doing some small errand for me?"); + menu + l("Sure!"),L_Sure, + l("I'm busy, sorry."),L_Close; + +L_Complete: + mesn; + mesq l("Thanks for saving Tulimshar from a famine. I'll be forever grateful."); + next; + mesn; + mesq l("Dealing with elves is too bothersome to me."); + close; + +L_AnwarField: + mesn; + mesq l("My crops! Hurry up, and talk to Eomie!!"); + close; + +L_Sure: + mes ""; + mesn; + mesq l("Great! Eomie, the girl on Tulimshar's magic academy, is an alchemist. She probably makes fertilizers."); + next; + mesn; + mesq l("This farm is dying due constant monster attacks, and without them, Tulimshar might face a famine."); + next; + mesn; + mesq l("Please, talk to her. Maybe she understands the direness of the situation and help... But you know. Elves."); + setq TulimsharQuest_AnwarField, 1; + close; + +L_FirstTry: + mesn; + mesq l("Good luck getting the fertilizer from Eomie! Many elves simply refuse to cooperate until it affects them directly."); + close; + +L_TryIt: + .@q2=getq2(TulimsharQuest_AnwarField); + mesn; + mesq l("You've brought me fertilizer! Let me see if it works..."); + next; + setq2 TulimsharQuest_AnwarField, .@q2+1; + + // Fail chances are 100% - 12% per attempt + if (rand(0,100) < 100-(.@q2*12)) { + setq1 TulimsharQuest_AnwarField, 6; + mesc l("Nothing happens."); + next; + mesn; + mesq l("Uh... Something should happen, right? Can you get another one?"); + } else { + setq1 TulimsharQuest_AnwarField, 7; + mesc l("Evil worms crawl from earth and starts devouring the plants!"); + next; + mesn; + mesq l("Uh... That should not happen, right? RIGHT?"); + next; + mesn; + mesq l("Don't just stand here! Go fetch help, NOW!!"); + } + + close; + +L_SecondTry: + mesn strcharinfo(0); + mesq l("Here is the bug bomb! Eomie just gave me. Hurry up!"); + next; + getexp 20, 0; + specialeffect(51); + setq TulimsharQuest_AnwarField, 9; + mesn; + mesq l("Thanks God... The crops are safe. Not only that, but the fertilizer works!"); + next; + mesn; + mesq l("Ah, that was tiresome... I'll go make a reward for them, talk to me again later."); + close; + +L_FirstReward: + mesn; + mesq l("Here are two @@. Please deliver it to them. I hope they'll like it.", getitemlink(TortugaShell)); + setq TulimsharQuest_AnwarField, 10, 0; + getitembound(TortugaShell, 2, 4); // Prevent accidental item loss + close; + +L_SecondReward: + .@q2=getq2(TulimsharQuest_AnwarField); + if (.@q2 < 3){ + mesn; + mesq l("Please deliver the two @@ to Tinris and Eomie, and then I'll give you something for your help.", getitemlink(TortugaShell)); + close; + } + setq TulimsharQuest_AnwarField, 11, 0; + getitem2(FarmerPants, 1, 1, 0, 0, OrangeDye, 0,0,0); // EXPERIMENTAL, required for Inspector Quest + getexp 100, 0; + mesn; + mesq l("Many thanks for your help! Here, take this. I'm sure it can be very useful later. It always is."); + close; + +L_Weak: + hello; + end; + +L_Close: + close; + +OnTimer1000: + domovestep; + +OnInit: + .@npcId = getnpcid(0, .name$); + setunitdata(.@npcId, UDT_HEADTOP, FarmerHat); + setunitdata(.@npcId, UDT_HEADMIDDLE, DesertShirt); + setunitdata(.@npcId, UDT_HEADBOTTOM, LeatherTrousers); + setunitdata(.@npcId, UDT_WEAPON, Boots); // Boots + setunitdata(.@npcId, UDT_HAIRSTYLE, 6); + setunitdata(.@npcId, UDT_HAIRCOLOR, 14); + + .sex = G_MALE; + .distance = 5; + + initpath "move", 93, 84,//A + "dir", RIGHT, 0, + "wait", 30, 0, + "move", 84, 60,//C + "dir", UP, 0, + "wait", 12, 0, + "move", 117, 64,//K + "dir", LEFT, 0, + "wait", 8, 0, + "move", 95, 84,//B + "dir", DOWN, 0, + "wait", 29, 0, + "move", 92, 68,//R + "dir", DOWN, 0, + "wait", 14, 0, + "move", 94, 80,//F + "dir", UP, 0, + "wait", 13, 0, + "move", 130, 73,//I + "dir", DOWN, 0, + "wait", 14, 0, + "move", 95, 84,//B + "dir", DOWN, 0, + "wait", 28, 0, + "move", 93, 64,//D + "dir", UP, 0, + "wait", 11, 0, + "move", 108, 60,//M + "dir", RIGHT, 0, + "wait", 8, 0, + "move", 93, 84,//A + "dir", RIGHT, 0, + "wait", 27, 0, + "move", 98, 60,//O + "dir", UP, 0, + "wait", 18, 0, + "move", 89, 62,//P + "dir", DOWN, 0, + "wait", 7, 0, + "move", 95, 84,//B + "dir", DOWN, 0, + "wait", 26, 0, + "move", 85, 66,//Q + "dir", UP, 0, + "wait", 21, 0, + "move", 89, 82,//G + "dir", UP, 0, + "wait", 10, 0, + "move", 93, 84,//A + "dir", RIGHT, 0, + "wait", 25, 0, + "move", 105, 78,//H + "dir", UP, 0, + "wait", 17, 0, + "move", 114, 63,//L + "dir", UP, 0, + "wait", 1, 0, + "move", 95, 84,//B + "dir", DOWN, 0, + "wait", 24, 0, + "move", 109, 69,//J + "dir", DOWN, 0, + "wait", 15, 0, + "move", 104, 63,//N + "dir", LEFT, 0, + "wait", 1, 0, + "move", 95, 84,//B + "dir", DOWN, 0, + "wait", 23, 0, + "move", 94, 80,//F + "dir", UP, 0, + "wait", 9, 0, + "move", 75, 63,//S + "dir", UP, 0, + "wait", 15, 0; + + initialmove; + initnpctimer; + end; +} + diff --git a/npc/004-1/elanore.txt b/npc/004-1/elanore.txt index 1ca855e52..e03187dfc 100644 --- a/npc/004-1/elanore.txt +++ b/npc/004-1/elanore.txt @@ -3,61 +3,18 @@ // Jesusalva 004-1,75,62,0 script Elanore the Healer NPC_FEMALE,{ - - //if (sc_check(SC_POISON)) goto L_CurePoison; - - mesn; - @temp = rand(4); - if(@temp == 1) goto L_Heal2; - if(@temp == 2) goto L_Heal3; - if(@temp == 3) goto L_Heal4; - goto L_Heal1; - -L_Heal1: - mesq l("You don't look too well; let me treat your wounds."); - mes ""; - goto L_Menu; - -L_Heal2: - mesq l("I will make quick work of your wounds."); - mes ""; - goto L_Menu; - -L_Heal3: - mesq l("Need a healing?"); - mes ""; - goto L_Menu; - -L_Heal4: - mesq l("Sometimes you just need to run from battle."); - mes ""; - goto L_Menu; - -L_Menu: - .@price=(MaxHp-Hp)/5; - .@price=.@price+10; - if (BaseLevel <= 15) .@price=(.@price/10); + .@price=Nurse(.name$, 10, 5, 1); mesq l("For you, it'll be @@ GP.", .@price); mes ""; menu - rif(Zeny >= .@price, l("Please heal me!")), L_Heal_L, + rif(Zeny >= .@price, l("Please heal me!")), L_Healing, l("Do you make Lifestones?"), L_Lifestones, l("Another time, maybe."), L_Close; -L_Heal_L: - mes ""; - set Zeny, Zeny - .@price; - sc_end(SC_POISON); - sc_end(SC_SLOWPOISON); - percentheal 100,100; // We can also use "recovery(<account id>)" - mesn; - @temp = rand(1,4); - if(@temp == 1) mesq l("Here you go!"); - if(@temp == 2) mesq l("Painless, wasn't it?"); - if(@temp == 3) mesq l("You should be more careful."); - if(@temp == 4) mesq l("Much better, right?!"); - goto L_Close; +L_Healing: + Nurse(.name$, 10, 5, 2); + close; L_Lifestones: mes ""; @@ -85,11 +42,25 @@ L_Trade: getitem Lifestone, 1; + mes ""; + // Only grant Experience on first craft if (getq(TulimsharQuest_Lifestone) == 0) { setq TulimsharQuest_Lifestone, 1; - getexp 80, 10; + getexp 84, 10; } + + // Second tier stuff + if (ST_TIER == 8) { + if (gettimetick(2) > QUEST_ELEVARTEMPO) { + mesc l(".:: Second Tier Quest - Timed Out ::."), 1; + } else { + getexp 44, 0; + ST_TIER=9; + mes l("##9.:: Second Tier Quest - Time Remaining: @@ ::.", FuzzyTime(QUEST_ELEVARTEMPO,2,2)); + } + } + mesn; mesq l("These will do just fine."); next; @@ -99,7 +70,6 @@ L_Trade: mesq l("I guess that you could use these lifestones to gain a regeneration effect, too, but I do not know how."); next; mes l("She smiles."); - mes l("[40 experience points]"); goto L_Close; L_Trade_Missing: @@ -118,6 +88,7 @@ OnInit: setunitdata(.@npcId, UDT_WEAPON, DeepBlackBoots); // Boots setunitdata(.@npcId, UDT_HAIRSTYLE, 8); setunitdata(.@npcId, UDT_HAIRCOLOR, 17); + npcsit; .sex = G_FEMALE; .distance = 5; |