mirror of
https://github.com/goatcorp/Dalamud.git
synced 2025-12-12 18:27:23 +01:00
fix: OpCodes for 5.15
This commit is contained in:
parent
7124ea379c
commit
0749a98058
1 changed files with 29 additions and 21 deletions
|
|
@ -55,8 +55,10 @@ namespace Dalamud.Game.Network {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (opCode == ZoneOpCode.CfPreferredRole)
|
if (opCode == ZoneOpCode.CfPreferredRole) {
|
||||||
{
|
if (this.dalamud.Configuration.PreferredRoleReminders == null)
|
||||||
|
return;
|
||||||
|
|
||||||
var data = new byte[64];
|
var data = new byte[64];
|
||||||
Marshal.Copy(dataPtr, data, 0, 32);
|
Marshal.Copy(dataPtr, data, 0, 32);
|
||||||
|
|
||||||
|
|
@ -67,12 +69,12 @@ namespace Dalamud.Game.Network {
|
||||||
|
|
||||||
Task.Run(async () => {
|
Task.Run(async () => {
|
||||||
for (var rouletteIndex = 1; rouletteIndex < 11; rouletteIndex++) {
|
for (var rouletteIndex = 1; rouletteIndex < 11; rouletteIndex++) {
|
||||||
var currentRole = data[16 + rouletteIndex];
|
var currentRoleKey = data[16 + rouletteIndex];
|
||||||
var prevRole = this.lastPreferredRole[16 + rouletteIndex];
|
var prevRoleKey = this.lastPreferredRole[16 + rouletteIndex];
|
||||||
|
|
||||||
Log.Verbose("CfPreferredRole: {0} - {1} => {2}", rouletteIndex, prevRole, currentRole);
|
Log.Verbose("CfPreferredRole: {0} - {1} => {2}", rouletteIndex, prevRoleKey, currentRoleKey);
|
||||||
|
|
||||||
if (currentRole != prevRole) {
|
if (currentRoleKey != prevRoleKey) {
|
||||||
var rouletteName = rouletteIndex switch {
|
var rouletteName = rouletteIndex switch {
|
||||||
1 => "Duty Roulette: Leveling",
|
1 => "Duty Roulette: Leveling",
|
||||||
2 => "Duty Roulette: Level 50/60/70 Dungeons",
|
2 => "Duty Roulette: Level 50/60/70 Dungeons",
|
||||||
|
|
@ -86,13 +88,19 @@ namespace Dalamud.Game.Network {
|
||||||
_ => "Unknown ContentRoulette"
|
_ => "Unknown ContentRoulette"
|
||||||
};
|
};
|
||||||
|
|
||||||
var prevRoleName = RoleKeyToName(prevRole);
|
var prevRoleName = RoleKeyToPreferredRole(prevRoleKey);
|
||||||
var currentRoleName = RoleKeyToName(currentRole);
|
var currentRoleName = RoleKeyToPreferredRole(currentRoleKey);
|
||||||
|
|
||||||
|
if (!this.dalamud.Configuration.PreferredRoleReminders.TryGetValue(rouletteIndex, out var roleToCheck))
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (roleToCheck == DalamudConfiguration.PreferredRole.All || currentRoleName != roleToCheck)
|
||||||
|
return;
|
||||||
|
|
||||||
this.dalamud.Framework.Gui.Chat.Print($"Roulette bonus for {rouletteName} changed: {prevRoleName} => {currentRoleName}");
|
this.dalamud.Framework.Gui.Chat.Print($"Roulette bonus for {rouletteName} changed: {prevRoleName} => {currentRoleName}");
|
||||||
|
|
||||||
if (this.dalamud.BotManager.IsConnected)
|
if (this.dalamud.BotManager.IsConnected)
|
||||||
await this.dalamud.BotManager.ProcessCfPreferredRoleChange(rouletteName, prevRoleName, currentRoleName);
|
await this.dalamud.BotManager.ProcessCfPreferredRoleChange(rouletteName, prevRoleName.ToString(), currentRoleName.ToString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -213,21 +221,21 @@ namespace Dalamud.Game.Network {
|
||||||
}
|
}
|
||||||
|
|
||||||
private enum ZoneOpCode {
|
private enum ZoneOpCode {
|
||||||
CfNotifyPop = 0x2B0,
|
CfNotifyPop = 0x135,
|
||||||
CfPreferredRole = 0x2c7,
|
CfPreferredRole = 0x2a2,
|
||||||
MarketTaxRates = 0x185,
|
MarketTaxRates = 0x16a,
|
||||||
MarketBoardItemRequestStart = 0x23A,
|
MarketBoardItemRequestStart = 0x349,
|
||||||
MarketBoardOfferings = 0x390,
|
MarketBoardOfferings = 0x130,
|
||||||
MarketBoardHistory = 0x1C2
|
MarketBoardHistory = 0x1f7
|
||||||
}
|
}
|
||||||
|
|
||||||
private string RoleKeyToName(int key) => key switch
|
private DalamudConfiguration.PreferredRole RoleKeyToPreferredRole(int key) => key switch
|
||||||
{
|
{
|
||||||
1 => "Tank",
|
1 => DalamudConfiguration.PreferredRole.Tank,
|
||||||
2 => "DPS",
|
2 => DalamudConfiguration.PreferredRole.Dps,
|
||||||
3 => "DPS",
|
3 => DalamudConfiguration.PreferredRole.Dps,
|
||||||
4 => "Healer",
|
4 => DalamudConfiguration.PreferredRole.Healer,
|
||||||
_ => "No Bonus "
|
_ => DalamudConfiguration.PreferredRole.None
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue