From 4ca8ef0c4a42198a3a34f40ccf7740edbff5c8f8 Mon Sep 17 00:00:00 2001 From: Saulc Date: Fri, 9 Mar 2018 18:34:59 +0100 Subject: do some fix --- npc/001-1/_import.txt | 2 + npc/001-1/aidan.txt | 56 ++++++++++++ npc/001-1/ishi.txt | 231 ++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 289 insertions(+) create mode 100644 npc/001-1/aidan.txt create mode 100644 npc/001-1/ishi.txt (limited to 'npc') 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; +} + -- cgit v1.2.3-70-g09d2