From 8fc6d623b070267161bd3b8197f31f761173210d Mon Sep 17 00:00:00 2001 From: AlessandroCH Date: Fri, 16 May 2025 21:32:38 +0200 Subject: [PATCH] levelscript starting --- Campofinale/ConfigFile.cs | 2 +- Campofinale/Game/GameConstants.cs | 1 - Campofinale/Packets/Cs/HandleCsLogin.cs | 87 ++++--------------- .../Cs/HandleCsSceneSetLevelScriptActive.cs | 53 +++++++++++ .../Packets/Sc/PacketScSelfSceneInfo.cs | 3 +- .../Packets/Sc/PacketScSyncBaseData.cs | 7 +- 6 files changed, 74 insertions(+), 79 deletions(-) create mode 100644 Campofinale/Packets/Cs/HandleCsSceneSetLevelScriptActive.cs diff --git a/Campofinale/ConfigFile.cs b/Campofinale/ConfigFile.cs index 206b408..15b1281 100644 --- a/Campofinale/ConfigFile.cs +++ b/Campofinale/ConfigFile.cs @@ -10,7 +10,7 @@ } public class ServerOptions { - public int defaultSceneNumId = 98; + public int defaultSceneNumId = 87; public int maxPlayers = 20; public CharactersOptions defaultCharacters = new(); public ServerOptions() diff --git a/Campofinale/Game/GameConstants.cs b/Campofinale/Game/GameConstants.cs index fa458d8..8bc42e0 100644 --- a/Campofinale/Game/GameConstants.cs +++ b/Campofinale/Game/GameConstants.cs @@ -11,7 +11,6 @@ }; public static string GAME_VERSION = "0.5.28"; //CBT 2 - public static string public static string GAME_VERSION_ASSET_URL = "https://beyond.hg-cdn.com/uXUuLlNbIYmMMTlN/0.5/update/6/1/Windows/0.5.28_U1mgxrslUitdn3hb/files";//CBT 2 public static int MAX_TEAMS_NUMBER = 5; //Not used yet public static (long, string) SERVER_UID = (99, "99"); //Not used yet, no friend chat in current Beta diff --git a/Campofinale/Packets/Cs/HandleCsLogin.cs b/Campofinale/Packets/Cs/HandleCsLogin.cs index 6cf7e6d..6828198 100644 --- a/Campofinale/Packets/Cs/HandleCsLogin.cs +++ b/Campofinale/Packets/Cs/HandleCsLogin.cs @@ -12,11 +12,16 @@ namespace Campofinale.Packets.Cs { public class HandleCsLogin { - [Server.Handler(CsMsgId.CsCreateRole)] - public static void HandleCsCreateRole(Player session, CsMsgId cmdId, Packet packet) + [Server.Handler(CsMsgId.CsSetGender)] + public static void HandleCsSetGender(Player session, CsMsgId cmdId, Packet packet) { - CsCreateRole req = packet.DecodeBody(); - + CsSetGender req = packet.DecodeBody(); + ScSetGender rsp = new() + { + Gender = req.Gender, + }; + session.gender = rsp.Gender; + session.Send(ScMsgId.ScSetGender, rsp); } [Server.Handler(CsMsgId.CsLogin)] @@ -121,65 +126,6 @@ namespace Campofinale.Packets.Cs session.Send(new PacketScItemBagScopeSync(session, ItemValuableDepotType.SpecialItem)); session.Send(new PacketScSyncAllMail(session)); session.Send(new PacketScSceneCollectionSync(session)); - /*ScSyncAllMission missions = new() - { - Missions = - { - {"e0m0", - new Mission() - { - MissionId="e0m0", - MissionState=(int)MissionState.Processing, - Properties = - { - {1,new DynamicParameter() - { - ValueType=1, - RealType=1, - ValueBoolList = - { - true - } - } - }, - {2,new DynamicParameter() - { - ValueType=1, - RealType=1, - ValueBoolList = - { - false - } - } - }, - {3,new DynamicParameter() - { - ValueType=1, - RealType=1, - ValueBoolList = - { - false - } - } - } - } - } - } - }, - TrackMissionId= "e0m0", - CurQuests = - { - {"e0m0#1", new Quest(){ - QuestId="e0m0#1", - QuestState=2, - QuestObjectives = - { - - } - }} - } - };*/ - //session.Send(ScMessageId.ScSyncAllMission, missions); string json1 = File.ReadAllText("44_ScSyncAllMission.json"); @@ -187,16 +133,12 @@ namespace Campofinale.Packets.Cs m.TrackMissionId = ""; - session.Send(ScMsgId.ScSyncAllMission, m); - /* session.Send(ScMsgId.ScSyncAllMission, new ScSyncAllMission() + //session.Send(ScMsgId.ScSyncAllMission, m); + session.Send(ScMsgId.ScSyncAllMission, new ScSyncAllMission() { NewMissionTags = { - new NewMissionTag() - { - MissionId="e0m0", - QuestId="e0m0_q#1", - } + }, Missions = @@ -214,7 +156,7 @@ namespace Campofinale.Packets.Cs ValueType=1, ValueBoolList = { - true + false } } } } @@ -224,6 +166,7 @@ namespace Campofinale.Packets.Cs CurQuests = { + {"e0m0_q#1", new Quest() { QuestId="e0m0_q#1", @@ -239,7 +182,7 @@ namespace Campofinale.Packets.Cs } } } } - });*/ + }); session.Send(new PacketScGachaSync(session)); ScSettlementSyncAll settlements = new ScSettlementSyncAll() diff --git a/Campofinale/Packets/Cs/HandleCsSceneSetLevelScriptActive.cs b/Campofinale/Packets/Cs/HandleCsSceneSetLevelScriptActive.cs new file mode 100644 index 0000000..4ceb335 --- /dev/null +++ b/Campofinale/Packets/Cs/HandleCsSceneSetLevelScriptActive.cs @@ -0,0 +1,53 @@ +using Campofinale.Game.Character; +using Campofinale.Game.Entities; +using Campofinale.Network; +using Campofinale.Protocol; + +namespace Campofinale.Packets.Cs +{ + public class HandleCsSceneSetLevelScriptActive + { + [Server.Handler(CsMsgId.CsSceneSetLevelScriptActive)] + public static void Handle(Player session, CsMsgId cmdId, Packet packet) + { + CsSceneSetLevelScriptActive req = packet.DecodeBody(); + + ScSceneLevelScriptStateNotify rsp = new ScSceneLevelScriptStateNotify() + { + SceneNumId = req.SceneNumId, + ScriptId = req.ScriptId, + State = 3 + }; + session.Send(ScMsgId.ScSceneLevelScriptStateNotify, rsp); + + } + + [Server.Handler(CsMsgId.CsSceneSetLevelScriptStart)] + public static void HandleCsSceneSetLevelScriptStart(Player session, CsMsgId cmdId, Packet packet) + { + CsSceneSetLevelScriptStart req = packet.DecodeBody(); + ScSceneLevelScriptStateNotify rsp = new ScSceneLevelScriptStateNotify() + { + SceneNumId = req.SceneNumId, + ScriptId = req.ScriptId, + State = 4 + }; + session.Send(ScMsgId.ScSceneLevelScriptStateNotify, rsp); + + } + + [Server.Handler(CsMsgId.CsSceneLevelScriptEventTrigger)] + public static void HandleCsSceneLevelScriptEventTrigger(Player session, CsMsgId cmdId, Packet packet) + { + CsSceneLevelScriptEventTrigger req = packet.DecodeBody(); + + ScSceneLevelScriptEventTrigger rsp = new ScSceneLevelScriptEventTrigger() + { + + }; + + session.Send(ScMsgId.ScSceneLevelScriptEventTrigger, rsp,packet.csHead.UpSeqid); + + } + } +} \ No newline at end of file diff --git a/Campofinale/Packets/Sc/PacketScSelfSceneInfo.cs b/Campofinale/Packets/Sc/PacketScSelfSceneInfo.cs index a7a86d3..cb08b06 100644 --- a/Campofinale/Packets/Sc/PacketScSelfSceneInfo.cs +++ b/Campofinale/Packets/Sc/PacketScSelfSceneInfo.cs @@ -66,12 +66,13 @@ namespace Campofinale.Packets.Sc { ScriptId = l.scriptId, IsDone = false, - State = 1, + State = 2, }; int i = 0; foreach (var item in l.properties) { + DynamicParameter p=item.ToProto(); if (p != null) script.Properties.Add(l.GetPropertyId(item.key,script.Properties.Keys.ToList()), p); diff --git a/Campofinale/Packets/Sc/PacketScSyncBaseData.cs b/Campofinale/Packets/Sc/PacketScSyncBaseData.cs index cad8c4b..305bc6d 100644 --- a/Campofinale/Packets/Sc/PacketScSyncBaseData.cs +++ b/Campofinale/Packets/Sc/PacketScSyncBaseData.cs @@ -12,13 +12,12 @@ namespace Campofinale.Packets.Sc { Roleid = client.roleId, Level = client.level, - Exp=client.xp, + Exp = client.xp, RoleName = client.nickname, Gender = client.gender, - ShortId="1", - - }; + ShortId = "1", + }; SetData(ScMsgId.ScSyncBaseData, proto); }