feat: initial commit - HJHA game server full source
6 major server modules (PdkFriendServer/GlobalSever/ServerCore/GameModule/GameNetModule) + game logic (GameFix/GameDAL/ServerData) + network layer (NetWorkMessage) + data layer (ObjectModel) + utilities (MrWu/Core/Config/CloudAPI/dll) + adapters (zyxAdapter/base) .NET 8.0 C# solution, 16 projects, 958 source files
This commit is contained in:
52
GameDAL/Game/GoldStyle.cs
Normal file
52
GameDAL/Game/GoldStyle.cs
Normal file
@ -0,0 +1,52 @@
|
||||
/********************************
|
||||
*
|
||||
* 作者:吴隆健
|
||||
* 创建时间: 2019/7/3 15:00:59
|
||||
*
|
||||
********************************/
|
||||
|
||||
using System;
|
||||
using System.ComponentModel;
|
||||
|
||||
namespace GameDAL.Game {
|
||||
[Flags]
|
||||
public enum GoldStyle {
|
||||
/// <summary>
|
||||
/// None
|
||||
/// </summary>
|
||||
//[Description("None")]
|
||||
None =0,
|
||||
/// <summary>
|
||||
/// 赠送
|
||||
/// </summary>
|
||||
[Description("赠送")]
|
||||
GiveAway = 1,
|
||||
/// <summary>
|
||||
/// 购买
|
||||
/// </summary>
|
||||
[Description("购买")]
|
||||
Buy = 2,
|
||||
/// <summary>
|
||||
/// 回收
|
||||
/// </summary>
|
||||
[Description("回收")]
|
||||
Recycle = 4,
|
||||
|
||||
/// <summary>
|
||||
/// 存取
|
||||
/// </summary>
|
||||
[Description("存取")]
|
||||
access = 8,
|
||||
/// <summary>
|
||||
/// 其他
|
||||
/// </summary>
|
||||
[Description("其他")]
|
||||
Other = 1024,
|
||||
/// <summary>
|
||||
/// ALL
|
||||
/// </summary>
|
||||
[Description("全部")]
|
||||
All = GiveAway | Buy | Recycle | access | Other
|
||||
}
|
||||
|
||||
}
|
||||
59
GameDAL/Game/PlayerDB.cs
Normal file
59
GameDAL/Game/PlayerDB.cs
Normal file
@ -0,0 +1,59 @@
|
||||
/********************************
|
||||
*
|
||||
* 作者:吴隆健
|
||||
* 创建时间: 2019/7/3 15:00:59
|
||||
*
|
||||
********************************/
|
||||
|
||||
using System;
|
||||
using System.Data;
|
||||
using Server.DB.Sql;
|
||||
using GameData;
|
||||
using MrWu.Debug;
|
||||
using System.Threading.Tasks;
|
||||
using MrWu.Basic;
|
||||
using System.Data.SqlClient;
|
||||
|
||||
namespace GameDAL.Game {
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public static class PlayerDB {
|
||||
|
||||
/// <summary>
|
||||
/// 读取玩家数据——存储过程
|
||||
/// </summary>
|
||||
private static string Fun_ReeadPlayerData2025 = "ReadPlayerData2025";
|
||||
|
||||
/// <summary>
|
||||
/// 保存玩家数据——存储过程
|
||||
/// 增加比赛卷逻辑 2021年6月8日11:15:15
|
||||
/// </summary>
|
||||
private static string Fun_SavePlayerData = "SavePlayerData_Roll2023";//"SavePlayerData";
|
||||
|
||||
/// <summary>
|
||||
/// 读取玩家数据
|
||||
/// </summary>
|
||||
public static DataSet ReadPlayerData(int userid, bool hasPi) {
|
||||
var sql = GameDB.Instance.BeginSetProcedureParameter(dbbase.gamedb, Fun_ReeadPlayerData2025);
|
||||
GameDB.Instance.AddProdureParameters(sql, "@userid", SqlDbType.Int, userid);
|
||||
GameDB.Instance.AddProdureParameters(sql, "@hasPi", SqlDbType.Int, hasPi ? 1 : 0);
|
||||
|
||||
DataSet ds = new DataSet();
|
||||
GameDB.Instance.EndAddProdureParameters(sql, ds);
|
||||
return ds;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 保存玩家数据
|
||||
/// </summary>
|
||||
/// <param name="pdc">玩家变化的数据</param>
|
||||
/// <returns>返回值</returns>
|
||||
public static bool SavePlayerData(PlayerDataChange pdc)
|
||||
{
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
44
GameDAL/Game/SessionUUID.cs
Normal file
44
GameDAL/Game/SessionUUID.cs
Normal file
@ -0,0 +1,44 @@
|
||||
using System;
|
||||
using Server.DB.Redis;
|
||||
using StackExchange.Redis;
|
||||
|
||||
namespace GameDAL.Game
|
||||
{
|
||||
public static class SessionUUID
|
||||
{
|
||||
private const string key = "SessionUUID";
|
||||
|
||||
/// <summary>
|
||||
/// 一天时间再过期
|
||||
/// </summary>
|
||||
private const int ExpireTime = 24 * 60;
|
||||
|
||||
public static string GetSessionUUIDKey(string sessionUUID)
|
||||
{
|
||||
return $"{key}:{sessionUUID}";
|
||||
}
|
||||
|
||||
public static void UpdateExpiredTime(string sessionUUID)
|
||||
{
|
||||
redisManager.db.KeyExpire(GetSessionUUIDKey(sessionUUID), TimeSpan.FromMinutes(ExpireTime));
|
||||
}
|
||||
|
||||
public static string CreateSessionUUID(int userid)
|
||||
{
|
||||
string sessionUUID = Guid.NewGuid().ToString().Replace("-", "");
|
||||
redisManager.db.StringSet(GetSessionUUIDKey(sessionUUID), userid, TimeSpan.FromMinutes(ExpireTime));
|
||||
return sessionUUID;
|
||||
}
|
||||
|
||||
public static int GetUserIdBySessionUUID(string sessionUUID)
|
||||
{
|
||||
RedisValue value = redisManager.db.StringGet(GetSessionUUIDKey(sessionUUID));
|
||||
if (value.HasValue && int.TryParse(value, out int userid) && userid > 0)
|
||||
{
|
||||
return userid;
|
||||
}
|
||||
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
69
GameDAL/Game/UserWarDataDal.cs
Normal file
69
GameDAL/Game/UserWarDataDal.cs
Normal file
@ -0,0 +1,69 @@
|
||||
using MrWu.Debug;
|
||||
using ObjectModel.Game;
|
||||
using Server.DB.Sql;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using MrWu.DB;
|
||||
|
||||
namespace GameDAL.Game
|
||||
{
|
||||
/// <summary>
|
||||
/// 玩家对战统计
|
||||
/// </summary>
|
||||
public class UserWarDataDal
|
||||
{
|
||||
/// <summary>
|
||||
/// 数据库
|
||||
/// </summary>
|
||||
const dbbase SQLDB = dbbase.game2018;
|
||||
|
||||
private const string Fun_SaveUserWarData = "SaveUserWarData";
|
||||
|
||||
public static Task<bool> SaveUserWarDataAsync(UserWarDataModel model)
|
||||
{
|
||||
return Task.Run(() => SaveUserWarData(model));
|
||||
}
|
||||
|
||||
public static bool SaveUserWarData(UserWarDataModel model)
|
||||
{
|
||||
try
|
||||
{
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Debug.Error($"出错:{e.Message}");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public static Task<UserWarDataModel> GetUserWarDataAsync(int userid,int gameid)
|
||||
{
|
||||
return Task.Run(() => GetUserWarData(userid, gameid));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取玩家的对战数据
|
||||
/// </summary>
|
||||
/// <param name="userid">userid</param>
|
||||
/// <param name="gameId">游戏ID</param>
|
||||
/// <returns></returns>
|
||||
public static UserWarDataModel GetUserWarData(int userid, int gameId) {
|
||||
//UserWarDataModel result = null;
|
||||
try
|
||||
{
|
||||
return UserWarDataModel.Create(userid,gameId);
|
||||
}
|
||||
catch (Exception e) {
|
||||
Debug.Error($"获取玩家的对战数据出错 msg:{e.Message},code:{e.StackTrace}");
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user