From ed813fc86cf41c0f5e06f4a99980861355a6cae6 Mon Sep 17 00:00:00 2001 From: WarrentyExpired Date: Fri, 14 Aug 2026 14:58:25 -0400 Subject: [PATCH] #W# Spawn work. Also added TaskManager script that cleans up floor traps. --- Data/Spawns/chests.map | 49 +++++++++++++++++++++++++++ Data/Spawns/dungeons.map | 71 ++++++++++++++++++++++++++++++++++++++++ Data/Spawns/traps.map | 53 +++++++++++++++++++++++++++++- Scripts/TaskManager.cs | 57 ++++++++++++++++++++++++++++++++ 4 files changed, 229 insertions(+), 1 deletion(-) create mode 100644 Scripts/TaskManager.cs diff --git a/Data/Spawns/chests.map b/Data/Spawns/chests.map index 17981b4..d65dfc3 100644 --- a/Data/Spawns/chests.map +++ b/Data/Spawns/chests.map @@ -23,4 +23,53 @@ *|treasurechestlevel1||||||2746|199|0|1|5|10|-1|1|1|1|0|0|0|0|0 *|treasurechestlevel1||||||2830|85|0|1|5|10|-1|1|1|1|0|0|0|0|0 *|treasurechestlevel1||||||2805|118|1|1|5|10|-1|8|1|2|0|0|0|0|0 +*|treasurechestlevel1||||||2776|197|0|1|5|10|-1|0|1|1|0|0|0|0|0 +*|treasurechestlevel1||||||2768|216|0|1|5|10|-1|0|1|1|0|0|0|0|0 +*|treasurechestlevel1:treasurechestlevel2||||||2775|211|0|1|5|10|-1|0|1|1|0|0|0|0|0 +*|treasurechestlevel1||||||2778|183|0|1|5|10|-1|0|1|1|0|0|0|0|0 # Level 2 +*|treasurechestlevel2||||||2728|471|0|1|5|10|-1|4|1|1|0|0|0|0|0 +*|treasurechestlevel1:treasurechestlevel3||||||2716|450|6|1|5|10|-1|0|1|1|0|0|0|0|0 +*|treasurechestlevel1||||||2716|448|6|1|5|10|-1|0|1|1|0|0|0|0|0 +*|treasurechestlevel4||||||2759|391|0|1|5|10|-1|0|1|1|0|0|0|0|0 +*|treasurechestlevel3:treasurechestlevel2||||||2790|407|0|1|5|10|-1|4|1|1|0|0|0|0|0 +*|treasurechestlevel3:treasurechestlevel2||||||2816|459|0|1|5|10|-1|0|1|1|0|0|0|0|0 +*|treasurechestlevel3:treasurechestlevel2||||||2781|407|0|1|5|10|-1|0|1|1|0|0|0|0|0 +*|treasurechestlevel3||||||2788|477|0|1|5|10|-1|0|1|1|0|0|0|0|0 +*|treasurechestlevel3:treasurechestlevel2||||||2772|468|0|1|5|10|-1|0|1|1|0|0|0|0|0 +*|treasurechestlevel3:treasurechestlevel2||||||2770|457|0|1|5|10|-1|4|1|1|0|0|0|0|0 +*|treasurechestlevel3:treasurechestlevel2||||||2687|370|0|1|5|10|-1|0|1|1|0|0|0|0|0 +*|treasurechestlevel3:treasurechestlevel2||||||2686|370|1|1|5|10|-1|0|1|1|0|0|0|0|0 +*|treasurechestlevel3:treasurechestlevel2||||||2651|386|1|1|5|10|-1|4|1|1|0|0|0|0|0 +*|treasurechestlevel3||||||2649|387|0|1|5|10|-1|0|1|1|0|0|0|0|0 +*|treasurechestlevel3||||||2650|392|0|1|5|10|-1|0|1|1|0|0|0|0|0 +*|treasurechestlevel3:treasurechestlevel2||||||2679|422|0|1|5|10|-1|4|1|1|0|0|0|0|0 +*|treasurechestlevel1||||||2692|472|0|1|5|10|-1|4|1|1|0|0|0|0|0 +*|treasurechestlevel1:treasurechestlevel2||||||2831|496|0|1|5|10|-1|4|1|1|0|0|0|0|0 +*|treasurechestlevel1:treasurechestlevel2||||||2862|509|0|1|5|10|-1|4|1|1|0|0|0|0|0 +*|treasurechestlevel1:treasurechestlevel2||||||2906|512|1|1|5|10|-1|4|1|1|0|0|0|0|0 +*|treasurechestlevel1:treasurechestlevel2||||||2899|499|1|1|5|10|-1|4|1|1|0|0|0|0|0 +*|treasurechestlevel1:treasurechestlevel2||||||2890|466|0|1|5|10|-1|4|1|1|0|0|0|0|0 +*|treasurechestlevel1:treasurechestlevel2||||||2830|467|0|1|5|10|-1|4|1|1|0|0|0|0|0 +*|treasurechestlevel1:treasurechestlevel2||||||2840|433|1|1|5|10|-1|4|1|1|0|0|0|0|0 +*|treasurechestlevel1:treasurechestlevel2||||||2852|407|4|1|5|10|-1|4|1|1|0|0|0|0|0 +*|treasurechestlevel1:treasurechestlevel2||||||2859|438|0|1|5|10|-1|4|1|1|0|0|0|0|0 +*|treasurechestlevel1:treasurechestlevel2||||||2883|406|2|1|5|10|-1|4|1|1|0|0|0|0|0 +*|treasurechestlevel1:treasurechestlevel2||||||2892|426|0|1|5|10|-1|4|1|1|0|0|0|0|0 +*|treasurechestlevel1||||||2696|443|5|1|5|10|-1|4|1|1|0|0|0|0|0 +*|treasurechestlevel3:treasurechestlevel2||||||2695|443|5|1|5|10|-1|4|1|1|0|0|0|0|0 +*|treasurechestlevel3:treasurechestlevel2||||||2716|417|2|1|5|10|-1|4|1|1|0|0|0|0|0 +*|treasurechestlevel3:treasurechestlevel2||||||2746|389|1|1|5|10|-1|4|1|1|0|0|0|0|0 +*|treasurechestlevel3:treasurechestlevel2||||||141|133|0|1|5|10|-1|4|1|1|0|0|0|0|0 +*|treasurechestlevel1:treasurechestlevel2||||||2908|438|2|1|5|10|-1|4|1|1|0|0|0|0|0 +*|treasurechestlevel3:treasurechestlevel2||||||2729|460|8|1|5|10|-1|0|1|1|0|0|0|0|0 +*|treasurechestlevel3:treasurechestlevel2||||||2758|417|6|1|5|10|-1|0|1|1|0|0|0|0|0 +*|treasurechestlevel4||||||2733|433|0|1|5|10|-1|0|1|1|0|0|0|0|0 +*|treasurechestlevel3:treasurechestlevel2||||||2746|462|0|1|5|10|-1|0|1|1|0|0|0|0|0 +*|treasurechestlevel4||||||2759|444|0|1|5|10|-1|0|1|1|0|0|0|0|0 +*|treasurechestlevel3:treasurechestlevel2||||||2750|430|0|1|5|10|-1|4|1|1|0|0|0|0|0 +*|treasurechestlevel3:treasurechestlevel2||||||2645|468|0|1|5|10|-1|0|1|1|0|0|0|0|0 +*|treasurechestlevel3:treasurechestlevel2||||||2645|470|0|1|5|10|-1|0|1|1|0|0|0|0|0 +*|treasurechestlevel4||||||2666|463|0|1|5|10|-1|1|1|1|0|0|0|0|0 +*|treasurechestlevel1:treasurechestlevel2||||||2915|503|0|1|5|10|-1|4|1|1|0|0|0|0|0 +## Next Dungeon diff --git a/Data/Spawns/dungeons.map b/Data/Spawns/dungeons.map index a12c716..eb24a98 100644 --- a/Data/Spawns/dungeons.map +++ b/Data/Spawns/dungeons.map @@ -53,3 +53,74 @@ *|ettin||||||2827|167|0|1|5|10|-1|4|1|1|0|0|0|0|0 *|Lizardman:Ratmanmage:brigand:giantspider:orc:ratman:ratmanarcher:evilmage:giantserpent:slime||||||2833|180|0|1|5|10|-1|2|1|2|0|0|0|0|0 # Level 2 +*|orc||||||2783|434|0|1|5|10|-1|4|1|2|0|0|0|0|0 +*|brigand||||||2651|463|0|1|5|10|-1|5|1|4|0|0|0|0|0 +*|orcishmage||||||2782|443|0|1|5|10|-1|4|1|1|0|0|0|0|0 +*|EvilMage:skeletalmage:imp:brigand:gazer:skeletalknight:zombie:spectre:orc:slime:wraith||||||2808|426|0|1|5|10|-1|4|1|1|0|0|0|0|0 +*|EvilMage:skeletalmage:imp:brigand:gazer:skeletalknight:zombie:spectre:orc:slime:wraith||||||2792|480|0|1|5|10|-1|4|1|2|0|0|0|0|0 +*|EvilMage:skeletalmage:imp:brigand:gazer:skeletalknight:zombie:spectre:orc:slime:wraith||||||2782|419|0|1|5|10|-1|4|1|1|0|0|0|0|0 +*|ogre:ettin:troll:slime:giantserpent:orcishmage:orc||||||2678|467|0|1|5|10|-1|4|1|1|0|0|0|0|0 +*|EvilMage:skeletalmage:imp:brigand:gazer:skeletalknight:zombie:spectre:orc:slime:wraith||||||2799|489|0|1|5|10|-1|4|1|1|0|0|0|0|0 +*|ogre:ettin:troll:slime:giantserpent:orcishmage:orc||||||2712|395|0|1|5|10|-1|4|1|1|0|0|0|0|0 +*|ogre:ettin:troll:slime:giantserpent:orcishmage:orc||||||2823|493|0|1|5|10|-1|10|1|2|0|0|0|0|0 +*|ogre:ettin:troll:slime:giantserpent:orcishmage:orc||||||2839|499|2|1|5|10|-1|10|1|2|0|0|0|0|0 +*|EvilMage:skeletalmage:imp:brigand:gazer:skeletalknight:zombie:spectre:orc:slime:wraith||||||2803|420|0|1|5|10|-1|4|1|1|0|0|0|0|0 +*|drake||||||2895|495|1|1|5|10|-1|4|1|1|0|0|0|0|0 +*|giantblackwidow:dreadspider||||||2909|505|0|1|5|10|-1|4|1|2|0|0|0|0|0 +*|ogre:ettin:troll:slime:giantserpent:orcishmage:orc||||||2706|423|1|1|5|10|-1|10|1|2|0|0|0|0|0 +*|EvilMage:skeletalmage:imp:brigand:gazer:skeletalknight:zombie:spectre:orc:slime:wraith||||||2807|461|0|1|5|10|-1|4|1|1|0|0|0|0|0 +*|ogre:ettin:troll:slime:giantserpent:orcishmage:orc||||||2742|398|0|1|5|10|-1|10|1|2|0|0|0|0|0 +*|ogre:ettin:troll:slime:giantserpent:orcishmage:orc||||||2667|453|1|1|5|10|-1|4|1|1|0|0|0|0|0 +*|dreadspider||||||2683|437|0|1|5|10|-1|4|1|1|0|0|0|0|0 +*|ogre:ettin:troll:slime:giantserpent:orcishmage:orc||||||2725|413|1|1|5|10|-1|10|1|2|0|0|0|0|0 +*|ogre:ettin:troll:slime:giantserpent:orcishmage:orc||||||2693|458|0|1|5|10|-1|10|1|2|0|0|0|0|0 +*|ogre:ettin:troll:slime:giantserpent:orcishmage:orc||||||2907|439|1|1|5|10|-1|10|1|2|0|0|0|0|0 +*|ogre:ettin:troll:slime:giantserpent:orcishmage:orc||||||2688|411|0|1|5|10|-1|4|1|1|0|0|0|0|0 +*|ogre:ettin:troll:slime:giantserpent:orcishmage:orc||||||2655|429|0|1|5|10|-1|4|1|1|0|0|0|0|0 +*|ogre:ettin:troll:slime:giantserpent:orcishmage:orc||||||2883|486|1|1|5|10|-1|10|1|2|0|0|0|0|0 +*|ogre:ettin:troll:slime:giantserpent:orcishmage:orc||||||2885|420|0|1|5|10|-1|10|1|2|0|0|0|0|0 +*|ogre:ettin:troll:slime:giantserpent:orcishmage:orc||||||2857|495|2|1|5|10|-1|10|1|2|0|0|0|0|0 +*|ogre:ettin:troll:slime:giantserpent:orcishmage:orc||||||2897|428|1|1|5|10|-1|10|1|2|0|0|0|0|0 +*|ogre:ettin:troll:slime:giantserpent:orcishmage:orc||||||2683|391|0|1|5|10|-1|10|1|2|0|0|0|0|0 +*|ogre:ettin:troll:slime:giantserpent:orcishmage:orc||||||2867|415|0|1|5|10|-1|10|1|2|0|0|0|0|0 +*|ogre:ettin:troll:slime:giantserpent:orcishmage:orc||||||2846|422|0|1|5|10|-1|10|1|2|0|0|0|0|0 +*|ogre:ettin:troll:slime:giantserpent:orcishmage:orc||||||2843|442|1|1|5|10|-1|10|1|2|0|0|0|0|0 +*|giantblackwidow:giantspider:dreadspider||||||2830|462|2|1|5|10|-1|4|1|1|0|0|0|0|0 +*|EvilMage:skeletalmage:imp:brigand:gazer:skeletalknight:zombie:spectre:orc:slime:wraith||||||2815|462|0|1|5|10|-1|4|1|1|0|0|0|0|0 +*|EvilMage:skeletalmage:imp:brigand:gazer:skeletalknight:zombie:spectre:orc:slime:wraith||||||2800|436|0|1|5|10|-1|4|1|1|0|0|0|0|0 +*|ogre:ettin:troll:slime:giantserpent:orcishmage:orc||||||2672|383|0|1|5|10|-1|10|1|2|0|0|0|0|0 +*|dreadspider||||||2682|375|3|1|5|10|-1|4|1|1|0|0|0|0|0 +*|ogre:ettin:troll:slime:giantserpent:orcishmage:orc||||||2897|457|1|1|5|10|-1|10|1|2|0|0|0|0|0 +*|ogre:ettin:troll:slime:giantserpent:orcishmage:orc||||||2696|440|6|1|5|10|-1|10|1|2|0|0|0|0|0 +*|ogre:ettin:troll:slime:giantserpent:orcishmage:orc||||||2876|465|1|1|5|10|-1|10|1|2|0|0|0|0|0 +*|EvilMage:skeletalmage:imp:brigand:gazer:skeletalknight:zombie:spectre:orc:slime:wraith||||||2756|433|0|1|5|10|-1|4|1|2|0|0|0|0|0 +*|ogrelord||||||2653|390|0|1|5|10|-1|4|1|1|0|0|0|0|0 +*|ogre:ettin:troll:slime:giantserpent:orcishmage:orc||||||2670|429|2|1|5|10|-1|4|1|1|0|0|0|0|0 +*|EvilMage:skeletalmage:imp:brigand:gazer:skeletalknight:zombie:spectre:orc:slime:wraith||||||2774|469|0|1|5|10|-1|4|1|2|0|0|0|0|0 +*|EvilMage:skeletalmage:imp:brigand:gazer:skeletalknight:zombie:spectre:orc:slime:wraith||||||2773|457|0|1|5|10|-1|4|1|2|0|0|0|0|0 +*|EvilMage:skeletalmage:imp:brigand:gazer:skeletalknight:zombie:spectre:orc:slime:wraith||||||2792|455|0|1|5|10|-1|4|1|2|0|0|0|0|0 +*|Dragon|Drake|||||2759|445|0|1|5|10|-1|4|1|1|2|0|0|0|0 +*|ogre:ettin:troll:slime:giantserpent:orcishmage:orc||||||2670|411|0|1|5|10|-1|4|1|1|0|0|0|0|0 +*|EvilMage:skeletalmage:imp:brigand:gazer:skeletalknight:zombie:spectre:orc:slime:wraith||||||2800|472|0|1|5|10|-1|4|1|1|0|0|0|0|0 +*|EvilMage:skeletalmage:imp:brigand:gazer:skeletalknight:zombie:spectre:orc:slime:wraith||||||2813|471|0|1|5|10|-1|4|1|2|0|0|0|0|0 +*|EvilMage:skeletalmage:imp:brigand:gazer:skeletalknight:zombie:spectre:orc:slime:wraith||||||2779|489|0|1|5|10|-1|4|1|1|0|0|0|0|0 +*|EvilMage:skeletalmage:imp:brigand:gazer:skeletalknight:zombie:spectre:orc:slime:wraith||||||2758|489|0|1|5|10|-1|4|1|1|0|0|0|0|0 +*|waterelemental||||||2751|467|0|1|5|10|-1|5|1|2|0|0|0|0|0 +*|EvilMage:skeletalmage:imp:brigand:gazer:skeletalknight:zombie:spectre:orc:slime:wraith||||||2793|419|0|1|5|10|-1|4|1|2|0|0|0|0|0 +*|EvilMage:skeletalmage:imp:brigand:gazer:skeletalknight:zombie:spectre:orc:slime:wraith||||||2791|410|0|1|5|10|-1|4|1|1|0|0|0|0|0 +*|EvilMage:skeletalmage:imp:brigand:gazer:skeletalknight:zombie:spectre:orc:slime:wraith||||||2785|409|0|1|5|10|-1|4|1|2|0|0|0|0|0 +*|EvilMage:skeletalmage:imp:brigand:gazer:skeletalknight:zombie:spectre:orc:slime:wraith||||||2780|401|0|1|5|10|-1|4|1|1|0|0|0|0|0 +*|waterelemental||||||2762|394|0|1|5|10|-1|4|1|1|0|0|0|0|0 +*|evilmagelord||||||2731|435|0|1|5|10|-1|4|1|1|0|0|0|0|0 +*|EvilMage:skeletalmage:imp:brigand:gazer:skeletalknight:zombie:spectre:orc:slime:wraith||||||2718|474|0|1|5|10|-1|4|1|1|0|0|0|0|0 +*|EvilMage:skeletalmage:imp:brigand:gazer:skeletalknight:zombie:spectre:orc:slime:wraith||||||2762|407|0|1|5|10|-1|4|1|1|0|0|0|0|0 +*|EvilMage:skeletalmage:imp:brigand:gazer:skeletalknight:zombie:spectre:orc:slime:wraith||||||2752|412|0|1|5|10|-1|4|1|1|0|0|0|0|0 +*|brigand||||||2762|418|0|1|5|10|-1|4|1|2|0|0|0|0|0 +*|EvilMage:skeletalmage:imp:brigand:gazer:skeletalknight:zombie:spectre:orc:slime:wraith||||||2739|428|0|1|5|10|-1|4|1|1|0|0|0|0|0 +*|EvilMage:skeletalmage:imp:brigand:gazer:skeletalknight:zombie:spectre:orc:slime:wraith||||||2719|436|0|1|5|10|-1|4|1|2|0|0|0|0|0 +*|EvilMage:skeletalmage:imp:brigand:gazer:skeletalknight:zombie:spectre:orc:slime:wraith||||||2719|449|0|1|5|10|-1|4|1|2|0|0|0|0|0 +*|ratmanmage:ratmanarcher||||||2732|463|0|1|5|10|-1|4|1|1|0|0|0|0|0 +*|ratman||||||2733|473|0|1|5|10|-1|4|1|2|0|0|0|0|0 +*|dragon||||||2664|466|0|1|5|10|-1|2|1|1|0|0|0|0|0 +*|EvilMage:skeletalmage:imp:brigand:gazer:skeletalknight:zombie:spectre:orc:slime:wraith||||||2738|450|0|1|5|10|-1|4|1|1|0|0|0|0|0 +## Next Dungeon diff --git a/Data/Spawns/traps.map b/Data/Spawns/traps.map index 2ceed58..d71e487 100644 --- a/Data/Spawns/traps.map +++ b/Data/Spawns/traps.map @@ -1 +1,52 @@ -*|mushroomtrap||||||2793|263|1|1|5|10|-1|4|1|10|0|0|0|0|0 +*|FlameSpurtTrap:GasTrap:GiantSpikeTrap:SawTrap:SpikeTrap:FireColumnTrap||||||2808|179|0|1|1|1|-1|4|1|1|0|0|0|0|0 +*|FlameSpurtTrap:GasTrap:GiantSpikeTrap:SawTrap:SpikeTrap:FireColumnTrap||||||2822|193|1|1|1|1|-1|4|1|1|0|0|0|0|0 +*|FlameSpurtTrap:GasTrap:GiantSpikeTrap:SawTrap:SpikeTrap:FireColumnTrap||||||2827|226|2|1|1|1|-1|4|1|1|0|0|0|0|0 +*|FlameSpurtTrap:GasTrap:GiantSpikeTrap:SawTrap:SpikeTrap:FireColumnTrap||||||2818|212|1|1|1|1|-1|4|1|1|0|0|0|0|0 +*|FlameSpurtTrap:GasTrap:GiantSpikeTrap:SawTrap:SpikeTrap:FireColumnTrap||||||2776|255|1|1|1|1|-1|4|1|1|0|0|0|0|0 +*|FlameSpurtTrap:GasTrap:GiantSpikeTrap:SawTrap:SpikeTrap:FireColumnTrap||||||2795|168|1|1|1|1|-1|4|1|1|0|0|0|0|0 +*|FlameSpurtTrap:GasTrap:GiantSpikeTrap:SawTrap:SpikeTrap:FireColumnTrap||||||2804|136|1|1|1|1|-1|4|1|1|0|0|0|0|0 +*|FlameSpurtTrap:GasTrap:GiantSpikeTrap:SawTrap:SpikeTrap:FireColumnTrap||||||2827|125|0|1|1|1|-1|4|1|1|0|0|0|0|0 +*|FlameSpurtTrap:GasTrap:GiantSpikeTrap:SawTrap:SpikeTrap:FireColumnTrap||||||2807|114|5|1|1|1|-1|4|1|1|0|0|0|0|0 +*|FlameSpurtTrap:GasTrap:GiantSpikeTrap:SawTrap:SpikeTrap:FireColumnTrap||||||2806|246|1|1|1|1|-1|4|1|1|0|0|0|0|0 +*|mushroomtrap||||||2800|110|2|1|1|1|-1|20|1|5|0|0|0|0|0 +*|FlameSpurtTrap:GasTrap:GiantSpikeTrap:SawTrap:SpikeTrap:FireColumnTrap||||||2796|231|1|1|1|1|-1|4|1|1|0|0|0|0|0 +*|mushroomtrap||||||2816|125|4|1|1|1|-1|20|1|5|0|0|0|0|0 +*|mushroomtrap||||||2805|247|1|1|1|1|-1|20|1|5|0|0|0|0|0 +*|SawTrap:SpikeTrap||||||2834|180|0|1|1|1|-1|4|1|1|0|0|0|0|0 +*|mushroomtrap||||||2807|180|0|1|1|1|-1|20|1|5|0|0|0|0|0 +*|FlameSpurtTrap:GasTrap:GiantSpikeTrap:SawTrap:SpikeTrap:FireColumnTrap||||||2729|134|1|1|1|1|-1|4|1|1|0|0|0|0|0 +*|mushroomtrap||||||2753|126|2|1|1|1|-1|20|1|5|0|0|0|0|0 +*|mushroomtrap||||||2725|133|2|1|1|1|-1|20|1|5|0|0|0|0|0 +*|mushroomtrap||||||2770|132|3|1|1|1|-1|20|1|3|0|0|0|0|0 +*|FlameSpurtTrap:GasTrap:GiantSpikeTrap:SawTrap:SpikeTrap:FireColumnTrap||||||2821|267|0|1|1|1|-1|4|1|1|0|0|0|0|0 +*|mushroomtrap||||||2792|152|0|1|1|1|-1|10|1|2|0|0|0|0|0 +*|FlameSpurtTrap:GasTrap:GiantSpikeTrap:SawTrap:SpikeTrap:FireColumnTrap||||||2815|258|1|1|1|1|-1|4|1|1|0|0|0|0|0 +*|mushroomtrap||||||2815|216|0|1|1|1|-1|20|1|5|0|0|0|0|0 +*|FlameSpurtTrap:GasTrap:GiantSpikeTrap:SawTrap:SpikeTrap:FireColumnTrap||||||2793|265|1|1|1|1|-1|4|1|1|0|0|0|0|0 +*|mushroomtrap|FlameSpurtTrap:GasTrap:GiantSpiketrap:SawTrap:SpikeTrap:FireColumnTrap|||||2797|277|2|1|1|1|-1|10|1|2|1|0|0|0|0 +*|mushroomtrap||||||2776|109|1|1|1|1|-1|20|1|3|0|0|0|0|0 +*|FlameSpurtTrap:GasTrap:GiantSpikeTrap:SawTrap:SpikeTrap:FireColumnTrap||||||2778|110|0|1|1|1|-1|20|1|4|0|0|0|0|0 +*|SawTrap:SpikeTrap||||||2721|156|0|1|1|1|-1|4|1|1|0|0|0|0|0 +*|FlameSpurtTrap:GasTrap:GiantSpikeTrap:SawTrap:SpikeTrap:FireColumnTrap||||||2712|129|1|1|1|1|-1|15|1|2|0|0|0|0|0 +*|FlameSpurtTrap:GasTrap:GiantSpikeTrap:SawTrap:SpikeTrap:FireColumnTrap||||||2741|125|1|1|1|1|-1|4|1|1|0|0|0|0|0 +*|SawTrap:SpikeTrap||||||2751|174|0|1|1|1|-1|4|1|1|0|0|0|0|0 +*|SawTrap:SpikeTrap||||||2721|180|0|1|1|1|-1|4|1|1|0|0|0|0|0 +*|SawTrap:SpikeTrap||||||2729|201|0|1|1|1|-1|4|1|1|0|0|0|0|0 +*|SawTrap:SpikeTrap||||||2739|201|0|1|1|1|-1|4|1|1|0|0|0|0|0 +*|SawTrap:SpikeTrap||||||2745|215|0|1|1|1|-1|4|1|1|0|0|0|0|0 +*|SawTrap:SpikeTrap||||||2749|201|0|1|1|1|-1|4|1|1|0|0|0|0|0 +*|SawTrap:SpikeTrap||||||2737|166|0|1|1|1|-1|4|1|1|0|0|0|0|0 +*|SawTrap:SpikeTrap||||||2737|160|0|1|1|1|-1|4|1|1|0|0|0|0|0 +*|SawTrap:SpikeTrap||||||2759|173|0|1|1|1|-1|4|1|1|0|0|0|0|0 +*|SawTrap:SpikeTrap||||||2763|158|0|1|1|1|-1|4|1|1|0|0|0|0|0 +*|SawTrap:SpikeTrap||||||2778|158|0|1|1|1|-1|4|1|1|0|0|0|0|0 +*|SawTrap:SpikeTrap||||||2777|199|0|1|1|1|-1|4|1|1|0|0|0|0|0 +*|SawTrap:SpikeTrap||||||2769|193|0|1|1|1|-1|4|1|1|0|0|0|0|0 +*|SawTrap:SpikeTrap||||||2772|186|0|1|1|1|-1|4|1|1|0|0|0|0|0 +*|SawTrap:SpikeTrap||||||2768|203|0|1|1|1|-1|4|1|1|0|0|0|0|0 +*|SawTrap:SpikeTrap||||||2770|212|0|1|1|1|-1|4|1|1|0|0|0|0|0 +*|SawTrap:SpikeTrap||||||2828|145|0|1|1|1|-1|4|1|1|0|0|0|0|0 +*|SawTrap:SpikeTrap||||||2816|159|0|1|1|1|-1|4|1|1|0|0|0|0|0 +*|SawTrap:SpikeTrap||||||2836|159|0|1|1|1|-1|4|1|1|0|0|0|0|0 +*|SawTrap:SpikeTrap||||||2844|168|0|1|1|1|-1|4|1|1|0|0|0|0|0 +*|SawTrap:SpikeTrap||||||2836|168|0|1|1|1|-1|4|1|1|0|0|0|0|0 diff --git a/Scripts/TaskManager.cs b/Scripts/TaskManager.cs new file mode 100644 index 0000000..660a634 --- /dev/null +++ b/Scripts/TaskManager.cs @@ -0,0 +1,57 @@ +using System; +using System.Collections.Generic; +using Server; +using Server.Items; + +namespace Server.Scripts.Custom +{ + public class TasksManager + { + public static void Initialize() + { + // Timer.DelayCall parameters: (Initial Delay, Interval between runs, Method to call) + // We give the server 1 minute to finish booting up before running the first sweep, + // then it runs exactly every 1 hour after that. + Timer.DelayCall(TimeSpan.FromMinutes(1), TimeSpan.FromHours(1), new TimerCallback(ExecuteTasks)); + + Console.WriteLine("TasksManager: Hourly automated tasks initialized."); + } + + public static void ExecuteTasks() + { + Console.WriteLine("TasksManager: Running scheduled hourly tasks..."); + + // Task 1: Wipe all floor traps so spawners can place new ones + ClearSpawnedTraps(); + + // FUTURE TASKS: + // Just add new methods here as your server grows! + // Example: ClearAbandonedTents(); + // Example: AnnounceHourlyLottery(); + } + + private static void ClearSpawnedTraps() + { + // We must put them in a list first. If we delete them while actively + // searching the World.Items dictionary, it will cause a crash. + List trapsToDelete = new List(); + + // Scan the entire world for any item that acts as a floor trap + foreach (Item item in World.Items.Values) + { + if (item is BaseTrap) + { + trapsToDelete.Add(item); + } + } + + // Loop through our safe list and delete them all + foreach (Item trap in trapsToDelete) + { + trap.Delete(); + } + + Console.WriteLine($"TasksManager: Wiped {trapsToDelete.Count} floor traps. Spawners will now replace them."); + } + } +}