mirror of
https://github.com/EpinelPS/EpinelPS.git
synced 2025-12-13 15:34:36 +01:00
levelup, item and synchro device fixes
This commit is contained in:
@@ -13,15 +13,27 @@ namespace nksrv.LobbyServer.Msgs.Character
|
||||
protected override async Task HandleAsync()
|
||||
{
|
||||
var req = await ReadData<ReqGetSynchroData>();
|
||||
var user = GetUser();
|
||||
|
||||
var response = new ReqGetSynchroData();
|
||||
var highestLevelCharacters = user.Characters.OrderByDescending(x => x.Level).Take(5).ToList();
|
||||
|
||||
var response = new ResGetSynchroData();
|
||||
response.Synchro = new NetUserSynchroData();
|
||||
response.Synchro.SynchroLv = 1;
|
||||
|
||||
foreach (var item in highestLevelCharacters)
|
||||
{
|
||||
response.Synchro.StandardCharacters.Add(new NetUserCharacterData() { Default = new() { Csn = item.Csn, Skill1Lv = item.Skill1Lvl, Skill2Lv = item.Skill2Lvl, CostumeId = item.CostumeId, Lv = item.Level, Grade = item.Grade, Tid = item.Tid, UltiSkillLv = item.UltimateLevel } });
|
||||
}
|
||||
|
||||
response.Synchro.Slots.Add(new NetSynchroSlot() { Slot = 1 });
|
||||
response.Synchro.Slots.Add(new NetSynchroSlot() { Slot = 2 });
|
||||
response.Synchro.Slots.Add(new NetSynchroSlot() { Slot = 3 });
|
||||
response.Synchro.Slots.Add(new NetSynchroSlot() { Slot = 4 });
|
||||
response.Synchro.Slots.Add(new NetSynchroSlot() { Slot = 5 });
|
||||
|
||||
response.Synchro.SynchroMaxLv = highestLevelCharacters.First().Level;
|
||||
response.Synchro.SynchroLv = highestLevelCharacters.Last().Level;
|
||||
|
||||
// TODO: Validate response from real server and pull info from user info
|
||||
WriteData(response);
|
||||
}
|
||||
|
||||
56
nksrv/LobbyServer/Msgs/Character/LevelUp.cs
Normal file
56
nksrv/LobbyServer/Msgs/Character/LevelUp.cs
Normal file
@@ -0,0 +1,56 @@
|
||||
using nksrv.Utils;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace nksrv.LobbyServer.Msgs.Character
|
||||
{
|
||||
[PacketPath("/character/levelup")]
|
||||
public class LevelUp : LobbyMsgHandler
|
||||
{
|
||||
protected override async Task HandleAsync()
|
||||
{
|
||||
var req = await ReadData<ReqCharacterLevelUp>();
|
||||
var user = GetUser();
|
||||
var response = new ResCharacterLevelUp();
|
||||
|
||||
foreach (var item in user.Characters.ToArray())
|
||||
{
|
||||
if (item.Csn == req.Csn)
|
||||
{
|
||||
item.Level = req.Level;
|
||||
// TODO: subtract currency
|
||||
|
||||
|
||||
response.Character = new() {
|
||||
CostumeId = item.CostumeId,
|
||||
Csn = item.Csn,
|
||||
Lv = item.Level,
|
||||
Skill1Lv = item.Skill1Lvl,
|
||||
Skill2Lv = item.Skill2Lvl,
|
||||
UltiSkillLv = item.UltimateLevel,
|
||||
Grade = item.Grade,
|
||||
Tid = item.Tid
|
||||
};
|
||||
var highestLevelCharacters = user.Characters.OrderByDescending(x => x.Level).Take(5).ToList();
|
||||
|
||||
response.SynchroLv = highestLevelCharacters.Last().Level;
|
||||
|
||||
foreach (var c in highestLevelCharacters)
|
||||
{
|
||||
response.SynchroStandardCharacters.Add(c.Tid);
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
JsonDb.Save();
|
||||
|
||||
|
||||
|
||||
WriteData(response);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -20,14 +20,13 @@ namespace nksrv.LobbyServer.Msgs.Shop
|
||||
var response = new ResGetJupiterProductList();
|
||||
foreach (var item in x.ProductIdList)
|
||||
{
|
||||
response.ProductInfoList.Add(new NetJupiterProductInfo() { CurrencyCode = "US", CurrencySymbol = "$", MicroPrice = 0, Price = "0", ProductId = item });
|
||||
response.ProductInfoList.Add(new NetJupiterProductInfo() { CurrencyCode = "US", CurrencySymbol = "$", MicroPrice = 0, Price = "1", ProductId = item });
|
||||
}
|
||||
WriteData(response);
|
||||
}
|
||||
catch(Exception ex)
|
||||
{
|
||||
Logger.Error("Error while handling GetProductList request. Have you replaced sodium library?" + ex);
|
||||
;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -148,12 +148,13 @@ namespace nksrv.LobbyServer.Msgs.Stage
|
||||
}
|
||||
else if (item.reward_type == "Item")
|
||||
{
|
||||
user.Items.Add(new ItemData() { ItemType = item.reward_id });
|
||||
var id = user.GenerateUniqueItemId();
|
||||
user.Items.Add(new ItemData() { ItemType = item.reward_id, Isn = id, Level = 1, Exp = 0, Count = 1 });
|
||||
ret.Item.Add(new NetItemData()
|
||||
{
|
||||
Count = item.reward_value,
|
||||
Tid = item.reward_id,
|
||||
Isn = 123
|
||||
Isn = id
|
||||
});
|
||||
}
|
||||
else
|
||||
|
||||
@@ -56,6 +56,13 @@ namespace nksrv.LobbyServer.Msgs.User
|
||||
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});
|
||||
}
|
||||
|
||||
var highestLevelCharacters = user.Characters.OrderByDescending(x => x.Level).Take(5).ToList();
|
||||
response.SynchroLv = highestLevelCharacters.Last().Level;
|
||||
foreach (var item in highestLevelCharacters)
|
||||
{
|
||||
response.SynchroStandardCharacters.Add(item.Csn);
|
||||
|
||||
}
|
||||
|
||||
// Add squad data if there are characters
|
||||
if (user.Characters.Count > 0)
|
||||
|
||||
36
nksrv/LobbyServer/Msgs/User/GetMail.cs
Normal file
36
nksrv/LobbyServer/Msgs/User/GetMail.cs
Normal file
@@ -0,0 +1,36 @@
|
||||
using nksrv.Utils;
|
||||
using Swan;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace nksrv.LobbyServer.Msgs.User
|
||||
{
|
||||
[PacketPath("/mail/get")]
|
||||
public class GetMail : LobbyMsgHandler
|
||||
{
|
||||
protected override async Task HandleAsync()
|
||||
{
|
||||
var req = await ReadData<ReqGetMailData>();
|
||||
|
||||
var r = new ResGetMailData();
|
||||
r.Mail.Add(new NetUserMailData()
|
||||
{
|
||||
|
||||
Msn = 3,
|
||||
Nickname ="nick",
|
||||
Title = new() { IsPlain = true, String = "Our Server Fell" },
|
||||
Text = new() { IsPlain = true, String = "Our Game Was Down For 1 Second because the HP Laptop Which Hosted the Server Got Shut Down by the Lid Closing. As for the Reward for the Inconvience, free paid gems"},
|
||||
HasReward =true,
|
||||
Sender = 102
|
||||
|
||||
});
|
||||
|
||||
r.Mail[0].Items.Add(new NetMailRewardItem() { ExpiredAt = DateTime.UtcNow.AddYears(10).ToUnixEpochDate(), RewardID = 1, RewardType = (int)CurrencyType.ChargeCash, RewardValue = 100000 });
|
||||
|
||||
WriteData(r);
|
||||
}
|
||||
}
|
||||
}
|
||||
23
nksrv/LobbyServer/Msgs/User/ReadMail.cs
Normal file
23
nksrv/LobbyServer/Msgs/User/ReadMail.cs
Normal file
@@ -0,0 +1,23 @@
|
||||
using nksrv.Utils;
|
||||
using Swan;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace nksrv.LobbyServer.Msgs.User
|
||||
{
|
||||
[PacketPath("/mail/read")]
|
||||
public class ReadMail : LobbyMsgHandler
|
||||
{
|
||||
protected override async Task HandleAsync()
|
||||
{
|
||||
var req = await ReadData<ReqReadMail>();
|
||||
|
||||
var r = new ResReadMail();
|
||||
//TODO
|
||||
WriteData(r);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user