mirror of
https://github.com/oshima-studios/OshimaGameModule.git
synced 2025-12-06 00:18:22 +00:00
还原技术得分算法,优化了突破、升级信息的材料提示
This commit is contained in:
parent
d7aee8b9ed
commit
afe506793b
@ -1370,7 +1370,7 @@ namespace Oshima.FunGame.OshimaServers.Service
|
|||||||
}
|
}
|
||||||
strings.Add($"{key} * {value}({count} / {value})");
|
strings.Add($"{key} * {value}({count} / {value})");
|
||||||
}
|
}
|
||||||
return string.Join(",", needy.Select(kv => kv.Key + " * " + kv.Value));
|
return string.Join(",", strings);
|
||||||
}
|
}
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
@ -1728,7 +1728,7 @@ namespace Oshima.FunGame.OshimaServers.Service
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 伤害贡献
|
// 伤害贡献
|
||||||
double damageContribution = Math.Log(1 + stats.DamagePerSecond / 40);
|
double damageContribution = Math.Log(1 + Math.Min(2, (stats.TotalDamage / (stats.TotalTakenDamage + 1.75))));
|
||||||
if (team != null && teammateStats != null)
|
if (team != null && teammateStats != null)
|
||||||
{
|
{
|
||||||
// 考虑团队伤害排名,优先高伤害的
|
// 考虑团队伤害排名,优先高伤害的
|
||||||
@ -1742,7 +1742,7 @@ namespace Oshima.FunGame.OshimaServers.Service
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 存活时间贡献
|
// 存活时间贡献
|
||||||
double liveTimeContribution = Math.Log(1 + stats.LiveTime / ((stats.TotalTakenDamage == 0 ? stats.TotalTakenDamage : 500) + stats.Deaths + 1) * 60);
|
double liveTimeContribution = Math.Log(1 + (stats.LiveTime / (stats.TotalTakenDamage + 0.01) * 100));
|
||||||
|
|
||||||
// 团队模式参团率加成
|
// 团队模式参团率加成
|
||||||
double teamContribution = 0;
|
double teamContribution = 0;
|
||||||
@ -1757,7 +1757,7 @@ namespace Oshima.FunGame.OshimaServers.Service
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 权重设置
|
// 权重设置
|
||||||
double k = stats.Deaths > 0 ? 0.2 : 0.06; // 伤害贡献权重
|
double k = stats.Deaths > 0 ? 0.2 : 0.075; // 伤害贡献权重
|
||||||
double l = stats.Deaths > 0 ? 0.2 : 0.05; // 存活时间权重
|
double l = stats.Deaths > 0 ? 0.2 : 0.05; // 存活时间权重
|
||||||
double t = stats.Deaths > 0 ? 0.2 : 0.075; // 参团率权重
|
double t = stats.Deaths > 0 ? 0.2 : 0.075; // 参团率权重
|
||||||
|
|
||||||
@ -2010,10 +2010,11 @@ namespace Oshima.FunGame.OshimaServers.Service
|
|||||||
|
|
||||||
public static string CheckDailyStore(EntityModuleConfig<Store> stores, User user)
|
public static string CheckDailyStore(EntityModuleConfig<Store> stores, User user)
|
||||||
{
|
{
|
||||||
if (stores.Count == 0)
|
Store? daily = stores.Get("daily");
|
||||||
|
if (daily is null)
|
||||||
{
|
{
|
||||||
// 生成每日商店
|
// 生成每日商店
|
||||||
Store daily = new($"{user.Username}的每日商店");
|
daily = new($"{user.Username}的每日商店");
|
||||||
for (int i = 0; i < 4; i++)
|
for (int i = 0; i < 4; i++)
|
||||||
{
|
{
|
||||||
Item item;
|
Item item;
|
||||||
@ -2061,15 +2062,8 @@ namespace Oshima.FunGame.OshimaServers.Service
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (stores.Count > 0 && stores.Where(kv => kv.Key == "daily").Select(kv => kv.Value).FirstOrDefault() is Store daily)
|
SetLastStore(user, true, "", "");
|
||||||
{
|
return daily.ToString();
|
||||||
SetLastStore(user, true, "", "");
|
|
||||||
return daily.ToString();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return "商品列表为空,请使用【每日商店】指令来获取商品列表!";
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2139,7 +2133,7 @@ namespace Oshima.FunGame.OshimaServers.Service
|
|||||||
|
|
||||||
foreach (Item item in goods.Items)
|
foreach (Item item in goods.Items)
|
||||||
{
|
{
|
||||||
if (item is 探索许可)
|
if (item.Name == nameof(探索许可))
|
||||||
{
|
{
|
||||||
int exploreTimes = FunGameConstant.MaxExploreTimes + count;
|
int exploreTimes = FunGameConstant.MaxExploreTimes + count;
|
||||||
if (pc.TryGetValue("exploreTimes", out object? value) && int.TryParse(value.ToString(), out exploreTimes))
|
if (pc.TryGetValue("exploreTimes", out object? value) && int.TryParse(value.ToString(), out exploreTimes))
|
||||||
|
|||||||
@ -2636,7 +2636,7 @@ namespace Oshima.FunGame.WebAPI.Controllers
|
|||||||
}
|
}
|
||||||
|
|
||||||
return $"角色 [ {character} ] 目前突破进度:{character.LevelBreak + 1}/{General.GameplayEquilibriumConstant.LevelBreakList.Count}" +
|
return $"角色 [ {character} ] 目前突破进度:{character.LevelBreak + 1}/{General.GameplayEquilibriumConstant.LevelBreakList.Count}" +
|
||||||
$"\r\n该角色下一个等级突破阶段在 {General.GameplayEquilibriumConstant.LevelBreakList.ToArray()[character.LevelBreak + 1]} 级,所需材料:\r\n" + FunGameService.GetLevelBreakNeedy(character.LevelBreak + 1, user);
|
$"\r\n该角色下一个等级突破阶段在 {General.GameplayEquilibriumConstant.LevelBreakList.ToArray()[character.LevelBreak + 1]} 级(当前 {character.Level} 级),所需材料:\r\n" + FunGameService.GetLevelBreakNeedy(character.LevelBreak + 1, user);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -2689,7 +2689,7 @@ namespace Oshima.FunGame.WebAPI.Controllers
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return $"你的{General.GameplayEquilibriumConstant.InGameMaterial}不足 {needCount} 呢,不满足突破条件!";
|
return $"你的{General.GameplayEquilibriumConstant.InGameMaterial}不足 {needCount} 呢,不满足突破条件!所需材料:\r\n{FunGameService.GetLevelBreakNeedy(character.LevelBreak + 1, user)}";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -2707,7 +2707,7 @@ namespace Oshima.FunGame.WebAPI.Controllers
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return $"你的物品【{key}】数量不足 {needCount} 呢,不满足突破条件!";
|
return $"你的物品【{key}】数量不足 {needCount} 呢,不满足突破条件!所需材料:\r\n{FunGameService.GetLevelBreakNeedy(character.LevelBreak + 1, user)}";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2719,7 +2719,7 @@ namespace Oshima.FunGame.WebAPI.Controllers
|
|||||||
if (originalBreak == character.LevelBreak)
|
if (originalBreak == character.LevelBreak)
|
||||||
{
|
{
|
||||||
return $"突破失败!角色 [ {character} ] 目前突破进度:{character.LevelBreak + 1}/{General.GameplayEquilibriumConstant.LevelBreakList.Count}。" +
|
return $"突破失败!角色 [ {character} ] 目前突破进度:{character.LevelBreak + 1}/{General.GameplayEquilibriumConstant.LevelBreakList.Count}。" +
|
||||||
$"\r\n该角色下一个等级突破阶段在 {General.GameplayEquilibriumConstant.LevelBreakList.ToArray()[character.LevelBreak + 1]} 级,所需材料:\r\n" + FunGameService.GetLevelBreakNeedy(character.LevelBreak + 1, user);
|
$"\r\n该角色下一个等级突破阶段在 {General.GameplayEquilibriumConstant.LevelBreakList.ToArray()[character.LevelBreak + 1]} 级(当前 {character.Level} 级),所需材料:\r\n" + FunGameService.GetLevelBreakNeedy(character.LevelBreak + 1, user);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -2729,7 +2729,7 @@ namespace Oshima.FunGame.WebAPI.Controllers
|
|||||||
return $"突破成功!角色 [ {character} ] 目前突破进度:{character.LevelBreak + 1}/{General.GameplayEquilibriumConstant.LevelBreakList.Count}。" +
|
return $"突破成功!角色 [ {character} ] 目前突破进度:{character.LevelBreak + 1}/{General.GameplayEquilibriumConstant.LevelBreakList.Count}。" +
|
||||||
$"{(character.LevelBreak + 1 == General.GameplayEquilibriumConstant.LevelBreakList.Count ?
|
$"{(character.LevelBreak + 1 == General.GameplayEquilibriumConstant.LevelBreakList.Count ?
|
||||||
"\r\n该角色已完成全部的突破阶段,恭喜!" :
|
"\r\n该角色已完成全部的突破阶段,恭喜!" :
|
||||||
$"\r\n该角色下一个等级突破阶段在 {General.GameplayEquilibriumConstant.LevelBreakList.ToArray()[character.LevelBreak + 1]} 级,所需材料:\r\n" + FunGameService.GetLevelBreakNeedy(character.LevelBreak + 1, user))}";
|
$"\r\n该角色下一个等级突破阶段在 {General.GameplayEquilibriumConstant.LevelBreakList.ToArray()[character.LevelBreak + 1]} 级(当前 {character.Level} 级),所需材料:\r\n" + FunGameService.GetLevelBreakNeedy(character.LevelBreak + 1, user))}";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -3571,14 +3571,14 @@ namespace Oshima.FunGame.WebAPI.Controllers
|
|||||||
{
|
{
|
||||||
if (character.Level < needCount)
|
if (character.Level < needCount)
|
||||||
{
|
{
|
||||||
return $"角色 [ {character} ] 等级不足 {needCount} 级,无法{isStudy}此技能!";
|
return $"角色 [ {character} ] 等级不足 {needCount} 级(当前 {character.Level} 级),无法{isStudy}此技能!";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (key == "角色突破进度")
|
else if (key == "角色突破进度")
|
||||||
{
|
{
|
||||||
if (character.LevelBreak + 1 < needCount)
|
if (character.LevelBreak + 1 < needCount)
|
||||||
{
|
{
|
||||||
return $"角色 [ {character} ] 等级突破进度不足 {needCount} 等阶,无法{isStudy}此技能!";
|
return $"角色 [ {character} ] 等级突破进度不足 {needCount} 等阶(当前 {character.LevelBreak + 1} 等阶),无法{isStudy}此技能!";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (key == General.GameplayEquilibriumConstant.InGameCurrency)
|
else if (key == General.GameplayEquilibriumConstant.InGameCurrency)
|
||||||
@ -3589,7 +3589,7 @@ namespace Oshima.FunGame.WebAPI.Controllers
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return $"你的{General.GameplayEquilibriumConstant.InGameCurrency}不足 {needCount} 呢,不满足{isStudy}条件!";
|
return $"你的{General.GameplayEquilibriumConstant.InGameCurrency}不足 {needCount} 呢,不满足{isStudy}条件!所需材料:\r\n{FunGameService.GetSkillLevelUpNeedy(skill.Level + 1, user, character)}";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (key == General.GameplayEquilibriumConstant.InGameMaterial)
|
else if (key == General.GameplayEquilibriumConstant.InGameMaterial)
|
||||||
@ -3600,7 +3600,7 @@ namespace Oshima.FunGame.WebAPI.Controllers
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return $"你的{General.GameplayEquilibriumConstant.InGameMaterial}不足 {needCount} 呢,不满足{isStudy}条件!";
|
return $"你的{General.GameplayEquilibriumConstant.InGameMaterial}不足 {needCount} 呢,不满足{isStudy}条件!所需材料:\r\n{FunGameService.GetSkillLevelUpNeedy(skill.Level + 1, user, character)}";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -3618,7 +3618,7 @@ namespace Oshima.FunGame.WebAPI.Controllers
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return $"你的物品【{key}】数量不足 {needCount} 呢,不满足{isStudy}条件!";
|
return $"你的物品【{key}】数量不足 {needCount} 呢,不满足{isStudy}条件!所需材料:\r\n{FunGameService.GetSkillLevelUpNeedy(skill.Level + 1, user, character)}";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -3744,14 +3744,14 @@ namespace Oshima.FunGame.WebAPI.Controllers
|
|||||||
{
|
{
|
||||||
if (character.Level < needCount)
|
if (character.Level < needCount)
|
||||||
{
|
{
|
||||||
return $"角色 [ {character} ] 等级不足 {needCount} 级,无法升级此技能!";
|
return $"角色 [ {character} ] 等级不足 {needCount} 级(当前 {character.Level} 级),无法升级此技能!";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (key == "角色突破进度")
|
else if (key == "角色突破进度")
|
||||||
{
|
{
|
||||||
if (character.LevelBreak + 1 < needCount)
|
if (character.LevelBreak + 1 < needCount)
|
||||||
{
|
{
|
||||||
return $"角色 [ {character} ] 等级突破进度不足 {needCount} 等阶,无法升级此技能!";
|
return $"角色 [ {character} ] 等级突破进度不足 {needCount} 等阶(当前 {character.LevelBreak + 1} 等阶),无法升级此技能!";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (key == General.GameplayEquilibriumConstant.InGameCurrency)
|
else if (key == General.GameplayEquilibriumConstant.InGameCurrency)
|
||||||
@ -3762,7 +3762,7 @@ namespace Oshima.FunGame.WebAPI.Controllers
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return $"你的{General.GameplayEquilibriumConstant.InGameCurrency}不足 {needCount} 呢,不满足升级条件!";
|
return $"你的{General.GameplayEquilibriumConstant.InGameCurrency}不足 {needCount} 呢,不满足升级条件!所需材料:\r\n{FunGameService.GetSkillLevelUpNeedy(na.Level + 1, user, character)}";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (key == General.GameplayEquilibriumConstant.InGameMaterial)
|
else if (key == General.GameplayEquilibriumConstant.InGameMaterial)
|
||||||
@ -3773,7 +3773,7 @@ namespace Oshima.FunGame.WebAPI.Controllers
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return $"你的{General.GameplayEquilibriumConstant.InGameMaterial}不足 {needCount} 呢,不满足升级条件!";
|
return $"你的{General.GameplayEquilibriumConstant.InGameMaterial}不足 {needCount} 呢,不满足升级条件!所需材料:\r\n{FunGameService.GetSkillLevelUpNeedy(na.Level + 1, user, character)}";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -3791,7 +3791,7 @@ namespace Oshima.FunGame.WebAPI.Controllers
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return $"你的物品【{key}】数量不足 {needCount} 呢,不满足升级条件!";
|
return $"你的物品【{key}】数量不足 {needCount} 呢,不满足升级条件!所需材料:\r\n{FunGameService.GetSkillLevelUpNeedy(na.Level + 1, user, character)}";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -5627,7 +5627,7 @@ namespace Oshima.FunGame.WebAPI.Controllers
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 检查探索许可
|
// 检查探索许可
|
||||||
int exploreTimes = 0;
|
int exploreTimes = FunGameConstant.MaxExploreTimes;
|
||||||
int reduce = 1;
|
int reduce = 1;
|
||||||
if (regionid > 0 && regionid <= FunGameConstant.Regions.Count && FunGameConstant.Regions.FirstOrDefault(r => r.Id == regionid) is OshimaRegion region)
|
if (regionid > 0 && regionid <= FunGameConstant.Regions.Count && FunGameConstant.Regions.FirstOrDefault(r => r.Id == regionid) is OshimaRegion region)
|
||||||
{
|
{
|
||||||
@ -5653,10 +5653,6 @@ namespace Oshima.FunGame.WebAPI.Controllers
|
|||||||
$"\r\n需要注意:探索难度星级一比一兑换探索许可,并且参与探索的角色,都需要消耗相同数量的探索许可。";
|
$"\r\n需要注意:探索难度星级一比一兑换探索许可,并且参与探索的角色,都需要消耗相同数量的探索许可。";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
exploreTimes = FunGameConstant.MaxExploreTimes;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user