diff --git a/dScripts/02_server/Map/General/MailBoxServer.cpp b/dScripts/02_server/Map/General/MailBoxServer.cpp index 25eac7663..b6818358b 100644 --- a/dScripts/02_server/Map/General/MailBoxServer.cpp +++ b/dScripts/02_server/Map/General/MailBoxServer.cpp @@ -2,6 +2,7 @@ #include "Amf3.h" #include "GameMessages.h" #include "EffectsMessages.h" +#include "ObjectMessages.h" #include "Entity.h" void MailBoxServer::OnUse(Entity* self, Entity* user) { @@ -14,6 +15,9 @@ void MailBoxServer::OnUse(Entity* self, Entity* user) { uiMessage.strMessageName = "pushGameState"; uiMessage.args = std::move(args); uiMessage.SendToClient(user->GetSystemAddress()); + + // The mailbox's client script marks itself in use (hides the interact icon, refuses another use) until CloseMail + GameMessages::NotifyClientObject(self->GetObjectID(), u"OpenMail").Send(user->GetSystemAddress()); } void MailBoxServer::OnFireEventServerSide(Entity* self, Entity* sender, std::string args, int32_t param1, int32_t param2, int32_t param3) { @@ -25,5 +29,7 @@ void MailBoxServer::OnFireEventServerSide(Entity* self, Entity* sender, std::str uiMessage.strMessageName = "ToggleMail"; uiMessage.args = std::move(args); uiMessage.SendToClient(sender->GetSystemAddress()); + + GameMessages::NotifyClientObject(self->GetObjectID(), u"CloseMail").Send(sender->GetSystemAddress()); } }