About This File
⚠️ BETA WARNING
This is a BETA version and may contain bugs or unexpected behaviors. Use at your own risk. Always monitor your character during combat and be ready to take manual control if needed. Report any issues you encounter to help improve the class.
Known Beta Limitations:
- Anti-oscillation system is still being tuned
- Edge cases in multi-enemy positioning may need refinement
- Manual control timeout values may require adjustment based on playstyle
Overview
Advanced AI-powered Warrior Tank FightClass for WRobot featuring intelligent positioning, threat management, and smooth manual control integration.
Key Features
Intelligent Movement AI
- Automated Positioning: Maintains optimal position relative to enemy groups
- Anti-Oscillation System: Dual-threshold hysteresis prevents character "shaking"
- Enemy Tracking: Predicts enemy movement and adjusts positioning proactively
- Centroid-Based Positioning: Faces weighted center of enemy groups for optimal threat coverage
Manual Control Integration
-
RIGHT MOUSE BUTTON (RECOMMENDED): Use RMB + mouse movement for smooth camera turning
- AI automatically detects and respects RMB camera control
- Most natural and precise manual turning method
- Works perfectly with AI - no conflicts
-
A/D Key Support: Alternative keyboard turning with 300ms timeout
- Hold A or D to manually turn - AI waits
- Release keys - AI resumes after 300ms delay
- W/S/Q/E Support: Full movement override when using forward/backward/strafe keys
- No Target Required: Manual control works even without an active target
TIP: For best experience, use RIGHT MOUSE BUTTON to turn your character. This is the smoothest method and works seamlessly with the AI positioning system.
Combat Features
- Threat Management: Automatically taunts enemies attacking party members
- Priority Targeting: Intelligent target selection based on threat level
- Interrupt System: Kicks/stuns enemy casters automatically
- Emergency Cooldowns: Automatic use of Shield Wall, Last Stand at critical HP
- AoE Optimization: Uses Thunder Clap, Shockwave, Cleave for multi-target situations
Party Support
- Vigilance Management: Automatically casts on healers or attacked party members
- Intervene Protection: Charges to protect healers in danger
- Party Buffs: Maintains Battle Shout and Commanding Shout on group
- Healer Detection: Identifies and prioritizes healer protection
Advanced Systems
- Thread-Safe Architecture: Separate rotation and movement threads
- Turn Command Arbiter: Priority-based system prevents movement conflicts
- WRobot Coordinator: Manages pathfinding vs AI movement ownership
- State Reconciliation: Automatic recovery from desyncs between C# and WoW
Anti-Oscillation Technology
How It Works
The class uses three anti-oscillation mechanisms:
-
Dual-Threshold Hysteresis
- Start turning: >17° angle difference
- Stop turning: <7° angle difference
- Creates "dead zone" preventing rapid direction changes
-
Time-Based Constraints
- Minimum turn duration: 180ms
- Turn cooldown: 250ms between turn actions
- Prevents "flappy" behavior
-
Angle Smoothing
- Tracks last 5 angle measurements
- Uses weighted average (newer = higher weight)
- Filters noise from enemy movement
Configuration & Tuning
If Character Turns Too Much
Increase these values in TurnHysteresis
class:
public const double START_TURN_THRESHOLD = 0.35; // Higher = less sensitive
public const double STOP_TURN_THRESHOLD = 0.15; // Higher = stops sooner
If Character Doesn't Turn Enough
Decrease these values:
public const double START_TURN_THRESHOLD = 0.25; // Lower = more sensitive
public const double STOP_TURN_THRESHOLD = 0.10; // Lower = turns longer
Manual Control Timeout (A/D Keys)
Adjust in TurnCommandArbiter
class:
private const double MANUAL_TURN_TIMEOUT_MS = 300.0; // Default 300ms
- Lower (200ms): Faster AI resumption
- Higher (500ms): More time for manual adjustment
Note: RMB camera control has no timeout - AI respects it instantly.
Usage Instructions
Installation
- Copy the entire code into WRobot FightClass Editor
- Save as "WarriorTankAdvanced.cs"
- Compile and select in WRobot settings
Combat Behavior
- Automatic Mode: AI handles all positioning and rotation
- Manual Turn Mode (RECOMMENDED): Hold RMB + move mouse to adjust facing
- Manual Turn Mode (Alternative): Hold A or D for keyboard turning
- Full Manual Mode: Press W/S/Q/E for complete movement control
Control Methods Comparison
Method | Responsiveness | Smoothness | AI Conflict | Recommended |
---|---|---|---|---|
RMB + Mouse | Instant | Excellent | None | YES |
A/D Keys | 300ms delay | Good | Minimal | OK |
W/S/Q/E Keys | Instant | N/A (stops AI) | Full override | Emergency only |
Best Practices
- PREFER RIGHT MOUSE BUTTON for manual turning
- Let AI handle positioning in multi-enemy fights
- Use A/D keys only if you can't use mouse
- Monitor console for debug messages (if issues occur)
- Report reproducible bugs with specific scenarios
Troubleshooting
Character Spinning/Oscillating
-
Increase
START_TURN_THRESHOLD
to 0.40 -
Increase
STOP_TURN_THRESHOLD
to 0.18 - Check console for "[RECONCILE]" messages indicating desync
AI Not Responding to Manual Input
- If using RMB: Check if WRobot is interfering with camera controls
- If using A/D: Verify Windows API key detection is working
- Check if WRobot is blocking key inputs
-
Increase
MANUAL_TURN_TIMEOUT_MS
to 500ms (A/D only)
Character Not Facing Enemies
- Decrease thresholds (see Configuration section)
- Check if enemy tracking is working (console logs)
- Verify you're in combat (AI only active during combat)
Performance Issues
-
Reduce
CALCULATION_CACHE_MS
in TankMovementAI (currently 100ms) - Increase sleep intervals in threads (currently 30ms)
FAQ
Q: Should I use keyboard (A/D) or mouse (RMB) for turning? A: Always prefer RIGHT MOUSE BUTTON + mouse movement. It's smoother, has no timeout, and works perfectly with the AI.
Q: Why does AI wait 300ms after I release A or D? A: This prevents the AI from immediately overriding your manual adjustment. RMB doesn't have this delay.
Q: Can I use both mouse and keyboard turning? A: Yes, but stick to one method for consistency. RMB is recommended.
Q: Does manual control work outside of combat? A: Yes, manual control (both RMB and A/D) works everywhere.
Debug Logging
Enable debug messages by searching for Logging.WriteDebug
calls. Useful logs:
-
[AI]
- Movement AI events -
[RECONCILE]
- State synchronization -
[THREAT]
- Threat management actions -
[ROTATION]
- Spell rotation decisions
Changelog v0.9 BETA
- Added dual-threshold anti-oscillation system
- Implemented angle smoothing (5-point weighted average)
- Added time-based turn constraints (min duration, cooldown)
- Improved manual control integration (A/D timeout)
- Enhanced state reconciliation for turn actions
- Removed centroid oscillation through hysteresis
- Documented RMB as preferred turning method
Credits & Support
- Author: AI
- Bug Reports: Reply to thread with detailed scenario description
- Suggestions: Welcome for improving AI behavior
Disclaimer
This FightClass automates gameplay. Use responsibly and in accordance with game terms of service. The author is not responsible for any consequences of using this software.
Remember: This is BETA software. Always supervise your character!
PRO TIP: Use RIGHT MOUSE BUTTON for the best manual control experience!
What's New in Version 1.0.12 See changelog
Released
Minor fixes in