完善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.Utility;
using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Common.Addon;
using Milimoe.FunGame.Core.Library.Common.Network;
using Milimoe.FunGame.Core.Library.Constant;
using Milimoe.FunGame.Core.Library.SQLScript.Common;
@ -170,8 +171,16 @@ namespace Milimoe.FunGame.Server.Controller
Room room = General.HallInstance;
if (RequestData.Count >= 3)
{
ServerHelper.WriteLine("[" + ServerSocket.GetTypeString(SocketMessageType.DataRequest) + "] " + Server.GetClientName() + " -> CreateRoom");
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();
string password = DataRequest.GetHashtableJsonObject<string>(RequestData, "password") ?? "";
@ -179,7 +188,7 @@ namespace Milimoe.FunGame.Server.Controller
{
RoomType roomtype = RoomSet.GetRoomType(roomtype_string);
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)
{
ServerHelper.WriteLine("[CreateRoom] Master: " + user.Username + " RoomID: " + roomid);

View File

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