From 070a0dfddf2d5f85ac348a8d37a606bdbcd0ea0a Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 05 十一月 2025 16:45:46 +0800
Subject: [PATCH] 129 【战斗】战斗系统-服务端(完善技能目标选择逻辑;支持软控魅惑、混乱、嘲讽,及反击复仇目标,buff状态细分目标,属性细分目标等优先级处理;修复反击逻辑bug;)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/FormulaControl.py | 6 +++++-
1 files changed, 5 insertions(+), 1 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/FormulaControl.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/FormulaControl.py
index 514a9a4..650611d 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/FormulaControl.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/FormulaControl.py
@@ -79,13 +79,14 @@
#GameWorld.Log('ClearCompileFormulaDist Sucess AllFormulaDist = %s'%(AllFormulaDist))
return
-def Eval(formulaKey, formula, paramDict, toInt=True, ceil=False, playerID=0):
+def Eval(formulaKey, formula, paramDict, toInt=True, ceil=False, ndigits=0, playerID=0):
""" 动态计算
:param formulaKey: 公式编译缓存key
:param formula: 公式字符串,如 "int(Atk*10 + MaxHP)"
:param paramDict: 参数字典,如 {'Atk': 100, 'MaxHP': 5000}
:param toInt: 是否转为整数
:param ceil: 是否向上取整
+ :param ndigits: 小数精确位数
:return: 计算结果
"""
compileFormula = GetCompileFormula(formulaKey, formula)
@@ -100,6 +101,7 @@
'round': round,
# 类型转换
'int': int,
+ 'long': long,
'float': float,
'bool': bool,
# 数学常数
@@ -110,6 +112,8 @@
try:
# 执行计算
value = eval(compileFormula, safe_env)
+ if ndigits > 0:
+ value = round(value, ndigits)
if ceil:
value = math.ceil(value)
if toInt:
--
Gitblit v1.8.0