Resource icon

Time XmlSpwaner 2025-3-5

Author
13440130
Downloads
9
Views
108
First release
Last update
Rating
0.00 star(s) 0 ratings
No permission to download Join the discussion

More resources from 13440130

Requirements
XmlSpawner2
Yes, I wrote another script using DeepSeek

The provided code implements a Time-based XML Spawner (TimeXmlSpawner) that inherits from XmlSpawner. Its core functionality is to dynamically enable or disable entity spawning based on configurable time windows. Below is a detailed breakdown of its features:

1. Time-Controlled Spawning Logic

  • Scheduled Checks: Uses a CheckTimer to verify the current time every 20 seconds and determine if it falls within the configured "active time window."
  • Automatic Toggle:
    • During Active Hours: If the spawner is inactive, it triggers a delayed respawn (1-second delay) after resetting the spawner.
    • Outside Active Hours: Immediately stops the spawner if it is running.

2. Configurable Time Windows

  • Time Parameters: Supports setting start and end times (hour and minute precision) via properties:
    • StartTimeHour / StartTimeMinute: Default start time (08:00).
    • EndTimeHour / EndTimeMinute: Default end time (20:00).
  • Cross-Day Support: Correctly handles time windows spanning midnight (e.g., 22:00 to 02:00) by comparing the current time against the configured range.

3. Runtime State Management

  • IsActiveTime Property: Dynamically evaluates whether the current time is within the configured range (returns true/false).
  • Overridden Running Property: Directly controls the base class’s Running state, allowing spawning only during active hours.

4. Game Integration & Persistence

  • GM Commands: Uses [CommandProperty] attributes to let game administrators adjust time parameters in-game.
  • Serialization: Saves and loads time configurations to retain settings after server restarts.
  • Status Display: Shows the active time window and current state (e.g., "Active Time: 08:00 - 20:00") in-game via GetProperties.

5. Error Handling & Robustness

  • Parameter Validation: Enforces valid time ranges (hours: 0-23, minutes: 0-59). Invalid values throw exceptions.
  • Deserialization Fixes: Automatically corrects invalid time parameters during loading, reverting to defaults (08:00-20:00).

Use Cases

Ideal for scenarios requiring time-dependent entity spawning, such as:

  • Daytime NPCs (e.g., merchants) vs. nighttime monsters.
  • Limited-time event spawns (e.g., holiday-themed entities).
  • Cross-day events (e.g., midnight boss spawns).

Potential Improvements

  • Finer-Grained Checks: Reduce the 20-second timer interval (e.g., 1 second) for minute-level precision.
  • Timezone Support: Add handling for server-client timezone differences.
  • Logging: Implement logging to track spawner activation/deactivation for debugging.
This implementation balances flexibility, reliability, and ease of integration into game systems.

6775D6549912486B3425D945EDBD7E08.png
  • Like
Reactions: jasontian

Active Shards

Donations

Total amount
$0.00
Goal
$500.00
Back