Core/PacketIO: Implemented CMSG_CHECK_IS_ADVENTURE_MAP_POI_VALID and SMSG_PLAYER_IS_ADVENTURE_MAP_POI_VALID
Port From (https://github.com/TrinityCore/TrinityCore/commit/f6646739908215311f110842ed41055a54dae1f0)
This commit is contained in:
@@ -5,12 +5,44 @@ using Framework.Constants;
|
|||||||
using Game.DataStorage;
|
using Game.DataStorage;
|
||||||
using Game.Networking;
|
using Game.Networking;
|
||||||
using Game.Networking.Packets;
|
using Game.Networking.Packets;
|
||||||
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
|
||||||
namespace Game
|
namespace Game
|
||||||
{
|
{
|
||||||
public partial class WorldSession
|
public partial class WorldSession
|
||||||
{
|
{
|
||||||
|
[WorldPacketHandler(ClientOpcodes.CheckIsAdventureMapPoiValid)]
|
||||||
|
void HandleCheckIsAdventureMapPoiValid(CheckIsAdventureMapPoiValid checkIsAdventureMapPoiValid)
|
||||||
|
{
|
||||||
|
AdventureMapPOIRecord entry = CliDB.AdventureMapPOIStorage.LookupByKey(checkIsAdventureMapPoiValid.AdventureMapPoiID);
|
||||||
|
if (entry == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
void sendIsPoiValid(uint adventureMapPoiId, bool isVisible)
|
||||||
|
{
|
||||||
|
PlayerIsAdventureMapPoiValid isMapPoiValid = new();
|
||||||
|
isMapPoiValid.AdventureMapPoiID = adventureMapPoiId;
|
||||||
|
isMapPoiValid.IsVisible = isVisible;
|
||||||
|
SendPacket(isMapPoiValid);
|
||||||
|
};
|
||||||
|
|
||||||
|
Quest quest = Global.ObjectMgr.GetQuestTemplate(entry.QuestID);
|
||||||
|
if (quest == null)
|
||||||
|
{
|
||||||
|
sendIsPoiValid(entry.Id, false);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!_player.MeetPlayerCondition(entry.PlayerConditionID))
|
||||||
|
{
|
||||||
|
sendIsPoiValid(entry.Id, false);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
sendIsPoiValid(entry.Id, true);
|
||||||
|
}
|
||||||
|
|
||||||
[WorldPacketHandler(ClientOpcodes.AdventureMapStartQuest)]
|
[WorldPacketHandler(ClientOpcodes.AdventureMapStartQuest)]
|
||||||
void HandleAdventureMapStartQuest(AdventureMapStartQuest startQuest)
|
void HandleAdventureMapStartQuest(AdventureMapStartQuest startQuest)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,17 +1,46 @@
|
|||||||
// Copyright (c) CypherCore <http://github.com/CypherCore> All rights reserved.
|
// Copyright (c) CypherCore <http://github.com/CypherCore> All rights reserved.
|
||||||
// Licensed under the GNU GENERAL PUBLIC LICENSE. See LICENSE file in the project root for full license information.
|
// Licensed under the GNU GENERAL PUBLIC LICENSE. See LICENSE file in the project root for full license information.
|
||||||
|
|
||||||
|
using Framework.Constants;
|
||||||
|
|
||||||
namespace Game.Networking.Packets
|
namespace Game.Networking.Packets
|
||||||
{
|
{
|
||||||
|
class CheckIsAdventureMapPoiValid : ClientPacket
|
||||||
|
{
|
||||||
|
public uint AdventureMapPoiID;
|
||||||
|
|
||||||
|
public CheckIsAdventureMapPoiValid(WorldPacket packet) : base(packet) { }
|
||||||
|
|
||||||
|
public override void Read()
|
||||||
|
{
|
||||||
|
AdventureMapPoiID = _worldPacket.ReadUInt32();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class PlayerIsAdventureMapPoiValid : ServerPacket
|
||||||
|
{
|
||||||
|
public uint AdventureMapPoiID;
|
||||||
|
public bool IsVisible;
|
||||||
|
|
||||||
|
public PlayerIsAdventureMapPoiValid() : base(ServerOpcodes.PlayerIsAdventureMapPoiValid, ConnectionType.Instance) { }
|
||||||
|
|
||||||
|
public override void Write()
|
||||||
|
{
|
||||||
|
_worldPacket.WriteUInt32(AdventureMapPoiID);
|
||||||
|
_worldPacket.WriteBit(IsVisible);
|
||||||
|
_worldPacket.FlushBits();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
class AdventureMapStartQuest : ClientPacket
|
class AdventureMapStartQuest : ClientPacket
|
||||||
{
|
{
|
||||||
|
public uint QuestID;
|
||||||
|
|
||||||
public AdventureMapStartQuest(WorldPacket packet) : base(packet) { }
|
public AdventureMapStartQuest(WorldPacket packet) : base(packet) { }
|
||||||
|
|
||||||
public override void Read()
|
public override void Read()
|
||||||
{
|
{
|
||||||
QuestID = _worldPacket.ReadUInt32();
|
QuestID = _worldPacket.ReadUInt32();
|
||||||
}
|
}
|
||||||
|
|
||||||
public uint QuestID;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user