diff options
author | Jesusaves <cpntb1@ymail.com> | 2025-05-04 22:51:44 -0300 |
---|---|---|
committer | Jesusaves <cpntb1@ymail.com> | 2025-05-04 22:51:44 -0300 |
commit | 72ad6d119db508de5fdfcb32a6eb181a8722600a (patch) | |
tree | 01d8ad656c619d493dcb0e4824b6a570a5c08c42 | |
parent | 5a99cc3268dd7da36159423ecccf8b65fffc60a9 (diff) | |
download | serverdata-72ad6d119db508de5fdfcb32a6eb181a8722600a.tar.gz serverdata-72ad6d119db508de5fdfcb32a6eb181a8722600a.tar.bz2 serverdata-72ad6d119db508de5fdfcb32a6eb181a8722600a.tar.xz serverdata-72ad6d119db508de5fdfcb32a6eb181a8722600a.zip |
Improve options for Town Admins and the High Council for Moubootaur Showdown.
SC Configuration for the latest commit.
-rw-r--r-- | db/sc_config.conf | 17 | ||||
-rw-r--r-- | npc/003-0-2/saves.txt | 45 | ||||
-rw-r--r-- | npc/functions/politics.txt | 55 |
3 files changed, 117 insertions, 0 deletions
diff --git a/db/sc_config.conf b/db/sc_config.conf index 648d83b83..26c008622 100644 --- a/db/sc_config.conf +++ b/db/sc_config.conf @@ -3015,3 +3015,20 @@ SC_BOTTER_SYNDROME: { NoMadoReset: true } } +SC_ELLIBAN: { + Flags: { + NoSave: false + NoClearanceReset: true + NoDispelReset: true + NoDeathReset: true + NoMadoReset: true + //NoAllReset: true + NoBoss: true + } +} +SC_INSPIRED: { + Visible: true + Flags: { + Buff: true + } +} diff --git a/npc/003-0-2/saves.txt b/npc/003-0-2/saves.txt index ba9b5bb5e..d8f1d1fef 100644 --- a/npc/003-0-2/saves.txt +++ b/npc/003-0-2/saves.txt @@ -81,6 +81,21 @@ OnMinute44: // TODO: Council - make the NPCs speak etc } + // We may also have a council while preparing for Aeros Raid + if ($GAME_STORYLINE == 5 && !.@r) { + // Council Session + enablenpc "HC Saulc"; + enablenpc "HC Jak1"; + enablenpc "HC LawnCable"; + enablenpc "HC Crazyfefe"; + enablenpc "High Council Secretary"; + setcells "003-0-2", 32, 35, 37, 37, 1, "HCouncilGate"; + .session = true; + npctalk "The council is now in session."; + maptimer("003-0-2", 100, "HC Jesusalva::OnDeloc"); + end; + } + // Not a council session, so some members may show up if (.@r % 30) { enablenpc "HC LawnCable"; @@ -107,11 +122,26 @@ OnMinute44: 003-0-2,34,27,0 script HC Saulc NPC_HALBERDBARBARIAN,{ mesn l("Councilor Saulc"); mesq l("These battle plans are all wrong; They trace routes on the Canyon which doesn't exist..."); + if ($GAME_STORYLINE >= 5 && .donors && !@ml_donated) { + next; + mesn l("Councilor Saulc"); + mesq l("Actually, do you want to help? I'll be leading an unit through the Canyon to assault Aeros, and for meager %s GP I'll be able to do more.", fnum(.price)); + if (Zeny < .price) close; + next; + if (askyesno() == ASK_NO) { closeclientdialog; close; } + Zeny -= .price; + .price += 10000; + .donors -= 1; + $ML_PREPARADNESS += 1; + @ml_donated = true; + } close; OnInit: .sex = G_MALE; .distance = 5; + .donors = 10; + .price = 50000; end; } @@ -140,11 +170,26 @@ OnInit: 003-0-2,47,30,0 script HC Crazyfefe NPC_LOF_RICH,{ mesn l("Councilor Crazyfefe"); mesq l("I want to arrest the Monster King one day, but until then, I'm happy getting rid of petty scammers, spammers, and general evildoers."); + if ($GAME_STORYLINE >= 5 && .donors && !@ml_donated) { + next; + mesn l("Councilor Crazyfefe"); + mesq l("Actually, do you want to help? I'll be leading an unit to arrest the puppet of the Monster King while people fight the Moubootaur, and for meager %s GP I would be able to do more.", fnum(.price)); + if (Zeny < .price) close; + next; + if (askyesno() == ASK_NO) { closeclientdialog; close; } + Zeny -= .price; + .price += 10000; + .donors -= 1; + $ML_PREPARADNESS += 1; + @ml_donated = true; + } close; OnInit: .sex = G_MALE; .distance = 5; + .donors = 10; + .price = 50000; end; } diff --git a/npc/functions/politics.txt b/npc/functions/politics.txt index 9811579f0..9eb47a2fc 100644 --- a/npc/functions/politics.txt +++ b/npc/functions/politics.txt @@ -427,6 +427,9 @@ function script POL_Manage { rif(.@CR && .@RP, l("Tax crafters")), 40, rif(!.@CR, l("Don't tax crafters")), 41, rif(.@left && !.@SE && $GAME_STORYLINE < 5, l("Town Defense Program")), 60, + rif(.@left && $GAME_STORYLINE >= 5, l("Moubootaur Showdown Preparations")), 61, + rif(.@left && !$@GM_EVENT && $ML_PREPARADNESS && $GAME_STORYLINE >= 5, l("Aeros Plane Investments")), 62, + rif(.@left && $@GM_EVENT && $GAME_STORYLINE >= 5, l("Delay Aeros Closing")), 63, rif(.@left >= 6, l("Exile a player")), 70, rif(.@left >= 6, l("Revert a player exile")), 71, rif(.@left, l("Raise server wide EXP")), 80, @@ -561,6 +564,58 @@ function script POL_Manage { next; } break; + case 61: + .@cost = 10000 - (.@RP * 20); + mesc l("Moubootaur Showdown Preparations"), 3; + mesc l("You need @@ GP to make this investment.", .@cost); + mesc l("This investment will allow the Alliance to make a better effort when facing down the Moubootaur."); + if (.@GP < .@cost) + break; + mesc l("Are you sure?"); + if (askyesno() == ASK_YES) { + $ML_PREPARADNESS += 1; + setd(.@town$+"_MONEY", .@GP-.@cost); + TOWN_ACTIONS[.@TP]+=1; + mesc l("Preparations funded."), 1; + next; + } + break; + case 62: + .@cost = 20000 - (.@RP * 15); + mesc l("Aeros Plane Investments"), 3; + mesc l("You need @@ GP to make this investment.", .@cost); + mesc l("The gold will be used in a circuit developed by Saulc to cause Aeros to open up faster."); + mesc l("This benefits the Moubootaur, and reduces preparedness for the Showdown."), 1; + if (.@GP < .@cost) + break; + mesc l("Are you sure?"); + if (askyesno() == ASK_YES) { + $ML_PREPARADNESS -= 1; + .@score = getvariableofnpc(.score, "sThankAeros") + rand2(90, 120); + set getvariableofnpc(.score, "sThankAeros"), .@score; + setd(.@town$+"_MONEY", .@GP-.@cost); + TOWN_ACTIONS[.@TP]+=1; + mesc l("Saulc is now trying to make Aeros start faster."), 1; + next; + } + break; + case 63: + .@cost = 20000 - (.@RP * 15); + mesc l("Delay Aeros Closing"), 3; + mesc l("You need @@ GP to make this investment.", .@cost); + mesc l("The gold will be used in a circuit developed by Crazyfefe to make Aeros remain open for longer; but will not spawn new monsters."); + if (.@GP < .@cost) + break; + mesc l("Are you sure?"); + if (askyesno() == ASK_YES) { + .@event = getvariableofnpc(.event, "sThankAeros") + rand2(300, 900); + set getvariableofnpc(.event, "sThankAeros"), .@event; + setd(.@town$+"_MONEY", .@GP-.@cost); + TOWN_ACTIONS[.@TP]+=1; + mesc l("Aeros will remain open for %s.", FuzzyTime(.@event)), 1; + next; + } + break; // Mark 70: Exile and Player functions case 70: mesc l("Exiled players will not be able to save to menhir."), 1; |