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") }else if(eventName == "pick_inst")
{ {
//TODO //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; return false;
} }

View File

@ -3,6 +3,7 @@ using Campofinale.Network;
using Campofinale.Packets.Sc; using Campofinale.Packets.Sc;
using Campofinale.Protocol; using Campofinale.Protocol;
using Campofinale.Resource; using Campofinale.Resource;
using System;
using static Campofinale.Resource.ResourceManager; using static Campofinale.Resource.ResourceManager;
namespace Campofinale.Packets.Cs namespace Campofinale.Packets.Cs
@ -23,6 +24,18 @@ namespace Campofinale.Packets.Cs
case SpInteractiveOpType.CommonActive: case SpInteractiveOpType.CommonActive:
session.bitsetManager.AddValue(Resource.BitsetType.InteractiveActive, ResourceManager.levelShortIdTable[scene.id].ids[(long)entity.guid]); session.bitsetManager.AddValue(Resource.BitsetType.InteractiveActive, ResourceManager.levelShortIdTable[scene.id].ids[(long)entity.guid]);
break; 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: default:
break; break;
} }

View File

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