diff options
author | Jesusaves <cpntb1@ymail.com> | 2024-12-16 22:37:24 -0300 |
---|---|---|
committer | Jesusaves <cpntb1@ymail.com> | 2024-12-16 22:37:24 -0300 |
commit | 3e5be575118627ec3b87ebccd2d965ac1dc0d8e1 (patch) | |
tree | 9295cc2308eb0b85b3d9306084a3146406a33d7f | |
parent | fee2c1ddb38792a4758d45c0e3ee8a4442ac8792 (diff) | |
download | serverdata-3e5be575118627ec3b87ebccd2d965ac1dc0d8e1.tar.gz serverdata-3e5be575118627ec3b87ebccd2d965ac1dc0d8e1.tar.bz2 serverdata-3e5be575118627ec3b87ebccd2d965ac1dc0d8e1.tar.xz serverdata-3e5be575118627ec3b87ebccd2d965ac1dc0d8e1.zip |
Missing Ofelia's patch
-rw-r--r-- | db/constants.conf | 4 | ||||
-rw-r--r-- | db/re/item_db.conf | 3 | ||||
-rw-r--r-- | npc/003-1/ishi.txt | 2 | ||||
-rw-r--r-- | npc/003-13/arnea.txt | 2 | ||||
-rw-r--r-- | npc/003-9/gambler.txt | 2 | ||||
-rw-r--r-- | npc/005-2/saxsochest.txt | 93 | ||||
-rw-r--r-- | npc/009-8/gambler.txt | 3 | ||||
-rw-r--r-- | npc/017-3/gambler.txt | 3 | ||||
-rw-r--r-- | npc/019-4-1/ofelia.txt | 27 | ||||
-rw-r--r-- | npc/020-4/gambler.txt | 3 |
10 files changed, 85 insertions, 57 deletions
diff --git a/db/constants.conf b/db/constants.conf index 8365050e6..6c93bb947 100644 --- a/db/constants.conf +++ b/db/constants.conf @@ -2348,8 +2348,8 @@ constants_db: { X24_G3_TREE: 1 X24_G3_MAX: 2 - X24_G4_INSURANCE: 0 - X24_G4_GRENADE: 1 + X24_G4_GRENADE: 0 + X24_G4_SAXSO: 1 X24_G4_MAX: 2 diff --git a/db/re/item_db.conf b/db/re/item_db.conf index 8f375934c..be4da2e12 100644 --- a/db/re/item_db.conf +++ b/db/re/item_db.conf @@ -1491,6 +1491,7 @@ item_db: ( UseEffect: "FX_SMOKEBOMB" Script: <" callfunc "areasc", 3, 800+(BaseLevel*30), SC_SLEEP, BL_MOB; + callfunc "X24Event", X24_GROUP4, X24_G4_GRENADE; //itemskill AS_CLOAKING,1,1; //itemskill SM_MAGNUM,1; // Fallback: ~~TF_HIDING AS_CLOAKING SC_INVISIBILITY RA_CAMOUFLAGE~~ None work? @@ -3177,6 +3178,7 @@ item_db: ( //itemskill WZ_STORMGUST,3,0; //callfunc "grenade", 3, rand(500,700); callfunc "grenade", 3, rand(100,150)+BaseLevel*6, false; + callfunc "X24Event", X24_GROUP4, X24_G4_GRENADE; "> }, { @@ -19511,6 +19513,7 @@ item_db: ( UseEffect: "FX_SMOKEBOMB" Script: <" callfunc "massprovoke", rand(3,9); + callfunc "X24Event", X24_GROUP4, X24_G4_GRENADE; "> }, { diff --git a/npc/003-1/ishi.txt b/npc/003-1/ishi.txt index c666a05f5..e155d5c8d 100644 --- a/npc/003-1/ishi.txt +++ b/npc/003-1/ishi.txt @@ -187,8 +187,10 @@ L_Items: } freeloop(false); + X24Event(X24_GROUP2, X24_G2_MPT); close; +// TODO FIXME: Is this statement even reachable? L_Continue: mesq l("You still have ##B%d Monster Points##b! Do you want more items?", Mobpt); select diff --git a/npc/003-13/arnea.txt b/npc/003-13/arnea.txt index 83b1dcb62..5686b5f83 100644 --- a/npc/003-13/arnea.txt +++ b/npc/003-13/arnea.txt @@ -176,6 +176,8 @@ OnUDTUpdate: UDTRANK='UDTf; getexp 'UDTf*7, 'UDTf*7; Mobpt+='UDTf*7; + if ('UDTf == 3) + X24Event(X24_GROUP2, X24_G2_UDT); end; // Check for possible cheats, and update default values diff --git a/npc/003-9/gambler.txt b/npc/003-9/gambler.txt index 585e6e4e8..2f1538bce 100644 --- a/npc/003-9/gambler.txt +++ b/npc/003-9/gambler.txt @@ -147,6 +147,7 @@ L_BlackJack: getitem Beard, 1; mesc ".:: " + l("Blackjack!") + " ::.", 3; mesc l("You have won the match."); + X24Event(X24_GROUP1, X24_G1_BLACKJACK); close; L_Busted: @@ -159,6 +160,7 @@ L_Victory: mesc l("You have won the match."); getexp 6 * BaseLevel * (1+REBIRTH), JobLevel * (1+REBIRTH); Zeny += rand2(45, 75); + X24Event(X24_GROUP1, X24_G1_BLACKJACK); close; L_Draw: diff --git a/npc/005-2/saxsochest.txt b/npc/005-2/saxsochest.txt index cc2a24291..473269a04 100644 --- a/npc/005-2/saxsochest.txt +++ b/npc/005-2/saxsochest.txt @@ -5,50 +5,9 @@ // Minor quest for a necklace 005-2,44,41,0 script Saxso Chest NPC_NO_SPRITE,{ - - function quest_completed { - TreasureBox(100, .key); // 1.0% bonus over common chests - close; - } - - function quest_open { - if (countitem(.key) > 0) { - speech S_FIRST_BLANK_LINE | S_LAST_NEXT, - l("You open the chest and found a @@.",getitemlink(.reward)); - delitem .key,1; - getitem .reward,1; - getexp 80, 15; - setq CandorQuest_Chest, 1; - close; - } else { - speech S_FIRST_BLANK_LINE, - l("You don't have the key."); - tutmes l("In the world, you may find several treasure boxes. Different treasure boxes need different keys."), l("Treasure!"); - tutmes l("The most common treasure box uses %s and can opened many times. However, this is a special treasure box. You'll need a %s to open it.", getitemlink(TreasureKey), getitemlink(.key)), l("Treasure!"); - tutmes l("This key is dropped by the Saxso Ghost. Did you knew you can obtain info about the monster drop rates and strength?"), l("Monster Information!"); - tutmes l("Use %s (name in english) to obtain this info. You don't need the full name either, so go ahead and try it!", b("@monsterinfo Saxso")), l("Monster Information!"); - close; - } - } - - function quest_started { - speech S_FIRST_BLANK_LINE | S_LAST_NEXT, - l("It looks locked."); - narrator S_LAST_NEXT, - l("Perhaps you should use a key to open it."); - do - { - select - l("Use a key."), - menuaction(l("Quit")); - - switch (@menu) { - case 1: - quest_open; - break; - } - } while (@menu != 2); - } + function quest_completed; + function quest_open; + function quest_started; do { @@ -70,6 +29,52 @@ goodbye; close; +function quest_completed { + TreasureBox(100, .key); // 1.0% bonus over common chests + X24Event(X24_GROUP4, X24_G4_SAXSO); + close; +} + +function quest_open { + if (countitem(.key) > 0) { + speech S_FIRST_BLANK_LINE | S_LAST_NEXT, + l("You open the chest and found a @@.",getitemlink(.reward)); + delitem .key,1; + getitem .reward,1; + getexp 80, 15; + setq CandorQuest_Chest, 1; + X24Event(X24_GROUP4, X24_G4_SAXSO); + close; + } else { + speech S_FIRST_BLANK_LINE, + l("You don't have the key."); + tutmes l("In the world, you may find several treasure boxes. Different treasure boxes need different keys."), l("Treasure!"); + tutmes l("The most common treasure box uses %s and can opened many times. However, this is a special treasure box. You'll need a %s to open it.", getitemlink(TreasureKey), getitemlink(.key)), l("Treasure!"); + tutmes l("This key is dropped by the Saxso Ghost. Did you knew you can obtain info about the monster drop rates and strength?"), l("Monster Information!"); + tutmes l("Use %s (name in english) to obtain this info. You don't need the full name either, so go ahead and try it!", b("@monsterinfo Saxso")), l("Monster Information!"); + close; + } +} + +function quest_started { + speech S_FIRST_BLANK_LINE | S_LAST_NEXT, + l("It looks locked."); + narrator S_LAST_NEXT, + l("Perhaps you should use a key to open it."); + do + { + select + l("Use a key."), + menuaction(l("Quit")); + + switch (@menu) { + case 1: + quest_open; + break; + } + } while (@menu != 2); +} + OnInit: .key = SaxsoKey; .reward = ToothNecklace; diff --git a/npc/009-8/gambler.txt b/npc/009-8/gambler.txt index 9a6eaa176..6de6fc455 100644 --- a/npc/009-8/gambler.txt +++ b/npc/009-8/gambler.txt @@ -97,6 +97,9 @@ L_Spin: // Streak reward if (@craps_winstreak == 7) getitem VneckJumper, 1; + // Christmas Event + if (@craps_winstreak == 2) + X24Event(X24_GROUP1, X24_G1_CRAPS); // Maybe you want another game? next; if (countitem(CasinoCoins)) diff --git a/npc/017-3/gambler.txt b/npc/017-3/gambler.txt index 4aee4501f..61dd28e99 100644 --- a/npc/017-3/gambler.txt +++ b/npc/017-3/gambler.txt @@ -132,6 +132,9 @@ L_Sequence: // Game over if (@streak == 50) goto L_Close; + // Event + if (@streak == 4) + X24Event(X24_GROUP1, X24_G1_SEQUENCE); // Otherwise, go ahead mesn; mesc l("Continue?"), 1; diff --git a/npc/019-4-1/ofelia.txt b/npc/019-4-1/ofelia.txt index 05e5997c2..c9933fd16 100644 --- a/npc/019-4-1/ofelia.txt +++ b/npc/019-4-1/ofelia.txt @@ -29,6 +29,14 @@ L_OutOfSeason: L_Reward: inventoryplace NPCEyes, 6, Iten, 1; + .@progress = bitmask_count(X24_CHALLENGES_DONE); + if (.@progress >= 32 || .@progress <= 0) Exception("Invalid X24_BM", RB_ISFATAL); // ERROR + mesc b(l("The Thirty One Challenges")), 2; + mesc b(l("You have accomplished %d challenges this year.", .@progress)), 3; + switch (.@progress) { + default: + break; + } //X24_CHALLENGES_DONE = 0; // !!!!!TODO!!!!! close; @@ -84,15 +92,9 @@ L_Main: msObjective(_done(X24_BREWING), l("- Complete %s during Christmas", l("brewing a fermented beverage"))); msObjective(_done(X24_COOKING), l("- Complete %s during Christmas", l("cooking any dish"))); msObjective(_done(X24_REFINING), l("- Complete %s during Christmas", l("refining any equipment"))); - // UDT Challenge, A Monster Point Exchange, Planting a Tree, A «Casino Game», Using an Insurance, Detonating a Grenade, Visiting Aethyra. - // Gamblers: Black Jack (Tulim), Craps (Halin), Sequence (LoF), Higher or Lower (Nivalis), Poker (Aethyra) - // A Guild Skill Use? Guild Craft? ~~Donate Blood~~ Something of magic? At least 36 tasks were listed above... Up to 40 for all gamblers. But max is 31 tasks for an INT_MAX. Some will not make the cut. - // Visiting Aethyra and playing Poker in Aethyra can be merged - // Worst case, the last N challenges can be randomized (e.g. Grenade or Tree) - // ...Based on getcharid(0) + YEAR % N - // But will need some rework on the wrapper X24Event. msObjective(_done(X24_POKER), l("- Complete %s during Christmas", l("a game of Poker"))); - // Groups, only group 3 currently works; group 1, 2 and 4 are TBD + /////////// + // Groups .@cur = getcharid(0) + getq(SQuest_Christmas); // .:: GROUP 1 ::. switch (.@cur % X24_G1_MAX) { @@ -121,11 +123,14 @@ L_Main: } // .:: GROUP 4 ::. switch (.@cur % X24_G4_MAX) { - case X24_G4_INSURANCE: - msObjective(_done(X24_GROUP3), l("- Complete %s during Christmas", l("using an insurance"))); break; + //case X24_G4_INSURANCE: + // msObjective(_done(X24_GROUP4), l("- Complete %s during Christmas", l("using an insurance"))); break; case X24_G4_GRENADE: - msObjective(_done(X24_GROUP3), l("- Complete %s during Christmas", l("using a grenade or equivalent magic"))); break; + msObjective(_done(X24_GROUP4), l("- Complete %s during Christmas", l("using a grenade or equivalent magic"))); break; + case X24_G4_SAXSO: + msObjective(_done(X24_GROUP4), l("- Complete %s during Christmas", l("opening Saxso's Chest"))); break; } + // A Guild Skill Use? Guild Craft? ~~Donate Blood~~ Something of magic? At least 36 tasks were listed above... Up to 40 for all gamblers. But max is 31 tasks for an INT_MAX. Some will not make the cut. next; mesn; diff --git a/npc/020-4/gambler.txt b/npc/020-4/gambler.txt index 216a05c34..8d64166d9 100644 --- a/npc/020-4/gambler.txt +++ b/npc/020-4/gambler.txt @@ -117,6 +117,9 @@ L_Spin: $XAN_BETS=$XAN_BETS+1; Zeny+=min((@gambler_winstreak*2), 40); Mobpt+=40+min(@gambler_winstreak, 20); + // Ofelia's Event + if (@gambler_winstreak == 3) + X24Event(X24_GROUP1, X24_G1_HIGHLOW); } else { .@bypass=0; } |