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:
@@ -26,7 +26,6 @@ namespace nksrv.LobbyServer.Msgs.Campaign
|
|||||||
// TODO
|
// TODO
|
||||||
response.Reward = new();
|
response.Reward = new();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
WriteData(response);
|
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,
|
EventVisibleDate = DateTime.UtcNow.Subtract(TimeSpan.FromDays(1)).Ticks,
|
||||||
EventDisableDate = DateTime.Now.AddDays(20).Ticks,
|
EventDisableDate = DateTime.Now.AddDays(20).Ticks,
|
||||||
EventEndDate = DateTime.Now.AddDays(20).Ticks,
|
EventEndDate = DateTime.Now.AddDays(20).Ticks,
|
||||||
EventSystemType = 2
|
EventSystemType = 22
|
||||||
});
|
});
|
||||||
|
|
||||||
// Aegis the Diver event
|
// Aegis the Diver event
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ namespace nksrv.LobbyServer.Msgs.Inventory
|
|||||||
var response = new ResGetInventoryData();
|
var response = new ResGetInventoryData();
|
||||||
foreach (var item in user.Items)
|
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
|
// TODO implement
|
||||||
|
|||||||
@@ -43,6 +43,10 @@ namespace nksrv.LobbyServer.Msgs.Stage
|
|||||||
{
|
{
|
||||||
f.Stages.Add(stage);
|
f.Stages.Add(stage);
|
||||||
}
|
}
|
||||||
|
foreach (var obj in item.Value.CompletedObjects)
|
||||||
|
{
|
||||||
|
f.Objects.Add(obj);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ namespace nksrv.LobbyServer.Msgs.User
|
|||||||
}
|
}
|
||||||
foreach (var item in user.Items)
|
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});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -2065,4 +2065,53 @@ message ReqExistScenarioBookmark {
|
|||||||
}
|
}
|
||||||
message ResExistScenarioBookmark {
|
message ResExistScenarioBookmark {
|
||||||
repeated string existingBookmarkList = 1;
|
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 class FieldInfo
|
||||||
{
|
{
|
||||||
public List<NetFieldStageData> CompletedStages = [];
|
public List<NetFieldStageData> CompletedStages = [];
|
||||||
|
public List<NetFieldObject> CompletedObjects = [];
|
||||||
}
|
}
|
||||||
|
|
||||||
public class Character
|
public class Character
|
||||||
@@ -51,6 +52,17 @@ namespace nksrv.Utils
|
|||||||
public class ItemData
|
public class ItemData
|
||||||
{
|
{
|
||||||
public int ItemType;
|
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
|
public class User
|
||||||
@@ -95,6 +107,9 @@ namespace nksrv.Utils
|
|||||||
public NetOutpostBattleLevel OutpostBattleLevel = new() { Level = 1 };
|
public NetOutpostBattleLevel OutpostBattleLevel = new() { Level = 1 };
|
||||||
public int GachaTutorialPlayCount = 0;
|
public int GachaTutorialPlayCount = 0;
|
||||||
|
|
||||||
|
// Event data
|
||||||
|
public Dictionary<int, EventData> EventInfo = new();
|
||||||
|
|
||||||
public void SetQuest(int tid, bool recieved)
|
public void SetQuest(int tid, bool recieved)
|
||||||
{
|
{
|
||||||
if (MainQuestData.ContainsKey(tid))
|
if (MainQuestData.ContainsKey(tid))
|
||||||
|
|||||||
Reference in New Issue
Block a user