12121
This commit is contained in:
@@ -4,6 +4,7 @@ public interface IGameMagicService
|
|||||||
{
|
{
|
||||||
Task UpdateUserMagicTime(string userId,int areaId);
|
Task UpdateUserMagicTime(string userId,int areaId);
|
||||||
Task UpdateUserMagicEndTime(string userId, bool isWin);
|
Task UpdateUserMagicEndTime(string userId, bool isWin);
|
||||||
|
Task<bool> IsHaveWin(int areaId, string time);
|
||||||
Task<bool> CheckInMagic(string userId);
|
Task<bool> CheckInMagic(string userId);
|
||||||
Task HandleMagicData();
|
Task HandleMagicData();
|
||||||
}
|
}
|
||||||
@@ -35,6 +35,13 @@ public class GameMagicService(ISqlSugarClient DbClient, IRedisCache redis) : IGa
|
|||||||
.ExecuteCommandAsync();
|
.ExecuteCommandAsync();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async Task<bool> IsHaveWin(int areaId, string time)
|
||||||
|
{
|
||||||
|
var db = DbClient.AsTenant().GetConnectionWithAttr<game_magic>();
|
||||||
|
return await db.Queryable<game_magic>().Where(it => it.areaId == areaId && it.time == time && it.isWin == 1)
|
||||||
|
.AnyAsync();
|
||||||
|
}
|
||||||
|
|
||||||
public async Task<bool> CheckInMagic(string userId)
|
public async Task<bool> CheckInMagic(string userId)
|
||||||
{
|
{
|
||||||
var db = DbClient.AsTenant().GetConnectionWithAttr<game_magic>();
|
var db = DbClient.AsTenant().GetConnectionWithAttr<game_magic>();
|
||||||
@@ -83,11 +90,12 @@ public class GameMagicService(ISqlSugarClient DbClient, IRedisCache redis) : IGa
|
|||||||
var users = await mapService.GetMapUserByAll(GameConfig.GameMagicMapId, area.areaId, 1, []);
|
var users = await mapService.GetMapUserByAll(GameConfig.GameMagicMapId, area.areaId, 1, []);
|
||||||
if (users.Count > 0)
|
if (users.Count > 0)
|
||||||
{
|
{
|
||||||
|
bool isHaveWin = await IsHaveWin(area.areaId, time);
|
||||||
for (int i = 1; i <= users.Count; i++)
|
for (int i = 1; i <= users.Count; i++)
|
||||||
{
|
{
|
||||||
string userId = users[i - 1].userId;
|
string userId = users[i - 1].userId;
|
||||||
bool isWin = false;
|
bool isWin = false;
|
||||||
if (i == users.Count)
|
if (i == users.Count && isHaveWin == false)
|
||||||
{
|
{
|
||||||
isWin = true;
|
isWin = true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -715,17 +715,20 @@ public class MapController : ControllerBase
|
|||||||
|
|
||||||
if (code == nameof(MapEnum.NpcEventCode.Magic_Event)) //魔城
|
if (code == nameof(MapEnum.NpcEventCode.Magic_Event)) //魔城
|
||||||
{
|
{
|
||||||
|
var magicService = App.GetService<IGameMagicService>();
|
||||||
bool isWin = false;
|
bool isWin = false;
|
||||||
if (TimeAssist.GetHourNum > 221000)
|
if (TimeAssist.GetHourNum > 221000)
|
||||||
{
|
{
|
||||||
var onMapUser = await _mapService.GetMapUser(GameConfig.GameMagicMapId, areaId, 1, [userId], 1);
|
var onMapUser = await _mapService.GetMapUser(GameConfig.GameMagicMapId, areaId, 1, [userId], 1);
|
||||||
if (onMapUser.Count == 0)
|
if (onMapUser.Count == 0)
|
||||||
|
{
|
||||||
|
string time = TimeAssist.GetDateTimeYMDString(0);
|
||||||
|
if (await magicService.IsHaveWin(areaId, time)==false)
|
||||||
{
|
{
|
||||||
isWin = true;
|
isWin = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
var magicService = App.GetService<IGameMagicService>();
|
|
||||||
await magicService.UpdateUserMagicEndTime(userId, isWin);
|
await magicService.UpdateUserMagicEndTime(userId, isWin);
|
||||||
|
|
||||||
await _mapService.UpdateUserOnMap(onMap, GameConfig.GameMagicInMapId); //设置地图
|
await _mapService.UpdateUserOnMap(onMap, GameConfig.GameMagicInMapId); //设置地图
|
||||||
|
|||||||
Reference in New Issue
Block a user