From 429f1d87a34997ebb053ee4b159fe30e6c6a3f85 Mon Sep 17 00:00:00 2001 From: Jesusaves Date: Mon, 11 Apr 2022 20:39:07 -0300 Subject: CRC Day utilities (#609) CRC Day utilities and minor bugfixes (revert upmarmu changes) --- world/map/db/item_db_head.txt | 1 + world/map/npc/009-2/doctor.txt | 8 + world/map/npc/013-2/wizard.txt | 14 ++ world/map/npc/026-2/crying_child.txt | 2 +- world/map/npc/annuals/2022.txt | 273 ++++++++++++++++++++++++++ world/map/npc/magic/level2-magic-knuckles.txt | 2 +- world/map/npc/scripts.conf | 1 + 7 files changed, 299 insertions(+), 2 deletions(-) create mode 100644 world/map/npc/annuals/2022.txt (limited to 'world') 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 -- cgit v1.2.3-70-g09d2