Outpost is now working

This commit is contained in:
Mikhail
2024-07-05 09:04:56 -04:00
parent 42261a16b6
commit 18102b9922
9 changed files with 65 additions and 16 deletions

View File

@@ -36,7 +36,7 @@ namespace DataFixupUtil
var startPos = (int)ms.Position;
var contents = FileContents.Skip(startPos).ToArray();
if (contents.Length != 0 && contents[0] == 31)
if (contents.Length > 2 && contents[0] == 0x1f && contents[1] == 0x8b)
{
// gzip compression is used
using Stream csStream = new GZipStream(new MemoryStream(contents), CompressionMode.Decompress);

View File

@@ -10,12 +10,9 @@ namespace ProtobufViewUtil
{
Console.WriteLine("Hello, World!");
StaticDataPackResponse s = new StaticDataPackResponse();
var inn = File.ReadAllBytes(@"C:\Users\Misha\Downloads\staticdatanew");
ResGetOutpostData s = new ResGetOutpostData();
var inn = File.ReadAllBytes(@"C:\Users\Misha\Downloads\getoutpostdatach2done");
s.MergeFrom(inn);
Console.WriteLine("salt1: " + Convert.ToBase64String(s.Salt1.ToArray()));
Console.WriteLine("salt2: " + Convert.ToBase64String(s.Salt2.ToArray()));
Console.WriteLine("sha: " + Convert.ToBase64String(s.Sha256Sum.ToArray()));
Console.WriteLine(s.ToString());
var outt = s.ToByteArray();

View 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.Inventory
{
[PacketPath("/inventory/wearequipment")]
public class WearEquipment : LobbyMsgHandler
{
protected override async Task HandleAsync()
{
var req = await ReadData<ReqWearEquipment>();
var user = GetUser();
var response = new ResWearEquipment();
// TODO implement
WriteData(response);
}
}
}

View File

@@ -22,14 +22,24 @@ namespace nksrv.LobbyServer.Msgs.Outpost
var response = new ResGetOutpostData
{
OutpostBattleLevel = new NetOutpostBattleLevel() { Level = 1 },
CommanderBgm = new NetUserJukeboxDataV2() { CommandBgm = new() { Type = NetJukeboxBgmType.JukeboxTableId, JukeboxTableId = 3012 } },
BattleTime = 864000000000, Jukebox = new(), MaxBattleTime = 864000000000
CommanderBgm = new NetUserJukeboxDataV2() { CommandBgm = new() { Type = NetJukeboxBgmType.JukeboxTableId, JukeboxTableId = 5 } },
BattleTime = 864000000000, Jukebox = new(), MaxBattleTime = 864000000000, SkinGroupId = 1000
};
response.OutpostBattleLevel = user.OutpostBattleLevel;
response.OutpostBattleTime = new NetOutpostBattleTime() { MaxBattleTime = 864000000000, MaxOverBattleTime = 12096000000000, BattleTime = battleTimeMs };
response.Data.Add(new NetUserOutpostData() { SlotId = 1, BuildingId = 22401, IsDone = true, StartAt = 638549982076760660, CompleteAt = 638549982076760660 });
response.Data.Add(new NetUserOutpostData() { SlotId = 4, BuildingId = 22701, IsDone = true, StartAt = 638549982076760660, CompleteAt = 638549982076760660 });
response.Data.Add(new NetUserOutpostData() { SlotId = 5, BuildingId = 22801, IsDone = true, StartAt = 638549982076760660, CompleteAt = 638549982076760660 });
response.Data.Add(new NetUserOutpostData() { SlotId = 6, BuildingId = 22901, IsDone = true, StartAt = 638549982076760660, CompleteAt = 638549982076760660 });
response.Data.Add(new NetUserOutpostData() { SlotId = 7, BuildingId = 23001, IsDone = true, StartAt = 638549982076760660, CompleteAt = 638549982076760660 });
response.Data.Add(new NetUserOutpostData() { SlotId = 3, BuildingId = 23101, IsDone = true, StartAt = 638549982076760660, CompleteAt = 638549982076760660 });
response.Data.Add(new NetUserOutpostData() { SlotId = 2, BuildingId = 23201, IsDone = true, StartAt = 638549982076760660, CompleteAt = 638549982076760660 });
response.Data.Add(new NetUserOutpostData() { SlotId = 9, BuildingId = 23301, IsDone = true, StartAt = 638549982076760660, CompleteAt = 638549982076760660 });
response.Data.Add(new NetUserOutpostData() { SlotId = 8, BuildingId = 23401, IsDone = true, StartAt = 638549982076760660, CompleteAt = 638549982076760660 });
response.Data.Add(new NetUserOutpostData() { SlotId = 10, BuildingId = 23501, IsDone = true, StartAt = 638549982076760660, CompleteAt = 638549982076760660 });
response.Data.Add(new NetUserOutpostData() { SlotId = 38, BuildingId = 33601, IsDone = true, StartAt = 638549982076760660, CompleteAt = 638549982076760660 });
// TODO
WriteData(response);
}

View File

@@ -27,7 +27,7 @@ namespace nksrv.LobbyServer.Msgs.User
response.SynchroLv = 1;
response.OutpostBattleLevel = user.OutpostBattleLevel;
response.OutpostBattleTime = new NetOutpostBattleTime() { MaxBattleTime = 864000000000, MaxOverBattleTime = 12096000000000, BattleTime = battleTimeMs };
response.CommanderRoomJukeboxBgm = new NetJukeboxBgm() { JukeboxTableId = 2, Type = NetJukeboxBgmType.JukeboxTableId, Location = NetJukeboxLocation.CommanderRoom };
response.CommanderRoomJukeboxBgm = new NetJukeboxBgm() { JukeboxTableId = 5, Type = NetJukeboxBgmType.JukeboxTableId, Location = NetJukeboxLocation.CommanderRoom };
response.LobbyJukeboxBgm = new NetJukeboxBgm() { JukeboxTableId = 2, Type = NetJukeboxBgmType.JukeboxTableId, Location = NetJukeboxLocation.Lobby };
// Add default slot data

View File

@@ -8,9 +8,25 @@ namespace nksrv.LobbyServer.Msgs.Wallet
protected override async Task HandleAsync()
{
var req = await ReadData<ReqRefreshChargeCurrencyData>();
var user = GetUser();
var response = new ResRefreshChargeCurrencyData();
response.FreeCash = new();
response.ChargeCash = new();
foreach (var item in user.Currency)
{
if (item.Key == CurrencyType.FreeCash)
{
response.FreeCash.Type = (int)item.Key;
response.FreeCash.Value = item.Value;
}
else if (item.Key == CurrencyType.ChargeCash)
{
response.ChargeCash.Type = (int)item.Key;
response.ChargeCash.Value = item.Value;
}
}
WriteData(response);
}
}

View File

@@ -156,7 +156,6 @@ font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}
var responseBytes = response.ToArray();
File.WriteAllBytes("batch-response", responseBytes);
ctx.Response.ContentType = "multipart/mixed; boundary=\"f5d5cf4d-5627-422f-b3c6-532f1a0cbc0a\"";
ctx.Response.OutputStream.Write(responseBytes);
}
@@ -373,8 +372,6 @@ font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}
else
{
// not empty body, TODO
File.WriteAllBytes("notemptybody", bytes);
body = bytes.Skip(currentByte).ToArray();
}

View File

@@ -1866,4 +1866,10 @@ message NetInAppShopReceivableProductData {
message ReqGetInAppShopReceivableProductList {}
message ResGetInAppShopReceivableProductList {
repeated NetInAppShopReceivableProductData Data = 1;
}
}
message ReqWearEquipment {
int64 Isn = 2;
int64 Csn = 3;
}
message ResWearEquipment {}

View File

@@ -114,7 +114,6 @@ namespace nksrv.StaticInfo
ZipStream = new MemoryStream();
AesCtrTransform(decryptionKey2, iv2, dataMs, ZipStream);
File.WriteAllBytes("decryptednew.zip", ZipStream.ToArray());
ZipStream.Position = 0;
MainZip = new ZipFile(ZipStream, false);