From e927c1fa0da590a59b7d631cb1d82bc540b38595 Mon Sep 17 00:00:00 2001 From: Shawqeem <1004837646@qq.com> Date: Sun, 12 Mar 2023 01:57:52 +0800 Subject: [PATCH] feat: :fire: remove PlayerType in MessageToServer Remove PlayerType in MessageToServer and add keyboard control to fix machine --- dependency/proto/Message2Server.proto | 26 +++----- dependency/proto/MessageType.proto | 2 +- logic/Client/MainWindow.xaml.cs | 85 +++++++++++++++++------- logic/Client/StatusBarOfSurvivor.xaml.cs | 6 +- 4 files changed, 73 insertions(+), 46 deletions(-) diff --git a/dependency/proto/Message2Server.proto b/dependency/proto/Message2Server.proto index 99440d0..8dbed28 100755 --- a/dependency/proto/Message2Server.proto +++ b/dependency/proto/Message2Server.proto @@ -7,56 +7,48 @@ import "MessageType.proto"; message PlayerMsg { int64 player_id = 1; - PlayerType player_type = 2; oneof job_type { - StudentType student_type = 3; - TrickerType tricker_type = 4; + StudentType student_type = 2; + TrickerType tricker_type = 3; } } message MoveMsg { int64 player_id = 1; - PlayerType player_type = 2; - double angle = 3; - int64 time_in_milliseconds = 4; + double angle = 2; + int64 time_in_milliseconds = 3; } message PropMsg { int64 player_id = 1; - PlayerType player_type = 2; - PropType prop_type = 3; + PropType prop_type = 2; } message SendMsg { int64 player_id = 1; - PlayerType player_type = 2; - int64 to_player_id = 3; - PlayerType to_player_type = 4; - string message = 5; + int64 to_player_id = 2; + string message = 3; } message AttackMsg // 相当于攻击 { int64 player_id = 1; - PlayerType player_type = 2; - double angle = 3; + double angle = 2; } message IDMsg { int64 player_id = 1; - PlayerType player_type = 2; } message SkillMsg { int64 player_id = 1; - PlayerType player_type = 2; - int32 skill_id = 3; + int32 skill_id = 2; } // 基本继承于THUAI5,为了使发送的信息尽可能不被浪费,暂定不发这类大包。 diff --git a/dependency/proto/MessageType.proto b/dependency/proto/MessageType.proto index f9499d8..f06c5dd 100755 --- a/dependency/proto/MessageType.proto +++ b/dependency/proto/MessageType.proto @@ -73,7 +73,7 @@ enum PlayerState ATTACKING = 12; // 前摇 LOCKING = 13; RUMMAGING = 14; - CLIMBING = 15; + CLIMBING = 15; // 翻窗 } diff --git a/logic/Client/MainWindow.xaml.cs b/logic/Client/MainWindow.xaml.cs index 597673d..a4ef3c8 100644 --- a/logic/Client/MainWindow.xaml.cs +++ b/logic/Client/MainWindow.xaml.cs @@ -53,27 +53,26 @@ namespace Client listOfButcher = new List(); listOfBullet=new List(); listOfBombedBullet = new List(); - listOfAll=new List(); + listOfAll = new List(); WindowStartupLocation = WindowStartupLocation.CenterScreen; - comInfo[0] = "183.172.208.156"; + comInfo[0] = "183.172.212.19"; comInfo[1] = "8888"; comInfo[2] = "0"; comInfo[3] = "1"; - comInfo[4] = "1"; - - //ConnectToServer(comInfo); - //OnReceive(); - DrawMap(); - ZoomMap(); - MessageOfStudent kurei = new MessageOfStudent(); - kurei.X = 10000; - kurei.Y = 20000; - kurei.Speed = 1000; - kurei.PlayerId = 0; - listOfHuman.Add(kurei); - MessageOfAll all= new MessageOfAll(); - all.HiddenGateRefreshed = false; - listOfAll.Add(all); + + ConnectToServer(comInfo); + OnReceive(); + //DrawMap(); + //ZoomMap(); + //MessageOfStudent kurei = new MessageOfStudent(); + //kurei.X = 10000; + //kurei.Y = 20000; + //kurei.Speed = 1000; + //kurei.PlayerId = 0; + //listOfHuman.Add(kurei); + //MessageOfAll all= new MessageOfAll(); + //all.HiddenGateRefreshed = false; + //listOfAll.Add(all); // ReactToCommandline(); } @@ -88,7 +87,7 @@ namespace Client } } - // 连接Server,comInfo[]的格式:0-ip 1- port 2-playerID 3-playerType 4-human/TrickerType + // 连接Server,comInfo[]的格式:0-ip 1- port 2-playerID 3-human/TrickerType private void ConnectToServer(string[] comInfo) { if (!isPlaybackMode) @@ -120,7 +119,6 @@ namespace Client { humanOrButcher = false; } - playerMsg.PlayerType = playerType; if (playerType == PlayerType.StudentPlayer) { switch (Convert.ToInt64(comInfo[4])) @@ -204,7 +202,7 @@ namespace Client { for (int j = 0; j < 50; j++) { - map[i, j] = Convert.ToInt32(obj.Row[i].Col[j]); + map[i, j] = Convert.ToInt32(obj.Row[i].Col[j])+4;//与proto一致 } } } @@ -256,11 +254,11 @@ namespace Client case 6: mapPatches[i, j].Fill = Brushes.Brown; mapPatches[i, j].Stroke = Brushes.Brown; - break; + break;//wall case 7: mapPatches[i, j].Fill = Brushes.Green; mapPatches[i, j].Stroke = Brushes.Green; - break; + break;//grass case 8: mapPatches[i, j].Fill = Brushes.LightPink; mapPatches[i, j].Stroke = Brushes.LightPink; @@ -336,7 +334,6 @@ namespace Client switch (content.GameState) { case GameState.GameStart: - case GameState.GameRunning: foreach (var obj in content.ObjMessage) { switch (obj.MessageOfObjCase) @@ -369,6 +366,38 @@ namespace Client GetMap(content.MapMessage); listOfAll.Add(content.AllMessage); break; + case GameState.GameRunning: + foreach (var obj in content.ObjMessage) + { + switch (obj.MessageOfObjCase) + { + case MessageOfObj.MessageOfObjOneofCase.StudentMessage: + if (humanOrButcher && obj.StudentMessage.PlayerId == playerID) + { + human = obj.StudentMessage; + } + listOfHuman.Add(obj.StudentMessage); + break; + case MessageOfObj.MessageOfObjOneofCase.TrickerMessage: + if (!humanOrButcher && obj.TrickerMessage.PlayerId == playerID) + { + butcher = obj.TrickerMessage; + } + listOfButcher.Add(obj.TrickerMessage); + break; + case MessageOfObj.MessageOfObjOneofCase.PropMessage: + listOfProp.Add(obj.PropMessage); + break; + case MessageOfObj.MessageOfObjOneofCase.BombedBulletMessage: + listOfBombedBullet.Add(obj.BombedBulletMessage); + break; + case MessageOfObj.MessageOfObjOneofCase.BulletMessage: + listOfBullet.Add(obj.BulletMessage); + break; + } + } + listOfAll.Add(content.AllMessage); + break; case GameState.GameEnd: foreach (var obj in content.ObjMessage) @@ -412,7 +441,7 @@ namespace Client //待修改 private bool CanSee(MessageOfStudent msg) { - if (msg.State == StudentState.Quit) + if (msg.State == PlayerState.Quit) return false; //if (playerID >= 2022 || teamID >= 2022) // return true; @@ -766,7 +795,13 @@ namespace Client }; client.UseSkill(msgQ); break; - + case Key.K: + IDMsg msgK = new() + { + PlayerId = playerID, + }; + client.StartLearning(msgK); + break; default: break; } diff --git a/logic/Client/StatusBarOfSurvivor.xaml.cs b/logic/Client/StatusBarOfSurvivor.xaml.cs index 85f1b90..b790535 100644 --- a/logic/Client/StatusBarOfSurvivor.xaml.cs +++ b/logic/Client/StatusBarOfSurvivor.xaml.cs @@ -62,8 +62,8 @@ namespace Client } private void SetDynamicValue(MessageOfStudent obj) { - skillprogress.Value = 100 - obj.TimeUntilSkillAvailable / coolTime * 100; - if (obj.State == StudentState.Quit) + skillprogress.Value = 100 - obj.TimeUntilSkillAvailable[0] / coolTime * 100; + if (obj.State == PlayerState.Quit) { skillprogress.Value = 0; skillprogress.Background = Brushes.Gray; @@ -73,7 +73,7 @@ namespace Client Func life = (obj) => { - if (obj.State == StudentState.Quit || obj.State == StudentState.Addicted) + if (obj.State == PlayerState.Quit || obj.State == PlayerState.Addicted) return 0; else return obj.Determination;