1212
This commit is contained in:
@@ -92,6 +92,7 @@ public class UnitUserAttrService(ISqlSugarClient DbClient, IRedisCache redis) :
|
|||||||
ExtendAttrData.AddRange(item.attr);
|
ExtendAttrData.AddRange(item.attr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region 加层处理
|
#region 加层处理
|
||||||
@@ -272,7 +273,6 @@ public class UnitUserAttrService(ISqlSugarClient DbClient, IRedisCache redis) :
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
var db = DbClient.AsTenant().GetConnectionWithAttr<unit_user_exp>();
|
var db = DbClient.AsTenant().GetConnectionWithAttr<unit_user_exp>();
|
||||||
await DbClient.AsTenant().BeginTranAsync();
|
|
||||||
if (op == 0) //扣除经验
|
if (op == 0) //扣除经验
|
||||||
{
|
{
|
||||||
result = await db.Updateable<unit_user_exp>().SetColumns(it => it.exp == it.exp - exp)
|
result = await db.Updateable<unit_user_exp>().SetColumns(it => it.exp == it.exp - exp)
|
||||||
@@ -290,40 +290,44 @@ public class UnitUserAttrService(ISqlSugarClient DbClient, IRedisCache redis) :
|
|||||||
else //足够升级
|
else //足够升级
|
||||||
{
|
{
|
||||||
var myAttr = await GetUserAttr(userId);
|
var myAttr = await GetUserAttr(userId);
|
||||||
int OnLev = (int)myAttr.lev + 1;
|
int OnLev = (int)myAttr.lev;
|
||||||
if (OnLev <= GameConfig.GameMaxLev)
|
if (OnLev >= GameConfig.GameMaxLev)
|
||||||
{
|
{
|
||||||
long upExp = onExp - (long)MyExp.upExp;
|
return true;
|
||||||
decimal nextExp = GameTool.GetUserUpExp(OnLev);
|
}
|
||||||
result = await db.Updateable<unit_user_exp>().SetColumns(it => it.exp == upExp)
|
|
||||||
.SetColumns(it => it.upExp == nextExp).Where(it => it.userId == userId)
|
long upExp = (long)MyExp.upExp;
|
||||||
.ExecuteCommandAsync() > 0;
|
|
||||||
if (result) //更新成功,更新各项属性
|
while (onExp >= upExp)
|
||||||
|
{
|
||||||
|
if (OnLev < GameConfig.GameMaxLev)
|
||||||
{
|
{
|
||||||
var data = GameTool.GetAttrData(OnLev);
|
OnLev = OnLev + 1;
|
||||||
result = await db.Updateable<unit_user_attr>(data).Where(i => i.userId == userId)
|
onExp -= upExp;
|
||||||
.ExecuteCommandAsync() > 0;
|
upExp = GameTool.GetUserUpExp(OnLev);
|
||||||
IsUpUserAttr = result;
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
|
||||||
|
result = await db.Updateable<unit_user_exp>().SetColumns(it => it.exp == onExp)
|
||||||
|
.SetColumns(it => it.upExp == upExp).Where(it => it.userId == userId)
|
||||||
|
.ExecuteCommandAsync() > 0;
|
||||||
|
if (result) //更新成功,更新各项属性
|
||||||
{
|
{
|
||||||
decimal maxOnExp = (decimal)MyExp.upExp - 1;
|
var data = GameTool.GetAttrData(OnLev);
|
||||||
if ((decimal)MyExp.exp < maxOnExp)
|
result = await db.Updateable<unit_user_attr>(data).Where(i => i.userId == userId)
|
||||||
{
|
.ExecuteCommandAsync() > 0;
|
||||||
result = await db.Updateable<unit_user_exp>().SetColumns(it => it.exp == maxOnExp)
|
IsUpUserAttr = result;
|
||||||
.Where(it => it.userId == userId).ExecuteCommandAsync() > 0;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
await DbClient.AsTenant().CommitTranAsync();
|
|
||||||
}
|
}
|
||||||
catch
|
catch
|
||||||
{
|
{
|
||||||
result = false;
|
result = false;
|
||||||
await DbClient.AsTenant().RollbackTranAsync();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (result && IsUpUserAttr)
|
if (result && IsUpUserAttr)
|
||||||
@@ -458,7 +462,6 @@ public class UnitUserAttrService(ISqlSugarClient DbClient, IRedisCache redis) :
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public async Task<long> GetUserMaxVitality(string userId)
|
public async Task<long> GetUserMaxVitality(string userId)
|
||||||
{
|
{
|
||||||
var OnLev = await GetUserLev(userId);
|
var OnLev = await GetUserLev(userId);
|
||||||
|
|||||||
Reference in New Issue
Block a user