Skip to content

Commit 128e728

Browse files
committed
feat: Equipment Presets
Added the ability to save equipment presets.
1 parent eda86d4 commit 128e728

15 files changed

Lines changed: 440 additions & 1 deletion

Arrowgene.Ddon.GameServer/DdonGameServer.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -321,6 +321,9 @@ private void LoadPacketHandler()
321321
AddHandler(new EquipUpdateHideCharacterLanternHandler(this));
322322
AddHandler(new EquipUpdateHidePawnHeadArmorHandler(this));
323323
AddHandler(new EquipUpdateHidePawnLanternHandler(this));
324+
AddHandler(new EquipGetEquipPresetListHandler(this));
325+
AddHandler(new EquipUpdateEquipPresetHandler(this));
326+
AddHandler(new EquipUpdateEquipPresetNameHandler(this));
324327

325328
AddHandler(new EventStartHandler(this));
326329
AddHandler(new EventEndHandler(this));
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
2+
using Arrowgene.Ddon.Server;
3+
using Arrowgene.Ddon.Shared.Entity.PacketStructure;
4+
using Arrowgene.Logging;
5+
6+
namespace Arrowgene.Ddon.GameServer.Handler
7+
{
8+
public class EquipGetEquipPresetListHandler : GameRequestPacketHandler<C2SEquipGetEquipPresetListReq, S2CEquipGetEquipPresetListRes>
9+
{
10+
private static readonly ServerLogger Logger = LogProvider.Logger<ServerLogger>(typeof(EquipGetEquipPresetListHandler));
11+
12+
public EquipGetEquipPresetListHandler(DdonGameServer server) : base(server)
13+
{
14+
}
15+
16+
public override S2CEquipGetEquipPresetListRes Handle(GameClient client, C2SEquipGetEquipPresetListReq request)
17+
{
18+
return new S2CEquipGetEquipPresetListRes();
19+
}
20+
}
21+
}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
using Arrowgene.Ddon.Server;
2+
using Arrowgene.Ddon.Shared.Entity.PacketStructure;
3+
using Arrowgene.Ddon.Shared.Entity.Structure;
4+
using Arrowgene.Ddon.Shared.Model;
5+
using Arrowgene.Logging;
6+
using System.Collections.Generic;
7+
8+
namespace Arrowgene.Ddon.GameServer.Handler
9+
{
10+
public class EquipUpdateEquipPresetHandler : GameRequestPacketHandler<C2SEquipUpdateEquipPresetReq, S2CEquipUpdateEquipPresetRes>
11+
{
12+
private static readonly ServerLogger Logger = LogProvider.Logger<ServerLogger>(typeof(EquipUpdateEquipPresetHandler));
13+
14+
public EquipUpdateEquipPresetHandler(DdonGameServer server) : base(server)
15+
{
16+
}
17+
18+
public override S2CEquipUpdateEquipPresetRes Handle(GameClient client, C2SEquipUpdateEquipPresetReq request)
19+
{
20+
var result = new S2CEquipUpdateEquipPresetRes();
21+
22+
result.EquipPreset.PresetName = request.PresetName;
23+
result.EquipPreset.PresetNo = request.PresetNo;
24+
result.EquipPreset.PresetEquipInfoList = client.Character.Equipment.AsCDataPresetEquipInfo(EquipType.Performance);
25+
result.EquipPreset.Job = client.Character.Job;
26+
27+
return result;
28+
}
29+
}
30+
}
31+
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
using Arrowgene.Ddon.Server;
2+
using Arrowgene.Ddon.Shared.Entity.PacketStructure;
3+
using Arrowgene.Ddon.Shared.Entity.Structure;
4+
using Arrowgene.Ddon.Shared.Model;
5+
using Arrowgene.Logging;
6+
using System.Collections.Generic;
7+
8+
namespace Arrowgene.Ddon.GameServer.Handler
9+
{
10+
public class EquipUpdateEquipPresetNameHandler : GameRequestPacketHandler<C2SEquipUpdateEquipPresetNameReq, S2CEquipUpdateEquipPresetNameRes>
11+
{
12+
private static readonly ServerLogger Logger = LogProvider.Logger<ServerLogger>(typeof(EquipUpdateEquipPresetNameHandler));
13+
14+
public EquipUpdateEquipPresetNameHandler(DdonGameServer server) : base(server)
15+
{
16+
}
17+
18+
public override S2CEquipUpdateEquipPresetNameRes Handle(GameClient client, C2SEquipUpdateEquipPresetNameReq request)
19+
{
20+
return new S2CEquipUpdateEquipPresetNameRes();
21+
}
22+
}
23+
}
24+

Arrowgene.Ddon.Shared/Entity/EntitySerializer.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,7 @@ static EntitySerializer()
110110
Create(new S2CCraftCraftRankUpNtc.Serializer());
111111
Create(new CDataCurrentEquipInfo.Serializer());
112112
Create(new CDataEquipSlot.Serializer());
113+
Create(new CDataEquipPreset.Serializer());
113114
Create(new CDataDeliveredItem.Serializer());
114115
Create(new CDataDeliveredItemRecord.Serializer());
115116
Create(new CDataDeliveryItem.Serializer());
@@ -256,6 +257,8 @@ static EntitySerializer()
256257
Create(new CDataRegisterdPawnList.Serializer());
257258
Create(new CDataPlayPointDataSerializer());
258259
Create(new CDataPresetAbilityParam.Serializer());
260+
Create(new CDataPresetEquipInfo.Serializer());
261+
Create(new CDatapresetEquipUnk0.Serializer());
259262
Create(new CDataPriorityQuest.Serializer());
260263
Create(new CDataPriorityQuestSetting.Serializer());
261264

@@ -479,6 +482,9 @@ static EntitySerializer()
479482
Create(new C2SEquipUpdateHideCharacterLanternReq.Serializer());
480483
Create(new C2SEquipUpdateHidePawnHeadArmorReq.Serializer());
481484
Create(new C2SEquipUpdateHidePawnLanternReq.Serializer());
485+
Create(new C2SEquipGetEquipPresetListReq.Serializer());
486+
Create(new C2SEquipUpdateEquipPresetReq.Serializer());
487+
Create(new C2SEquipUpdateEquipPresetNameReq.Serializer());
482488

483489
Create(new C2SEntryBoardEntryBoardListReq.Serializer());
484490
Create(new C2SEntryBoardEntryBoardItemCreateReq.Serializer());
@@ -940,6 +946,10 @@ static EntitySerializer()
940946
Create(new S2CEquipUpdateHideCharacterLanternRes.Serializer());
941947
Create(new S2CEquipUpdateHidePawnHeadArmorRes.Serializer());
942948
Create(new S2CEquipUpdateHidePawnLanternRes.Serializer());
949+
Create(new S2CEquipGetEquipPresetListRes.Serializer());
950+
Create(new S2CEquipUpdateEquipPresetRes.Serializer());
951+
Create(new S2CEquipUpdateEquipPresetNameRes.Serializer());
952+
943953
Create(new S2CExtendEquipSlotNtc.Serializer());
944954
Create(new S2CGpGetGpRes.Serializer());
945955
Create(new S2CGpGetGpDetailRes.Serializer());
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
using Arrowgene.Buffers;
2+
using Arrowgene.Ddon.Shared.Network;
3+
4+
namespace Arrowgene.Ddon.Shared.Entity.PacketStructure
5+
{
6+
public class C2SEquipGetEquipPresetListReq : IPacketStructure
7+
{
8+
public PacketId Id => PacketId.C2S_EQUIP_GET_EQUIP_PRESET_LIST_REQ;
9+
10+
public class Serializer : PacketEntitySerializer<C2SEquipGetEquipPresetListReq>
11+
{
12+
public override void Write(IBuffer buffer, C2SEquipGetEquipPresetListReq obj)
13+
{
14+
}
15+
16+
public override C2SEquipGetEquipPresetListReq Read(IBuffer buffer)
17+
{
18+
C2SEquipGetEquipPresetListReq obj = new C2SEquipGetEquipPresetListReq();
19+
return obj;
20+
}
21+
}
22+
}
23+
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
using Arrowgene.Buffers;
2+
using Arrowgene.Ddon.Shared.Network;
3+
4+
namespace Arrowgene.Ddon.Shared.Entity.PacketStructure
5+
{
6+
public class C2SEquipUpdateEquipPresetNameReq : IPacketStructure
7+
{
8+
public PacketId Id => PacketId.C2S_EQUIP_UPDATE_EQUIP_PRESET_NAME_REQ;
9+
10+
public C2SEquipUpdateEquipPresetNameReq()
11+
{
12+
}
13+
14+
public uint PresetNo { get; set; }
15+
public string PresetName { get; set; }
16+
17+
public class Serializer : PacketEntitySerializer<C2SEquipUpdateEquipPresetNameReq>
18+
{
19+
public override void Write(IBuffer buffer, C2SEquipUpdateEquipPresetNameReq obj)
20+
{
21+
WriteUInt32(buffer, obj.PresetNo);
22+
WriteMtString(buffer, obj.PresetName);
23+
}
24+
25+
public override C2SEquipUpdateEquipPresetNameReq Read(IBuffer buffer)
26+
{
27+
C2SEquipUpdateEquipPresetNameReq obj = new C2SEquipUpdateEquipPresetNameReq();
28+
obj.PresetNo = ReadUInt32(buffer);
29+
obj.PresetName = ReadMtString(buffer);
30+
return obj;
31+
}
32+
}
33+
}
34+
}
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
using Arrowgene.Buffers;
2+
using Arrowgene.Ddon.Shared.Network;
3+
4+
namespace Arrowgene.Ddon.Shared.Entity.PacketStructure
5+
{
6+
public class C2SEquipUpdateEquipPresetReq : IPacketStructure
7+
{
8+
public C2SEquipUpdateEquipPresetReq()
9+
{
10+
PresetName = string.Empty;
11+
}
12+
13+
public PacketId Id => PacketId.C2S_EQUIP_UPDATE_EQUIP_PRESET_REQ;
14+
15+
public uint PresetNo { get; set; }
16+
public uint PawnId { get; set; }
17+
public uint Type { get; set; }
18+
public string PresetName { get; set; }
19+
20+
public class Serializer : PacketEntitySerializer<C2SEquipUpdateEquipPresetReq>
21+
{
22+
public override void Write(IBuffer buffer, C2SEquipUpdateEquipPresetReq obj)
23+
{
24+
WriteUInt32(buffer, obj.PresetNo);
25+
WriteUInt32(buffer, obj.PawnId);
26+
WriteUInt32(buffer, obj.Type);
27+
WriteMtString(buffer, obj.PresetName);
28+
}
29+
30+
public override C2SEquipUpdateEquipPresetReq Read(IBuffer buffer)
31+
{
32+
C2SEquipUpdateEquipPresetReq obj = new C2SEquipUpdateEquipPresetReq();
33+
obj.PresetNo = ReadUInt32(buffer);
34+
obj.PawnId = ReadUInt32(buffer);
35+
obj.Type = ReadUInt32(buffer);
36+
obj.PresetName = ReadMtString(buffer);
37+
return obj;
38+
}
39+
}
40+
}
41+
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
using System.Collections.Generic;
2+
using Arrowgene.Buffers;
3+
using Arrowgene.Ddon.Shared.Entity.Structure;
4+
using Arrowgene.Ddon.Shared.Network;
5+
6+
namespace Arrowgene.Ddon.Shared.Entity.PacketStructure
7+
{
8+
public class S2CEquipGetEquipPresetListRes : ServerResponse
9+
{
10+
public override PacketId Id => PacketId.S2C_EQUIP_GET_EQUIP_PRESET_LIST_RES;
11+
12+
public S2CEquipGetEquipPresetListRes()
13+
{
14+
EquipPresetList = new List<CDataEquipPreset>();
15+
}
16+
17+
public List<CDataEquipPreset> EquipPresetList;
18+
19+
public class Serializer : PacketEntitySerializer<S2CEquipGetEquipPresetListRes>
20+
{
21+
public override void Write(IBuffer buffer, S2CEquipGetEquipPresetListRes obj)
22+
{
23+
WriteServerResponse(buffer, obj);
24+
WriteEntityList(buffer, obj.EquipPresetList);
25+
}
26+
27+
public override S2CEquipGetEquipPresetListRes Read(IBuffer buffer)
28+
{
29+
S2CEquipGetEquipPresetListRes obj = new S2CEquipGetEquipPresetListRes();
30+
ReadServerResponse(buffer, obj);
31+
obj.EquipPresetList = ReadEntityList<CDataEquipPreset>(buffer);
32+
return obj;
33+
}
34+
}
35+
}
36+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
using Arrowgene.Buffers;
2+
using Arrowgene.Ddon.Shared.Entity.Structure;
3+
using Arrowgene.Ddon.Shared.Network;
4+
5+
namespace Arrowgene.Ddon.Shared.Entity.PacketStructure
6+
{
7+
public class S2CEquipUpdateEquipPresetNameRes : ServerResponse
8+
{
9+
public override PacketId Id => PacketId.S2C_EQUIP_UPDATE_EQUIP_PRESET_NAME_RES;
10+
11+
public S2CEquipUpdateEquipPresetNameRes()
12+
{
13+
}
14+
15+
public class Serializer : PacketEntitySerializer<S2CEquipUpdateEquipPresetNameRes>
16+
{
17+
public override void Write(IBuffer buffer, S2CEquipUpdateEquipPresetNameRes obj)
18+
{
19+
WriteServerResponse(buffer, obj);
20+
}
21+
22+
public override S2CEquipUpdateEquipPresetNameRes Read(IBuffer buffer)
23+
{
24+
S2CEquipUpdateEquipPresetNameRes obj = new S2CEquipUpdateEquipPresetNameRes();
25+
ReadServerResponse(buffer, obj);
26+
return obj;
27+
}
28+
}
29+
}
30+
}

0 commit comments

Comments
 (0)