feat: 강화 결과 채팅으로 모든 클라이언트가 같이 공유
This commit is contained in:
parent
1e922ca3e8
commit
b9c5a22989
3 changed files with 109 additions and 41 deletions
|
|
@ -103,6 +103,7 @@ PacketHandler::HandlePacket(std::shared_ptr<Session> session,
|
|||
res.currentLevel = session->GetSwordLevel();
|
||||
res.currentGold = session->GetGold();
|
||||
|
||||
// 결과 패킷 전송
|
||||
PacketHeader header;
|
||||
header.id = static_cast<uint16_t>(PacketID::SC_UpgradeResult);
|
||||
header.size = sizeof(PKT_SC_UpgradeResult);
|
||||
|
|
@ -112,11 +113,34 @@ PacketHandler::HandlePacket(std::shared_ptr<Session> session,
|
|||
std::memcpy(buffer.data(), &header, sizeof(PacketHeader));
|
||||
std::memcpy(buffer.data() + sizeof(PacketHeader), &res,
|
||||
sizeof(PKT_SC_UpgradeResult));
|
||||
|
||||
session->Send(buffer);
|
||||
|
||||
Logger::Log("강화 시도 [", session->GetNickname(), "]: ", (int)res.result,
|
||||
" (레벨: ", currentLevel, "->", res.currentLevel, ")");
|
||||
// 브로드캐스트
|
||||
if (currentGold >= cost) {
|
||||
uint32_t attemptedLevel = currentLevel + 1;
|
||||
std::string resultText;
|
||||
if (res.result == 1) {
|
||||
resultText = "를 달성했습니다!";
|
||||
} else if (res.result == 0) {
|
||||
resultText = " 시도 중 검이 파괴되었습니다!";
|
||||
} else {
|
||||
resultText = " 달성에 실패했습니다!";
|
||||
}
|
||||
|
||||
std::string chatMsg = "채팅] " + session->GetNickname() +
|
||||
" 님이 검 강화 단계 " +
|
||||
std::to_string(attemptedLevel) + resultText;
|
||||
|
||||
PacketHeader chatHeader;
|
||||
chatHeader.id = static_cast<uint16_t>(PacketID::Chat);
|
||||
chatHeader.size = static_cast<uint16_t>(chatMsg.size());
|
||||
|
||||
std::vector<uint8_t> chatPayload(chatMsg.begin(), chatMsg.end());
|
||||
SessionManager::GetInstance().Broadcast(chatHeader, chatPayload);
|
||||
|
||||
Logger::Log("강화 시도 [", session->GetNickname(), "]: ", (int)res.result,
|
||||
" (레벨: ", currentLevel, "->", res.currentLevel, ")");
|
||||
}
|
||||
} break;
|
||||
|
||||
case PacketID::CS_SellSword: {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue