90 lines
No EOL
4.2 KiB
Markdown
90 lines
No EOL
4.2 KiB
Markdown
# Mossy Plugins
|
||
|
||
A collection of DECAL plugins for Asheron's Call, providing utility overlays and automation features.
|
||
|
||
## Contents
|
||
- `mossy.sln`: Visual Studio solution containing both projects.
|
||
- `GearCycler/`: Simple plugin with a UI button to cycle gear (placeholder behavior).
|
||
- `MosswartMassacre/`: Advanced plugin tracking monster kills, rare discoveries, and offering HTTP/telemetry features.
|
||
- `packages/`: Vendored NuGet packages (Newtonsoft.Json, YamlDotNet).
|
||
|
||
## Prerequisites
|
||
- Windows with .NET Framework 4.8
|
||
- Visual Studio 2017+ (MSBuild Tools 15.0) or equivalent MSBuild environment
|
||
- DECAL Adapter installed for Asheron's Call
|
||
- VirindiViewService (included in each project's `lib/` folder)
|
||
|
||
## Setup & Build
|
||
1. Clone this repository.
|
||
2. Ensure the DECAL and Virindi DLLs are present under `MosswartMassacre/lib/` and referenced by each project.
|
||
3. Restore NuGet packages if needed (`nuget restore mossy.sln`).
|
||
4. Open `mossy.sln` in Visual Studio and build the solution.
|
||
5. The output DLLs will be in each project’s `bin/Debug/` or `bin/Release/` folder.
|
||
6. Deploy the plugin DLLs (and any required XML or YAML files) to your DECAL plugin directory.
|
||
|
||
## GearCycler
|
||
A minimal plugin demonstrating a VirindiViewService-based UI.
|
||
- UI layout: `GearCycler/ViewXML/mainView.xml`.
|
||
- Core logic in `GearCycler/GearCore.cs`.
|
||
- On button click, it logs a chat message; extend the `btnCycle.Hit` handler to add gear-cycling logic.
|
||
|
||
## MosswartMassacre
|
||
Tracks monster kills and rare drops, with multiple utility features including navigation route visualization.
|
||
|
||
### Features
|
||
- **Kill Tracking**: Counts total kills and computes rates (kills/5 min, kills/hour).
|
||
- **Rare Discoveries**: Increments rare count and can automatically set rare meta state.
|
||
- **Navigation Visualization** ✅ **NEW**: Visualize VTank navigation routes in 3D with route comparison capabilities.
|
||
- **Tabbed UI Interface**: Enhanced interface with Main, Settings, Statistics, and Navigation tabs.
|
||
- **Command Interface** (`/mm` commands):
|
||
- `/mm help` : Show available commands.
|
||
- `/mm report` : Display current stats in chat.
|
||
- `/mm loc` : Show current map coordinates.
|
||
- `/mm reset` : Reset kill counters and timers.
|
||
- `/mm meta` : Toggle automatic rare meta state.
|
||
- `/mm http <enable|disable>` : Start/stop local HTTP command server (port 8085).
|
||
- `/mm remotecommands <enable|disable>` : Listen for remote commands from your allegiance chat.
|
||
- `/mm telemetry <enable|disable>` : Enable/disable periodic telemetry streaming.
|
||
|
||
### HTTP Command Server
|
||
- Listens on `http://localhost:8085/`.
|
||
- Accepts POST data: `target=<player>&command=<text>`, then sends a /tell and executes the command.
|
||
|
||
### Navigation Visualization ✅ NEW
|
||
- **VTank Integration**: Automatically detects VTank installation and loads .nav files.
|
||
- **3D Route Display**: Shows navigation routes as red lines in the game world.
|
||
- **Route Comparison**: Visualize different routes alongside UtilityBelt's active navigation.
|
||
- **Supported Formats**: All VTank nav types (Circular, Linear, Target, Once) and waypoint types.
|
||
- **Usage**: Enable in Navigation tab, select route from dropdown, click "Load Route".
|
||
|
||
### Configuration
|
||
- Per-character YAML config stored at `<PluginDir>/<CharacterName>.yaml`.
|
||
- Settings include:
|
||
- `remote_commands_enabled`
|
||
- `rare_meta_enabled`
|
||
- `http_server_enabled`
|
||
- `telemetry_enabled`
|
||
- `char_tag`
|
||
- `vtank_profiles_path` ✅ **NEW**: Custom VTank profiles directory
|
||
- Config is auto-generated on first run; modify it or use UI/commands to update.
|
||
|
||
### Telemetry
|
||
- Periodically posts JSON snapshots of position and stats to a configurable endpoint.
|
||
- Configure `Endpoint`, `SharedSecret`, and `IntervalSec` in `Telemetry.cs`.
|
||
|
||
## Dependencies
|
||
- Decal.Adapter (v2.9.8.3)
|
||
- Decal.Interop.Core & Decal.Interop.Inject
|
||
- Decal.Interop.D3DService ✅ **NEW**: For 3D navigation visualization
|
||
- VirindiViewService
|
||
- Newtonsoft.Json (v13.0.3)
|
||
- YamlDotNet (v16.3.0)
|
||
|
||
## Contributing
|
||
1. Fork the repository.
|
||
2. Create a feature branch.
|
||
3. Commit your changes and ensure the solution builds.
|
||
4. Submit a pull request with a description of your changes.
|
||
|
||
--
|
||
_This README provides a high-level overview to get up and running quickly._ |