mirror of
https://github.com/EpinelPS/EpinelPS.git
synced 2025-12-14 07:55:01 +01:00
save campaign field object
This commit is contained in:
@@ -28,7 +28,6 @@ namespace nksrv.LobbyServer.Msgs.Campaign
|
||||
|
||||
|
||||
|
||||
|
||||
WriteData(response);
|
||||
}
|
||||
}
|
||||
|
||||
37
nksrv/LobbyServer/Msgs/Campaign/SaveFieldObject.cs
Normal file
37
nksrv/LobbyServer/Msgs/Campaign/SaveFieldObject.cs
Normal file
@@ -0,0 +1,37 @@
|
||||
using nksrv.StaticInfo;
|
||||
using nksrv.Utils;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace nksrv.LobbyServer.Msgs.Campaign
|
||||
{
|
||||
[PacketPath("/campaign/savefieldobject")]
|
||||
public class SaveFieldObject : LobbyMsgHandler
|
||||
{
|
||||
protected override async Task HandleAsync()
|
||||
{
|
||||
var req = await ReadData<ReqSaveCampaignFieldObject>();
|
||||
var user = GetUser();
|
||||
|
||||
Console.WriteLine("Map ID: " + req.MapId);
|
||||
|
||||
var response = new ResSaveCampaignFieldObject();
|
||||
|
||||
Console.WriteLine($"save {req.MapId} with {req.FieldObject.PositionID}");
|
||||
|
||||
var chapter = StaticDataParser.Instance.GetNormalChapterNumberFromFieldName(req.MapId);
|
||||
var mod = req.MapId.Contains("hard") ? "Hard" : "Normal";
|
||||
var key = chapter + "_" + mod;
|
||||
var field = user.FieldInfo[key];
|
||||
|
||||
field.CompletedObjects.Add(new NetFieldObject() { PositionId = req.FieldObject.PositionID, Json = req.FieldObject.Json, Type = req.FieldObject.Type });
|
||||
JsonDb.Save();
|
||||
|
||||
|
||||
WriteData(response);
|
||||
}
|
||||
}
|
||||
}
|
||||
37
nksrv/LobbyServer/Msgs/Event/CompleteEventScenario.cs
Normal file
37
nksrv/LobbyServer/Msgs/Event/CompleteEventScenario.cs
Normal file
@@ -0,0 +1,37 @@
|
||||
using nksrv.Utils;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace nksrv.LobbyServer.Msgs.Event
|
||||
{
|
||||
[PacketPath("/event/scenario/complete")]
|
||||
public class CompleteEventScenario : LobbyMsgHandler
|
||||
{
|
||||
protected override async Task HandleAsync()
|
||||
{
|
||||
var req = await ReadData<ReqSetEventScenarioComplete>();
|
||||
var user = GetUser();
|
||||
|
||||
if (user.EventInfo.ContainsKey(req.EventID))
|
||||
{
|
||||
var evt = user.EventInfo[req.EventID];
|
||||
evt.CompletedScenarios.Add(req.ScenarioId);
|
||||
}
|
||||
else
|
||||
{
|
||||
var evt = new EventData();
|
||||
evt.CompletedScenarios.Add(req.ScenarioId);
|
||||
user.EventInfo.Add(req.EventID, evt);
|
||||
}
|
||||
|
||||
var response = new ResSetEventScenarioComplete();
|
||||
|
||||
// TODO reward
|
||||
|
||||
WriteData(response);
|
||||
}
|
||||
}
|
||||
}
|
||||
24
nksrv/LobbyServer/Msgs/Event/EnterEventField.cs
Normal file
24
nksrv/LobbyServer/Msgs/Event/EnterEventField.cs
Normal file
@@ -0,0 +1,24 @@
|
||||
using nksrv.Utils;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace nksrv.LobbyServer.Msgs.Event
|
||||
{
|
||||
[PacketPath("/eventfield/enter")]
|
||||
public class EnterEventField : LobbyMsgHandler
|
||||
{
|
||||
protected override async Task HandleAsync()
|
||||
{
|
||||
var req = await ReadData<ReqEnterEventField>();
|
||||
|
||||
var response = new ResEnterEventField();
|
||||
|
||||
// TOOD
|
||||
|
||||
WriteData(response);
|
||||
}
|
||||
}
|
||||
}
|
||||
32
nksrv/LobbyServer/Msgs/Event/GetEventScenario.cs
Normal file
32
nksrv/LobbyServer/Msgs/Event/GetEventScenario.cs
Normal file
@@ -0,0 +1,32 @@
|
||||
using nksrv.Utils;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace nksrv.LobbyServer.Msgs.Event
|
||||
{
|
||||
[PacketPath("/event/scenario/get")]
|
||||
public class GetEventScenario : LobbyMsgHandler
|
||||
{
|
||||
protected override async Task HandleAsync()
|
||||
{
|
||||
var req = await ReadData<ReqGetEventScenarioData>();
|
||||
var user = GetUser();
|
||||
|
||||
var response = new ResGetEventScenarioData();
|
||||
if (user.EventInfo.ContainsKey(req.EventID))
|
||||
{
|
||||
var evt = user.EventInfo[req.EventID];
|
||||
response.ScenarioIdList.AddRange(evt.CompletedScenarios);
|
||||
}
|
||||
else
|
||||
{
|
||||
user.EventInfo.Add(req.EventID, new EventData());
|
||||
}
|
||||
|
||||
WriteData(response);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -89,7 +89,7 @@ namespace nksrv.LobbyServer.Msgs.Event
|
||||
EventVisibleDate = DateTime.UtcNow.Subtract(TimeSpan.FromDays(1)).Ticks,
|
||||
EventDisableDate = DateTime.Now.AddDays(20).Ticks,
|
||||
EventEndDate = DateTime.Now.AddDays(20).Ticks,
|
||||
EventSystemType = 2
|
||||
EventSystemType = 22
|
||||
});
|
||||
|
||||
// Aegis the Diver event
|
||||
|
||||
@@ -18,7 +18,7 @@ namespace nksrv.LobbyServer.Msgs.Inventory
|
||||
var response = new ResGetInventoryData();
|
||||
foreach (var item in user.Items)
|
||||
{
|
||||
response.Items.Add(new NetUserItemData() { Tid = item.ItemType, Count = 1 });
|
||||
response.Items.Add(new NetUserItemData() { Count = item.Count, Tid = item.ItemType, Csn = item.Csn, Lv = item.Level, Exp = item.Exp, Corporation = item.Corp, Isn = item.Isn, Position = item.Position });
|
||||
}
|
||||
|
||||
// TODO implement
|
||||
|
||||
@@ -43,6 +43,10 @@ namespace nksrv.LobbyServer.Msgs.Stage
|
||||
{
|
||||
f.Stages.Add(stage);
|
||||
}
|
||||
foreach (var obj in item.Value.CompletedObjects)
|
||||
{
|
||||
f.Objects.Add(obj);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -53,7 +53,7 @@ namespace nksrv.LobbyServer.Msgs.User
|
||||
}
|
||||
foreach (var item in user.Items)
|
||||
{
|
||||
response.Items.Add(new NetUserItemData() { Count = 1, Tid = item.ItemType});
|
||||
response.Items.Add(new NetUserItemData() { Count = item.Count, Tid = item.ItemType, Csn = item.Csn, Lv = item.Level, Exp = item.Exp, Corporation = item.Corp, Isn = item.Isn, Position = item.Position});
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -2066,3 +2066,52 @@ message ReqExistScenarioBookmark {
|
||||
message ResExistScenarioBookmark {
|
||||
repeated string existingBookmarkList = 1;
|
||||
}
|
||||
|
||||
message ReqGetEventScenarioData {
|
||||
int32 EventID = 2;
|
||||
}
|
||||
message ResGetEventScenarioData {
|
||||
repeated string scenarioIdList = 1;
|
||||
repeated string bookmarkScenarioList = 2;
|
||||
}
|
||||
|
||||
message ReqSetEventScenarioComplete {
|
||||
int32 EventID = 2;
|
||||
string ScenarioId = 3;
|
||||
int32 DialogType = 4;
|
||||
}
|
||||
message ResSetEventScenarioComplete {
|
||||
NetRewardData Reward = 1;
|
||||
}
|
||||
|
||||
message ReqEnterEventField {
|
||||
string MapId = 1;
|
||||
repeated int32 ProgressEventGroupIdList = 2;
|
||||
int32 EventFieldId = 3;
|
||||
}
|
||||
message NetUserAutoChargeData {
|
||||
int32 AutoChargeId = 1;
|
||||
int32 Value = 2;
|
||||
}
|
||||
|
||||
message NetNonResettableFieldObject {
|
||||
string PositionId = 1;
|
||||
int32 Type = 2;
|
||||
string Json = 3;
|
||||
}
|
||||
|
||||
message ResEnterEventField {
|
||||
NetUserTeamData team = 2;
|
||||
repeated NetCampaignTeamPosition TeamPositions = 3;
|
||||
string json = 4;
|
||||
repeated int32 userEventIdList = 5;
|
||||
repeated NetUserAutoChargeData autoChargeDataList = 6;
|
||||
repeated NetNonResettableFieldObject NonResettableFieldObjects = 7;
|
||||
}
|
||||
|
||||
message ReqSaveCampaignFieldObject {
|
||||
string mapId = 2;
|
||||
NetCampaignFieldObject fieldObject = 3;
|
||||
}
|
||||
message ResSaveCampaignFieldObject {
|
||||
}
|
||||
@@ -21,6 +21,7 @@ namespace nksrv.Utils
|
||||
public class FieldInfo
|
||||
{
|
||||
public List<NetFieldStageData> CompletedStages = [];
|
||||
public List<NetFieldObject> CompletedObjects = [];
|
||||
}
|
||||
|
||||
public class Character
|
||||
@@ -51,6 +52,17 @@ namespace nksrv.Utils
|
||||
public class ItemData
|
||||
{
|
||||
public int ItemType;
|
||||
public long Csn;
|
||||
public int Count;
|
||||
public int Level;
|
||||
public int Exp;
|
||||
public int Position;
|
||||
public int Corp;
|
||||
public long Isn;
|
||||
}
|
||||
public class EventData
|
||||
{
|
||||
public List<string> CompletedScenarios = new();
|
||||
}
|
||||
|
||||
public class User
|
||||
@@ -95,6 +107,9 @@ namespace nksrv.Utils
|
||||
public NetOutpostBattleLevel OutpostBattleLevel = new() { Level = 1 };
|
||||
public int GachaTutorialPlayCount = 0;
|
||||
|
||||
// Event data
|
||||
public Dictionary<int, EventData> EventInfo = new();
|
||||
|
||||
public void SetQuest(int tid, bool recieved)
|
||||
{
|
||||
if (MainQuestData.ContainsKey(tid))
|
||||
|
||||
Reference in New Issue
Block a user