interactive test

This commit is contained in:
翠紅 灯
2025-09-11 20:26:00 +02:00
parent d54bab8906
commit f72b052c41
3 changed files with 34 additions and 1 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

@@ -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

@@ -13,7 +13,7 @@ class Program
static void Main(string[] args)
{
StartServer(args);
//FakeClientTester();
// FakeClientTester();
}
public static byte[] ConcatenateByteArrays(byte[] array1, byte[] array2)
{