Skip to content

Commit 8b9c2d8

Browse files
committed
feat: Equipment Presets
Added the ability to save equipment presets.
1 parent 0d8b2c0 commit 8b9c2d8

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
@@ -340,6 +340,9 @@ private void LoadPacketHandler()
340340
AddHandler(new EquipUpdateHideCharacterLanternHandler(this));
341341
AddHandler(new EquipUpdateHidePawnHeadArmorHandler(this));
342342
AddHandler(new EquipUpdateHidePawnLanternHandler(this));
343+
AddHandler(new EquipGetEquipPresetListHandler(this));
344+
AddHandler(new EquipUpdateEquipPresetHandler(this));
345+
AddHandler(new EquipUpdateEquipPresetNameHandler(this));
343346

344347
AddHandler(new EventStartHandler(this));
345348
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
@@ -129,6 +129,7 @@ static EntitySerializer()
129129
Create(new S2CCraftCraftRankUpNtc.Serializer());
130130
Create(new CDataCurrentEquipInfo.Serializer());
131131
Create(new CDataEquipSlot.Serializer());
132+
Create(new CDataEquipPreset.Serializer());
132133
Create(new CDataDeliveredItem.Serializer());
133134
Create(new CDataDeliveredItemRecord.Serializer());
134135
Create(new CDataDeliveryItem.Serializer());
@@ -278,6 +279,8 @@ static EntitySerializer()
278279

279280
Create(new CDataPlayPointDataSerializer());
280281
Create(new CDataPresetAbilityParam.Serializer());
282+
Create(new CDataPresetEquipInfo.Serializer());
283+
Create(new CDatapresetEquipUnk0.Serializer());
281284
Create(new CDataPriorityQuest.Serializer());
282285
Create(new CDataPriorityQuestSetting.Serializer());
283286

@@ -522,6 +525,9 @@ static EntitySerializer()
522525
Create(new C2SEquipUpdateHideCharacterLanternReq.Serializer());
523526
Create(new C2SEquipUpdateHidePawnHeadArmorReq.Serializer());
524527
Create(new C2SEquipUpdateHidePawnLanternReq.Serializer());
528+
Create(new C2SEquipGetEquipPresetListReq.Serializer());
529+
Create(new C2SEquipUpdateEquipPresetReq.Serializer());
530+
Create(new C2SEquipUpdateEquipPresetNameReq.Serializer());
525531

526532
Create(new C2SEntryBoardEntryBoardListReq.Serializer());
527533
Create(new C2SEntryBoardEntryBoardItemCreateReq.Serializer());
@@ -1020,6 +1026,10 @@ static EntitySerializer()
10201026
Create(new S2CEquipUpdateHideCharacterLanternRes.Serializer());
10211027
Create(new S2CEquipUpdateHidePawnHeadArmorRes.Serializer());
10221028
Create(new S2CEquipUpdateHidePawnLanternRes.Serializer());
1029+
Create(new S2CEquipGetEquipPresetListRes.Serializer());
1030+
Create(new S2CEquipUpdateEquipPresetRes.Serializer());
1031+
Create(new S2CEquipUpdateEquipPresetNameRes.Serializer());
1032+
10231033
Create(new S2CExtendEquipSlotNtc.Serializer());
10241034
Create(new S2CGpGetGpRes.Serializer());
10251035
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)