Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions skymp5-client/src/services/messages/destroyActorMessage.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,5 @@ import { MsgType } from "../../messages";
export interface DestroyActorMessage {
t: MsgType.DestroyActor,
idx: number;
refrId: number;
}
6 changes: 5 additions & 1 deletion skymp5-server/cpp/messages/DestroyActorMessage.h
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#pragma once
#include "MessageBase.h"
#include "MsgType.h"
#include <cstdint>
#include <type_traits>

struct DestroyActorMessage : public MessageBase<DestroyActorMessage>
Expand All @@ -11,8 +12,11 @@ struct DestroyActorMessage : public MessageBase<DestroyActorMessage>
template <class Archive>
void Serialize(Archive& archive)
{
archive.Serialize("t", kMsgType).Serialize("idx", idx);
archive.Serialize("t", kMsgType)
.Serialize("idx", idx)
.Serialize("refrId", refrId);
}

uint32_t idx = 0;
uint64_t refrId = 0;
};
2 changes: 1 addition & 1 deletion skymp5-server/cpp/mp_common/Config.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ constexpr auto kMaxPlayers = MAX_PLAYERS;
// This value should be increased each time messaging protocol changes
// regardless of is it a major or minor change. Every change is considered
// incompatible to keep protocol versions system maintainable.
constexpr auto kMessagingProtocolVersion = "7_";
constexpr auto kMessagingProtocolVersion = "8_";

// Users with kMessagingProtocolVersion different to server's one must not be
// able to connect. So we use this value as SLikeNet password by default.
Expand Down
8 changes: 8 additions & 0 deletions skymp5-server/cpp/server_guest_lib/PartOne.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -909,6 +909,14 @@ void PartOne::Init()
listenerUserId != serverState.disconnectingUserId) {
DestroyActorMessage message;
message.idx = emitter->GetIdx();

uint64_t longFormId = emitter->GetFormId();
MpActor* emitterAsActor = emitter->AsActor();
if (emitterAsActor && longFormId < 0xff000000) {
longFormId += 0x100000000;
}
message.refrId = longFormId;

sendTarget->Send(listenerUserId, message, true);
}
};
Expand Down
Loading