Compare commits

..

6 Commits

Author SHA1 Message Date
翠紅 灯
f72b052c41 interactive test 2025-09-11 20:26:00 +02:00
翠紅 灯
d54bab8906 1.1.8-dev for real 2025-08-20 23:31:44 +02:00
翠紅 灯
68f93eb80d revert 2025-08-20 23:30:18 +02:00
翠紅 灯
c2ba13b5f7 1.1.8-dev start 2025-08-20 23:29:37 +02:00
翠紅 灯
b125394b79 1.1.7 ready 2025-08-20 23:28:08 +02:00
翠紅 灯
69d832d376 item bag set item lock 2025-08-20 22:39:06 +02:00
5 changed files with 72 additions and 4 deletions

View File

@@ -171,6 +171,26 @@ namespace Campofinale.Game.Entities
}else if(eventName == "pick_inst")
{
//TODO
}else if(eventName == "set_state_true")
{
ScSceneUpdateInteractiveProperty update = new()
{
Id = guid,
SceneNumId = GetOwner().curSceneNumId,
Properties =
{
{1, new DynamicParameter()
{
RealType=3,
ValueType=3,
ValueIntList={1}
} }
}
};
GetOwner().sceneManager.KillEntity(guid, true, 1);
GetOwner().noSpawnAnymore.Add(guid);
GetOwner().sceneManager.GetScene(sceneNumId).AddCollection(templateId, 1);
GetOwner().Send(ScMsgId.ScSceneUpdateInteractiveProperty, update);
}
return false;
}

View File

@@ -0,0 +1,34 @@
using Campofinale.Game.Char;
using Campofinale.Game.Inventory;
using Campofinale.Network;
using Campofinale.Protocol;
namespace Campofinale.Packets.Cs
{
public class HandleCsItemBagSetItemLock
{
[Server.Handler(CsMsgId.CsItemBagSetItemLock)]
public static void Handle(Player session, CsMsgId cmdId, Packet packet)
{
CsItemBagSetItemLock req = packet.DecodeBody<CsItemBagSetItemLock>();
foreach (var info in req.LockInfoList)
{
Item item = session.inventoryManager.items.items.Find(i=>i.guid==info.InstId);
if (item != null)
{
item.locked = info.IsLock;
}
}
ScItemBagSetItemLock rsp = new()
{
LockInfoList =
{
req.LockInfoList,
}
};
session.Send(ScMsgId.ScItemBagSetItemLock, rsp);
}
}
}

View File

@@ -3,6 +3,7 @@ using Campofinale.Network;
using Campofinale.Packets.Sc;
using Campofinale.Protocol;
using Campofinale.Resource;
using System;
using static Campofinale.Resource.ResourceManager;
namespace Campofinale.Packets.Cs
@@ -23,6 +24,18 @@ namespace Campofinale.Packets.Cs
case SpInteractiveOpType.CommonActive:
session.bitsetManager.AddValue(Resource.BitsetType.InteractiveActive, ResourceManager.levelShortIdTable[scene.id].ids[(long)entity.guid]);
break;
case SpInteractiveOpType.DoodadCommonPick:
EntityInteractive interactive = entity as EntityInteractive;
if (interactive.templateId== "int_doodad_flower_2")
{
session.inventoryManager.AddRewards("reward_doodad_moss_3", interactive.Position, 1);
}
if (interactive.templateId == "int_doodad_flower_1")
{
session.inventoryManager.AddRewards("reward_doodad_moss_3", interactive.Position, 1);
}
session.sceneManager.KillEntity(interactive.guid, true, 1);
break;
default:
break;
}

View File

@@ -22,7 +22,7 @@ class Program
private static void FakeClientTester()
{
//
string serverIp = "beyond-cn.hypergryph.com";
string serverIp = "beyond-ric.gryphline.com";
int serverPort = 30000;
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
@@ -33,6 +33,7 @@ class Program
socket.Connect(new IPEndPoint(ipAddress, serverPort));
socket.Send(Packet.EncodePacket((int)CsMsgId.CsLogin,new CsLogin() { ClientVersion="0.5.5",Uid= "", Token= "", Env=EnvType.Prod,PlatformId=ClientPlatformType.Windows,Area=AreaType.Oversea,ClientResVersion="", LoginToken= "" }.ToByteArray()));
//socket.Send(Packet.EncodePacket((int)CsMsgId.CsFriendListSync, new CsFriendListSync() { }.ToByteArray()));
while (true)
{
byte[] buffer = new byte[3];

View File

@@ -59,7 +59,7 @@ namespace Campofinale
public delegate void HandlerDelegate(Player sender, string command, string[] args, Player target);
}
public static List<Player> clients = new List<Player>();
public static string ServerVersion = "1.1.7-dev";
public static string ServerVersion = "1.1.8-dev";
public static bool Initialized = false;
public static bool showLogs = true;
public static bool showWarningLogs = true;