summaryrefslogtreecommitdiff
path: root/npc
diff options
context:
space:
mode:
authorjesusalva <cpntb1@ymail.com>2018-03-08 06:13:55 -0300
committerjesusalva <cpntb1@ymail.com>2018-03-08 06:13:55 -0300
commit08cbc8dcc82cbc908329f3123bf42ec54e651423 (patch)
tree4bca6d637a1760597275164e8b93c5ecb4b5f1f5 /npc
parent883168e5114bc11d48c1391295cff8a56817da0a (diff)
downloadserverdata-08cbc8dcc82cbc908329f3123bf42ec54e651423.tar.gz
serverdata-08cbc8dcc82cbc908329f3123bf42ec54e651423.tar.bz2
serverdata-08cbc8dcc82cbc908329f3123bf42ec54e651423.tar.xz
serverdata-08cbc8dcc82cbc908329f3123bf42ec54e651423.zip
Include Aindan and a (somewhat bugged) Ishi
Diffstat (limited to 'npc')
-rw-r--r--npc/003-1/_import.txt2
-rw-r--r--npc/003-1/aidan.txt89
-rw-r--r--npc/003-1/ishi.txt213
3 files changed, 304 insertions, 0 deletions
diff --git a/npc/003-1/_import.txt b/npc/003-1/_import.txt
index 1dec81be5..7e88f6043 100644
--- a/npc/003-1/_import.txt
+++ b/npc/003-1/_import.txt
@@ -3,6 +3,7 @@
"npc/003-1/_mobs.txt",
"npc/003-1/_warps.txt",
"npc/003-1/aahna.txt",
+"npc/003-1/aidan.txt",
"npc/003-1/ched.txt",
"npc/003-1/constableperry.txt",
"npc/003-1/cyndala.txt",
@@ -11,6 +12,7 @@
"npc/003-1/gladys.txt",
"npc/003-1/inac.txt",
"npc/003-1/inar.txt",
+"npc/003-1/ishi.txt",
"npc/003-1/itka.txt",
"npc/003-1/jakod.txt",
"npc/003-1/jerican.txt",
diff --git a/npc/003-1/aidan.txt b/npc/003-1/aidan.txt
new file mode 100644
index 000000000..3b8fd7a10
--- /dev/null
+++ b/npc/003-1/aidan.txt
@@ -0,0 +1,89 @@
+// TMW-2 Script
+// Author: Crazyfefe, Jesusalva
+// Desc: Originally a Tmw script
+
+003-1,95,97,0 script Aidan NPC_PLAYER,{
+
+ function Register
+ {
+ mesn l("Aidan, the Monster Guide");
+ mesq l("Oh my, you don't seem to be registered as a Monster Hunting Quest Participant. Would you like to register?");
+ next;
+ mesn l("Aidan, the Monster Guide");
+ mesq l("The register fee is 2000 GP.");
+
+ do
+ {
+ select
+ rif(Zeny >= 2000, l("Register")),
+ rif(Zeny < 2000, l("How do I get so much money?!")),
+ l("Not at the moment"),
+ l("Information");
+
+ switch (@menu)
+ {
+ case 1:
+ mes "";
+ Zeny=Zeny-2000;
+ MPQUEST=1;
+ mesn l("Aidan, the Monster Guide");
+ mesq l("Give me a second to look over your paperwork.");
+ next;
+ mesn l("Aidan, the Monster Guide");
+ mes l("\"Well, looks like you qualify!");
+ mes l("Welcome to the questing world!\"");
+ close;
+ break;
+ case 2:
+ mes "";
+ mesn l("Aidan, the Monster Guide");
+ mesq l("Sell old equipment and items you won't use. For example, what should you do with a @@ or an @@? Sell it!", getitemlink(Topaz), getitemlink(ScorpionStinger));
+ close;
+ break;
+ case 3:
+ mes "";
+ mesn l("Aidan, the Monster Guide");
+ mesq l("Very well, you don't know what you're missing.");
+ close;
+ break;
+ case 4:
+ mes "";
+ mesn l("Aidan, the Monster Guide");
+ mesq l("You see, because the Monster King, monsters have been running rampant. If they grow too much in numbers, cities may be overrun.");
+ next;
+ mesn l("Aidan, the Monster Guide");
+ mesq l("Therefore, the Alliance created a system so when you kill a monster, depending on its strength, you'll get Monster Points.");
+ next;
+ mesn l("Aidan, the Monster Guide");
+ mesq l("To prevent abuse, a registering fee is charged. Nothing major.");
+ next;
+ mesn l("Aidan, the Monster Guide");
+ mesq l("So whaddaya say, sign up won't you?");
+ next;
+ mes "";
+ Register;
+ break;
+ }
+ } while (@menu != 4);
+ }
+
+ if (MPQUEST == 0)
+ Register;
+
+ mesn l("Aidan, the Monster Guide");
+ mesq l("You currently have @@ Monster Points. These points are acquired while killing monsters.", Mobpt);
+ close;
+
+OnInit:
+ .@npcId = getnpcid(0, .name$);
+ //setunitdata(.@npcId, UDT_HEADTOP, 2929);
+ setunitdata(.@npcId, UDT_HEADMIDDLE, 1305);
+ setunitdata(.@npcId, UDT_HEADBOTTOM, 2207);
+ setunitdata(.@npcId, UDT_WEAPON, 1802); // Boots
+ setunitdata(.@npcId, UDT_HAIRSTYLE, 3);
+ setunitdata(.@npcId, UDT_HAIRCOLOR, 3);
+
+ .sex = G_MALE;
+ .distance = 5;
+ end;
+}
diff --git a/npc/003-1/ishi.txt b/npc/003-1/ishi.txt
new file mode 100644
index 000000000..7e7ff8e7b
--- /dev/null
+++ b/npc/003-1/ishi.txt
@@ -0,0 +1,213 @@
+// TMW-2 Script
+// Author:
+// Crazyfefe
+// Jesusalva
+//
+// Do not add void items to array.
+// note : the rare item system suck. Must be ordered from less rare to most rare.
+// TODO FIXME: Not reading properly from @Rares$ array, no idea how to fix that!
+
+003-1,97,97,0 script Ishi NPC_PLAYER,{
+
+ if (getq(MPQUEST) == 0)
+ {
+ mesn l("Ishi, the Rewards Master");
+ mesq l("Hey, it seems like you didn't register as a Monster Hunting Quest participant yet! You can sign up with Aidan.");
+ close;
+ }
+
+
+ if (Mobpt < BaseLevel ** 2)
+ {
+ mesn l("Ishi, the Rewards Master");
+ mesq l("Welcome! I see you have @@ Monster Points. But that isn't enough to get items, sorry!", Mobpt);
+ close;
+ }
+
+ setarray @Items$, "Bread", "Croconut","Plushroom",
+ "RedApple","Beer","Candy","Orange","ChocolateBar","BugLeg","CoinBag",
+ "Coal","SnakeSkin","CottonCloth","GrassSeeds","HardSpike","CobaltHerb","GambogeHerb",
+ "MauveHerb","IronOre","MaggotSlime","RawLog","ScorpionStinger","SilkCocoon","TreasureKey",
+ "FluffyFur","EmptyBottle","RustyKnife","TolchiArrow","Arrow","IronArrow","BlueCottonDye";
+ setarray @Rares$, "BronzeGift", 120, "IronIngot", 70, "BrimedHat", 40;
+
+ mesn l("Ishi, the Rewards Master");
+ mesq l("Welcome! I see you have @@ Monster Points. Would you like to exchange some of those for items?", Mobpt);
+ 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;
+ close;
+
+L_Items:
+ debugmes "Reaching item loop";
+ for (.@i = 0; .@i < @var; .@i ++)
+ {
+ debugmes "Items: "+str(@var);
+ .@lucked=0;
+ .@reward$="";
+ getinventorylist;
+ if (@inventorylist_count == 100)
+ goto L_NoPlace;
+
+ debugmes "Testing rares";
+ for (.@b = 0; .@b < (getarraysize(@Rares$)/2); .@b=.@b+2) {
+ .@lucky = rand(10000); // 0 - 99999
+ debugmes "Checking "+@Rares$[b]+" - b is now "+.@b;
+ debugmes l("Check @@ <= @@", .@lucky, @Rares$[b+1]);
+ if (.@lucky <= atoi(@Rares$[b+1])) {
+ .@lucked=1;
+ .@reward$ = @Rares$[b];
+ }
+ }
+
+ debugmes "Setting reward"; // could be if (!.@lucked) but for sanity...
+ if (.@reward$ == "")
+ set .@reward$, @Items$[rand(getarraysize(@Items$))];
+
+ debugmes "Check weight";
+ .@weight = checkweight(.@reward$,1);
+ if (!.@weight)
+ goto L_NoPlaceWeight;
+
+ debugmes "Processing...";
+ Mobpt = Mobpt - BaseLevel ** 2;
+ getitem .@reward$,1;
+
+ debugmes "Printing...";
+ if (.@lucked) {
+ mes "";
+ mes l("Wow!");
+ mes l("I can't believe.");
+ mes l("you got lucky and got a(n) @@!", getitemlink(.@reward$));
+ mes "";
+ } else {
+ mesq l("You received one @@!", getitemlink(.@reward$));
+ }
+
+ }
+ 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) { // limit to avoid lag server. Probably a bad idea.
+ @var = 50;
+ mes l("You have too much points. I can't allow you to take all at once right now. I'll try to give you 50, and you come back later!");
+ next;
+ }
+
+ goto L_Items;
+ close;
+
+OnInit:
+ .@npcId = getnpcid(0, .name$);
+ //setunitdata(.@npcId, UDT_HEADTOP, 2929);
+ setunitdata(.@npcId, UDT_HEADMIDDLE, 1305);
+ setunitdata(.@npcId, UDT_HEADBOTTOM, 2207);
+ setunitdata(.@npcId, UDT_WEAPON, 1802); // Boots
+ setunitdata(.@npcId, UDT_HAIRSTYLE, 4);
+ setunitdata(.@npcId, UDT_HAIRCOLOR, 13);
+
+ .sex = G_MALE;
+ .distance = 5;
+ end;
+}
+