diff --git a/Assets/PerfectWorld/Scripts/Network/CSNetwork/C2SCommand/C2SCommand.cs b/Assets/PerfectWorld/Scripts/Network/CSNetwork/C2SCommand/C2SCommand.cs index e7358e3b65..8a6f0238b7 100644 --- a/Assets/PerfectWorld/Scripts/Network/CSNetwork/C2SCommand/C2SCommand.cs +++ b/Assets/PerfectWorld/Scripts/Network/CSNetwork/C2SCommand/C2SCommand.cs @@ -1583,6 +1583,15 @@ namespace CSNetwork.S2CCommand public byte byPackage; public int bySlot; } + + [StructLayout(LayoutKind.Sequential, Pack = 1)] + public struct cmd_set_status_pt + { + public int vitality; + public int energy; + public int strength; + public int agility; + } } // Player and NPC state \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Network/CSNetwork/C2SCommand/C2SCommandFactory.cs b/Assets/PerfectWorld/Scripts/Network/CSNetwork/C2SCommand/C2SCommandFactory.cs index de485044dd..d2aa352f10 100644 --- a/Assets/PerfectWorld/Scripts/Network/CSNetwork/C2SCommand/C2SCommandFactory.cs +++ b/Assets/PerfectWorld/Scripts/Network/CSNetwork/C2SCommand/C2SCommandFactory.cs @@ -917,5 +917,17 @@ namespace CSNetwork.C2SCommand pCmd.bySlot = bySlot; return SerializeCommand(CommandID.QUERY_MAFIA_PVP_INFO, pCmd); } + + public static Octets CreateSetStatusPtCmd(int vitality, int energy, int strength, int agility) + { + var pCmd = new cmd_set_status_pt + { + vitality = vitality, + energy = energy, + strength = strength, + agility = agility + }; + return SerializeCommand(CommandID.SET_STATUS_POINT, pCmd); + } } } diff --git a/Assets/PerfectWorld/Scripts/Network/CSNetwork/GameSession.cs b/Assets/PerfectWorld/Scripts/Network/CSNetwork/GameSession.cs index bde265edbb..19c4aa0236 100644 --- a/Assets/PerfectWorld/Scripts/Network/CSNetwork/GameSession.cs +++ b/Assets/PerfectWorld/Scripts/Network/CSNetwork/GameSession.cs @@ -1,4 +1,4 @@ -using BrewMonster; +using BrewMonster; using BrewMonster.Common; using BrewMonster.Managers; using BrewMonster.Network; @@ -1764,5 +1764,12 @@ namespace CSNetwork gamedatasend.Data = C2SCommandFactory.CreateGetItemInfoCmd(byPackage, bySlot); SendProtocol(gamedatasend); } + + public void c2s_SendCmdSetStatusPts(int vitality, int energy, int strength, int agility) + { + gamedatasend gamedatasend = new gamedatasend(); + gamedatasend.Data = C2SCommandFactory.CreateSetStatusPtCmd(vitality, energy, strength, agility); + SendProtocol(gamedatasend); + } } } \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Network/UnityGameSession.cs b/Assets/PerfectWorld/Scripts/Network/UnityGameSession.cs index a23f1aa2af..87f315479b 100644 --- a/Assets/PerfectWorld/Scripts/Network/UnityGameSession.cs +++ b/Assets/PerfectWorld/Scripts/Network/UnityGameSession.cs @@ -438,6 +438,12 @@ namespace BrewMonster.Network Instance._gameSession.CmdCache.SendCmdExtProps(); } + /// Send C2S::SET_STATUS_POINT (attribute point allocation). + public static void c2s_CmdSetStatusPts(int vitality, int energy, int strength, int agility) + { + Instance._gameSession.c2s_SendCmdSetStatusPts(vitality, energy, strength, agility); + } + public static void c2s_SendCmdGivePresent(int roleid, int mail_id, int goods_id, int goods_index, int goods_slot) { Instance._gameSession.c2s_SendCmdGivePresent(roleid, mail_id, goods_id, goods_index, goods_slot);