mirror of
https://github.com/rafi1212122/BLHX.Server.git
synced 2025-12-12 14:34:39 +01:00
add item handling and some gacha stuff
This commit is contained in:
@@ -10,4 +10,8 @@
|
||||
<ProjectReference Include="..\BLHX.Server.Common\BLHX.Server.Common.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="zlib.net" Version="1.0.4" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
||||
@@ -16,38 +16,44 @@ namespace BLHX.Server.Game.Commands {
|
||||
public override void Execute(Dictionary<string, string> args, Connection connection) {
|
||||
base.Execute(args);
|
||||
|
||||
uint amount = 1;
|
||||
//uint amount = 1;
|
||||
|
||||
if (Amount is not null) {
|
||||
uint.TryParse(Amount, out uint parsedAmount);
|
||||
amount = parsedAmount;
|
||||
}
|
||||
//if (Amount is not null) {
|
||||
// uint.TryParse(Amount, out uint parsedAmount);
|
||||
// amount = parsedAmount;
|
||||
//}
|
||||
|
||||
if (Unlock is not null) {
|
||||
if (Unlock.Equals("all", StringComparison.CurrentCultureIgnoreCase)) {
|
||||
// ...
|
||||
} else if (uint.TryParse(Unlock, out uint itemId)) {
|
||||
//connection.player.DoResource(itemId, amount);
|
||||
PlayerResource? item = DBManager.PlayerContext.Resources.Where(res => res.Id == itemId).FirstOrDefault();
|
||||
//if (Unlock is not null) {
|
||||
// if (Unlock.Equals("all", StringComparison.CurrentCultureIgnoreCase)) {
|
||||
// // ...
|
||||
// } else if (uint.TryParse(Unlock, out uint itemId)) {
|
||||
// //connection.player.DoResource(itemId, amount);
|
||||
// PlayerResource? item = DBManager.PlayerContext.Resources.Where(res => res.Id == itemId).FirstOrDefault();
|
||||
|
||||
if (item is null) {
|
||||
DBManager.PlayerContext.Resources.Add(new PlayerResource() { Id = itemId, PlayerUid = connection.player.Uid, Num = 1 });
|
||||
//connection.player.DoResource(itemId, 1);
|
||||
// if (item is null) {
|
||||
// DBManager.PlayerContext.Resources.Add(new PlayerResource() { Id = itemId, PlayerUid = connection.player.Uid, Num = 1 });
|
||||
// //connection.player.DoResource(itemId, 1);
|
||||
|
||||
//item = DBManager.PlayerContext.Resources.Where(res => res.Id == itemId).FirstOrDefault();
|
||||
} else {
|
||||
item.Num += amount;
|
||||
connection.SendSystemMsg($"{amount} item of itemid: {itemId} added!");
|
||||
}
|
||||
// //item = DBManager.PlayerContext.Resources.Where(res => res.Id == itemId).FirstOrDefault();
|
||||
// } else {
|
||||
// item.Num += amount;
|
||||
// connection.SendSystemMsg($"{amount} item of itemid: {itemId} added!");
|
||||
// }
|
||||
|
||||
|
||||
// } else {
|
||||
// connection.SendSystemMsg($"Invalid ItemId: {itemId}");
|
||||
// }
|
||||
//}
|
||||
|
||||
connection.player.DoResource(1, 938493849);
|
||||
connection.player.DoResource(4, 39843294);
|
||||
|
||||
|
||||
} else {
|
||||
connection.SendSystemMsg($"Invalid ItemId: {itemId}");
|
||||
}
|
||||
}
|
||||
|
||||
DBManager.PlayerContext.Save();
|
||||
connection.NotifyPlayerData();
|
||||
connection.NotifyBagData();
|
||||
base.NotifySuccess(connection);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,7 +31,7 @@ namespace BLHX.Server.Game.Commands {
|
||||
all_ship_ids = Data.ShipDataStatistics.Where(ship_data => all_ship_ids.Contains(ship_data.Key) && ship_data.Value.Rarity == rarity).ToDictionary().Keys.ToList();
|
||||
}
|
||||
|
||||
List<PlayerShip> all_ships = all_ship_ids.Select(ship_id => CreateShipFromId((uint)ship_id, connection.player.Uid)).Take(amount).ToList();
|
||||
List<PlayerShip> all_ships = all_ship_ids.Select(ship_id => CreateShipFromId((uint)ship_id, connection.player.Uid)).ToList();
|
||||
|
||||
all_ships.AddRange(GetDefaultShips(connection.player.Ships)); // add the defaults
|
||||
connection.player.Ships = all_ships;
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
using BLHX.Server.Common.Proto;
|
||||
using BLHX.Server.Common.Proto.p12;
|
||||
using BLHX.Server.Common.Utils;
|
||||
using BLHX.Server.Common.Proto.common;
|
||||
|
||||
namespace BLHX.Server.Game.Handlers
|
||||
{
|
||||
internal static class P12
|
||||
{
|
||||
namespace BLHX.Server.Game.Handlers {
|
||||
internal static class P12 {
|
||||
[PacketHandler(Command.Cs12102, SaveDataAfterRun = true)]
|
||||
static void UpdateFleetHandler(Connection connection, Packet packet)
|
||||
{
|
||||
static void UpdateFleetHandler(Connection connection, Packet packet) {
|
||||
var fleet = packet.Decode<Cs12102>();
|
||||
var toUpdate = connection.player.Fleets.Find(x => x.Id == fleet.Id);
|
||||
|
||||
@@ -20,47 +19,63 @@ namespace BLHX.Server.Game.Handlers
|
||||
}
|
||||
|
||||
[PacketHandler(Command.Cs12202, SaveDataAfterRun = true)]
|
||||
static void SetShipSkinHandler(Connection connection, Packet packet)
|
||||
{
|
||||
static void SetShipSkinHandler(Connection connection, Packet packet) {
|
||||
var req = packet.Decode<Cs12202>();
|
||||
if (connection.player.Ships.Any(x => x.Id == req.ShipId))
|
||||
connection.player.Ships.First(x => x.Id == req.ShipId).SkinId = req.SkinId;
|
||||
|
||||
connection.Send(new Sc12203());
|
||||
}
|
||||
|
||||
[PacketHandler(Command.Cs12002, SaveDataAfterRun = true)]
|
||||
static void UseResourceHandler(Connection connection, Packet packet) {
|
||||
var req = packet.Decode<Cs12002>();
|
||||
|
||||
Logger.c.Log("Id: " + req.Id);
|
||||
Logger.c.Log("Cost Type: " + req.Costtype);
|
||||
Logger.c.Log("Count: " + req.Count);
|
||||
|
||||
|
||||
|
||||
connection.Send(new Sc12003() {
|
||||
BuildInfoes = [
|
||||
new Buildinfo() { BuildId = req.Id, FinishTime = 0, Time = 0 },
|
||||
]
|
||||
});
|
||||
}
|
||||
|
||||
[PacketHandler(Command.Cs12008, SaveDataAfterRun = true)]
|
||||
static void FinishAllBuildHandler(Connection connection, Packet packet) {
|
||||
var req = packet.Decode<Cs12008>();
|
||||
|
||||
connection.Send(new Sc12009() { PosLists = req.PosLists });
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
static class P12ConnectionNotifyExtensions
|
||||
{
|
||||
public static void NotifyShipData(this Connection connection)
|
||||
{
|
||||
if (connection.player is not null)
|
||||
{
|
||||
connection.Send(new Sc12001()
|
||||
{
|
||||
static class P12ConnectionNotifyExtensions {
|
||||
public static void NotifyShipData(this Connection connection) {
|
||||
if (connection.player is not null) {
|
||||
connection.Send(new Sc12001() {
|
||||
Shiplists = connection.player.Ships.Select(x => x.ToProto()).ToList()
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
public static void NotifyShipSkinData(this Connection connection)
|
||||
{
|
||||
public static void NotifyShipSkinData(this Connection connection) {
|
||||
connection.Send(new Sc12201() { SkinLists = connection.player.ShipSkins });
|
||||
}
|
||||
|
||||
public static void NotifyFleetData(this Connection connection)
|
||||
{
|
||||
if (connection.player is not null)
|
||||
{
|
||||
connection.Send(new Sc12101()
|
||||
{
|
||||
public static void NotifyFleetData(this Connection connection) {
|
||||
if (connection.player is not null) {
|
||||
connection.Send(new Sc12101() {
|
||||
GroupLists = connection.player.Fleets
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static void NotifyBuildShipData(this Connection connection)
|
||||
{
|
||||
public static void NotifyBuildShipData(this Connection connection) {
|
||||
connection.Send(new Sc12024());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,24 +1,28 @@
|
||||
using BLHX.Server.Common.Proto.p15;
|
||||
using BLHX.Server.Common.Data;
|
||||
using BLHX.Server.Common.Utils;
|
||||
|
||||
namespace BLHX.Server.Game.Handlers
|
||||
{
|
||||
internal static class P15
|
||||
{
|
||||
namespace BLHX.Server.Game.Handlers {
|
||||
internal static class P15 {
|
||||
}
|
||||
|
||||
static class P15ConnectionNotifyExtensions
|
||||
{
|
||||
public static void NotifyBagData(this Connection connection)
|
||||
{
|
||||
connection.Send(new Sc15001()
|
||||
{
|
||||
ItemLists = [
|
||||
new Iteminfo() { Id = 20001, Count = 5 },
|
||||
new Iteminfo() { Id = 15003, Count = 10 },
|
||||
new Iteminfo() { Id = 50002, Count = 10 },
|
||||
new Iteminfo() { Id = 50001, Count = 10 }
|
||||
]
|
||||
});
|
||||
static class P15ConnectionNotifyExtensions {
|
||||
public static void NotifyBagData(this Connection connection) {
|
||||
//List<int> AllItemsKeys = Data.ItemDataStatistics.Where(data => data.Value.Type == 2 && data.Value.Rarity >= 6).ToDictionary().Keys.ToList();
|
||||
List<int> AllItemsKeys = Data.ItemDataStatistics.ToDictionary().Keys.ToList();
|
||||
List<Iteminfo> ItemLists = AllItemsKeys.Select(item_id => new Iteminfo { Id = (uint)item_id, Count = 3954783433 }).ToList();
|
||||
|
||||
connection.Send(new Sc15001() { ItemLists = ItemLists });
|
||||
|
||||
//connection.Send(new Sc15001() {
|
||||
// ItemLists = [
|
||||
// new Iteminfo() { Id = 20001, Count = 8394785 },
|
||||
// new Iteminfo() { Id = 15003, Count = 10 },
|
||||
// new Iteminfo() { Id = 50002, Count = 10 },
|
||||
// new Iteminfo() { Id = 50001, Count = 10 }
|
||||
// ]
|
||||
//});
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user