完善GameMode和GameMap的运用

This commit is contained in:
milimoe 2023-11-28 23:23:14 +08:00
parent 3cb2e4a75f
commit fbe9f29cc3
Signed by: milimoe
GPG Key ID: 05D280912DA6C69E
2 changed files with 12 additions and 3 deletions

View File

@ -3,6 +3,7 @@ using System.Data;
using Milimoe.FunGame.Core.Api.Transmittal; using Milimoe.FunGame.Core.Api.Transmittal;
using Milimoe.FunGame.Core.Api.Utility; using Milimoe.FunGame.Core.Api.Utility;
using Milimoe.FunGame.Core.Entity; using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Common.Addon;
using Milimoe.FunGame.Core.Library.Common.Network; using Milimoe.FunGame.Core.Library.Common.Network;
using Milimoe.FunGame.Core.Library.Constant; using Milimoe.FunGame.Core.Library.Constant;
using Milimoe.FunGame.Core.Library.SQLScript.Common; using Milimoe.FunGame.Core.Library.SQLScript.Common;
@ -170,8 +171,16 @@ namespace Milimoe.FunGame.Server.Controller
Room room = General.HallInstance; Room room = General.HallInstance;
if (RequestData.Count >= 3) if (RequestData.Count >= 3)
{ {
ServerHelper.WriteLine("[" + ServerSocket.GetTypeString(SocketMessageType.DataRequest) + "] " + Server.GetClientName() + " -> CreateRoom");
string roomtype_string = DataRequest.GetHashtableJsonObject<string>(RequestData, "roomtype") ?? RoomSet.All; string roomtype_string = DataRequest.GetHashtableJsonObject<string>(RequestData, "roomtype") ?? RoomSet.All;
string gamemode = DataRequest.GetHashtableJsonObject<string>(RequestData, "gamemode") ?? "";
string gamemap = DataRequest.GetHashtableJsonObject<string>(RequestData, "gamemap") ?? "";
ServerHelper.WriteLine("[" + ServerSocket.GetTypeString(SocketMessageType.DataRequest) + "] " + Server.GetClientName() + " -> CreateRoom: " + roomtype_string + " (" + string.Join(", ", [gamemode, gamemap]) + ")");
if (gamemode == "" || gamemap == "")
{
ServerHelper.WriteLine("缺少对应的模组或地图,无法创建房间。");
ResultData.Add("room", room);
return;
}
User user = DataRequest.GetHashtableJsonObject<User>(RequestData, "master") ?? Factory.GetUser(); User user = DataRequest.GetHashtableJsonObject<User>(RequestData, "master") ?? Factory.GetUser();
string password = DataRequest.GetHashtableJsonObject<string>(RequestData, "password") ?? ""; string password = DataRequest.GetHashtableJsonObject<string>(RequestData, "password") ?? "";
@ -179,7 +188,7 @@ namespace Milimoe.FunGame.Server.Controller
{ {
RoomType roomtype = RoomSet.GetRoomType(roomtype_string); RoomType roomtype = RoomSet.GetRoomType(roomtype_string);
string roomid = Verification.CreateVerifyCode(VerifyCodeType.MixVerifyCode, 7).ToUpper(); string roomid = Verification.CreateVerifyCode(VerifyCodeType.MixVerifyCode, 7).ToUpper();
SQLHelper.Execute(RoomQuery.Insert_CreateRoom(roomid, user.Id, roomtype, "", "", password ?? "")); SQLHelper.Execute(RoomQuery.Insert_CreateRoom(roomid, user.Id, roomtype, gamemode, gamemap, password ?? ""));
if (SQLHelper.Result == SQLResult.Success) if (SQLHelper.Result == SQLResult.Success)
{ {
ServerHelper.WriteLine("[CreateRoom] Master: " + user.Username + " RoomID: " + roomid); ServerHelper.WriteLine("[CreateRoom] Master: " + user.Username + " RoomID: " + roomid);

View File

@ -175,7 +175,7 @@ bool GetGameModeList()
foreach (GameMode mode in loader.Modes.Values) foreach (GameMode mode in loader.Modes.Values)
{ {
string modename = mode.Name; string modename = mode.Name;
if (loader.Maps.ContainsKey(mode.Map)) if (loader.Maps.ContainsKey(mode.DefaultMap))
{ {
supported.Add(modename); supported.Add(modename);
} }