summaryrefslogtreecommitdiff
path: root/npc/004-1
diff options
context:
space:
mode:
Diffstat (limited to 'npc/004-1')
-rw-r--r--npc/004-1/_import.txt2
-rw-r--r--npc/004-1/_mobs.txt3
-rw-r--r--npc/004-1/_warps.txt5
-rw-r--r--npc/004-1/anwar.txt222
-rw-r--r--npc/004-1/elanore.txt71
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;