mirror of
https://github.com/rafi1212122/PemukulPaku
synced 2025-12-13 12:24:35 +01:00
yae openworld but dialogs aren't triggered
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
using Common.Resources.Proto;
|
||||
|
||||
namespace PemukulPaku.GameServer.Handlers.Openworld
|
||||
{
|
||||
[PacketCmdId(CmdId.AcceptOpenworldStoryReq)]
|
||||
internal class AcceptOpenworldStoryReqHandler : IPacketHandler
|
||||
{
|
||||
public void Handle(Session session, Packet packet)
|
||||
{
|
||||
AcceptOpenworldStoryReq Data = packet.GetDecodedBody<AcceptOpenworldStoryReq>();
|
||||
AcceptOpenworldStoryRsp Rsp = new()
|
||||
{
|
||||
retcode = AcceptOpenworldStoryRsp.Retcode.Succ,
|
||||
StoryId = Data.StoryId
|
||||
};
|
||||
session.Player.User.AddOWStory(Data.StoryId);
|
||||
|
||||
session.Send(Packet.FromProto(Rsp, CmdId.AcceptOpenworldStoryRsp));
|
||||
session.ProcessPacket(Packet.FromProto(new GetOpenworldStoryReq() { }, CmdId.GetOpenworldStoryReq));
|
||||
}
|
||||
}
|
||||
}
|
||||
37
GameServer/Handlers/Openworld/GetNewOpenworldReqHandler.cs
Normal file
37
GameServer/Handlers/Openworld/GetNewOpenworldReqHandler.cs
Normal file
@@ -0,0 +1,37 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Common;
|
||||
using Common.Database;
|
||||
using Common.Resources.Proto;
|
||||
|
||||
namespace PemukulPaku.GameServer.Handlers.Openworld
|
||||
{
|
||||
[PacketCmdId(CmdId.GetNewOpenworldReq)]
|
||||
internal class GetNewOpenworldReqHandler : IPacketHandler
|
||||
{
|
||||
public void Handle(Session session, Packet packet)
|
||||
{
|
||||
GetNewOpenworldRsp Rsp = new()
|
||||
{
|
||||
retcode = GetNewOpenworldRsp.Retcode.Succ,
|
||||
DataType = OpenworldDataType.OpenworldDataAll,
|
||||
QuestLevel = 1,
|
||||
QuestStar = 0,
|
||||
MaxQuestLevel = 1,
|
||||
NextRefreshTime = (uint)Global.GetUnixInSeconds() + 3600 * 24 * 3,
|
||||
CloseTime = (uint)Global.GetUnixInSeconds() + 3600 * 24 * 3,
|
||||
GlobalRandomSeed = Global.GetRandomSeed()
|
||||
};
|
||||
Rsp.Techs.AddRange(OpenWorld.ShowMapList.Select(x => new OpenworldTechData() { MapId = x }));
|
||||
Rsp.MapLists.AddRange(session.Player.OpenWorlds.Select(ow => new OpenworldMapBriefData() {
|
||||
MapId = ow.MapId,
|
||||
Status = 3,
|
||||
Cycle = ow.Cycle,
|
||||
QuestLevel = ow.QuestLevel,
|
||||
HasTakeFinishRewardCycle = ow.HasTakeFinishRewardCycle
|
||||
}));
|
||||
|
||||
session.Send(Packet.FromProto(Rsp, CmdId.GetNewOpenworldRsp));
|
||||
}
|
||||
}
|
||||
}
|
||||
45
GameServer/Handlers/Openworld/GetOpenworldMapReqHandler.cs
Normal file
45
GameServer/Handlers/Openworld/GetOpenworldMapReqHandler.cs
Normal file
@@ -0,0 +1,45 @@
|
||||
using Common;
|
||||
using Common.Database;
|
||||
using Common.Resources.Proto;
|
||||
|
||||
namespace PemukulPaku.GameServer.Handlers.Openworld
|
||||
{
|
||||
[PacketCmdId(CmdId.GetOpenworldMapReq)]
|
||||
internal class GetOpenworldMapReqHandler : IPacketHandler
|
||||
{
|
||||
public void Handle(Session session, Packet packet)
|
||||
{
|
||||
GetOpenworldMapReq Data = packet.GetDecodedBody<GetOpenworldMapReq>();
|
||||
OpenWorldScheme? OpenWorldData = session.Player.OpenWorlds.FirstOrDefault(x => x.MapId == Data.MapId);
|
||||
if (OpenWorldData is null)
|
||||
return;
|
||||
GetOpenworldMapRsp Rsp = new()
|
||||
{
|
||||
retcode = GetOpenworldMapRsp.Retcode.Succ,
|
||||
MapId = Data.MapId,
|
||||
Cycle = OpenWorldData.Cycle,
|
||||
EventRandomSeed = Global.GetRandomSeed(),
|
||||
SpawnPoint = OpenWorldData.SpawnPoint,
|
||||
Status = 3,
|
||||
QuestData = new()
|
||||
{
|
||||
IsOpen = false,
|
||||
DayOpenTimes = 0,
|
||||
RefreshLeftTimes = 0,
|
||||
NextRefreshCost = 0,
|
||||
IsCanAbandon = true,
|
||||
ChallengeScore = 0,
|
||||
IsQuestFinish = false,
|
||||
OpenQuestTime = 0
|
||||
},
|
||||
TechData = new()
|
||||
{
|
||||
MapId = Data.MapId
|
||||
},
|
||||
HasTakeFinishRewardCycle = OpenWorldData.HasTakeFinishRewardCycle
|
||||
};
|
||||
|
||||
session.Send(Packet.FromProto(Rsp, CmdId.GetOpenworldMapRsp));
|
||||
}
|
||||
}
|
||||
}
|
||||
24
GameServer/Handlers/Openworld/GetOpenworldStageReqHandler.cs
Normal file
24
GameServer/Handlers/Openworld/GetOpenworldStageReqHandler.cs
Normal file
@@ -0,0 +1,24 @@
|
||||
using Common.Resources.Proto;
|
||||
|
||||
namespace PemukulPaku.GameServer.Handlers.Openworld
|
||||
{
|
||||
[PacketCmdId(CmdId.GetOpenworldStageReq)]
|
||||
internal class GetOpenworldStageReqHandler : IPacketHandler
|
||||
{
|
||||
public void Handle(Session session, Packet packet)
|
||||
{
|
||||
GetOpenworldStageReq Data = packet.GetDecodedBody<GetOpenworldStageReq>();
|
||||
|
||||
session.Send(Packet.FromProto(new GetOpenworldStageRsp()
|
||||
{
|
||||
retcode = GetOpenworldStageRsp.Retcode.Succ,
|
||||
MapId = Data.MapId,
|
||||
MechaLostHpPercent = 0,
|
||||
MechaLostSpPercent = 0,
|
||||
MapEnergy = 0,
|
||||
ScDlcFeverScore = 0,
|
||||
ScDlcClimaxScore = 0
|
||||
}, CmdId.GetOpenworldStageRsp));
|
||||
}
|
||||
}
|
||||
}
|
||||
21
GameServer/Handlers/Openworld/GetOpenworldStoryReqHandler.cs
Normal file
21
GameServer/Handlers/Openworld/GetOpenworldStoryReqHandler.cs
Normal file
@@ -0,0 +1,21 @@
|
||||
using Common.Resources.Proto;
|
||||
|
||||
namespace PemukulPaku.GameServer.Handlers.Openworld
|
||||
{
|
||||
[PacketCmdId(CmdId.GetOpenworldStoryReq)]
|
||||
internal class GetOpenworldStoryReqHandler : IPacketHandler
|
||||
{
|
||||
public void Handle(Session session, Packet packet)
|
||||
{
|
||||
GetOpenworldStoryRsp Rsp = new()
|
||||
{
|
||||
retcode = GetOpenworldStoryRsp.Retcode.Succ,
|
||||
FinishStoryIdLists = session.Player.User.OpenWorldStory.Where(x => x.IsDone).Select(x => x.StoryId).ToArray(),
|
||||
IsAll = true
|
||||
};
|
||||
Rsp.CurStoryLists.AddRange(session.Player.User.OpenWorldStory.Where(x => !x.IsDone).Select(x => x.ToProto()));
|
||||
|
||||
session.Send(Packet.FromProto(Rsp, CmdId.GetOpenworldStoryRsp));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
using Common.Resources.Proto;
|
||||
|
||||
namespace PemukulPaku.GameServer.Handlers.Openworld
|
||||
{
|
||||
[PacketCmdId(CmdId.OpenworldStageBeginReq)]
|
||||
internal class OpenworldStageBeginReqHandler : IPacketHandler
|
||||
{
|
||||
public void Handle(Session session, Packet packet)
|
||||
{
|
||||
OpenworldStageBeginReq Data = packet.GetDecodedBody<OpenworldStageBeginReq>();
|
||||
|
||||
session.Send(Packet.FromProto(new OpenworldStageBeginRsp()
|
||||
{
|
||||
retcode = OpenworldStageBeginRsp.Retcode.Succ,
|
||||
MapId = Data.MapId
|
||||
}, CmdId.OpenworldStageBeginRsp));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
using Common.Database;
|
||||
using Common.Resources.Proto;
|
||||
|
||||
namespace PemukulPaku.GameServer.Handlers.Openworld
|
||||
{
|
||||
[PacketCmdId(CmdId.ReportOpenworldSpawnPointReq)]
|
||||
internal class ReportOpenworldSpawnPointReqHandler : IPacketHandler
|
||||
{
|
||||
public void Handle(Session session, Packet packet)
|
||||
{
|
||||
ReportOpenworldSpawnPointReq Data = packet.GetDecodedBody<ReportOpenworldSpawnPointReq>();
|
||||
ReportOpenworldSpawnPointRsp Rsp = new()
|
||||
{
|
||||
retcode = ReportOpenworldSpawnPointRsp.Retcode.Succ,
|
||||
MapId = Data.MapId,
|
||||
PointInfo = Data.PointInfo
|
||||
};
|
||||
OpenWorldScheme? OpenWorldData = session.Player.OpenWorlds.FirstOrDefault(x => x.MapId == Data.MapId);
|
||||
if (OpenWorldData is not null)
|
||||
OpenWorldData.SpawnPoint = Data.PointInfo;
|
||||
|
||||
session.Send(Packet.FromProto(Rsp, CmdId.ReportOpenworldSpawnPointRsp));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
using Common.Resources.Proto;
|
||||
using Common.Database;
|
||||
|
||||
namespace PemukulPaku.GameServer.Handlers.Openworld
|
||||
{
|
||||
[PacketCmdId(CmdId.SetOpenworldStoryProgressReq)]
|
||||
internal class SetOpenworldStoryProgressReqHandler : IPacketHandler
|
||||
{
|
||||
public void Handle(Session session, Packet packet)
|
||||
{
|
||||
SetOpenworldStoryProgressReq Data = packet.GetDecodedBody<SetOpenworldStoryProgressReq>();
|
||||
UserScheme.OpenWorldStoryScheme? ow = session.Player.User.OpenWorldStory.FirstOrDefault(x => x.StoryId == Data.StoryId);
|
||||
if (ow is not null)
|
||||
ow.StoryProgress = Data.StoryProgress;
|
||||
|
||||
session.Send(Packet.FromProto(new SetOpenworldStoryProgressRsp() { retcode = SetOpenworldStoryProgressRsp.Retcode.Succ, StoryId = Data.StoryId }, CmdId.SetOpenworldStoryProgressRsp));
|
||||
session.ProcessPacket(Packet.FromProto(new GetOpenworldStoryReq() { }, CmdId.GetOpenworldStoryReq));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
using Common.Database;
|
||||
using Common.Resources.Proto;
|
||||
using Common.Utils.ExcelReader;
|
||||
|
||||
namespace PemukulPaku.GameServer.Handlers.Openworld
|
||||
{
|
||||
[PacketCmdId(CmdId.TakeOpenworldCycleFinishRewardReq)]
|
||||
internal class TakeOpenworldCycleFinishRewardReqHandler : IPacketHandler
|
||||
{
|
||||
public void Handle(Session session, Packet packet)
|
||||
{
|
||||
TakeOpenworldCycleFinishRewardReq Data = packet.GetDecodedBody<TakeOpenworldCycleFinishRewardReq>();
|
||||
OpenWorldScheme? ow = session.Player.OpenWorlds.Where(x => x.MapId == Data.MapId).FirstOrDefault();
|
||||
if (ow is not null)
|
||||
{
|
||||
ow.Cycle = OpenWorldCycleData.GetInstance().GetNextCycle(Data.MapId, Data.Cycle);
|
||||
ow.HasTakeFinishRewardCycle = OpenWorldCycleData.GetInstance().GetNextCycle(Data.MapId, Data.Cycle);
|
||||
}
|
||||
|
||||
session.Send(Packet.FromProto(new TakeOpenworldCycleFinishRewardRsp()
|
||||
{
|
||||
retcode = TakeOpenworldCycleFinishRewardRsp.Retcode.Succ,
|
||||
MapId = Data.MapId,
|
||||
Cycle = Data.Cycle
|
||||
}, CmdId.TakeOpenworldCycleFinishRewardRsp));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
using Common.Database;
|
||||
using Common.Resources.Proto;
|
||||
|
||||
namespace PemukulPaku.GameServer.Handlers.Openworld
|
||||
{
|
||||
[PacketCmdId(CmdId.TakeOpenworldStoryRewardReq)]
|
||||
internal class TakeOpenworldStoryRewardReqHandler : IPacketHandler
|
||||
{
|
||||
public void Handle(Session session, Packet packet)
|
||||
{
|
||||
TakeOpenworldStoryRewardReq Data = packet.GetDecodedBody<TakeOpenworldStoryRewardReq>();
|
||||
UserScheme.OpenWorldStoryScheme? ow = session.Player.User.OpenWorldStory.FirstOrDefault(x => x.StoryId == Data.StoryId);
|
||||
if (ow is not null)
|
||||
ow.IsDone = true;
|
||||
|
||||
session.Send(Packet.FromProto(new TakeOpenworldStoryRewardRsp() { retcode = TakeOpenworldStoryRewardRsp.Retcode.Succ, StoryId = Data.StoryId }, CmdId.TakeOpenworldStoryRewardRsp));
|
||||
session.ProcessPacket(Packet.FromProto(new GetOpenworldStoryReq() { }, CmdId.GetOpenworldStoryReq));
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user