diff --git a/FFXIVClassic Map Server/actors/director/GuildleveDirector.cs b/FFXIVClassic Map Server/actors/director/GuildleveDirector.cs index fe116210..58a0e8cc 100644 --- a/FFXIVClassic Map Server/actors/director/GuildleveDirector.cs +++ b/FFXIVClassic Map Server/actors/director/GuildleveDirector.cs @@ -28,6 +28,15 @@ namespace FFXIVClassic_Map_Server.actors.director guildleveWork.aimNum[2] = guildleveData.aimNum[2]; guildleveWork.aimNum[3] = guildleveData.aimNum[3]; + if (guildleveWork.aimNum[0] != 0) + guildleveWork.uiState[0] = 1; + if (guildleveWork.aimNum[1] != 0) + guildleveWork.uiState[1] = 1; + if (guildleveWork.aimNum[2] != 0) + guildleveWork.uiState[2] = 1; + if (guildleveWork.aimNum[3] != 0) + guildleveWork.uiState[3] = 1; + guildleveWork.aimNumNow[0] = guildleveWork.aimNumNow[1] = guildleveWork.aimNumNow[2] = guildleveWork.aimNumNow[3] = 0; } @@ -50,6 +59,40 @@ namespace FFXIVClassic_Map_Server.actors.director SendPacketsToPlayers(propertyBuilder.Done()); } + public void SyncAllInfo() + { + ActorPropertyPacketUtil propertyBuilder = new ActorPropertyPacketUtil("guildleveWork/infoVariable", this, actorId); + + if (guildleveWork.aimNum[0] != 0) + propertyBuilder.AddProperty("guildleveWork.aimNum[0]"); + if (guildleveWork.aimNum[1] != 0) + propertyBuilder.AddProperty("guildleveWork.aimNum[1]"); + if (guildleveWork.aimNum[2] != 0) + propertyBuilder.AddProperty("guildleveWork.aimNum[2]"); + if (guildleveWork.aimNum[3] != 0) + propertyBuilder.AddProperty("guildleveWork.aimNum[3]"); + + if (guildleveWork.aimNumNow[0] != 0) + propertyBuilder.AddProperty("guildleveWork.aimNumNow[0]"); + if (guildleveWork.aimNumNow[1] != 0) + propertyBuilder.AddProperty("guildleveWork.aimNumNow[1]"); + if (guildleveWork.aimNumNow[2] != 0) + propertyBuilder.AddProperty("guildleveWork.aimNumNow[2]"); + if (guildleveWork.aimNumNow[3] != 0) + propertyBuilder.AddProperty("guildleveWork.aimNumNow[3]"); + + if (guildleveWork.uiState[0] != 0) + propertyBuilder.AddProperty("guildleveWork.uiState[0]"); + if (guildleveWork.uiState[1] != 0) + propertyBuilder.AddProperty("guildleveWork.uiState[1]"); + if (guildleveWork.uiState[2] != 0) + propertyBuilder.AddProperty("guildleveWork.uiState[2]"); + if (guildleveWork.uiState[3] != 0) + propertyBuilder.AddProperty("guildleveWork.uiState[3]"); + + SendPacketsToPlayers(propertyBuilder.Done()); + } + public void UpdateAimNumNow(int index, sbyte value) { ActorPropertyPacketUtil propertyBuilder = new ActorPropertyPacketUtil("guildleveWork/infoVariable", this, actorId); diff --git a/FFXIVClassic Map Server/packets/send/Actor/SetActorPropetyPacket.cs b/FFXIVClassic Map Server/packets/send/Actor/SetActorPropetyPacket.cs index cc41cdfb..37996dbd 100644 --- a/FFXIVClassic Map Server/packets/send/Actor/SetActorPropetyPacket.cs +++ b/FFXIVClassic Map Server/packets/send/Actor/SetActorPropetyPacket.cs @@ -159,6 +159,8 @@ namespace FFXIVClassic_Map_Server.packets.send.actor return AddByte(id, (byte)(((bool)curObj) ? 1 : 0)); else if (curObj is byte) return AddByte(id, (byte)curObj); + else if (curObj is sbyte) + return AddByte(id, (byte)(sbyte)curObj); else if (curObj is ushort) return AddShort(id, (ushort)curObj); else if (curObj is short) diff --git a/data/scripts/directors/Guildleve/PrivateGLBattleDetectNormal.lua b/data/scripts/directors/Guildleve/PrivateGLBattleDetectNormal.lua index 26c30a2e..315974d6 100644 --- a/data/scripts/directors/Guildleve/PrivateGLBattleDetectNormal.lua +++ b/data/scripts/directors/Guildleve/PrivateGLBattleDetectNormal.lua @@ -20,5 +20,6 @@ function mainLoop(thisDirector) wait(3) thisDirector:StartGuildleve(); + thisDirector:SyncAllInfo(); end \ No newline at end of file