hxp
1 天以前 e1fb8828f3e3ade575522e1717322a27e0521daf
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorld.py
@@ -507,7 +507,9 @@
# @return 返回值. 是否通过检查
# @remarks 概率相关, 这个事件是否能够出现
def CanHappen(rate, maxRate=ShareDefine.Def_MaxRateValue):
    if random.randint(0, maxRate -1) < rate:
    if rate <= 0:
        return 0
    if rate >= maxRate or random.randint(0, maxRate -1) < rate:
        return 1
    
    return 0
@@ -971,6 +973,16 @@
    dateTimeB = ChangeTimeNumToDatetime(timeB)
    dateTimeB = datetime.datetime(dateTimeB.year, dateTimeB.month, dateTimeB.day, 0, 0, 0)
    return (dateTimeA - dateTimeB).days
def GetEndTimeByZeroTime(startTime, addDays):
    ## 获取结束时间,根据0点结束计算
    # @param startTime: 起始时间戳
    # @param addDays: 增加的天数,如果是1天实际为当天,即1代表当天
    startDate = ChangeTimeNumToDatetime(startTime)
    startZeroDate = datetime.datetime(startDate.year, startDate.month, startDate.day, 23, 59, 59)
    startZeroTime = int(time.mktime(startZeroDate.timetuple()))
    endTime = startTime + (startZeroTime - startTime) + max(addDays - 1, 0) * 24 * 3600
    return endTime
#---------------------------------------------------------------------
##获取与当前时间相差天数的datetime格式数据
@@ -1729,6 +1741,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 +2117,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: 待取值的字节值