From 2b34924e06c0c36d77d9ccec4c4f10f1ebd16e84 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期二, 16 九月 2025 19:03:17 +0800 Subject: [PATCH] 129 【战斗】战斗系统-服务端(NPC表加特长字段;) --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorld.py | 30 ++++++++++++++++++++++++++++++ 1 files changed, 30 insertions(+), 0 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorld.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorld.py index a9dcf21..adc5d47 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorld.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorld.py @@ -507,6 +507,8 @@ # @return 返回值. 是否通过检查 # @remarks 概率相关, 这个事件是否能够出现 def CanHappen(rate, maxRate=ShareDefine.Def_MaxRateValue): + if rate <= 0: + return 0 if random.randint(0, maxRate -1) < rate: return 1 @@ -1729,6 +1731,8 @@ randList = [] weight = 0 for info in weightList: + if not info[0]: + continue weight += info[0] randList.append([weight, info[1] if len(info) == 2 else info[1:]]) if not randList: @@ -2103,6 +2107,32 @@ numValue += pow(10, dataIndex)*(dataValue - lastTagLV) return numValue +def GetValue(dataValue, fromRight, bits): + '''获取某个数值中,从右往左数第x位开始,截图n位得到的数据 + @param dataValue: 原始数值 + @param fromRight: 从右往左数第x位开始,从1开始 + @param bits: 截取n位 + @return: 数值value + ''' + lPow = pow(10, fromRight) + rPow = pow(10, fromRight - bits) + curValue = dataValue % lPow / rPow + return curValue + +def SetValue(dataValue, fromRight, bits, updValue): + '''修改某个数值,从右往左数第x位开始,截图n位得到的数据,替换为具体数值 + @param dataValue: 原始数值 + @param fromRight: 从右往左数第x位开始,从1开始 + @param bits: 截取n位 + @param updValue: 替换值 + @return: 修改后的value值 + ''' + lPow = pow(10, fromRight) + rPow = pow(10, fromRight - bits) + leftValue = dataValue / lPow * lPow + rightValue = dataValue % rPow + return leftValue + updValue * rPow + rightValue + def GetBitValue(dataValue, index): """ 得到某个字节值中某一位(Bit)的值 @param dataValue: 待取值的字节值 -- Gitblit v1.8.0