summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--npc/001-1/_import.txt2
-rw-r--r--npc/001-1/aidan.txt56
-rw-r--r--npc/001-1/ishi.txt231
3 files changed, 289 insertions, 0 deletions
diff --git a/npc/001-1/_import.txt b/npc/001-1/_import.txt
index 0c9567cfa..f99a6c7c0 100644
--- a/npc/001-1/_import.txt
+++ b/npc/001-1/_import.txt
@@ -4,3 +4,5 @@
"npc/001-1/mapflags.txt",
"npc/001-1/portal.txt",
"npc/001-1/rewards.txt",
+"npc/001-1/aidan.txt",
+"npc/001-1/ishi.txt",
diff --git a/npc/001-1/aidan.txt b/npc/001-1/aidan.txt
new file mode 100644
index 000000000..a8326c219
--- /dev/null
+++ b/npc/001-1/aidan.txt
@@ -0,0 +1,56 @@
+// Tmw script, updated by Crazyfefe
+
+001-1,88,117,0 script aidan NPC_PLAYER,{
+
+ function Register
+ {
+ mes "[Aidan the Monster Guide]";
+ mes "Oh my, you don't seem to be registered as a Quest Participant. Would you like to register?";
+ next;
+
+ do
+ {
+ select
+ l("Register"),
+ l("Not at the moment"),
+ l("Information");
+
+ switch (@menu)
+ {
+ case 1:
+ mes "[Aidan the Monster Guide]";
+ mes "Give me a second to look over your paperwork.";
+ next;
+ mes "[Monster Guide]";
+ mes "Well, looks like you qualify!";
+ mes "Welcome to the questing world!";
+ setq MPQUEST,1;
+ close;
+ break;
+ case 2:
+ mes "[Aidan the Monster Guide]";
+ mes "Very well, you don't know what you're missing.";
+ close;
+ break;
+ case 3:
+ mes "[Aidan the Monster Guide]";
+ mes "Here in The Mana World, there are certain rewards for your vanquishing of foes.";
+ mes "For example, there are Monster Points; every monster you kill has a certain amount of points that get added to your account.";
+ mes "The more points you have, the more expensive things you can buy using them.";
+ next;
+ mes "[Monster Guide]";
+ mes "So whaddaya say, sign up won't you?";
+ next;
+ Register;
+ break;
+ }
+ } while (@menu != 3);
+ }
+
+ if (getq(MPQUEST) == 0)
+ goto Register;
+ set Mobpt, Mobpt + 10000;
+ mes "[Aidan the Monster Guide]";
+ mes "You currently have " +Mobpt+ " Monster Points. These points are acquired while killing monsters";
+ close;
+} \ No newline at end of file
diff --git a/npc/001-1/ishi.txt b/npc/001-1/ishi.txt
new file mode 100644
index 000000000..95d2a4ad1
--- /dev/null
+++ b/npc/001-1/ishi.txt
@@ -0,0 +1,231 @@
+// Author:
+// Crazyfefe
+// Caution if you revove items from @Items$ that add void in the array, not sure how to fix that but i don't thing that matter.
+// note : the rare item system suck. not sure how to fix it.
+
+001-1,88,116,0 script ishi NPC_PLAYER,{
+
+ if (getq(MPQUEST) == 0)
+ {
+ speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
+ l("[Ishi the Rewards Master]"),
+ l("\"Hey, it seems like you didn't register as a quest participant yet! You can sign up with Aidan.\"");
+ close;
+ }
+
+
+ if (Mobpt < BaseLevel ** 2)
+ {
+ speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
+ l("[Ishi the Rewards Master]"),
+ l("\"Welcome! I see you have " + Mobpt + " Monster Points. But isn't enought for get items\"");
+ close;
+ }
+
+ setarray @Items$, "Bread", "Croconut","Plushroom","RedApple","Beer","Candy","Orange","ChocolateBar","BugLeg","CoinBag","PinkieAntenna","Coal","SnakeSkin","CottonCloth","GrassSeeds","HardSpike","CobaltHerb","GambogeHerb","MauveHerb","IronOre","MaggotSlime","RawLog","ScorpionStinger","SilkCocoon","TreasureKey","FluffyFur","EmptyBottle","RustyKnife","TolchiArrow","Arrow","IronArrow","BlueCottonDye";
+ .Item1$ = "BrimedHat";
+ .Item2$ = "IronIngot";
+ .Item3$ = "BronzeGift"; // should be a event.
+
+ speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
+ l("[Ishi the Rewards Master]"),
+ l("\"Welcome! I see you have " + Mobpt + " Monster Points. Would you like to exchange some of those for items?\"");
+ next;
+
+ do
+ {
+ select
+ rif(Mobpt >= BaseLevel ** 2,l("1")),
+ rif(Mobpt >= (BaseLevel ** 2)*2,l("2")),
+ rif(Mobpt >= (BaseLevel ** 2)*3,l("3")),
+ rif(Mobpt >= (BaseLevel ** 2)*4,l("4")),
+ rif(Mobpt >= (BaseLevel ** 2)*5,l("5")),
+ rif(Mobpt >= (BaseLevel ** 2)*6,l("6")),
+ rif(Mobpt >= (BaseLevel ** 2)*7,l("7")),
+ rif(Mobpt >= (BaseLevel ** 2)*8,l("8")),
+ rif(Mobpt >= (BaseLevel ** 2)*9,l("9")),
+ rif(Mobpt >= (BaseLevel ** 2)*10,l("10")),
+ rif(Mobpt >= (BaseLevel ** 2)*11,l("Gimme as many as I deserve!")),
+ l("Sorry, I have to go now.");
+
+ switch (@menu)
+ {
+ case 1 :
+ @var = 1;
+ goto L_Items;
+ break;
+ case 2 :
+ @var = 2;
+ goto L_Items;
+ break;
+ case 3 :
+ @var = 3;
+ goto L_Items;
+ break;
+ case 4 :
+ @var = 4;
+ goto L_Items;
+ break;
+ case 5 :
+ @var = 5;
+ goto L_Items;
+ break;
+ case 6 :
+ @var = 6;
+ goto L_Items;
+ break;
+ case 7 :
+ @var = 7;
+ goto L_Items;
+ break;
+ case 8 :
+ @var = 8;
+ goto L_Items;
+ break;
+ case 9 :
+ @var = 9;
+ goto L_Items;
+ break;
+ case 10 :
+ @var = 10;
+ goto L_Items;
+ break;
+ case 11 :
+ goto L_Give_all;
+ break;
+ default :
+ goto L_Close;
+ break;
+ }
+ } while (@menu != 12);
+
+ closedialog;
+ goodbye;
+ close;
+
+L_Close:
+ @var =0;
+ @reward ="";
+ close;
+
+L_LuckyReward1:
+ mesq l("Wow !");
+ next;
+ mesq l("I don't believe.");
+ next;
+ mesq l("you get lucky and got a @@", getitemlink(.Item1$));
+ next;
+ mesq l("Come back later for more items i' m so suprised");
+
+ set Mobpt, Mobpt - BaseLevel ** 2;
+ getitem .Item1$,1;
+ close;
+
+L_LuckyReward2:
+ mesq l("Wow !");
+ next;
+ mesq l("I don't believe.");
+ next;
+ mesq l("you get lucky and got a @@", getitemlink(.Item2$));
+ next;
+ mesq l("Come back later for more items i' m so suprised");
+ set Mobpt, Mobpt - BaseLevel ** 2;
+ getitem .Item2$,1;
+ close;
+
+L_LuckyReward3:
+ mesq l("Wow !");
+ next;
+ mesq l("I don't believe.");
+ next;
+ mesq l("you get lucky and got a @@", getitemlink(.Item3$));
+ next;
+ mesq l("Come back later for more items i' m so suprised");
+ set Mobpt, Mobpt - BaseLevel ** 2;
+ getitem .Item3$,1;
+ close;
+
+L_Items:
+ for (.@i = 0; .@i < @var; .@i ++)
+ {
+ getinventorylist;
+ .@weight = checkweight(@Items$,1);
+ if (.@weight == 0)
+ goto L_NoPlaceWeight;
+ if (@inventorylist_count == 100)
+ goto L_NoPlace;
+ .@lucky = rand(10000); // 0 - 99999
+ if (.@lucky >= 0 && .@lucky <= 5000)
+ goto L_LuckyReward1;
+ if (.@lucky >= 1 && .@lucky <= 4)
+ goto L_LuckyReward2;
+ if (.@lucky >= 5 && .@lucky <= 10)
+ goto L_LuckyReward3;
+ set .@reward$, @Items$[rand(getarraysize(@Items$))];
+ mesq l("You received one @@ !", getitemlink(.@reward$));
+ set Mobpt, Mobpt - BaseLevel ** 2;
+ getitem .@reward$,1;
+ }
+ close;
+
+L_Continue:
+ mesq l("You still have @@ Monster Points ! Do you want more items ?", Mobpt);
+ do
+ {
+ select
+ l("Yes"),
+ l("No");
+
+ switch (@menu)
+ {
+ case 1:
+ goto L_Give_all;
+ break;
+ case 2:
+ goto L_Close;
+ break;
+ }
+ } while (@menu != 2);
+
+L_NoPlace :
+ mesq l("You seem to run out of place, you should go to the storage.");
+ close;
+
+L_NoPlaceWeight :
+ mesq l("You can't carry more items, you should go to the storage.");
+ close;
+
+L_Give_all:
+ @var = Mobpt / BaseLevel ** 2;
+ if (@var > 50) // limite for avoid lag server
+ @var = 50;
+ for (.@i = 0; .@i < @var; .@i ++)
+ {
+ getinventorylist;
+ .@weight = checkweight(@Items$,1);
+ if (.@weight == 0)
+ goto L_NoPlaceWeight;
+ if (@inventorylist_count == 100)
+ goto L_NoPlace;
+ .@lucky = rand(10000); // 0 - 99999
+ if (.@lucky == 0)
+ goto L_LuckyReward1;
+ if (.@lucky >= 1 && .@lucky <= 4)
+ goto L_LuckyReward2;
+ if (.@lucky >= 5 && .@lucky <= 10)
+ goto L_LuckyReward3;
+ set .@reward$, @Items$[rand(getarraysize(@Items$))];
+ mesq l("You received one @@ !", getitemlink(.@reward$));
+ set Mobpt, Mobpt - BaseLevel ** 2;
+ getitem .@reward$,1;
+ }
+ if (Mobpt / BaseLevel ** 2 > 0)
+ goto L_Continue;
+ close;
+
+OnInit:
+ .sex = G_MALE;
+ .distance = 3;
+ end;
+}
+