1
0
Fork 0
forked from aly/qstbak

qstcompanion v1.0.5

This commit is contained in:
alydev 2025-12-04 04:40:50 +10:00
parent 52daefcfd7
commit 5e1e1decc5
9 changed files with 304 additions and 200 deletions

View file

@ -202,7 +202,7 @@ public class ChauffeurModeService : IDisposable
return;
}
}
if (clientState.LocalPlayer == null)
if (objectTable.LocalPlayer == null)
{
return;
}
@ -266,7 +266,7 @@ public class ChauffeurModeService : IDisposable
{
return;
}
IPlayerCharacter localPlayer = clientState.LocalPlayer;
IPlayerCharacter localPlayer = objectTable.LocalPlayer;
if (localPlayer == null)
{
return;
@ -574,7 +574,7 @@ public class ChauffeurModeService : IDisposable
private async void SummonHelper(Vector3 targetPos, uint zoneId)
{
IPlayerCharacter localPlayer = clientState.LocalPlayer;
IPlayerCharacter localPlayer = objectTable.LocalPlayer;
if (localPlayer == null)
{
return;
@ -789,7 +789,7 @@ public class ChauffeurModeService : IDisposable
this.questerName = $"{questerName}@{questerWorld}";
targetZoneId = zoneId;
targetPosition = targetPos;
IPlayerCharacter localPlayer = clientState.LocalPlayer;
IPlayerCharacter localPlayer = objectTable.LocalPlayer;
if (localPlayer != null)
{
string myName = localPlayer.Name.ToString();
@ -881,7 +881,7 @@ public class ChauffeurModeService : IDisposable
{
try
{
IPlayerCharacter localPlayer2 = clientState.LocalPlayer;
IPlayerCharacter localPlayer2 = objectTable.LocalPlayer;
if (localPlayer2 == null)
{
log.Error("[ChauffeurMode] [WORKFLOW] LocalPlayer is null!");
@ -1180,7 +1180,7 @@ public class ChauffeurModeService : IDisposable
{
try
{
IPlayerCharacter localPlayer2 = clientState.LocalPlayer;
IPlayerCharacter localPlayer2 = objectTable.LocalPlayer;
if (localPlayer2 != null)
{
float result = Vector3.Distance(localPlayer2.Position, questerPos);
@ -1271,7 +1271,7 @@ public class ChauffeurModeService : IDisposable
log.Information("[ChauffeurMode] [HELPER] ========================================");
log.Information($"[ChauffeurMode] [HELPER] Sending mount ready signal to: {questerName}@{questerWorld}");
log.Information($"[ChauffeurMode] [HELPER] Helper is mounted: {IsMounted()}");
log.Information($"[ChauffeurMode] [HELPER] Helper position: ({clientState.LocalPlayer?.Position.X:F2}, {clientState.LocalPlayer?.Position.Y:F2}, {clientState.LocalPlayer?.Position.Z:F2})");
log.Information($"[ChauffeurMode] [HELPER] Helper position: ({objectTable.LocalPlayer?.Position.X:F2}, {objectTable.LocalPlayer?.Position.Y:F2}, {objectTable.LocalPlayer?.Position.Z:F2})");
crossProcessIPC.SendChauffeurMountReady(questerName, questerWorld);
log.Information("[ChauffeurMode] [HELPER] Mount ready signal sent via IPC");
log.Information("[ChauffeurMode] [WORKFLOW] Waiting 8 seconds for quester to mount...");
@ -1323,7 +1323,7 @@ public class ChauffeurModeService : IDisposable
config.AssignedQuester = "";
config.CurrentHelperStatus = HelperStatus.Available;
config.Save();
IPlayerCharacter localPlayer = clientState.LocalPlayer;
IPlayerCharacter localPlayer = objectTable.LocalPlayer;
if (localPlayer != null)
{
string helperName = localPlayer.Name.ToString();
@ -1363,7 +1363,7 @@ public class ChauffeurModeService : IDisposable
if (isAttuneAetheryteTask && targetPosition.HasValue)
{
log.Information("[ChauffeurMode] [HELPER] AttuneAetheryte detected - flying 10 yalms away from target before dismount");
Vector3 direction = Vector3.Normalize(await framework.RunOnFrameworkThread(() => clientState.LocalPlayer?.Position ?? Vector3.Zero) - targetPosition.Value);
Vector3 direction = Vector3.Normalize(await framework.RunOnFrameworkThread(() => objectTable.LocalPlayer?.Position ?? Vector3.Zero) - targetPosition.Value);
Vector3 flyAwayPosition = targetPosition.Value + direction * 10f;
log.Information($"[ChauffeurMode] [HELPER] Flying to position 10 yalms away: ({flyAwayPosition.X:F2}, {flyAwayPosition.Y:F2}, {flyAwayPosition.Z:F2})");
await framework.RunOnFrameworkThread(delegate
@ -1382,7 +1382,7 @@ public class ChauffeurModeService : IDisposable
DateTime timeout = DateTime.Now.AddSeconds(10.0);
while (DateTime.Now < timeout)
{
float distanceToTarget = Vector3.Distance(await framework.RunOnFrameworkThread(() => clientState.LocalPlayer?.Position ?? Vector3.Zero), targetPosition.Value);
float distanceToTarget = Vector3.Distance(await framework.RunOnFrameworkThread(() => objectTable.LocalPlayer?.Position ?? Vector3.Zero), targetPosition.Value);
if (distanceToTarget >= 10f)
{
log.Information($"[ChauffeurMode] [HELPER] Successfully flew away (distance: {distanceToTarget:F2} yalms)");
@ -1535,7 +1535,7 @@ public class ChauffeurModeService : IDisposable
{
try
{
if (clientState.LocalPlayer == null)
if (objectTable.LocalPlayer == null)
{
return false;
}
@ -1621,7 +1621,7 @@ public class ChauffeurModeService : IDisposable
{
try
{
IPlayerCharacter localPlayer = clientState.LocalPlayer;
IPlayerCharacter localPlayer = objectTable.LocalPlayer;
posTask.SetResult(localPlayer?.Position);
}
catch (Exception ex2)
@ -1737,7 +1737,7 @@ public class ChauffeurModeService : IDisposable
{
try
{
Vector3? result = clientState.LocalPlayer?.Position;
Vector3? result = objectTable.LocalPlayer?.Position;
helperStartPosTask.SetResult(result);
}
catch
@ -1759,7 +1759,7 @@ public class ChauffeurModeService : IDisposable
{
try
{
Vector3? result = clientState.LocalPlayer?.Position;
Vector3? result = objectTable.LocalPlayer?.Position;
helperCurrentPosTask.SetResult(result);
}
catch
@ -1868,7 +1868,7 @@ public class ChauffeurModeService : IDisposable
{
try
{
Vector3? result = clientState.LocalPlayer?.Position;
Vector3? result = objectTable.LocalPlayer?.Position;
posTask.SetResult(result);
}
catch
@ -1965,7 +1965,7 @@ public class ChauffeurModeService : IDisposable
log.Debug("[ChauffeurMode] [QUESTER] RidePillion already executed this session, ignoring");
return;
}
IPlayerCharacter localPlayer = clientState.LocalPlayer;
IPlayerCharacter localPlayer = objectTable.LocalPlayer;
if (localPlayer == null)
{
return;
@ -2046,7 +2046,7 @@ public class ChauffeurModeService : IDisposable
{
try
{
IPlayerCharacter localPlayer2 = clientState.LocalPlayer;
IPlayerCharacter localPlayer2 = objectTable.LocalPlayer;
if (localPlayer2 == null)
{
log.Error("[ChauffeurMode] [QUESTER] Local player is null");
@ -2270,7 +2270,7 @@ public class ChauffeurModeService : IDisposable
}
return;
}
IPlayerCharacter localPlayer = clientState.LocalPlayer;
IPlayerCharacter localPlayer = objectTable.LocalPlayer;
if (localPlayer != null)
{
try
@ -2312,7 +2312,7 @@ public class ChauffeurModeService : IDisposable
{
return;
}
IPlayerCharacter localPlayer = clientState.LocalPlayer;
IPlayerCharacter localPlayer = objectTable.LocalPlayer;
if (localPlayer == null)
{
return;
@ -2428,7 +2428,7 @@ public class ChauffeurModeService : IDisposable
if (config.IsQuester && !((DateTime.Now - lastZoneUpdate).TotalSeconds < 5.0))
{
lastZoneUpdate = DateTime.Now;
IPlayerCharacter localPlayer = clientState.LocalPlayer;
IPlayerCharacter localPlayer = objectTable.LocalPlayer;
if (localPlayer != null)
{
string zoneName = GetZoneName(territoryId);
@ -2493,7 +2493,7 @@ public class ChauffeurModeService : IDisposable
config.AssignedQuester = "";
config.CurrentHelperStatus = HelperStatus.Available;
config.Save();
IPlayerCharacter localPlayer = clientState.LocalPlayer;
IPlayerCharacter localPlayer = objectTable.LocalPlayer;
if (localPlayer != null)
{
string helperName = localPlayer.Name.ToString();
@ -2533,7 +2533,7 @@ public class ChauffeurModeService : IDisposable
config.CurrentHelperStatus = HelperStatus.Available;
config.Save();
log.Information("[ChauffeurMode] [HELPER] Status: Available");
IPlayerCharacter localPlayer = clientState.LocalPlayer;
IPlayerCharacter localPlayer = objectTable.LocalPlayer;
if (localPlayer != null)
{
string helperName = localPlayer.Name.ToString();
@ -2614,7 +2614,7 @@ public class ChauffeurModeService : IDisposable
return;
}
lastFollowCheck = now;
IPlayerCharacter localPlayer = clientState.LocalPlayer;
IPlayerCharacter localPlayer = objectTable.LocalPlayer;
if (localPlayer == null)
{
return;
@ -2746,7 +2746,7 @@ public class ChauffeurModeService : IDisposable
log.Information($"[ChauffeurMode] [HelperFollowing] Territory Load State: Zone load complete ({timeSinceZoneChange:F1}s) - resuming position broadcasts");
lastZoneChangeTime = null;
}
IPlayerCharacter localPlayer = clientState.LocalPlayer;
IPlayerCharacter localPlayer = objectTable.LocalPlayer;
if (localPlayer != null)
{
string questerName = localPlayer.Name.ToString();
@ -2791,7 +2791,7 @@ public class ChauffeurModeService : IDisposable
{
return null;
}
IPlayerCharacter localPlayer = clientState.LocalPlayer;
IPlayerCharacter localPlayer = objectTable.LocalPlayer;
if (localPlayer == null)
{
return null;