mirror of
https://github.com/sebastian-heinz/Arrowgene.DragonsDogmaOnline
synced 2026-08-03 11:12:41 -04:00
- Added support to earn JP by consuming job point items. - Added a new game server setting to configure the maximum amount of JP which can be held at once per job. Set the default value to 50000 which was found in pcap.
67 lines
3.8 KiB
C#
67 lines
3.8 KiB
C#
using Arrowgene.Ddon.GameServer.Dump;
|
|
using Arrowgene.Ddon.Server;
|
|
using Arrowgene.Ddon.Shared.Entity.PacketStructure;
|
|
using Arrowgene.Ddon.Shared.Entity.Structure;
|
|
using Arrowgene.Logging;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
|
|
namespace Arrowgene.Ddon.GameServer.Handler
|
|
{
|
|
public class ServerGetGameSettingHandler : GameRequestPacketHandler<C2SServerGetGameSettingReq, S2CServerGetGameSettingRes>
|
|
{
|
|
private static readonly ServerLogger Logger = LogProvider.Logger<ServerLogger>(typeof(ServerGetGameSettingHandler));
|
|
|
|
public ServerGetGameSettingHandler(DdonGameServer server) : base(server)
|
|
{
|
|
}
|
|
|
|
public override S2CServerGetGameSettingRes Handle(GameClient client, C2SServerGetGameSettingReq request)
|
|
{
|
|
var res = new S2CServerGetGameSettingRes.Serializer().Read(GameDump.Dump_10.AsBuffer());
|
|
|
|
res.GameSetting.JobLevelMax = Server.GameSettings.GameServerSettings.JobLevelMax;
|
|
res.GameSetting.JobPointMax = Server.GameSettings.GameServerSettings.JobPointMax;
|
|
|
|
res.GameSetting.ExpRequiredPerLevel[0].ExpList = res.GameSetting.ExpRequiredPerLevel[0].ExpList.Take((int)res.GameSetting.JobLevelMax).ToList();
|
|
|
|
res.GameSetting.EnableVisualEquip = Server.GameSettings.GameServerSettings.EnableVisualEquip;
|
|
|
|
res.GameSetting.ClanMemberMax = Server.GameSettings.GameServerSettings.ClanMemberMax;
|
|
res.GameSetting.CharacterNumMax = Server.GameSettings.GameServerSettings.CharacterNumMax;
|
|
res.GameSetting.FriendListMax = Server.GameSettings.GameServerSettings.FriendListMax;
|
|
|
|
res.GameSetting.UrlInfoList = new List<CDataURLInfo>()
|
|
{
|
|
new() {Type = 1, URL = Server.GameSettings.GameServerSettings.UrlManual},
|
|
new() {Type = 2, URL = Server.GameSettings.GameServerSettings.UrlShopDetail},
|
|
new() {Type = 3, URL = Server.GameSettings.GameServerSettings.UrlShopCounterA},
|
|
new() {Type = 4, URL = Server.GameSettings.GameServerSettings.UrlShopAttention},
|
|
new() {Type = 5, URL = Server.GameSettings.GameServerSettings.UrlShopStoneLimit},
|
|
new() {Type = 6, URL = Server.GameSettings.GameServerSettings.UrlShopCounterB},
|
|
new() {Type = 7, URL = Server.GameSettings.GameServerSettings.UrlChargeCallback},
|
|
new() {Type = 8, URL = Server.GameSettings.GameServerSettings.UrlChargeA},
|
|
new() {Type = 9, URL = Server.GameSettings.GameServerSettings.UrlSample9},
|
|
new() {Type = 10, URL = Server.GameSettings.GameServerSettings.UrlSample10},
|
|
new() {Type = 11, URL = Server.GameSettings.GameServerSettings.UrlCampaignBanner},
|
|
new() {Type = 12, URL = Server.GameSettings.GameServerSettings.UrlSupportIndex},
|
|
new() {Type = 13, URL = Server.GameSettings.GameServerSettings.UrlPhotoupAuthorize},
|
|
new() {Type = 14, URL = Server.GameSettings.GameServerSettings.UrlApiA},
|
|
new() {Type = 15, URL = Server.GameSettings.GameServerSettings.UrlApiB},
|
|
new() {Type = 16, URL = Server.GameSettings.GameServerSettings.UrlIndex},
|
|
new() {Type = 17, URL = Server.GameSettings.GameServerSettings.UrlCampaign},
|
|
new() {Type = 19, URL = Server.GameSettings.GameServerSettings.UrlChargeB},
|
|
new() {Type = 20, URL = Server.GameSettings.GameServerSettings.UrlCompanionImage},
|
|
};
|
|
|
|
res.GameSetting.PlayPointMax = Server.GameSettings.GameServerSettings.PlayPointMax;
|
|
res.GameSetting.WalletLimits = Server.GameSettings.GameServerSettings.WalletLimits.Select(x => new CDataWalletLimit()
|
|
{
|
|
WalletType = x.Key,
|
|
MaxValue = x.Value,
|
|
}).ToList();
|
|
|
|
return res;
|
|
}
|
|
}
|
|
}
|