mirror of
https://github.com/oshima-studios/OshimaGameModule.git
synced 2025-12-05 16:16:35 +00:00
修复一些BUG
This commit is contained in:
parent
f382f0e583
commit
ff010370fc
@ -162,15 +162,14 @@ namespace Oshima.FunGame.OshimaModules.Items
|
|||||||
public override long Id => (long)GiftBoxID.魔法卡礼包;
|
public override long Id => (long)GiftBoxID.魔法卡礼包;
|
||||||
public override string Name => "魔法卡礼包";
|
public override string Name => "魔法卡礼包";
|
||||||
public override string Description => Skills.Active?.Description ?? "";
|
public override string Description => Skills.Active?.Description ?? "";
|
||||||
public override QualityType QualityType => _type;
|
|
||||||
public int Count => _count;
|
public int Count => _count;
|
||||||
public Dictionary<string, int> Gifts { get; set; } = [];
|
public Dictionary<string, int> Gifts { get; set; } = [];
|
||||||
private readonly QualityType _type = QualityType.White;
|
|
||||||
private readonly int _count = 1;
|
private readonly int _count = 1;
|
||||||
|
|
||||||
public 魔法卡礼包(QualityType type = QualityType.White, int count = 1, User? user = null, int remainUseTimes = 1) : base(ItemType.GiftBox)
|
public 魔法卡礼包(QualityType type = QualityType.White, int count = 1, User? user = null, int remainUseTimes = 1) : base(ItemType.GiftBox)
|
||||||
{
|
{
|
||||||
_type = type;
|
QualityType = type;
|
||||||
|
Others.Add("QualityType", (int)type);
|
||||||
_count = count;
|
_count = count;
|
||||||
User = user;
|
User = user;
|
||||||
礼包.Init(this, new()
|
礼包.Init(this, new()
|
||||||
@ -178,6 +177,14 @@ namespace Oshima.FunGame.OshimaModules.Items
|
|||||||
{ "与礼包同品质、随机属性、随机魔法技能的魔法卡", count }
|
{ "与礼包同品质、随机属性、随机魔法技能的魔法卡", count }
|
||||||
}, remainUseTimes);
|
}, remainUseTimes);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected override void AfterCopy()
|
||||||
|
{
|
||||||
|
if (Others.TryGetValue("QualityType", out object? value) && int.TryParse(value.ToString(), out int qualityType))
|
||||||
|
{
|
||||||
|
QualityType = (QualityType)qualityType;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public class 礼包技能 : Skill
|
public class 礼包技能 : Skill
|
||||||
|
|||||||
@ -490,7 +490,7 @@ namespace Oshima.FunGame.OshimaServers.Service
|
|||||||
|
|
||||||
foreach (Item inventoryItem in items)
|
foreach (Item inventoryItem in items)
|
||||||
{
|
{
|
||||||
Item realItem = inventoryItem.Copy(true, true, true, FunGameConstant.AllItems, FunGameConstant.AllSkills);
|
Item realItem = inventoryItem.Copy(true, true, true, true, FunGameConstant.AllItems, FunGameConstant.AllSkills);
|
||||||
realItem.User = user;
|
realItem.User = user;
|
||||||
user.Inventory.Items.Add(realItem);
|
user.Inventory.Items.Add(realItem);
|
||||||
}
|
}
|
||||||
@ -1154,9 +1154,16 @@ namespace Oshima.FunGame.OshimaServers.Service
|
|||||||
SetSellAndTradeTime(newItem);
|
SetSellAndTradeTime(newItem);
|
||||||
newItem.User = user;
|
newItem.User = user;
|
||||||
user.Inventory.Items.Add(newItem);
|
user.Inventory.Items.Add(newItem);
|
||||||
cards.Add(newItem.ToStringInventory(false));
|
cards.Add($"[{ItemSet.GetQualityTypeName(item.QualityType)}|魔法卡] {newItem.Name}\r\n{newItem.ToStringInventory(false)}");
|
||||||
}
|
}
|
||||||
msg = "打开礼包成功!获得了以下物品:\r\n" + string.Join("\r\n", cards);
|
msg = "打开礼包成功!获得了以下物品:\r\n" + string.Join("\r\n", cards);
|
||||||
|
item.RemainUseTimes--;
|
||||||
|
if (item.RemainUseTimes < 0) item.RemainUseTimes = 0;
|
||||||
|
if (item.RemainUseTimes == 0)
|
||||||
|
{
|
||||||
|
user.Inventory.Items.Remove(item);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
else if (item is 礼包.GiftBox box && box.Gifts.Count > 0)
|
else if (item is 礼包.GiftBox box && box.Gifts.Count > 0)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -51,29 +51,29 @@ namespace Oshima.FunGame.WebAPI.Controllers
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpPut("{id}")]
|
//[HttpPut("{id}")]
|
||||||
public IActionResult UpdateActivity(long id, [FromBody] Activity? activity = null)
|
//public IActionResult UpdateActivity(long id, [FromBody] Activity? activity = null)
|
||||||
{
|
//{
|
||||||
try
|
// try
|
||||||
{
|
// {
|
||||||
if (activity is null || activity.Id != id)
|
// if (activity is null || activity.Id != id)
|
||||||
{
|
// {
|
||||||
return BadRequest("活动更新失败,活动 ID 与请求体 ID 不匹配或请求体格式错误。");
|
// return BadRequest("活动更新失败,活动 ID 与请求体 ID 不匹配或请求体格式错误。");
|
||||||
}
|
// }
|
||||||
|
|
||||||
EntityModuleConfig<Activity> activities = new("activities", "activities");
|
// EntityModuleConfig<Activity> activities = new("activities", "activities");
|
||||||
activities.LoadConfig();
|
// activities.LoadConfig();
|
||||||
activities.Add(activity.Id.ToString(), activity);
|
// activities.Add(activity.Id.ToString(), activity);
|
||||||
activities.SaveConfig();
|
// activities.SaveConfig();
|
||||||
|
|
||||||
return Ok($"活动 {activity.GetIdName()} 更新成功。");
|
// return Ok($"活动 {activity.GetIdName()} 更新成功。");
|
||||||
}
|
// }
|
||||||
catch (Exception e)
|
// catch (Exception e)
|
||||||
{
|
// {
|
||||||
_logger.LogError(e, "Error: ");
|
// _logger.LogError(e, "Error: ");
|
||||||
return StatusCode(500, "更新活动时发生错误,请检查日志。");
|
// return StatusCode(500, "更新活动时发生错误,请检查日志。");
|
||||||
}
|
// }
|
||||||
}
|
//}
|
||||||
|
|
||||||
[HttpDelete("{id}")]
|
[HttpDelete("{id}")]
|
||||||
public IActionResult RemoveActivity(long id)
|
public IActionResult RemoveActivity(long id)
|
||||||
@ -125,39 +125,39 @@ namespace Oshima.FunGame.WebAPI.Controllers
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpPut("{id}/{questId}")]
|
//[HttpPut("{id}/{questId}")]
|
||||||
public IActionResult UpdateQuest(long id, long questId, [FromBody] Quest? quest = null)
|
//public IActionResult UpdateQuest(long id, long questId, [FromBody] Quest? quest = null)
|
||||||
{
|
//{
|
||||||
try
|
// try
|
||||||
{
|
// {
|
||||||
if (quest is null || quest.Id != questId)
|
// if (quest is null || quest.Id != questId)
|
||||||
{
|
// {
|
||||||
return BadRequest("任务更新失败,任务 ID 与请求体 ID 不匹配或请求体格式错误。");
|
// return BadRequest("任务更新失败,任务 ID 与请求体 ID 不匹配或请求体格式错误。");
|
||||||
}
|
// }
|
||||||
|
|
||||||
EntityModuleConfig<Activity> activities = new("activities", "activities");
|
// EntityModuleConfig<Activity> activities = new("activities", "activities");
|
||||||
activities.LoadConfig();
|
// activities.LoadConfig();
|
||||||
Activity? activity = activities.Values.FirstOrDefault(a => a.Id == id);
|
// Activity? activity = activities.Values.FirstOrDefault(a => a.Id == id);
|
||||||
if (activity != null)
|
// if (activity != null)
|
||||||
{
|
// {
|
||||||
if (activity.Quests.FirstOrDefault(q => q.Id == quest.Id) is Quest current)
|
// if (activity.Quests.FirstOrDefault(q => q.Id == quest.Id) is Quest current)
|
||||||
{
|
// {
|
||||||
activity.Quests.Remove(quest);
|
// activity.Quests.Remove(quest);
|
||||||
}
|
// }
|
||||||
activity.Quests.Add(quest);
|
// activity.Quests.Add(quest);
|
||||||
activities.Add(activity.Id.ToString(), activity);
|
// activities.Add(activity.Id.ToString(), activity);
|
||||||
activities.SaveConfig();
|
// activities.SaveConfig();
|
||||||
return Ok($"任务 {quest.GetIdName()}(属于活动【{activity.Name}】)更新成功。");
|
// return Ok($"任务 {quest.GetIdName()}(属于活动【{activity.Name}】)更新成功。");
|
||||||
}
|
// }
|
||||||
|
|
||||||
return NotFound($"活动编号 {id} 不存在。");
|
// return NotFound($"活动编号 {id} 不存在。");
|
||||||
}
|
// }
|
||||||
catch (Exception e)
|
// catch (Exception e)
|
||||||
{
|
// {
|
||||||
_logger.LogError(e, "Error: ");
|
// _logger.LogError(e, "Error: ");
|
||||||
return StatusCode(500, "更新任务时发生错误,请检查日志。");
|
// return StatusCode(500, "更新任务时发生错误,请检查日志。");
|
||||||
}
|
// }
|
||||||
}
|
//}
|
||||||
|
|
||||||
[HttpDelete("{id}/{questId}")]
|
[HttpDelete("{id}/{questId}")]
|
||||||
public IActionResult RemoveQuest(long id, long questId)
|
public IActionResult RemoveQuest(long id, long questId)
|
||||||
|
|||||||
@ -2054,6 +2054,11 @@ namespace Oshima.FunGame.WebAPI.Controllers
|
|||||||
item = user.Inventory.Items.ToList()[itemIndex - 1];
|
item = user.Inventory.Items.ToList()[itemIndex - 1];
|
||||||
if (FunGameConstant.ItemCanUsed.Contains(item.ItemType))
|
if (FunGameConstant.ItemCanUsed.Contains(item.ItemType))
|
||||||
{
|
{
|
||||||
|
if (item.ItemType == ItemType.MagicCard)
|
||||||
|
{
|
||||||
|
return "此物品为魔法卡,请使用【使用魔法卡】指令!";
|
||||||
|
}
|
||||||
|
|
||||||
if (item.RemainUseTimes <= 0)
|
if (item.RemainUseTimes <= 0)
|
||||||
{
|
{
|
||||||
return "此物品剩余使用次数为0,无法使用!";
|
return "此物品剩余使用次数为0,无法使用!";
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user