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:
2026-07-07 12:02:15 +08:00
commit e9616125ce
958 changed files with 158203 additions and 0 deletions

52
GameDAL/Game/GoldStyle.cs Normal file
View 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
View 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;
}
}
}

View 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;
}
}
}

View 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;
}
}
}