diff options
Diffstat (limited to 'npc/008-1')
-rw-r--r-- | npc/008-1/_import.txt | 3 | ||||
-rw-r--r-- | npc/008-1/auldsbel.txt | 3 | ||||
-rw-r--r-- | npc/008-1/banu.txt | 3 | ||||
-rw-r--r-- | npc/008-1/blossom.txt | 1 | ||||
-rw-r--r-- | npc/008-1/confused-tree.txt | 1 | ||||
-rw-r--r-- | npc/008-1/crane.txt | 1 | ||||
-rw-r--r-- | npc/008-1/greenmage.txt (renamed from npc/008-1/4144.txt) | 7 | ||||
-rw-r--r-- | npc/008-1/hinnak.txt | 4 | ||||
-rw-r--r-- | npc/008-1/jack.txt | 4 | ||||
-rw-r--r-- | npc/008-1/mikhail.txt | 12 | ||||
-rw-r--r-- | npc/008-1/milly.txt | 1 | ||||
-rw-r--r-- | npc/008-1/old-man.txt | 1 | ||||
-rw-r--r-- | npc/008-1/old-woman.txt | 1 | ||||
-rw-r--r-- | npc/008-1/oscar.txt | 1 | ||||
-rw-r--r-- | npc/008-1/rossy.txt | 10 | ||||
-rw-r--r-- | npc/008-1/sabine.txt | 1 | ||||
-rw-r--r-- | npc/008-1/sergeant-ryan.txt | 71 | ||||
-rw-r--r-- | npc/008-1/shop.txt | 1 | ||||
-rw-r--r-- | npc/008-1/sign.txt | 5 | ||||
-rw-r--r-- | npc/008-1/snarfles.txt | 3 | ||||
-rw-r--r-- | npc/008-1/soul-menhir.txt | 59 | ||||
-rw-r--r-- | npc/008-1/voltain.txt | 3 | ||||
-rw-r--r-- | npc/008-1/wateranimation.txt | 24 |
23 files changed, 113 insertions, 107 deletions
diff --git a/npc/008-1/_import.txt b/npc/008-1/_import.txt index 381dec5a..88b1ded5 100644 --- a/npc/008-1/_import.txt +++ b/npc/008-1/_import.txt @@ -1,6 +1,6 @@ // Map 008-1: Hurnscald // This file is generated automatically. All manually added changes will be removed when running the Converter. -"npc/008-1/4144.txt", +"npc/008-1/greenmage.txt", "npc/008-1/_mobs.txt", "npc/008-1/_warps.txt", "npc/008-1/auldsbel.txt", @@ -20,6 +20,7 @@ "npc/008-1/oscar.txt", "npc/008-1/rossy.txt", "npc/008-1/sabine.txt", +"npc/008-1/sergeant-ryan.txt", "npc/008-1/shop.txt", "npc/008-1/sign.txt", "npc/008-1/snarfles.txt", diff --git a/npc/008-1/auldsbel.txt b/npc/008-1/auldsbel.txt index 3d3ebbf5..316bf604 100644 --- a/npc/008-1/auldsbel.txt +++ b/npc/008-1/auldsbel.txt @@ -43,12 +43,11 @@ } } else { mesn; - mesq lg("If you come back later, I may teach you something. But psst, practising magic is quite dangerous these days."); + mesq l("If you come back later, I may teach you something. But psst, practising magic is quite dangerous these days."); } close; OnInit: - .bodytype = BODYTYPE_3; .distance = 4; end; } diff --git a/npc/008-1/banu.txt b/npc/008-1/banu.txt index 183d33c3..05209a2c 100644 --- a/npc/008-1/banu.txt +++ b/npc/008-1/banu.txt @@ -10,12 +10,11 @@ l("Hello."), l("You don't have a scythe, by chance? I am too old to mew this field all alone."), l("I asked Hinnak, but he wants at least a beer in exchange for his scythe."), - lg("But I hate alcohol, so thats not an option for me."); + l("But I hate alcohol, so thats not an option for me."); close; OnInit: - .bodytype = BODYTYPE_2; .distance = 4; end; } diff --git a/npc/008-1/blossom.txt b/npc/008-1/blossom.txt index 8746752e..57782b20 100644 --- a/npc/008-1/blossom.txt +++ b/npc/008-1/blossom.txt @@ -72,7 +72,6 @@ close; OnInit: - .bodytype = BODYTYPE_2; .distance = 4; end; } diff --git a/npc/008-1/confused-tree.txt b/npc/008-1/confused-tree.txt index 5ed54448..aead40ed 100644 --- a/npc/008-1/confused-tree.txt +++ b/npc/008-1/confused-tree.txt @@ -928,7 +928,6 @@ OnInit: // config below .hotwords$ = "tree"; // what hot words the npc should listen to, besides its own name (regex) .distance = 14; // the npc will only listen to player within X tiles - .bodytype = BODYTYPE_1; // BodyType of the npc .dir = season_direction(); // sprite direction according to the season .talk_rate = 1; // min number of seconds to wait between replies .repeat_rate = 1; // min number of seconds to wait before sending the same message twice in a row diff --git a/npc/008-1/crane.txt b/npc/008-1/crane.txt index d8099536..3a22fa47 100644 --- a/npc/008-1/crane.txt +++ b/npc/008-1/crane.txt @@ -87,7 +87,6 @@ function foodQuest { } OnInit: - .bodytype = BODYTYPE_3; .distance = 4; end; } diff --git a/npc/008-1/4144.txt b/npc/008-1/greenmage.txt index 842f9269..5b40f42d 100644 --- a/npc/008-1/4144.txt +++ b/npc/008-1/greenmage.txt @@ -3,13 +3,13 @@ // Jesusalva // WildX // Description: -// Andrei is not an human, according to studies conducted by TMW Team. +// The Green Mage is not an human, according to studies conducted by TMW Team. // He seems to be a highly advanced artificial intelligence. // The fact that he was never seen contributes to this theory. // Other members opinions: // “4144 is a bot which sits on Hurnscald.” ~ Sagratha, 2016 -008-1,246,105,0 script Andrei NPC_PLAYER,{ +008-1,246,105,0 script Green Wizard NPC_PLAYER,{ function sittingBot; function zealiteLore; // TODO: Maybe we should use Karma here? For discussion @@ -75,7 +75,7 @@ OnInit: .@npcId = getnpcid(.name$); setunitdata(.@npcId, UDT_HEADTOP, FancyHat); // Wizard Hat - setunitdata(.@npcId, UDT_HEADMIDDLE, SilkRobe); + setunitdata(.@npcId, UDT_HEADMIDDLE, SilkRobe); // TODO: Must be dye-ed green setunitdata(.@npcId, UDT_HEADBOTTOM, CottonGloves); setunitdata(.@npcId, UDT_WEAPON, CottonBoots); @@ -84,7 +84,6 @@ OnInit: setunitdata(.@npcId, UDT_HAIRCOLOR, rand(1,20)); npcsit; - .bodytype = BODYTYPE_3; .distance = 4; end; } diff --git a/npc/008-1/hinnak.txt b/npc/008-1/hinnak.txt index ea556475..69802791 100644 --- a/npc/008-1/hinnak.txt +++ b/npc/008-1/hinnak.txt @@ -149,7 +149,7 @@ { delitem .monster_drop, .drop_count; getitem .reward_item, 1; - Zeny += .reward_money; + quest_gp(.maxLevel, .reward_money); //getexp .reward_exp, 0; setq .quest, 3; } @@ -354,6 +354,7 @@ OnTimer1000: OnInit: .min_level = 15; // min level to do the quest + .maxLevel = getiteminfo(Scythe, ITEMINFO_ELV) + 20; .monster_id = Pinkie; // monster to kill .monster_drop = PinkAntennae; // monster drop to collect .drop_count = 10; // amount of that drop needed @@ -367,7 +368,6 @@ OnInit: .quest = HurnscaldQuests_Hinnak; .quest_inspector = HurnscaldQuests_Inspector; .quest_debug = .quest; - .bodytype = BODYTYPE_3; .distance = 3; .speed = 300; diff --git a/npc/008-1/jack.txt b/npc/008-1/jack.txt index fdce7fe6..fd16d965 100644 --- a/npc/008-1/jack.txt +++ b/npc/008-1/jack.txt @@ -224,7 +224,7 @@ delitem(.logs_item, .logs_amount); getitem(.shield_item, 1); Zeny -= .shield_cost; - getexp(.shield_exp, 0); + quest_xp(.maxLevel, .shield_exp); speech( l("Enjoy your new shield!")); @@ -294,12 +294,12 @@ OnInit: .shield_cost = 5000; // XXX: maybe nlogn? .shield_exp = 2500; .shield_item = WoodenShield; + .maxLevel = getiteminfo(WoodenShield, ITEMINFO_ELV) + 20; .quest_bow = HurnscaldQuests_ForestBow; .quest_shield = HurnscaldQuests_WoodenShield; .quest_inspector = HurnscaldQuests_Inspector; .quest_debug = .quest_bow; - .bodytype = BODYTYPE_3; .distance = 3; ////////// UNFINISHED ////////// diff --git a/npc/008-1/mikhail.txt b/npc/008-1/mikhail.txt index 3d9441d1..24806baf 100644 --- a/npc/008-1/mikhail.txt +++ b/npc/008-1/mikhail.txt @@ -75,7 +75,7 @@ delitem .third_item, .third_item_qty; setq .quest, 7; - getexp .third_reward_exp, 0; + quest_xp(.maxLevel, .third_reward_exp); close; } @@ -112,20 +112,12 @@ OnInit: .third_item_qty = 5; .third_item_mob = Maggot; + .maxLevel = 30; .third_reward_exp = 100; .quest = HurnscaldQuests_Soup; .quest_debug = .quest; - .bodytype = BODYTYPE_3; .distance = 3; -////////// UNFINISHED ////////// -//////////////////////////////// -// REMOVE THIS CODE WHEN THIS // -// NPC IS NO LONGER A WIP ////// -//////////////////////////////// -//if (!debug) disablenpc(.name$); -///////// UNFINISHED /////////// - end; } diff --git a/npc/008-1/milly.txt b/npc/008-1/milly.txt index 35c0e6b7..320ef3bf 100644 --- a/npc/008-1/milly.txt +++ b/npc/008-1/milly.txt @@ -105,7 +105,6 @@ function script GetBeanieCopter { OnInit: .quest_inspector = HurnscaldQuests_Inspector; .quest_debug = .quest_inspector; // TODO: change this to the milly quest debug when it exists - .bodytype = BODYTYPE_2; .distance = 3; ////////// UNFINISHED ////////// diff --git a/npc/008-1/old-man.txt b/npc/008-1/old-man.txt index e0df33bc..5b0e2f51 100644 --- a/npc/008-1/old-man.txt +++ b/npc/008-1/old-man.txt @@ -73,7 +73,6 @@ OnInit: .quest_inspector = HurnscaldQuests_Inspector; .quest_debug = .quest_inspector; - .bodytype = BODYTYPE_3; .distance = 1; // this npc has bad hearing .speed = 2000; // this npc is very old // TODO: move graph (after the Hurnscald map is finalized) diff --git a/npc/008-1/old-woman.txt b/npc/008-1/old-woman.txt index ddfb33c6..89789b70 100644 --- a/npc/008-1/old-woman.txt +++ b/npc/008-1/old-woman.txt @@ -120,7 +120,6 @@ OnInit: .quest_inspector = HurnscaldQuests_Inspector; .quest_debug = .quest_inspector; - .bodytype = BODYTYPE_2; .distance = 1; // this npc has bad hearing .speed = 2000; // this npc is very old // TODO: move graph (after the Hurnscald map is finalized) diff --git a/npc/008-1/oscar.txt b/npc/008-1/oscar.txt index d7c2f6d5..2ea42456 100644 --- a/npc/008-1/oscar.txt +++ b/npc/008-1/oscar.txt @@ -14,7 +14,6 @@ close; OnInit: - .bodytype = BODYTYPE_3; .distance = 4; end; } diff --git a/npc/008-1/rossy.txt b/npc/008-1/rossy.txt index 8e63bd27..f0acfa67 100644 --- a/npc/008-1/rossy.txt +++ b/npc/008-1/rossy.txt @@ -127,7 +127,7 @@ function rossyFirstmet { mes ""; if (@menu == 2) { mesn; - mesq lg("Then why bother? Weird person..."); + mesq l("Then why bother? Weird person..."); return; } setq HurnscaldQuests_Rossy, 2; @@ -160,7 +160,8 @@ function rossyBasket { mesq l("You do, but that's not enough. I need %d %s.", .blueberries_amount, getitemlink(Blueberries)); } delitem Blueberries, .blueberries_amount; - getexp 2000, 500; + quest_xp(.maxLevel, 2000); + quest_jxp(.maxLevel, 500); setq HurnscaldQuests_Rossy, 4; // FIXME: Perhaps give player a [Berries Bag] item? Hmm. mesn; @@ -348,7 +349,8 @@ function rossyDeliverTulip { mes ""; delitem ARedTulip, 15; setq HurnscaldQuests_Rossy, 14; - getexp 2500, 250; + quest_xp(.maxLevel, 2500); + quest_jxp(.maxLevel, 250); mesn; mesq l("That's better! Go and tell my mother that she is the nicest mother in the world."); next; @@ -379,11 +381,11 @@ function rossyJulietIntro { } OnInit: - .bodytype = BODYTYPE_3; .distance = 4; // Quest conf .blueberries_amount=30; .minLevel_rescue = 60; + .maxLevel = 90; end; } diff --git a/npc/008-1/sabine.txt b/npc/008-1/sabine.txt index 8f4fa713..dc2b11b7 100644 --- a/npc/008-1/sabine.txt +++ b/npc/008-1/sabine.txt @@ -49,7 +49,6 @@ OnInit: .quest_inspector = HurnscaldQuests_Inspector; .quest_debug = .quest_inspector; - .bodytype = BODYTYPE_2; .distance = 3; ////////// UNFINISHED ////////// diff --git a/npc/008-1/sergeant-ryan.txt b/npc/008-1/sergeant-ryan.txt new file mode 100644 index 00000000..975587e4 --- /dev/null +++ b/npc/008-1/sergeant-ryan.txt @@ -0,0 +1,71 @@ +// Evol scripts. +// Author: +// Livio +// Description: +// Save Sergeant Ryan + +008-1,55,47,0 script Sergeant Ryan NPC_RAIJIN_MALE_BROTHERHOOD,{ +function advanceQuest; +function advanceQuest { + setq(General_CptHal, getq(General_CptHal) + 1); + return; +} + + if (getq(General_CptHal)<=3) { + speech + l("Aaah!!! Dammit!!!"), + l("It hurts like hell, #@%!!!!"), + l("Go away, my comrades will be here soon!"); + } + if (getq(General_CptHal)==3) { + select l("No. They won't because Hal sent me to look after you, Tom Hanks."); + speech l("Aaah!!! What?"); + select l("You are hurt! Looks like I have to save private Ryan..."); + speech l("I'm a Sergeant. I could teach you a lesson or two if it wasn't for my leg."); + select l("Does it hurts if I touch here?"); + speech l("@#@%&#@*!!!"); + select l("This leg is badly hurt! Let me look out for something to heal it."); + speech l("Grr... I'm so nuts that I want to get even first with damn wolverns."); + speech l("Bring me:"); + printIngredients(.REQ0_INGREDIENTS, .REQ0_INGREDIENTS_AMOUNT); + next; + advanceQuest(); + close; + } + if (getq(General_CptHal)==4) { + if (checkForItems(.REQ0_INGREDIENTS, .REQ0_INGREDIENTS_AMOUNT)) { + speech l("Yeah, finally!!!"); + next; + BaseExp += 15 * BaseLevel; + Zeny += 50; + advanceQuest(); + delitem(.REQ0_INGREDIENTS, .REQ0_INGREDIENTS_AMOUNT); + speech l("Go tell Hal that I'm fine and I will go on with the mission as soon as possible."); + } else { + speech l("What are you doing here?!? I need:"); + printIngredients(.REQ0_INGREDIENTS, .REQ0_INGREDIENTS_AMOUNT); + speech l("Come on, kill those bastards!!! Wolverns must pay the price of tasting my damn leg!!!"); + select l("Fine. But PETA is not going to be happy about it..."); + speech l("@#@%&#@*!!!"); + } + close; + } + if (getq(General_CptHal)>=5) { + speech l("Thanks! Now move, I have a mission to accomplish."); + } + close; + +OnInit: + // NPC ITEM REQUESTS + setarray(.REQ0_INGREDIENTS, + WolvernPelt, + BottleOfWater + ); + setarray(.REQ0_INGREDIENTS_AMOUNT, + 1, + 1 + ); + + .distance = 4; + end; +} diff --git a/npc/008-1/shop.txt b/npc/008-1/shop.txt index 5ea1c139..b2b4a406 100644 --- a/npc/008-1/shop.txt +++ b/npc/008-1/shop.txt @@ -20,7 +20,6 @@ OnInit: sellitem AWhiteTulip, -1, 50; sellitem AYellowTulip, -1, 50; - .bodytype = BODYTYPE_1; .distance = 10; end; diff --git a/npc/008-1/sign.txt b/npc/008-1/sign.txt index 7652c3f2..950fe996 100644 --- a/npc/008-1/sign.txt +++ b/npc/008-1/sign.txt @@ -9,7 +9,6 @@ close; OnInit: .distance = 2; - .bodytype = BODYTYPE_1; end; } @@ -18,7 +17,6 @@ OnInit: close; OnInit: .distance = 2; - .bodytype = BODYTYPE_1; end; } @@ -27,7 +25,6 @@ OnInit: close; OnInit: .distance = 2; - .bodytype = BODYTYPE_1; end; } @@ -36,7 +33,6 @@ OnInit: close; OnInit: .distance = 2; - .bodytype = BODYTYPE_1; end; } @@ -45,6 +41,5 @@ OnInit: close; OnInit: .distance = 1; - .bodytype = BODYTYPE_1; end; } diff --git a/npc/008-1/snarfles.txt b/npc/008-1/snarfles.txt index 6332b4c9..d4de8ed0 100644 --- a/npc/008-1/snarfles.txt +++ b/npc/008-1/snarfles.txt @@ -10,7 +10,7 @@ speech l("My Mouboos, my beloved Mouboos!"), l("Oh, hi, isn't it cool to live among all those Mouboos? I don't understand how some people can eat Mouboo steak."), - lg("Murderers!"); + l("Murderers!"); if (getq(General_SmearedHands) <= 3 && getq2(General_SmearedHands) != 2) foodQuest(); close; @@ -92,7 +92,6 @@ function foodQuest { } OnInit: - .bodytype = BODYTYPE_3; .distance = 4; end; } diff --git a/npc/008-1/soul-menhir.txt b/npc/008-1/soul-menhir.txt index 2c57f0de..61112de5 100644 --- a/npc/008-1/soul-menhir.txt +++ b/npc/008-1/soul-menhir.txt @@ -1,62 +1,9 @@ -// Evol scripts. +// The Mana World scripts. // Author: // gumi +// Jesusalva // Description: // place of power, mana refills faster when sitting nearby -008-1,252,111,0 script Soul Menhir#hurnscald NPC_NO_SPRITE,{ - if (!@menhir_meditation_message) - { - dispbottom(l("You feel a strong magic aura. You want to sit near it and meditate.")); - @menhir_meditation_message=1; - } - end; +008-1,252,111,0 duplicate(Soul Menhir) Soul Menhir#hurn_1_7_200 NPC_NO_SPRITE -OnRefill: - @menhir_lock = false; - getmapxy(.@map$, .@x, .@y, UNITTYPE_PC); - - if (.@map$ != .map$ || distance(.x, .y, .@x, .@y) > .refill_distance || - !(issit())) - end; - - heal(0, .refill_rate); - end; - - -OnTimer500: - .@count = getunits(BL_PC, .@units[0], false, .map$, (.x - .refill_distance), - (.y - .refill_distance), (.x + .refill_distance), (.y + .refill_distance)); - - for (.@i = 0; .@i < .@count; ++.@i) - { - if (.@units[.@i] < 0) continue; // pre-check, just in case - deltimer(.name$ + "::OnRefill", .@units[.@i]); - if (gettimer(TIMER_COUNT, .@units[.@i], .name$ + "::OnRefill") > 0 || - getvariableofpc(@menhir_lock, .@units[.@i])) { - continue; - } - set(getvariableofpc(@menhir_lock, .@units[.@i]), true); - addtimer(rand(.refill_timer), .name$ + "::OnRefill", .@units[.@i]); - } - - initnpctimer(); - end; - -OnInit: - - .refill_rate = 1; // number of SP to give every refill - .refill_distance = 7; // max distance - .refill_timer = 200; // wait rand(X) ms before refill - initnpctimer(); - -////////// UNFINISHED ////////// -//////////////////////////////// -// REMOVE THIS CODE WHEN THIS // -// NPC IS NO LONGER A WIP ////// -//////////////////////////////// -//if (!debug) disablenpc(.name$); -///////// UNFINISHED /////////// - - end; -} diff --git a/npc/008-1/voltain.txt b/npc/008-1/voltain.txt index 6ab22f1e..ce41f10b 100644 --- a/npc/008-1/voltain.txt +++ b/npc/008-1/voltain.txt @@ -8,12 +8,11 @@ 008-1,182,155,0 script Voltain NPC_DARK_DRUID,{ speech l("Go away, I have to think about new evil doings."), - lg("GO AWAY, I SAID!"); + l("GO AWAY, I SAID!"); close; OnInit: - .bodytype = BODYTYPE_3; .distance = 4; end; } diff --git a/npc/008-1/wateranimation.txt b/npc/008-1/wateranimation.txt index 74ff5fd9..ce72d893 100644 --- a/npc/008-1/wateranimation.txt +++ b/npc/008-1/wateranimation.txt @@ -1,9 +1,21 @@ -// Evol scripts. -// Author: -// gumi -// Reid +// The Mana World scripts. // Description: // Water animations, splash, fishes, etc... -008-1,311,97,0 duplicate(#water_animation0) #water_animation16 NPC_WATER_SPLASH -008-1,314,139,0 duplicate(#water_animation0) #water_animation17 NPC_WATER_SPLASH +008-1,90,223,0 duplicate(#fish_river) #hurns_fish01 NPC_WATER_SPLASH +008-1,86,177,0 duplicate(#fish_river) #hurns_fish02 NPC_WATER_SPLASH +008-1,85,186,0 duplicate(#fish_river) #hurns_fish03 NPC_WATER_SPLASH +008-1,89,208,0 duplicate(#fish_river) #hurns_fish04 NPC_WATER_SPLASH +008-1,139,91,0 duplicate(#fish_river) #hurns_fish05 NPC_WATER_SPLASH +008-1,64,36,0 duplicate(#fish_river) #hurns_fish06 NPC_WATER_SPLASH +008-1,55,30,0 duplicate(#fish_river) #hurns_fish07 NPC_WATER_SPLASH +008-1,46,35,0 duplicate(#fish_river) #hurns_fish08 NPC_WATER_SPLASH +008-1,105,55,0 duplicate(#fish_river) #hurns_fish09 NPC_WATER_SPLASH +008-1,214,155,0 duplicate(#fish_river) #hurns_fish10 NPC_WATER_SPLASH +008-1,216,153,0 duplicate(#fish_river) #hurns_fish11 NPC_WATER_SPLASH +008-1,225,26,0 duplicate(#fish_river) #hurns_fish12 NPC_WATER_SPLASH +008-1,220,49,0 duplicate(#fish_river) #hurns_fish13 NPC_WATER_SPLASH +008-1,220,57,0 duplicate(#fish_river) #hurns_fish14 NPC_WATER_SPLASH +008-1,233,56,0 duplicate(#fish_river) #hurns_fish15 NPC_WATER_SPLASH +008-1,230,51,0 duplicate(#fish_river) #hurns_fish16 NPC_WATER_SPLASH + |