summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJesusaves <cpntb1@ymail.com>2025-05-04 22:51:44 -0300
committerJesusaves <cpntb1@ymail.com>2025-05-04 22:51:44 -0300
commit72ad6d119db508de5fdfcb32a6eb181a8722600a (patch)
tree01d8ad656c619d493dcb0e4824b6a570a5c08c42
parent5a99cc3268dd7da36159423ecccf8b65fffc60a9 (diff)
downloadserverdata-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.conf17
-rw-r--r--npc/003-0-2/saves.txt45
-rw-r--r--npc/functions/politics.txt55
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;