summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJesusaves <cpntb1@ymail.com>2024-12-16 22:37:24 -0300
committerJesusaves <cpntb1@ymail.com>2024-12-16 22:37:24 -0300
commit3e5be575118627ec3b87ebccd2d965ac1dc0d8e1 (patch)
tree9295cc2308eb0b85b3d9306084a3146406a33d7f
parentfee2c1ddb38792a4758d45c0e3ee8a4442ac8792 (diff)
downloadserverdata-3e5be575118627ec3b87ebccd2d965ac1dc0d8e1.tar.gz
serverdata-3e5be575118627ec3b87ebccd2d965ac1dc0d8e1.tar.bz2
serverdata-3e5be575118627ec3b87ebccd2d965ac1dc0d8e1.tar.xz
serverdata-3e5be575118627ec3b87ebccd2d965ac1dc0d8e1.zip
Missing Ofelia's patch
-rw-r--r--db/constants.conf4
-rw-r--r--db/re/item_db.conf3
-rw-r--r--npc/003-1/ishi.txt2
-rw-r--r--npc/003-13/arnea.txt2
-rw-r--r--npc/003-9/gambler.txt2
-rw-r--r--npc/005-2/saxsochest.txt93
-rw-r--r--npc/009-8/gambler.txt3
-rw-r--r--npc/017-3/gambler.txt3
-rw-r--r--npc/019-4-1/ofelia.txt27
-rw-r--r--npc/020-4/gambler.txt3
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;
}