mirror of
https://github.com/raphaeIl/Novaria.git
synced 2025-12-12 14:34:38 +01:00
650 lines
26 KiB
C#
650 lines
26 KiB
C#
using Google.Protobuf;
|
|
using Novaria.Common.Core;
|
|
using Proto;
|
|
using Serilog;
|
|
using System.Text.Json;
|
|
using Novaria.PcapParser;
|
|
using Novaria.Common.Crypto;
|
|
using Novaria.GameServer.Services;
|
|
using Nova.Client;
|
|
|
|
namespace Novaria.GameServer.Controllers.Api.ProtocolHandlers
|
|
{
|
|
public class Login : ProtocolHandlerBase
|
|
{
|
|
public Login(IProtocolHandlerFactory protocolHandlerFactory, TableService tableService) : base(protocolHandlerFactory)
|
|
{
|
|
table_Achievement achievements = (table_Achievement)tableService.GetTable<Nova.Client.Achievement>();
|
|
}
|
|
|
|
[ProtocolHandler(NetMsgId.gacha_information_req)]
|
|
public Packet PlayerLoginHandler(Nil req)
|
|
{
|
|
GachaInformationResp gachaInfoResp = new GachaInformationResp()
|
|
{
|
|
Information =
|
|
{
|
|
new GachaInfo()
|
|
{
|
|
Id = 1,
|
|
DaysCount = 31,
|
|
}
|
|
},
|
|
};
|
|
|
|
return Packet.Create(NetMsgId.gacha_information_req, gachaInfoResp);
|
|
}
|
|
|
|
[ProtocolHandler(NetMsgId.player_login_req)] // req id goes here
|
|
public Packet PlayerLoginHandler(LoginReq req)
|
|
{
|
|
//Log.Information("login_req received, contents: " + JsonSerializer.Serialize(req));
|
|
|
|
//Log.Information("Building login resp...");
|
|
|
|
LoginResp loginResp = new LoginResp()
|
|
{
|
|
Token = "seggstoken",
|
|
};
|
|
|
|
//Log.Information("Sending login_resp packet: " + JsonSerializer.Serialize(loginResp));
|
|
return Packet.Create(NetMsgId.player_login_succeed_ack, loginResp);
|
|
}
|
|
|
|
[ProtocolHandler(NetMsgId.player_data_req)]
|
|
public Packet PlayerDataHandler(Nil req)
|
|
{
|
|
// example: different netmsgid returned, if new player player_new_notify, other wise player_data_ack
|
|
|
|
PlayerInfo pcapPlayerInfo = (PlayerInfo)PcapParser.PcapParser.Instance.GetPcapPacket(NetMsgId.player_data_succeed_ack);
|
|
|
|
AccInfo accountInfo = new AccInfo()
|
|
{
|
|
Id = 1,
|
|
Hashtag = 4562,
|
|
HeadIcon = 100101,
|
|
NickName = "ArkanDash",
|
|
Gender = false,
|
|
Signature = "",
|
|
TitlePrefix = 1,
|
|
TitleSuffix = 2,
|
|
SkinId = 10301,
|
|
CreateTime = pcapPlayerInfo.Acc.CreateTime,
|
|
};
|
|
|
|
accountInfo.Newbies.Add(pcapPlayerInfo.Acc.Newbies);
|
|
accountInfo.NextPackage = pcapPlayerInfo.Acc.NextPackage;
|
|
|
|
//accountInfo.Newbies.Add(new NewbieInfo() { GroupId = 101, StepId = -1 });
|
|
//accountInfo.Newbies.Add(new NewbieInfo() { GroupId = 102, StepId = -1 });
|
|
|
|
PlayerInfo playerInfoResponse = new PlayerInfo()
|
|
{
|
|
Acc = accountInfo
|
|
};
|
|
//playerInfoResponse.Chars.AddRange(
|
|
//[
|
|
// new Proto.Char()
|
|
// {
|
|
// Tid = 111,
|
|
// Exp = 0,
|
|
// DatingLandmarkIds = [],
|
|
// DatingEventIds = [],
|
|
// DatingEventRewardIds = [],
|
|
// EquipmentIds = [
|
|
// 0,
|
|
// 0,
|
|
// 0
|
|
// ],
|
|
// Level = 90,
|
|
// SkillLvs = [
|
|
// 10,
|
|
// 10,
|
|
// 10,
|
|
// 10,
|
|
// 1
|
|
// ],
|
|
// Skin = 11101,
|
|
// AffinityLevel = 20,
|
|
// AffinityExp = 0,
|
|
// Advance = 8,
|
|
// Plots = [],
|
|
// AffinityQuests = pcapPlayerInfo.Chars[0].AffinityQuests,
|
|
// TalentNodes = ByteString.Empty,
|
|
// CreateTime = 1736745112,
|
|
// NextPackage = ByteString.Empty
|
|
// },
|
|
// new Proto.Char()
|
|
// {
|
|
// Tid = 117,
|
|
// Exp = 0,
|
|
// DatingLandmarkIds = [],
|
|
// DatingEventIds = [],
|
|
// DatingEventRewardIds = [],
|
|
// EquipmentIds = [
|
|
// 0,
|
|
// 0,
|
|
// 0
|
|
// ],
|
|
// Level = 90,
|
|
// SkillLvs = [
|
|
// 10,
|
|
// 10,
|
|
// 10,
|
|
// 10,
|
|
// 1
|
|
// ],
|
|
// Skin = 11701,
|
|
// AffinityLevel = 20,
|
|
// AffinityExp = 0,
|
|
// Advance = 8,
|
|
// Plots = [],
|
|
// AffinityQuests = pcapPlayerInfo.Chars[1].AffinityQuests,
|
|
// TalentNodes = ByteString.Empty,
|
|
// CreateTime = 1736745112,
|
|
// NextPackage = ByteString.Empty
|
|
// },
|
|
// new Proto.Char()
|
|
// {
|
|
// Tid = 108,
|
|
// Exp = 0,
|
|
// DatingLandmarkIds = [],
|
|
// DatingEventIds = [],
|
|
// DatingEventRewardIds = [],
|
|
// EquipmentIds = [
|
|
// 0,
|
|
// 0,
|
|
// 0
|
|
// ],
|
|
// Level = 90,
|
|
// SkillLvs = [
|
|
// 10,
|
|
// 10,
|
|
// 10,
|
|
// 10,
|
|
// 1
|
|
// ],
|
|
// Skin = 10801,
|
|
// AffinityLevel = 20,
|
|
// AffinityExp = 0,
|
|
// Advance = 8,
|
|
// Plots = [],
|
|
// AffinityQuests = pcapPlayerInfo.Chars[2].AffinityQuests,
|
|
// TalentNodes = ByteString.Empty,
|
|
// CreateTime = 1736745112,
|
|
// NextPackage = ByteString.Empty
|
|
// },
|
|
// new Proto.Char()
|
|
// {
|
|
// Tid = 123,
|
|
// Exp = 0,
|
|
// DatingLandmarkIds = [],
|
|
// DatingEventIds = [],
|
|
// DatingEventRewardIds = [],
|
|
// EquipmentIds = [
|
|
// 0,
|
|
// 0,
|
|
// 0
|
|
// ],
|
|
// Level = 90,
|
|
// SkillLvs = [
|
|
// 10,
|
|
// 10,
|
|
// 10,
|
|
// 10,
|
|
// 1
|
|
// ],
|
|
// Skin = 12301,
|
|
// AffinityLevel = 20,
|
|
// AffinityExp = 0,
|
|
// Advance = 8,
|
|
// Plots = [],
|
|
// AffinityQuests = pcapPlayerInfo.Chars[3].AffinityQuests,
|
|
// TalentNodes = ByteString.Empty,
|
|
// CreateTime = 1736745112,
|
|
// NextPackage = ByteString.Empty
|
|
// },
|
|
// new Proto.Char()
|
|
// {
|
|
// Tid = 127,
|
|
// Exp = 0,
|
|
// DatingLandmarkIds = [],
|
|
// DatingEventIds = [],
|
|
// DatingEventRewardIds = [],
|
|
// EquipmentIds = [
|
|
// 0,
|
|
// 0,
|
|
// 0
|
|
// ],
|
|
// Level = 90,
|
|
// SkillLvs = [
|
|
// 10,
|
|
// 10,
|
|
// 10,
|
|
// 10,
|
|
// 1
|
|
// ],
|
|
// Skin = 12701,
|
|
// AffinityLevel = 20,
|
|
// AffinityExp = 0,
|
|
// Advance = 8,
|
|
// Plots = [],
|
|
// AffinityQuests = pcapPlayerInfo.Chars[4].AffinityQuests,
|
|
// TalentNodes = ByteString.Empty,
|
|
// CreateTime = 1736745112,
|
|
// NextPackage = ByteString.Empty
|
|
// },
|
|
// new Proto.Char()
|
|
// {
|
|
// Tid = 107,
|
|
// Exp = 0,
|
|
// DatingLandmarkIds = [],
|
|
// DatingEventIds = [],
|
|
// DatingEventRewardIds = [],
|
|
// EquipmentIds = [
|
|
// 0,
|
|
// 0,
|
|
// 0
|
|
// ],
|
|
// Level = 90,
|
|
// SkillLvs = [
|
|
// 10,
|
|
// 10,
|
|
// 10,
|
|
// 10,
|
|
// 1
|
|
// ],
|
|
// Skin = 10701,
|
|
// AffinityLevel = 20,
|
|
// AffinityExp = 0,
|
|
// Advance = 8,
|
|
// Plots = [],
|
|
// AffinityQuests = pcapPlayerInfo.Chars[5].AffinityQuests,
|
|
// TalentNodes = ByteString.Empty,
|
|
// CreateTime = 1736745112,
|
|
// NextPackage = ByteString.Empty
|
|
// },
|
|
// new Proto.Char()
|
|
// {
|
|
// Tid = 132,
|
|
// Exp = 0,
|
|
// DatingLandmarkIds = [],
|
|
// DatingEventIds = [],
|
|
// DatingEventRewardIds = [],
|
|
// EquipmentIds = [
|
|
// 0,
|
|
// 0,
|
|
// 0
|
|
// ],
|
|
// Level = 90,
|
|
// SkillLvs = [
|
|
// 10,
|
|
// 10,
|
|
// 10,
|
|
// 10,
|
|
// 1
|
|
// ],
|
|
// Skin = 13201,
|
|
// AffinityLevel = 20,
|
|
// AffinityExp = 0,
|
|
// Advance = 8,
|
|
// Plots = [],
|
|
// AffinityQuests = pcapPlayerInfo.Chars[6].AffinityQuests,
|
|
// TalentNodes = ByteString.Empty,
|
|
// CreateTime = 1736745112,
|
|
// NextPackage = ByteString.Empty
|
|
// },
|
|
// new Proto.Char()
|
|
// {
|
|
// Tid = 135,
|
|
// Exp = 0,
|
|
// DatingLandmarkIds = [],
|
|
// DatingEventIds = [],
|
|
// DatingEventRewardIds = [],
|
|
// EquipmentIds = [
|
|
// 0,
|
|
// 0,
|
|
// 0
|
|
// ],
|
|
// Level = 90,
|
|
// SkillLvs = [
|
|
// 10,
|
|
// 10,
|
|
// 10,
|
|
// 10,
|
|
// 1
|
|
// ],
|
|
// Skin = 13501,
|
|
// AffinityLevel = 20,
|
|
// AffinityExp = 0,
|
|
// Advance = 8,
|
|
// Plots = [],
|
|
// AffinityQuests = pcapPlayerInfo.Chars[7].AffinityQuests,
|
|
// TalentNodes = ByteString.Empty,
|
|
// CreateTime = 1736745112,
|
|
// NextPackage = ByteString.Empty
|
|
// },
|
|
// new Proto.Char()
|
|
// {
|
|
// Tid = 126,
|
|
// Exp = 0,
|
|
// DatingLandmarkIds = [],
|
|
// DatingEventIds = [],
|
|
// DatingEventRewardIds = [],
|
|
// EquipmentIds = [
|
|
// 0,
|
|
// 0,
|
|
// 0
|
|
// ],
|
|
// Level = 90,
|
|
// SkillLvs = [
|
|
// 10,
|
|
// 10,
|
|
// 10,
|
|
// 10,
|
|
// 1
|
|
// ],
|
|
// Skin = 12601,
|
|
// AffinityLevel = 20,
|
|
// AffinityExp = 0,
|
|
// Advance = 8,
|
|
// Plots = [],
|
|
// AffinityQuests = pcapPlayerInfo.Chars[8].AffinityQuests,
|
|
// TalentNodes = ByteString.Empty,
|
|
// CreateTime = 1736745112,
|
|
// NextPackage = ByteString.Empty
|
|
// },
|
|
// new Proto.Char()
|
|
// {
|
|
// Tid = 118,
|
|
// Exp = 0,
|
|
// DatingLandmarkIds = [],
|
|
// DatingEventIds = [],
|
|
// DatingEventRewardIds = [],
|
|
// EquipmentIds = [
|
|
// 0,
|
|
// 0,
|
|
// 0
|
|
// ],
|
|
// Level = 90,
|
|
// SkillLvs = [
|
|
// 10,
|
|
// 10,
|
|
// 10,
|
|
// 10,
|
|
// 1
|
|
// ],
|
|
// Skin = 11801,
|
|
// AffinityLevel = 20,
|
|
// AffinityExp = 0,
|
|
// Advance = 8,
|
|
// Plots = [],
|
|
// AffinityQuests = pcapPlayerInfo.Chars[9].AffinityQuests,
|
|
// TalentNodes = ByteString.Empty,
|
|
// CreateTime = 1736745112,
|
|
// NextPackage = ByteString.Empty
|
|
// },
|
|
// new Proto.Char()
|
|
// {
|
|
// Tid = 142,
|
|
// Exp = 0,
|
|
// DatingLandmarkIds = [],
|
|
// DatingEventIds = [],
|
|
// DatingEventRewardIds = [],
|
|
// EquipmentIds = [
|
|
// 0,
|
|
// 0,
|
|
// 0
|
|
// ],
|
|
// Level = 90,
|
|
// SkillLvs = [
|
|
// 10,
|
|
// 10,
|
|
// 10,
|
|
// 10,
|
|
// 1
|
|
// ],
|
|
// Skin = 14201,
|
|
// AffinityLevel = 20,
|
|
// AffinityExp = 0,
|
|
// Advance = 8,
|
|
// Plots = [],
|
|
// AffinityQuests = pcapPlayerInfo.Chars[10].AffinityQuests,
|
|
// TalentNodes = ByteString.Empty,
|
|
// CreateTime = 1736745112,
|
|
// NextPackage = ByteString.Empty
|
|
// },
|
|
// new Proto.Char()
|
|
// {
|
|
// Tid = 119,
|
|
// Exp = 0,
|
|
// DatingLandmarkIds = [],
|
|
// DatingEventIds = [],
|
|
// DatingEventRewardIds = [],
|
|
// EquipmentIds = [
|
|
// 0,
|
|
// 0,
|
|
// 0
|
|
// ],
|
|
// Level = 90,
|
|
// SkillLvs = [
|
|
// 10,
|
|
// 10,
|
|
// 10,
|
|
// 10,
|
|
// 1
|
|
// ],
|
|
// Skin = 11901,
|
|
// AffinityLevel = 20,
|
|
// AffinityExp = 0,
|
|
// Advance = 8,
|
|
// Plots = [],
|
|
// AffinityQuests = pcapPlayerInfo.Chars[11].AffinityQuests,
|
|
// TalentNodes = ByteString.Empty,
|
|
// CreateTime = 1736745112,
|
|
// NextPackage = ByteString.Empty
|
|
// },
|
|
// new Proto.Char()
|
|
// {
|
|
// Tid = 103,
|
|
// Exp = 0,
|
|
// DatingLandmarkIds = [],
|
|
// DatingEventIds = [],
|
|
// DatingEventRewardIds = [],
|
|
// EquipmentIds = [
|
|
// 0,
|
|
// 0,
|
|
// 0
|
|
// ],
|
|
// Level = 90,
|
|
// SkillLvs = [
|
|
// 10,
|
|
// 10,
|
|
// 10,
|
|
// 10,
|
|
// 1
|
|
// ],
|
|
// Skin = 10301,
|
|
// AffinityLevel = 20,
|
|
// AffinityExp = 0,
|
|
// Advance = 8,
|
|
// Plots = [],
|
|
// AffinityQuests = pcapPlayerInfo.Chars[12].AffinityQuests,
|
|
// TalentNodes = ByteString.Empty,
|
|
// CreateTime = 1736745112,
|
|
// NextPackage = ByteString.Empty
|
|
// },
|
|
// new Proto.Char()
|
|
// {
|
|
// Tid = 125,
|
|
// Exp = 0,
|
|
// DatingLandmarkIds = [],
|
|
// DatingEventIds = [],
|
|
// DatingEventRewardIds = [],
|
|
// EquipmentIds = [
|
|
// 0,
|
|
// 0,
|
|
// 0
|
|
// ],
|
|
// Level = 90,
|
|
// SkillLvs = [
|
|
// 10,
|
|
// 10,
|
|
// 10,
|
|
// 10,
|
|
// 1
|
|
// ],
|
|
// Skin = 12501,
|
|
// AffinityLevel = 20,
|
|
// AffinityExp = 0,
|
|
// Advance = 8,
|
|
// Plots = [],
|
|
// AffinityQuests = pcapPlayerInfo.Chars[13].AffinityQuests,
|
|
// TalentNodes = ByteString.Empty,
|
|
// CreateTime = 1736745112,
|
|
// NextPackage = ByteString.Empty
|
|
// },
|
|
// new Proto.Char()
|
|
// {
|
|
// Tid = 120,
|
|
// Exp = 0,
|
|
// DatingLandmarkIds = [],
|
|
// DatingEventIds = [],
|
|
// DatingEventRewardIds = [],
|
|
// EquipmentIds = [
|
|
// 0,
|
|
// 0,
|
|
// 0
|
|
// ],
|
|
// Level = 90,
|
|
// SkillLvs = [
|
|
// 10,
|
|
// 10,
|
|
// 10,
|
|
// 10,
|
|
// 1
|
|
// ],
|
|
// Skin = 12001,
|
|
// AffinityLevel = 20,
|
|
// AffinityExp = 0,
|
|
// Advance = 8,
|
|
// Plots = [],
|
|
// AffinityQuests = pcapPlayerInfo.Chars[14].AffinityQuests,
|
|
// TalentNodes = ByteString.Empty,
|
|
// CreateTime = 1736745112,
|
|
// NextPackage = ByteString.Empty
|
|
// },
|
|
// new Proto.Char()
|
|
// {
|
|
// Tid = 112,
|
|
// Exp = 0,
|
|
// DatingLandmarkIds = [],
|
|
// DatingEventIds = [],
|
|
// DatingEventRewardIds = [],
|
|
// EquipmentIds = [
|
|
// 0,
|
|
// 0,
|
|
// 0
|
|
// ],
|
|
// Level = 90,
|
|
// SkillLvs = [
|
|
// 10,
|
|
// 10,
|
|
// 10,
|
|
// 10,
|
|
// 1
|
|
// ],
|
|
// Skin = 11201,
|
|
// AffinityLevel = 20,
|
|
// AffinityExp = 0,
|
|
// Advance = 8,
|
|
// Plots = [],
|
|
// AffinityQuests = pcapPlayerInfo.Chars[15].AffinityQuests,
|
|
// TalentNodes = ByteString.Empty,
|
|
// CreateTime = 1736745112,
|
|
// NextPackage = ByteString.Empty
|
|
// },
|
|
// new Proto.Char()
|
|
// {
|
|
// Tid = 113,
|
|
// Exp = 0,
|
|
// DatingLandmarkIds = [],
|
|
// DatingEventIds = [],
|
|
// DatingEventRewardIds = [],
|
|
// EquipmentIds = [
|
|
// 0,
|
|
// 0,
|
|
// 0
|
|
// ],
|
|
// Level = 90,
|
|
// SkillLvs = [
|
|
// 10,
|
|
// 10,
|
|
// 10,
|
|
// 10,
|
|
// 1
|
|
// ],
|
|
// Skin = 11301,
|
|
// AffinityLevel = 20,
|
|
// AffinityExp = 0,
|
|
// Advance = 8,
|
|
// Plots = [],
|
|
// AffinityQuests = pcapPlayerInfo.Chars[16].AffinityQuests,
|
|
// TalentNodes = ByteString.Empty,
|
|
// CreateTime = 1736745112,
|
|
// NextPackage = ByteString.Empty
|
|
// },
|
|
//]);
|
|
playerInfoResponse.Res.AddRange(pcapPlayerInfo.Res);
|
|
playerInfoResponse.Items.AddRange(pcapPlayerInfo.Items);
|
|
playerInfoResponse.Formation = pcapPlayerInfo.Formation;
|
|
playerInfoResponse.StarTowerRankTicket = 3;
|
|
playerInfoResponse.Energy = pcapPlayerInfo.Energy;
|
|
playerInfoResponse.WorldClass = pcapPlayerInfo.WorldClass;
|
|
playerInfoResponse.Agent = pcapPlayerInfo.Agent;
|
|
playerInfoResponse.RglPassedIds.AddRange(pcapPlayerInfo.RglPassedIds);
|
|
playerInfoResponse.Equipments.AddRange(pcapPlayerInfo.Equipments);
|
|
playerInfoResponse.RegionBossLevels.AddRange(pcapPlayerInfo.RegionBossLevels);
|
|
playerInfoResponse.Quests = pcapPlayerInfo.Quests;
|
|
playerInfoResponse.State = pcapPlayerInfo.State;
|
|
playerInfoResponse.SendGiftCnt = 0;
|
|
playerInfoResponse.Board.AddRange(pcapPlayerInfo.Board);
|
|
playerInfoResponse.DatingCharIds.AddRange(pcapPlayerInfo.DatingCharIds);
|
|
playerInfoResponse.Achievements = pcapPlayerInfo.Achievements;
|
|
playerInfoResponse.Handbook.AddRange(pcapPlayerInfo.Handbook);
|
|
playerInfoResponse.SigninIndex = 0;
|
|
playerInfoResponse.Titles.AddRange(pcapPlayerInfo.Titles);
|
|
playerInfoResponse.DailyInstances.AddRange(pcapPlayerInfo.DailyInstances);
|
|
playerInfoResponse.Dictionaries.AddRange(pcapPlayerInfo.Dictionaries);
|
|
playerInfoResponse.Activities.AddRange(pcapPlayerInfo.Activities);
|
|
playerInfoResponse.Phone = pcapPlayerInfo.Phone;
|
|
playerInfoResponse.TalentResetTime = 0;
|
|
playerInfoResponse.EquipmentDoubleCount = 0;
|
|
playerInfoResponse.Discs.AddRange(pcapPlayerInfo.Discs);
|
|
playerInfoResponse.Story = pcapPlayerInfo.Story;
|
|
playerInfoResponse.VampireSurvivorRecord = pcapPlayerInfo.VampireSurvivorRecord;
|
|
playerInfoResponse.DailyActiveIds.AddRange(pcapPlayerInfo.DailyActiveIds);
|
|
playerInfoResponse.TourGuideQuestGroup = 0;
|
|
playerInfoResponse.HonorList.AddRange(pcapPlayerInfo.HonorList);
|
|
playerInfoResponse.Honors.AddRange(pcapPlayerInfo.Honors);
|
|
playerInfoResponse.DailyShopRewardStatus = true;
|
|
playerInfoResponse.TowerTicket = 0;
|
|
playerInfoResponse.ServerTs = pcapPlayerInfo.ServerTs;
|
|
playerInfoResponse.NextPackage = pcapPlayerInfo.NextPackage;
|
|
|
|
Log.Information("Sending player_new_notify packet = " + JsonSerializer.Serialize(playerInfoResponse));
|
|
return Packet.Create(NetMsgId.player_data_succeed_ack, playerInfoResponse);
|
|
}
|
|
|
|
[ProtocolHandler(NetMsgId.player_ping_req)]
|
|
public Packet PlayerRegHandler(Ping req)
|
|
{
|
|
return Packet.Create(NetMsgId.player_ping_succeed_ack, new Pong()
|
|
{
|
|
ServerTs = 1736745112,
|
|
});
|
|
}
|
|
|
|
}
|
|
}
|