From 72c6f6154faef14bbdd305e56619c38beff8ff34 Mon Sep 17 00:00:00 2001 From: Jesusaves Date: Wed, 20 Jun 2018 11:37:02 -0300 Subject: Template for Jesusalva's Grimorium --- db/re/item_db.conf | 15 ++++++- npc/functions/class.txt | 1 + npc/items/books.txt | 105 ++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 120 insertions(+), 1 deletion(-) diff --git a/db/re/item_db.conf b/db/re/item_db.conf index b1a2277a0..3a628e5f4 100644 --- a/db/re/item_db.conf +++ b/db/re/item_db.conf @@ -1658,7 +1658,6 @@ item_db: ( noauction: true } Script: <" - //doevent "@rules::OnUseBook"; announce l("@@ has the clear smile of victory!", strcharinfo(0)), bc_all; .@r=rand(1,5); if (.@r % 2 == 1) @@ -2102,6 +2101,20 @@ item_db: ( percentheal -5, 15; "> }, +{ + Id: 609 + AegisName: "JesusalvaGrimorium" + Name: "Jesusalva Grimorium" + Type: "IT_USABLE" + Buy: 64000 + Sell: 1 + Weight: 25 + KeepAfterUse: true + Refine: false + Script: <" + doevent "#Book-JGrimorium::OnUse"; + "> +}, { Id: 700 AegisName: "SmallTentacles" diff --git a/npc/functions/class.txt b/npc/functions/class.txt index 20bfd3d3a..a7f76eb59 100644 --- a/npc/functions/class.txt +++ b/npc/functions/class.txt @@ -321,6 +321,7 @@ L_T2_S6: close; L_T2_S7: + // getitembound "JesusalvaGrimorium", 1, 1; addtoskill(.@CLASS,2,0); getexp 40000, 0; // Yes, 40k experience points. Waw. mes col(".:: Congratulations! ::.", 2); diff --git a/npc/items/books.txt b/npc/items/books.txt index 03636eb65..5b44e529e 100644 --- a/npc/items/books.txt +++ b/npc/items/books.txt @@ -122,3 +122,108 @@ OnInit: end; } + + + + + + + + + + + + + + + + + + + + + + +000-0,0,0,0 script #Book-JGrimorium NPC_HIDDEN,{ + + function read_book { + + setnpcdialogtitle l(.book_name$); + + narrator S_FIRST_BLANK_LINE | S_LAST_NEXT, + l("I, second sage of Fate, write this book. The knowledge on it shall guide you to the Secret Of Mana."); + + @menu = 0; // reset for the rif + + do + { + narrator S_NO_NPC_NAME, + l("Please select a chapter:"); + + mes ""; + + select + rif(@menu == 1, "► ") + l("Ch 1 — Fishing apparatus"), + rif(@menu == 2, "► ") + l("Ch 2 — Baits"), + rif(@menu == 3, "► ") + l("Ch 3 — Location"), + rif(@menu == 4, "► ") + l("Ch 4 — Casting"), + rif(@menu == 5, "► ") + l("Ch 5 — Reeling"); + + switch(@menu) + { + case 1: + narrator S_FIRST_BLANK_LINE | S_LAST_NEXT, + l("You'll want your fishing rod to be flexible but solid."), + l("Comfortable grip is important especially for newcomers, since they'll be holding it for quite a while."); + break; + case 2: + narrator S_FIRST_BLANK_LINE | S_LAST_NEXT, + l("You can use many diverse items to lure fishes."), + l("Most common and widely popular in the fish realm are @@ and pieces of @@.", + getitemlink(SmallTentacles), getitemlink(Bread)), + l("Some types of fish also enjoy @@ quite a bit.", + getitemlink(Aquada)), + l("Some people, however, prefer to fish with more unorthodox baits, such as @@ or @@.", + getitemlink(RoastedMaggot), getitemlink(CaveSnakeTongue)); + break; + case 3: + narrator S_FIRST_BLANK_LINE | S_LAST_NEXT, + l("Find yourself a nice dry spot on a coast where you can easily reach into deep water."), + l("Fishing next to shallow water is not going to work well, because fishes seldom go there."), + l("You can easily identify fishing spots, small bubbles and fishes are visible from the surface."), + l("Don't forget to come as close as possible to these spots!"); + break; + case 4: + narrator S_FIRST_BLANK_LINE | S_LAST_NEXT, + l("Toss the hook into deep water by clicking on where you want to cast it."), + l("Make sure to put on a bait after you click, though!"), + l("After that, stay still and be patient, but also alert!"); + break; + case 5: + narrator S_FIRST_BLANK_LINE | S_LAST_NEXT, + l("To successfully catch a fish, you need to pull up your hook by clicking it, right after it submerges."), + l("Should you be too quick or wait too long, you will most likely fail."); + break; + } + } while (true); + + end; + } + +OnShelfUse: + if (openbookshelf()) + read_book; + bye; + +OnUse: + if (openbook()) + read_book; + bye; + +OnInit: + .book_name$ = getitemname(FishingGuideVolI); + .sex = G_OTHER; + .distance = 1; + end; +} + -- cgit v1.2.3-60-g2f50