feat(gameplay): integrate DRMK NPC spawner, dynamic scene presets, pure combat combo router, and clean character switching
This commit is contained in:
1 parent
3fd7922ac8
commit
b5fc15e4ec
20 files changed
+2329029
-53
No files matched your search
@@ -0,0 +1,185 @@
|
||||
using Ananta.SDK.Serialization;
|
||||
using Auto = Ananta.Server.RpcTypes.Client4229938.Auto;
|
||||
using SceneMethods = Ananta.Server.RpcTypes.Client4229938.Methods.GameScene;
|
||||
|
||||
namespace Ananta.Server.RpcTypes.Client4229938.Methods.Game;
|
||||
|
||||
// IGameSceneToClient positional arguments; both nested values are native structs.
|
||||
[UxContract(Inline = true)]
|
||||
internal sealed class SyncNpcBelongings4229938
|
||||
{
|
||||
public ulong Id;
|
||||
public List<NpcBelongingItem4229938> Items = [];
|
||||
public uint DebugAgentId; // BelongingDebugInfo.AgentId
|
||||
}
|
||||
|
||||
[UxContract(Inline = true)]
|
||||
internal sealed class NpcBelongingItem4229938
|
||||
{
|
||||
public ulong InstanceId;
|
||||
public uint ConfigId;
|
||||
public float Hp;
|
||||
public uint State;
|
||||
}
|
||||
|
||||
[UxContract(Inline = true)]
|
||||
internal sealed class SyncNpcBelongingUsage4229938
|
||||
{
|
||||
public ulong Id;
|
||||
public List<uint> UsageIds = [];
|
||||
}
|
||||
|
||||
// RPCSerializeAuto.lua WriteClientNpcPoiActionData (4229938).
|
||||
[UxContract]
|
||||
internal sealed class ClientNpcPoiActionData4229938
|
||||
{
|
||||
public ulong Id;
|
||||
public uint SPoiActionId;
|
||||
public uint CPoiActionId;
|
||||
public bool IsActive;
|
||||
public float PlayPoiSpeed;
|
||||
}
|
||||
|
||||
// Complex argument, with ClientBaseEntityData's static-NPC discriminator.
|
||||
// SpawnNPC2's ClientStaticNpcInitData uses CustomFlagType=2, not onlyFields.
|
||||
// Field order: lua/LuaGen/AutoGen/RPCSerializeAuto.lua WriteClientStaticNpcInitData.
|
||||
[UxContract(TypeMark = 2)]
|
||||
internal sealed class ClientStaticNpcInitData4229938
|
||||
{
|
||||
public ulong StaticNpcInfoId;
|
||||
public uint NpcFormworkId;
|
||||
public uint AgentPersonaId;
|
||||
public uint SPoiActionId;
|
||||
public uint CPoiActionId;
|
||||
public uint UrbanDiversityId;
|
||||
public bool IgnoreAllStim;
|
||||
public bool TaskRelated;
|
||||
public bool EnableHack;
|
||||
public int NpcPid;
|
||||
public NpcAgentSyncClientInfo4229938? AgentSyncClientInfo;
|
||||
public uint LookAtDecisionRulesId;
|
||||
public bool ForceGo;
|
||||
public byte SourceType;
|
||||
public uint MartialArtistGossipConfigID;
|
||||
public ulong Id;
|
||||
public SceneMethods.UxVector3 Position;
|
||||
public float Facing;
|
||||
public SceneMethods.UxVector3 EulerAngles;
|
||||
}
|
||||
|
||||
// Full current-build AOI projection for an NPC AgentUnit. This contract is
|
||||
// consumed by UnitsManager.SyncAgentEnterAOI and initializes the BaseUnit
|
||||
// modules that own animation and physical reactions.
|
||||
// Field order: RPCSerializeAuto.lua WriteRaidBattleUnitAgent (build 4229938).
|
||||
[UxContract]
|
||||
internal sealed class RaidBattleUnitAgent4229938
|
||||
{
|
||||
public int SkillId;
|
||||
public int HSummonIndex;
|
||||
public int SpoonAgentId;
|
||||
public uint SuitId;
|
||||
[UxCollection(Count = UxCountEncoding.Int7)]
|
||||
public List<uint> FashionIdList = [];
|
||||
public ulong ParentId;
|
||||
public uint SpoonIndex;
|
||||
public uint AutoBackIndex;
|
||||
public ulong VehicleId;
|
||||
public int VehicleIndex;
|
||||
public ulong SourceWeaponId;
|
||||
public bool IsBorn;
|
||||
public bool BattleAiS;
|
||||
public NpcAgentSyncClientInfo4229938 AgentSyncClientInfo = new();
|
||||
public uint WeaponId;
|
||||
public byte SpawnType;
|
||||
public byte AnimateCullingMode;
|
||||
public NpcLinkAIAgentInfo4229938 AIAgentInfo = new();
|
||||
public ulong Id;
|
||||
public uint TemplateId;
|
||||
public SceneMethods.UxVector3 Position;
|
||||
public float FacingDirection;
|
||||
public ulong OwnerId;
|
||||
public ulong ManagedPid;
|
||||
public byte MoveId;
|
||||
public uint NavTags;
|
||||
public Auto.MoveActionGroundData GroundData = new();
|
||||
}
|
||||
|
||||
// WriteAgentSyncClientInfo order for 4229938. Do not copy the old build's
|
||||
// metroLineId/metroCarriageId layout: POI/platform fields replaced that section.
|
||||
[UxContract]
|
||||
internal sealed class NpcAgentSyncClientInfo4229938
|
||||
{
|
||||
public bool NeedFTF180DegreeInteract;
|
||||
public bool PlayerFTF180DegreeInteract;
|
||||
public uint IndoorId;
|
||||
public ulong chairId;
|
||||
public ulong gadgetId;
|
||||
public bool forbidAetherAI;
|
||||
public bool isApproachNpc;
|
||||
public bool TriggerLeaveEvent;
|
||||
public int approachDistance;
|
||||
public int LeaveDistance;
|
||||
public string? petPerformData = "";
|
||||
public List<int> stimIDList = [];
|
||||
public uint randomModelCfgId;
|
||||
public int layer;
|
||||
public float gpsOffsetY;
|
||||
public bool isTemp;
|
||||
public List<uint> spawnEffectId = [];
|
||||
public uint hideEffectId;
|
||||
public uint actionId;
|
||||
public uint actionGroupId;
|
||||
public uint initPoiActionId;
|
||||
public bool useDefaultPoiOnReturn;
|
||||
public List<uint> returnPoiActionIds = [];
|
||||
public NpcAdhereMovingPlatformInfo4229938? AdherePlatformInfo;
|
||||
public uint AgentDataSetsActivityCfgId;
|
||||
public uint GameplaySignalId;
|
||||
public string treeName = "";
|
||||
public int sitIndex;
|
||||
public List<uint> indoorList = [];
|
||||
public List<int> roomIds = [];
|
||||
public byte forbidStimulateType;
|
||||
public byte agentStimType;
|
||||
public byte beHitType;
|
||||
public int SpoonAgentId;
|
||||
public bool isAttackInSafeMode;
|
||||
public bool FeiSuo;
|
||||
public uint FashionSuitId;
|
||||
public bool CanBeExaminedByPolice;
|
||||
public bool IgnoreWanted;
|
||||
public bool BeAttackIgnorePolicePunish;
|
||||
public uint InteractId;
|
||||
public uint AISetting;
|
||||
public NpcLinkAIAgentInfo4229938 AIAgentInfo = new();
|
||||
public bool HackerBetray;
|
||||
}
|
||||
|
||||
[UxContract]
|
||||
internal sealed class NpcAdhereMovingPlatformInfo4229938
|
||||
{
|
||||
public byte PlatformType;
|
||||
public bool IsScene;
|
||||
public ulong PlatformId;
|
||||
public uint PartId;
|
||||
public ulong PlatformEid;
|
||||
}
|
||||
|
||||
[UxContract]
|
||||
internal sealed class NpcLinkAIAgentInfo4229938
|
||||
{
|
||||
public ulong Uid;
|
||||
public uint FightSpiritId;
|
||||
public NpcLinkAIFashionInfo4229938? Fashion;
|
||||
public string? Nickname;
|
||||
public uint NameId;
|
||||
public uint AvatarImageId;
|
||||
public uint VehicleId;
|
||||
}
|
||||
|
||||
[UxContract]
|
||||
internal sealed class NpcLinkAIFashionInfo4229938
|
||||
{
|
||||
public uint SuitId;
|
||||
public Auto.OtherPlayerSpiritWearFashionsInfo WearInfo = new();
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
using Ananta.SDK.Serialization;
|
||||
|
||||
namespace Ananta.Server.RpcTypes.Client4229938.Methods.GameScene;
|
||||
|
||||
// IGameSceneToClient.SyncPlotCurrentEvent(ulong, uint, ClientActionTarget).
|
||||
// EventId=0 closes the client's current stimulus/plot reaction.
|
||||
[UxContract(Inline = true)]
|
||||
internal sealed class SyncPlotCurrentEvent4229938
|
||||
{
|
||||
public ulong AgentEntityId;
|
||||
public uint EventId;
|
||||
public PlotEventTarget4229938 Source = new();
|
||||
}
|
||||
|
||||
// ClientToGameSceneDelegate.AskPreparePlotEvent_Serializer (4229938).
|
||||
[UxContract(Inline = true)]
|
||||
internal sealed class AskPreparePlotEventArgs4229938
|
||||
{
|
||||
internal const int WireSize = 58;
|
||||
public uint EventId;
|
||||
public ulong AgentEntityId;
|
||||
public uint ResponseId;
|
||||
public StimEventParameter4229938 Source = new();
|
||||
}
|
||||
|
||||
// ClientToGameSceneDelegate.AskEndPreparePlotEvent_Serializer (4229938).
|
||||
[UxContract(Inline = true)]
|
||||
internal sealed class AskEndPreparePlotEventArgs4229938
|
||||
{
|
||||
internal const int WireSize = 12;
|
||||
public uint EventId;
|
||||
public ulong AgentEntityId;
|
||||
}
|
||||
|
||||
// ClientToGameSceneDelegate.AskTriggerPlotEvent_Serializer (4229938).
|
||||
// Both StimEventParameter and its targets are structs, without object markers.
|
||||
[UxContract(Inline = true)]
|
||||
internal sealed class AskTriggerPlotEventArgs4229938
|
||||
{
|
||||
internal const int WireSize = 58;
|
||||
public uint EventId;
|
||||
public ulong AgentEntityId;
|
||||
public StimEventParameter4229938 Parameter = new();
|
||||
public uint ClientDmemOverrideCfgId;
|
||||
}
|
||||
|
||||
[UxContract(Inline = true)]
|
||||
internal sealed class StimEventParameter4229938
|
||||
{
|
||||
public PlotEventTarget4229938 Source = new();
|
||||
public PlotEventTarget4229938 Source2 = new();
|
||||
}
|
||||
|
||||
[UxContract(Inline = true)]
|
||||
internal sealed class PlotEventTarget4229938
|
||||
{
|
||||
public ulong Id;
|
||||
public UxVector3 Position;
|
||||
public byte Type;
|
||||
}
|
||||
Reference in new issue
Block a user