summaryrefslogtreecommitdiff
path: root/world/map
diff options
context:
space:
mode:
Diffstat (limited to 'world/map')
-rw-r--r--world/map/db/item_db_head.txt1
-rw-r--r--world/map/npc/009-2/doctor.txt8
-rw-r--r--world/map/npc/013-2/wizard.txt14
-rw-r--r--world/map/npc/026-2/crying_child.txt2
-rw-r--r--world/map/npc/annuals/2022.txt273
-rw-r--r--world/map/npc/magic/level2-magic-knuckles.txt2
-rw-r--r--world/map/npc/scripts.conf1
7 files changed, 299 insertions, 2 deletions
diff --git a/world/map/db/item_db_head.txt b/world/map/db/item_db_head.txt
index 8d083014..1a2b4678 100644
--- a/world/map/db/item_db_head.txt
+++ b/world/map/db/item_db_head.txt
@@ -231,3 +231,4 @@
5281, PartyHatR, 5, 1600, 800, 20, 0, 5, 0, 0, 0, 2, 256, 0, 0, 0, {}, {}
5282, PartyHatG, 5, 1600, 800, 20, 0, 5, 0, 0, 0, 2, 256, 0, 0, 0, {}, {}
5283, PartyHatB, 5, 1600, 800, 20, 0, 5, 0, 0, 0, 2, 256, 0, 0, 0, {}, {}
+5287, HMCPirateHat, 5, 1600, 800, 20, 0, 5, 0, 0, 0, 2, 256, 0, 0, 0, {}, {set @minLvl, 1;callfunc "RestrictedItem";bonus bMaxHP, 15000; bonus bFlee, -200; bonus bHPrecovRate, -400; bonus bCriticalDef, 250; bonus bMdef, 70;}
diff --git a/world/map/npc/009-2/doctor.txt b/world/map/npc/009-2/doctor.txt
index f44cda64..74bfe8dc 100644
--- a/world/map/npc/009-2/doctor.txt
+++ b/world/map/npc/009-2/doctor.txt
@@ -2,6 +2,7 @@
009-2,148,25,0|script|Doctor|107
{
+ if ($@CRC22) goto L_CRCDay;
set @inspector, ((QUEST_Hurnscald & NIBBLE_3_MASK) >> NIBBLE_3_SHIFT);
if (getequipid(equip_head) == 616) goto L_Axe;
@@ -85,4 +86,11 @@ L_NohMask:
L_Close:
set @inspector, 0;
close;
+
+L_CRCDay:
+ mes "[Doctor]";
+ mes "\"Gimme a moment, I'll heal you and sneak you out of the town. Be careful, I heard the players were heading up ##BNorth##b!\"";
+ heal 10000, 10000;
+ warp "008-1", 110, 45;
+ close;
}
diff --git a/world/map/npc/013-2/wizard.txt b/world/map/npc/013-2/wizard.txt
index f4e81a72..13f3fc9c 100644
--- a/world/map/npc/013-2/wizard.txt
+++ b/world/map/npc/013-2/wizard.txt
@@ -25,6 +25,7 @@ L_Start:
menu
"Thanks, that's very kind of you!", L_Thanks,
"Can you teach me magic?", L_TeachRude,
+ "What do you know about the Mirror Lake?", L_MirrorLake,
"Oh, shut up!", L_ShutUp;
L_TeachRude:
@@ -32,6 +33,19 @@ L_TeachRude:
mes "\"I certainly could, but I already have an apprentice.\"";
goto L_Close;
+L_MirrorLake:
+ mes "##9The Old Wizard looks intently at you.";
+ next;
+ if (##VAULT <= 0) goto L_NoLake;
+ // Will never reach here
+ mes "This is a bug, you are not using the Steam version nor the itch.io launcher.";
+ goto L_Close;
+
+L_NoLake:
+ mes "[Old Wizard]";
+ mes "\"You don't have to concern yourself with that, as you cannot use them.\"";
+ goto L_Close;
+
L_ShutUp:
mes "[Old Wizard]";
mes "\"That attitude isn't going to get you very far, my dear.\"";
diff --git a/world/map/npc/026-2/crying_child.txt b/world/map/npc/026-2/crying_child.txt
index 125f4d47..5cad3481 100644
--- a/world/map/npc/026-2/crying_child.txt
+++ b/world/map/npc/026-2/crying_child.txt
@@ -93,7 +93,6 @@ L_DontCryWhat:
L_DontWorryFind:
mes "[Aldred]";
mes "\"Thank you " +strcharinfo(0)+"! Find it for me, pleeeease! Oh, and don't tell my parents that I lost their ring, okay?\"";
- mes "##9Some sort of sixth sense tells you the ring is below the ground... But that can't be right, can it?##0";
set @state, 1;
callsub S_Update_Mask;
goto L_Close;
@@ -101,6 +100,7 @@ L_DontWorryFind:
L_return:
mes "[Aldred]";
mes "\"Please, help me. If you find that ring, I think things will be a little better between me and my parents.\"";
+ mes "##9Some sort of sixth sense tells you the ring is below the ground... But that can't be right, can it?##0";
goto L_Close;
diff --git a/world/map/npc/annuals/2022.txt b/world/map/npc/annuals/2022.txt
new file mode 100644
index 00000000..3c4aa6de
--- /dev/null
+++ b/world/map/npc/annuals/2022.txt
@@ -0,0 +1,273 @@
+// Evol script
+// Year: 2022
+//
+////////////////////////////////////////////////
+// Red Corsair Day
+
+-|script|#CRC2022|32767
+{
+ end;
+
+OnFirst:
+ if (strcharinfo(0) != "Dave Sugar" && GM < G_SYSOP) end;
+ wgm "==> CRC Day Phase 1 Started by "+strcharinfo(0);
+ set $@CRC22, 1;
+ enablenpc "Unknown Ship";
+ initnpctimer;
+ goto OnTimer30000;
+
+OnSecond:
+ if (strcharinfo(0) != "Zax De'Kagen" && GM < G_SYSOP) end;
+ wgm "==> CRC Day Phase 2 Started by "+strcharinfo(0);
+ set $@CRC22, 2;
+ disablenpc "Unknown Ship";
+ initnpctimer;
+ goto L_Extra;
+
+OnThird:
+ if (strcharinfo(0) != "Red Reidy" && GM < G_SYSOP) end;
+ wgm "==> CRC Day Phase 3 Started by "+strcharinfo(0);
+ set $@CRC22, 3;
+ disablenpc "Enemy Ship";
+ stopnpctimer;
+ end;
+
+OnStatus:
+ if (!$@CRC22) end;
+ set $@CRC22Mc, mobcount("007-1", "#CRC2022::OnDie")+
+ mobcount("008-1", "#CRC2022::OnDie")+
+ mobcount("009-1", "#CRC2022::OnDie")+
+ mobcount("011-1", "#CRC2022::OnDie")+
+ mobcount("031-1", "#CRC2022::OnDie")+
+ mobcount("018-1", "#CRC2022::OnDie")+
+ mobcount("018-3", "#CRC2022::OnDie")+
+ 7;
+ message strcharinfo(0), "Monsters remaining: "+$@CRC22Mc;
+ if ($@CRC22Mc <= 0)
+ set $@CRC22, 0;
+ // TODO: Announce?
+ set $@CRC22Mc, 0;
+ end;
+
+OnTimer30000:
+ // Outskirts
+ set $@CRC22Mc, mobcount("008-1", "#CRC2022::OnDie")+1;
+ set $@CRC22Gl, 32;
+ set $@CRC22M$, "008-1";
+ set $@CRC22Xm, 140;
+ set $@CRC22Ym, 100;
+ if ($@CRC22Mc >= $@CRC22Gl) goto L_End;
+ callsub S_Spawn;
+ end;
+
+L_End:
+ end;
+
+// Redundant
+OnTimer15000:
+ goto OnTimer30000;
+
+// Redundant
+OnTimer45000:
+ goto OnTimer30000;
+
+// Redundant
+OnTimer60000:
+ goto OnTimer30000;
+
+OnTimer70000:
+ // Hurnscald [LOCKED DOWN]
+ set $@CRC22Mc, mobcount("009-1", "#CRC2022::OnDie")+1;
+ set $@CRC22Gl, 100;
+ set $@CRC22M$, "009-1";
+ set $@CRC22Xm, 100;
+ set $@CRC22Ym, 60;
+ if ($@CRC22Mc >= $@CRC22Gl) end;
+ callsub S_Spawn;
+ end;
+
+OnTimer72000:
+ // Outskirts
+ set $@CRC22Mc, mobcount("008-1", "#CRC2022::OnDie")+1;
+ set $@CRC22Gl, 40;
+ set $@CRC22M$, "008-1";
+ set $@CRC22Xm, 140;
+ set $@CRC22Ym, 100;
+ if ($@CRC22Mc >= $@CRC22Gl) end;
+ callsub S_Spawn;
+ end;
+
+// Duplicate for infinity loop bug
+OnTimer74000:
+ // South Forest (LOCKED DOWN)
+ set $@CRC22Mc, mobcount("007-1", "#CRC2022::OnDie")+1;
+ set $@CRC22Gl, 110;
+ set $@CRC22M$, "007-1";
+ set $@CRC22Xm, 130;
+ set $@CRC22Ym, 90;
+ if ($@CRC22Mc >= $@CRC22Gl) end;
+ callsub S_Spawn;
+ end;
+
+OnTimer75000:
+ // South Forest (LOCKED DOWN)
+ set $@CRC22Mc, mobcount("007-1", "#CRC2022::OnDie")+1;
+ set $@CRC22Gl, 220;
+ set $@CRC22M$, "007-1";
+ set $@CRC22Xm, 130;
+ set $@CRC22Ym, 90;
+ if ($@CRC22Mc >= $@CRC22Gl) end;
+ callsub S_Spawn;
+ end;
+
+// Duplicate for infinity loop bug
+OnTimer76000:
+ // West Forest (LOCKED DOWN)
+ set $@CRC22Mc, mobcount("011-1", "#CRC2022::OnDie")+1;
+ set $@CRC22Gl, 120;
+ set $@CRC22M$, "011-1";
+ set $@CRC22Xm, 130;
+ set $@CRC22Ym, 110;
+ if ($@CRC22Mc >= $@CRC22Gl) end;
+ callsub S_Spawn;
+ end;
+
+OnTimer77000:
+ // West Forest (LOCKED DOWN)
+ set $@CRC22Mc, mobcount("011-1", "#CRC2022::OnDie")+1;
+ set $@CRC22Gl, 240;
+ set $@CRC22M$, "011-1";
+ set $@CRC22Xm, 130;
+ set $@CRC22Ym, 110;
+ if ($@CRC22Mc >= $@CRC22Gl) end;
+ callsub S_Spawn;
+ end;
+
+OnTimer78000:
+ // Nivalis Port (LOCKED DOWN)
+ set $@CRC22Mc, mobcount("031-1", "#CRC2022::OnDie")+1;
+ set $@CRC22Gl, 100;
+ set $@CRC22M$, "031-1";
+ set $@CRC22Xm, 110;
+ set $@CRC22Ym, 130;
+ if ($@CRC22Mc >= $@CRC22Gl) end;
+ callsub S_Spawn;
+ end;
+
+OnTimer80000:
+ if ($@CRC22 > 1) goto L_Extra;
+ // Nothing at mines yet
+ initnpctimer;
+ end;
+
+L_Extra:
+ // Outskirts [LOCKDOWN]
+ set $@CRC22Mc, mobcount("008-1", "#CRC2022::OnDie")+1;
+ set $@CRC22Gl, 80;
+ set $@CRC22M$, "008-1";
+ set $@CRC22Xm, 140;
+ set $@CRC22Ym, 100;
+ if ($@CRC22Mc >= $@CRC22Gl) end;
+ callsub S_Spawn;
+ end;
+
+OnTimer84000:
+ // Hurnscald Mines (Outskirt)
+ set $@CRC22Mc, mobcount("018-1", "#CRC2022::OnDie")+1;
+ set $@CRC22Gl, 40;
+ set $@CRC22M$, "018-1";
+ set $@CRC22Xm, 140;
+ set $@CRC22Ym, 100;
+ if ($@CRC22Mc >= $@CRC22Gl) end;
+ callsub S_Spawn;
+ end;
+
+// Duplicate for infinity loop bug
+OnTimer86000:
+ // Obelisk Cave & Mines [LOCKED DOWN]
+ set $@CRC22Mc, mobcount("018-3", "#CRC2022::OnDie")+1;
+ set $@CRC22Gl, 100;
+ set $@CRC22M$, "018-3";
+ set $@CRC22Xm, 180;
+ set $@CRC22Ym, 180;
+ if ($@CRC22Mc < $@CRC22Gl) end;
+ callsub S_Spawn;
+ end;
+
+// Duplicate for infinity loop bug
+OnTimer88000:
+ // Obelisk Cave & Mines [LOCKED DOWN]
+ set $@CRC22Mc, mobcount("018-3", "#CRC2022::OnDie")+1;
+ set $@CRC22Gl, 200;
+ set $@CRC22M$, "018-3";
+ set $@CRC22Xm, 180;
+ set $@CRC22Ym, 180;
+ if ($@CRC22Mc < $@CRC22Gl) end;
+ callsub S_Spawn;
+ end;
+
+OnTimer89000:
+ // Obelisk Cave & Mines [LOCKED DOWN]
+ set $@CRC22Mc, mobcount("018-3", "#CRC2022::OnDie")+1;
+ set $@CRC22Gl, 300;
+ set $@CRC22M$, "018-3";
+ set $@CRC22Xm, 180;
+ set $@CRC22Ym, 180;
+ if ($@CRC22Mc < $@CRC22Gl) end;
+ callsub S_Spawn;
+ end;
+
+OnTimer90000:
+ initnpctimer;
+ end;
+
+// Extra wave control system [0]
+S_Spawn:
+ set $@CRC_IDX, rand(getarraysize($@crc_mobs));
+
+ areamonster $@CRC22M$, 20, 20, $@CRC22Xm, $@CRC22Ym, "", $@crc_mobs[$@CRC_IDX], 1, "#CRC2022::OnDie";
+
+ set $@CRC22Mc, $@CRC22Mc + 1;
+ if($@CRC22Mc < $@CRC22Gl) goto S_Spawn;
+ return;
+
+OnDie:
+ end;
+
+OnInit:
+ setarray $@crc_mobs, 1119, 1120, 1121, 1119, 1120, 1121, 1157, 1155, 1163, 1090, 1064, 1119, 1120, 1121, 1119, 1120;
+ // Register commands
+ registercmd "#crcstart", strnpcinfo(0)+"::OnFirst";
+ registercmd "#crcnext", strnpcinfo(0)+"::OnSecond";
+ registercmd "#crclast", strnpcinfo(0)+"::OnThird";
+ registercmd "#crcstatus", strnpcinfo(0)+"::OnStatus";
+ end;
+}
+
+// Puppets
+008-1,140,72,0|script|Enemy Ship|395
+{
+ end;
+OnInit:
+ disablenpc strnpcinfo(0);
+ end;
+}
+
+// Puppets
+018-1,142,74,0|script|Unknown Ship|395
+{
+ end;
+OnInit:
+ disablenpc strnpcinfo(0);
+ end;
+}
+
+// Puppets
+008-1,140,70,0|script|Tal#CRC|427
+{
+ end;
+OnInit:
+ disablenpc strnpcinfo(0);
+ end;
+}
+
diff --git a/world/map/npc/magic/level2-magic-knuckles.txt b/world/map/npc/magic/level2-magic-knuckles.txt
index 5f10ba5f..acc3405d 100644
--- a/world/map/npc/magic/level2-magic-knuckles.txt
+++ b/world/map/npc/magic/level2-magic-knuckles.txt
@@ -17,7 +17,7 @@
BASE_ATK, // dmg
((@spellpower/10) + ((Dex * 8)/(sqrt(BaseLevel + 34)) + 20)), // charges (you get more at lower levels)
(sqrt(300 - (Agi * 2)) + (5/2)), // delay
- (Agi + Int) / 2, // dmg bonus
+ Agi, // dmg bonus
(((BaseLevel/5) + Str) * 2); // do not allow to equip light armor, cast, and then switch to heavy armor to get bonus str
callfunc "magic_exp";
goto L_FreeRecast;
diff --git a/world/map/npc/scripts.conf b/world/map/npc/scripts.conf
index 48992613..86c7c75f 100644
--- a/world/map/npc/scripts.conf
+++ b/world/map/npc/scripts.conf
@@ -67,6 +67,7 @@ import: npc/commands/_import.txt
// GM Events
npc: npc/functions/gm_island.txt
// Annuals Framework
+npc: npc/annuals/2022.txt
npc: npc/annuals/fathertime.txt
npc: npc/annuals/check_time.txt
npc: npc/annuals/tree_beard.txt