diff options
Diffstat (limited to 'npc')
-rw-r--r-- | npc/003-2-1/_mobs.txt | 2 | ||||
-rw-r--r-- | npc/025-1/ctrl.c | 5 | ||||
-rw-r--r-- | npc/026-0/ctrl.c | 2 | ||||
-rw-r--r-- | npc/026-1/ctrl.c | 11 | ||||
-rw-r--r-- | npc/026-2/_import.txt | 1 | ||||
-rw-r--r-- | npc/026-2/ctrl.c | 104 | ||||
-rw-r--r-- | npc/026-3/_import.txt | 2 | ||||
-rw-r--r-- | npc/026-4/_import.txt | 2 | ||||
-rw-r--r-- | npc/026-5/_import.txt | 2 | ||||
-rw-r--r-- | npc/026-6/_import.txt | 2 | ||||
-rw-r--r-- | npc/026-7/_import.txt | 2 | ||||
-rw-r--r-- | npc/_import.txt | 3 | ||||
-rw-r--r-- | npc/functions/clientversion.txt | 1 | ||||
-rw-r--r-- | npc/functions/dungeon.txt | 14 | ||||
-rw-r--r-- | npc/functions/politics.txt | 3 | ||||
-rw-r--r-- | npc/scripts.conf | 2 |
16 files changed, 143 insertions, 15 deletions
diff --git a/npc/003-2-1/_mobs.txt b/npc/003-2-1/_mobs.txt index e4ea840b6..3769f3ffb 100644 --- a/npc/003-2-1/_mobs.txt +++ b/npc/003-2-1/_mobs.txt @@ -1,3 +1,3 @@ // This file is generated automatically. All manually added changes will be removed when running the Converter. // Map 003-2-1: #Leave-Complaints mobs -003-2-1,46,45,16,11 monster Green Dragon 1195,5,3600,36000,NotSoBot::OnHydra +003-2-1,46,45,16,11 monster Whining Dragon 1046,5,3600,36000,NotSoBot::OnHydra diff --git a/npc/025-1/ctrl.c b/npc/025-1/ctrl.c index 563182fca..843915351 100644 --- a/npc/025-1/ctrl.c +++ b/npc/025-1/ctrl.c @@ -24,6 +24,11 @@ 026-0 mapflag zone SuperMMO 026-1 mapflag zone SuperMMO 026-2 mapflag zone SuperMMO +026-3 mapflag zone SuperMMO +//026-4 mapflag zone SuperMMO // <- Randomly generated +//026-5 mapflag zone SuperMMO // <- Randomly generated +026-6 mapflag zone SuperMMO +026-7 mapflag zone SuperMMO ///////////////////////////////////////// // FUNCTIONS diff --git a/npc/026-0/ctrl.c b/npc/026-0/ctrl.c index b490ab028..bc2723499 100644 --- a/npc/026-0/ctrl.c +++ b/npc/026-0/ctrl.c @@ -4,7 +4,7 @@ // Description: // The Impregnable Fortress Control Files // Quest: General_Fortress -// (MaxFloor+1, internal, internal) +// (MaxFloor+2, internal, internal) 026-0,64,20,0 script Impregnable#B0F NPC_HIDDEN,4,0,{ end; diff --git a/npc/026-1/ctrl.c b/npc/026-1/ctrl.c index b8a1e9fab..702180e3d 100644 --- a/npc/026-1/ctrl.c +++ b/npc/026-1/ctrl.c @@ -4,15 +4,15 @@ // Description: // The Impregnable Fortress Control Files // Quest: General_Fortress -// (MaxFloor+1, internal, internal) +// (MaxFloor+2, internal, internal) 026-1,60,26,0 script Impregnable#B1F NPC_HIDDEN,0,0,{ end; OnTouch: - if (getq(General_Fortress) > 1) goto L_Warp; + if (getq(General_Fortress) > 2) goto L_Warp; mesc l(".:: Impregnable Fortress, %sF ::.", "B1"), 3; - msObjective(getq(General_Fortress) == 2, l("* Obtain clearance")); + msObjective(getq(General_Fortress) == 3, l("* Obtain clearance")); msObjective($MK_TEMPVAR < MKIF_LV_B2F, l("Minimum wins: %d/%d", $MK_TEMPVAR, MKIF_LV_B2F)); mes ""; mesc l("Hint: You might need to come back later."); @@ -26,8 +26,7 @@ L_Warp: mesc l("Minimum wins: %d/%d", $MK_TEMPVAR, MKIF_LV_B2F), 1; close; } - //warp "026-2", X, Y; - dispbottom l("Coming Soon, in Moubootaur Legends!"); + warp "026-2", 32, 97; end; // Disarm & reset everything @@ -123,7 +122,7 @@ function script 0261_CheckReset { if (!.@r) warp "003-1", 82, 119; else - setq General_Fortress, 2, 0, 0; + setq General_Fortress, 3, 0, 0; } close; diff --git a/npc/026-2/_import.txt b/npc/026-2/_import.txt index 9240be1c5..89acd9d30 100644 --- a/npc/026-2/_import.txt +++ b/npc/026-2/_import.txt @@ -1,3 +1,4 @@ // Map 026-2: The Impregnable Fortress (B2F) // This file is generated automatically. All manually added changes will be removed when running the Converter. "npc/026-2/_warps.txt", +"npc/026-2/ctrl.c", diff --git a/npc/026-2/ctrl.c b/npc/026-2/ctrl.c new file mode 100644 index 000000000..a0f513aa7 --- /dev/null +++ b/npc/026-2/ctrl.c @@ -0,0 +1,104 @@ +// TMW2 scripts. +// Author: +// Jesusalva +// Description: +// The Impregnable Fortress Control Files +// Quest: General_Fortress +// (MaxFloor+1, internal, internal) + +026-2,62,91,0 script Books#B2F NPC_NO_SPRITE,{ + mesc l("These books seem to belong to the fortress keeper. They seem more important than the others."); + next; + mesc l("Most of them seem to be accounting books. There seems to be a large influx of money for the purchase of %s as a component for homunculus creation.", getitemlink(MaggotSlime)); + next; + mesc l("The records implies a large number of economic players with ties with the Monster King operations, knowingly or not. A line also catches your attention:"); + mes l("%s - %s GP", strcharinfo(0), fnum(MonsterMoney)); + if (getq(General_Fortress) != 3) close; + next; + mesc l("After staring dumbfounded at the book for a while, you find something actually useful:"); + mesc l("Near the aquarium, chant the magic words; his true name. Only then, you may advance to his Throne Room."), 1; + // The door to left leads to the living quarters area and whatnot. Both doors should be locked. The riddle should be black boxed. His true name cannot be found in the fortress, but is registered in any history bard or book. + if (getq2(General_Fortress) == 1) + mesc l("There seems to be scribbled something about 'the latin part of the prophecy', whatever that means. Seems to be an old passphrase to access 'the World Heart'."); + else + setq2 General_Fortress, 1; + close; + +OnInit: + .distance=3; + end; +} + +026-2,29,26,0 script Impregnable1#B2F NPC_HIDDEN,4,0,{ + end; + +OnTouch: + if (getq(General_Fortress) > 4) goto L_Warp; + mesc l(".:: Impregnable Fortress, %sF ::.", "B2"), 3; + mesc l("Living Quarters")+" ↑", 3; + msObjective(getq(General_Fortress) == 4, l("* Chant magic words")); + msObjective($MK_TEMPVAR < MKIF_LV_B3F, l("Minimum wins: %d/%d", $MK_TEMPVAR, MKIF_LV_B3F)); + mes ""; + mesc l("Hint: Go read a book if you're bored."); + end; + +L_Warp: + // Not unlocked + if ($GAME_STORYLINE >= 3 && $MK_TEMPVAR < MKIF_LV_B3F) { + mesc l("The gate is sealed shut."), 1; + mesc l("The monster army is still strong on this floor!"), 1; + mesc l("Minimum wins: %d/%d", $MK_TEMPVAR, MKIF_LV_B3F), 1; + close; + } + //warp "026-3", X, Y; + dispbottom l("Coming Soon, in Moubootaur Legends!"); + end; +} + +026-2,86,26,0 script Impregnable2#B2F NPC_HIDDEN,4,0,{ + end; + +OnTouch: + if (getq(General_Fortress) > 4) goto L_Warp; + mesc l(".:: Impregnable Fortress, %sF ::.", "B2"), 3; + mesc l("Throne Room")+" ↑", 3; + msObjective(getq(General_Fortress) == 4, l("* Chant magic words")); + msObjective($MK_TEMPVAR < MKIF_LV_B3F, l("Minimum wins: %d/%d", $MK_TEMPVAR, MKIF_LV_B3F)); + mes ""; + mesc l("Hint: Go read a book if you're bored."); + end; + +L_Warp: + // Not unlocked + if ($GAME_STORYLINE >= 3 && $MK_TEMPVAR < MKIF_LV_B3F) { + mesc l("The gate is sealed shut."), 1; + mesc l("The monster army is still strong on this floor!"), 1; + mesc l("Minimum wins: %d/%d", $MK_TEMPVAR, MKIF_LV_B3F), 1; + close; + } + //warp "026-3", X, Y; + dispbottom l("Coming Soon, in Moubootaur Legends!"); + end; + +OnTalkNearby: + if (getq2(General_Fortress) != 1 && getq(General_Fortress) != 3) end; + // not very obvious stuff by gumi + .@no_nick$ = strip(substr($@p0$, getstrlen(strcharinfo(PC_NAME)) + 3, getstrlen($@p0$) - 1)); + .@message$ = strtoupper(.@no_nick$); + // TODO: I don't know his true name either, but the latin part is in 006-10 + if (.@message$ == "PER ASPER AD SALVOS") { + setq General_Fortress, 4, 0, 0; + specialeffect(FX_CIRCLE, SELF, getcharid(3)); + } + end; +OnInit: +OnInstanceInit: + .distance=3; + .pid=getnpcid(); + // For players + debugmes "Fortress B2F Pattern %d", .pid; + defpattern(.pid, "^(.*)$", "OnTalkNearby"); + activatepset(.pid); + end; +} + diff --git a/npc/026-3/_import.txt b/npc/026-3/_import.txt new file mode 100644 index 000000000..dafce2e10 --- /dev/null +++ b/npc/026-3/_import.txt @@ -0,0 +1,2 @@ +// Map 026-3: The Impregnable Fortress (B3F) +// This file is generated automatically. All manually added changes will be removed when running the Converter. diff --git a/npc/026-4/_import.txt b/npc/026-4/_import.txt new file mode 100644 index 000000000..00fa2d471 --- /dev/null +++ b/npc/026-4/_import.txt @@ -0,0 +1,2 @@ +// Map 026-6: The Impregnable Fortress (B4F) +// This file is generated automatically. All manually added changes will be removed when running the Converter. diff --git a/npc/026-5/_import.txt b/npc/026-5/_import.txt new file mode 100644 index 000000000..d55bebc71 --- /dev/null +++ b/npc/026-5/_import.txt @@ -0,0 +1,2 @@ +// Map 026-6: The Impregnable Fortress (B5F) +// This file is generated automatically. All manually added changes will be removed when running the Converter. diff --git a/npc/026-6/_import.txt b/npc/026-6/_import.txt new file mode 100644 index 000000000..bdefc2df4 --- /dev/null +++ b/npc/026-6/_import.txt @@ -0,0 +1,2 @@ +// Map 026-6: The Impregnable Fortress (B6F) +// This file is generated automatically. All manually added changes will be removed when running the Converter. diff --git a/npc/026-7/_import.txt b/npc/026-7/_import.txt new file mode 100644 index 000000000..d6ec4a48d --- /dev/null +++ b/npc/026-7/_import.txt @@ -0,0 +1,2 @@ +// Map 026-7: Boss Chamber +// This file is generated automatically. All manually added changes will be removed when running the Converter. diff --git a/npc/_import.txt b/npc/_import.txt index 99ba6d59e..88d0e9aac 100644 --- a/npc/_import.txt +++ b/npc/_import.txt @@ -277,6 +277,9 @@ @include "npc/026-0/_import.txt" @include "npc/026-1/_import.txt" @include "npc/026-2/_import.txt" +@include "npc/026-3/_import.txt" +@include "npc/026-6/_import.txt" +@include "npc/026-7/_import.txt" @include "npc/027-0/_import.txt" @include "npc/027-1/_import.txt" @include "npc/027-2/_import.txt" diff --git a/npc/functions/clientversion.txt b/npc/functions/clientversion.txt index 2bc2d7a09..0885ced76 100644 --- a/npc/functions/clientversion.txt +++ b/npc/functions/clientversion.txt @@ -1129,6 +1129,7 @@ function script clientupdater { #EVFEATS = #EVFEATS | EVFEAT_EASTER; } // Black Cat & Pinkie - not yet implemented + MonsterMoney += Zeny / 250; // Initialization } // :// End of Regular Update System diff --git a/npc/functions/dungeon.txt b/npc/functions/dungeon.txt index 71b2bf82c..a9d2d5003 100644 --- a/npc/functions/dungeon.txt +++ b/npc/functions/dungeon.txt @@ -9,10 +9,10 @@ // Main initialization OnInit: - setarray .heatmap$, "007-2"; - setarray .cursemap$, "006-4", "006-4-1", "025-1"; + setarray .heatmap$, "007-2", "026-3"; + setarray .cursemap$, "006-4", "006-4-1", "025-1", "026-2"; setarray .sickmap$, "029-5"; - setarray .bleedmap$, "006-9"; + setarray .bleedmap$, "006-9", "026-6", "026-7"; end; ///////////////////////////////////////// @@ -105,7 +105,7 @@ OnSick: .@eff = SC_DPOISON; // You are in a SICKMAP$, so suffer damage from disease - if (@sickio > gettimetick(2)) { + if (@sickio > gettimetick(2) || Class == Raijin) { heal -50, 0; } else { heal -rand2(50, 200), 0; @@ -130,15 +130,15 @@ OnBleed: // First time seeing this if (@bleed$ != getmap()) { @bleed$=getmap(); - dispbottom l("This is a bleeding map, HP won't recover naturally, and bleeding may start."); + dispbottom l("This is a Blood Pact map, HP won't recover naturally, and bleeding may start."); } // You are in a BLEEDMAP$, HP regeneration is disabled if (@bleedio <= gettimetick(2)) SC_Bonus(15, SC_HALT_REGENERATION, 1); - // You may bleed at 2% chance per 15 seconds - if (rand2(50) == 25) + // You may bleed at 2% chance per 15 seconds (except heroes) + if (rand2(50) == 25 && !islegendary()) SC_Bonus(15, SC_BLOODING, 1); // New tick (15 seconds fixed cycle) diff --git a/npc/functions/politics.txt b/npc/functions/politics.txt index 21d719ce6..ee1125edf 100644 --- a/npc/functions/politics.txt +++ b/npc/functions/politics.txt @@ -27,6 +27,7 @@ function script PurchaseTaxes { .@price=getiteminfo(@bought_nameid[.@i], ITEMINFO_BUYPRICE); .@tax+=.@price*@bought_quantity[.@i]; } + MonsterMoney += (.@price / 5); // MK Control .@loc$=strtoupper(getarg(0, LOCATION$)); .@vat=getd("$"+.@loc$+"_TAX"); .@tax=.@tax*.@vat/10000; @@ -50,6 +51,7 @@ function script SaleTaxes { .@price=getiteminfo(@sold_nameid[.@i], ITEMINFO_SELLPRICE); .@tax+=.@price*@sold_quantity[.@i]; } + MonsterMoney += (.@p / 25); // MK Control (smaller than others) .@loc$=strtoupper(getarg(0, LOCATION$)); .@vat=getd("$"+.@loc$+"_TAX"); .@vat=.@vat*3/4; // Only 75% of purchase tax (defaults to 0.75% I guess) @@ -97,6 +99,7 @@ function script POL_PlayerMoney { .@l$=strtoupper(getarg(1, LOCATION$)); .@t=POL_LocToTP(.@l$); + MonsterMoney += (.@p / 5); // MK Control Zeny-=.@p; // Town option for tax immunity diff --git a/npc/scripts.conf b/npc/scripts.conf index 094d3e064..5f8bc1cab 100644 --- a/npc/scripts.conf +++ b/npc/scripts.conf @@ -154,4 +154,6 @@ "npc/config/config_blackbox.txt", // Maps specific scripts +@include "npc/026-4/_import.txt" +@include "npc/026-5/_import.txt" @include "npc/_import.txt" |