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 string Name => "魔法卡礼包";
|
||||
public override string Description => Skills.Active?.Description ?? "";
|
||||
public override QualityType QualityType => _type;
|
||||
public int Count => _count;
|
||||
public Dictionary<string, int> Gifts { get; set; } = [];
|
||||
private readonly QualityType _type = QualityType.White;
|
||||
private readonly int _count = 1;
|
||||
|
||||
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;
|
||||
User = user;
|
||||
礼包.Init(this, new()
|
||||
@ -178,6 +177,14 @@ namespace Oshima.FunGame.OshimaModules.Items
|
||||
{ "与礼包同品质、随机属性、随机魔法技能的魔法卡", count }
|
||||
}, 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
|
||||
|
||||
@ -490,7 +490,7 @@ namespace Oshima.FunGame.OshimaServers.Service
|
||||
|
||||
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;
|
||||
user.Inventory.Items.Add(realItem);
|
||||
}
|
||||
@ -1154,9 +1154,16 @@ namespace Oshima.FunGame.OshimaServers.Service
|
||||
SetSellAndTradeTime(newItem);
|
||||
newItem.User = user;
|
||||
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);
|
||||
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)
|
||||
{
|
||||
|
||||
@ -51,29 +51,29 @@ namespace Oshima.FunGame.WebAPI.Controllers
|
||||
}
|
||||
}
|
||||
|
||||
[HttpPut("{id}")]
|
||||
public IActionResult UpdateActivity(long id, [FromBody] Activity? activity = null)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (activity is null || activity.Id != id)
|
||||
{
|
||||
return BadRequest("活动更新失败,活动 ID 与请求体 ID 不匹配或请求体格式错误。");
|
||||
}
|
||||
//[HttpPut("{id}")]
|
||||
//public IActionResult UpdateActivity(long id, [FromBody] Activity? activity = null)
|
||||
//{
|
||||
// try
|
||||
// {
|
||||
// if (activity is null || activity.Id != id)
|
||||
// {
|
||||
// return BadRequest("活动更新失败,活动 ID 与请求体 ID 不匹配或请求体格式错误。");
|
||||
// }
|
||||
|
||||
EntityModuleConfig<Activity> activities = new("activities", "activities");
|
||||
activities.LoadConfig();
|
||||
activities.Add(activity.Id.ToString(), activity);
|
||||
activities.SaveConfig();
|
||||
// EntityModuleConfig<Activity> activities = new("activities", "activities");
|
||||
// activities.LoadConfig();
|
||||
// activities.Add(activity.Id.ToString(), activity);
|
||||
// activities.SaveConfig();
|
||||
|
||||
return Ok($"活动 {activity.GetIdName()} 更新成功。");
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
_logger.LogError(e, "Error: ");
|
||||
return StatusCode(500, "更新活动时发生错误,请检查日志。");
|
||||
}
|
||||
}
|
||||
// return Ok($"活动 {activity.GetIdName()} 更新成功。");
|
||||
// }
|
||||
// catch (Exception e)
|
||||
// {
|
||||
// _logger.LogError(e, "Error: ");
|
||||
// return StatusCode(500, "更新活动时发生错误,请检查日志。");
|
||||
// }
|
||||
//}
|
||||
|
||||
[HttpDelete("{id}")]
|
||||
public IActionResult RemoveActivity(long id)
|
||||
@ -125,39 +125,39 @@ namespace Oshima.FunGame.WebAPI.Controllers
|
||||
}
|
||||
}
|
||||
|
||||
[HttpPut("{id}/{questId}")]
|
||||
public IActionResult UpdateQuest(long id, long questId, [FromBody] Quest? quest = null)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (quest is null || quest.Id != questId)
|
||||
{
|
||||
return BadRequest("任务更新失败,任务 ID 与请求体 ID 不匹配或请求体格式错误。");
|
||||
}
|
||||
//[HttpPut("{id}/{questId}")]
|
||||
//public IActionResult UpdateQuest(long id, long questId, [FromBody] Quest? quest = null)
|
||||
//{
|
||||
// try
|
||||
// {
|
||||
// if (quest is null || quest.Id != questId)
|
||||
// {
|
||||
// return BadRequest("任务更新失败,任务 ID 与请求体 ID 不匹配或请求体格式错误。");
|
||||
// }
|
||||
|
||||
EntityModuleConfig<Activity> activities = new("activities", "activities");
|
||||
activities.LoadConfig();
|
||||
Activity? activity = activities.Values.FirstOrDefault(a => a.Id == id);
|
||||
if (activity != null)
|
||||
{
|
||||
if (activity.Quests.FirstOrDefault(q => q.Id == quest.Id) is Quest current)
|
||||
{
|
||||
activity.Quests.Remove(quest);
|
||||
}
|
||||
activity.Quests.Add(quest);
|
||||
activities.Add(activity.Id.ToString(), activity);
|
||||
activities.SaveConfig();
|
||||
return Ok($"任务 {quest.GetIdName()}(属于活动【{activity.Name}】)更新成功。");
|
||||
}
|
||||
// EntityModuleConfig<Activity> activities = new("activities", "activities");
|
||||
// activities.LoadConfig();
|
||||
// Activity? activity = activities.Values.FirstOrDefault(a => a.Id == id);
|
||||
// if (activity != null)
|
||||
// {
|
||||
// if (activity.Quests.FirstOrDefault(q => q.Id == quest.Id) is Quest current)
|
||||
// {
|
||||
// activity.Quests.Remove(quest);
|
||||
// }
|
||||
// activity.Quests.Add(quest);
|
||||
// activities.Add(activity.Id.ToString(), activity);
|
||||
// activities.SaveConfig();
|
||||
// return Ok($"任务 {quest.GetIdName()}(属于活动【{activity.Name}】)更新成功。");
|
||||
// }
|
||||
|
||||
return NotFound($"活动编号 {id} 不存在。");
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
_logger.LogError(e, "Error: ");
|
||||
return StatusCode(500, "更新任务时发生错误,请检查日志。");
|
||||
}
|
||||
}
|
||||
// return NotFound($"活动编号 {id} 不存在。");
|
||||
// }
|
||||
// catch (Exception e)
|
||||
// {
|
||||
// _logger.LogError(e, "Error: ");
|
||||
// return StatusCode(500, "更新任务时发生错误,请检查日志。");
|
||||
// }
|
||||
//}
|
||||
|
||||
[HttpDelete("{id}/{questId}")]
|
||||
public IActionResult RemoveQuest(long id, long questId)
|
||||
|
||||
@ -2054,6 +2054,11 @@ namespace Oshima.FunGame.WebAPI.Controllers
|
||||
item = user.Inventory.Items.ToList()[itemIndex - 1];
|
||||
if (FunGameConstant.ItemCanUsed.Contains(item.ItemType))
|
||||
{
|
||||
if (item.ItemType == ItemType.MagicCard)
|
||||
{
|
||||
return "此物品为魔法卡,请使用【使用魔法卡】指令!";
|
||||
}
|
||||
|
||||
if (item.RemainUseTimes <= 0)
|
||||
{
|
||||
return "此物品剩余使用次数为0,无法使用!";
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user