Equipment and main quest bug fixes

This commit is contained in:
Mikhail
2024-07-26 14:12:30 -04:00
parent cce8179e8d
commit 78659f9c6e
7 changed files with 35 additions and 23 deletions

View File

@@ -13,26 +13,30 @@ namespace nksrv.LobbyServer.Msgs.Inventory
var response = new ResWearEquipment();
var pos = NetUtils.GetItemPos(user, req.Isn);
// unequip old item
foreach (var item in user.Items.ToArray())
{
if (item.Csn == req.Csn && item.Position == pos)
{
item.Csn = 0;
}
}
foreach (var item in user.Items.ToArray())
{
if (item.Isn == req.Isn)
{
// update character id
item.Csn = req.Csn;
item.Position = NetUtils.GetItemPos(user, item.Isn);
break;
}
}
foreach (var item in user.Items.ToArray())
{
if (item.Csn == req.Csn)
{
item.Position = pos;
response.Items.Add(NetUtils.ToNet(item));
break;
}
}
JsonDb.Save();
await WriteDataAsync(response);
}

View File

@@ -13,14 +13,27 @@ namespace nksrv.LobbyServer.Msgs.Inventory
var response = new ResWearEquipmentList();
// TODO optimize
foreach (var item2 in req.IsnList)
{
var pos = NetUtils.GetItemPos(user, item2);
// unequip previous items
foreach (var item in user.Items.ToArray())
{
if (item.Position == pos && item.Csn == req.Csn)
{
item.Csn = 0;
item.Position = 0;
}
}
foreach (var item in user.Items.ToArray())
{
if (item2 == item.Isn)
{
item.Csn = req.Csn;
item.Position = NetUtils.GetItemPos(user, item.Isn);
item.Position = pos;
response.Items.Add(NetUtils.ToNet(item));
}
}