66 【公会】基础主体-服务端(退出公会时间根据当前是否互通取对应的本服或跨服时间;)
| | |
| | | lastVoluntarily = msgList[3] if len(msgList) > 3 else 0
|
| | | leavePassMinutes = msgList[4] if len(msgList) > 4 else 0
|
| | | leaveInfo = PlayerControl.SetLeaveFamilyInfo(curPlayer, leaveCnt, kickedCnt, lastVoluntarily)
|
| | | leaveTime = PlayerControl.SetLeaveFamilyTimeEx(curPlayer, int(time.time()) - leavePassMinutes * 60)
|
| | | leaveTime = PlayerControl.SetLeaveFamilyTimeEx(curPlayer, PlayerFamily.GetFamilyTime() - leavePassMinutes * 60)
|
| | | GameWorld.DebugAnswer(curPlayer, "设置离开: Info=%s,%s" % (leaveInfo, GameWorld.ChangeTimeNumToStr(leaveTime)))
|
| | | return
|
| | |
|
| | |
| | |
|
| | | elif value1 == "ft":
|
| | | minutes = msgList[1] if len(msgList) > 1 else 0
|
| | | leaveFamilyTimeEx = int(time.time()) - minutes * 60
|
| | | leaveFamilyTimeEx = PlayerFamily.GetFamilyTime() - minutes * 60
|
| | | PlayerControl.SetLeaveFamilyTimeEx(curPlayer, leaveFamilyTimeEx)
|
| | | GameWorld.DebugAnswer(curPlayer, "设置退公会时间:%s" % GameWorld.ChangeTimeNumToStr(leaveFamilyTimeEx))
|
| | | return
|
| | |
| | | joinCDMinute = joinCDMinuteList[kickedCnt - 1] if len(joinCDMinuteList) >= kickedCnt else joinCDMinuteList[-1]
|
| | | if joinCDMinute:
|
| | | cdTimes = joinCDMinute * 60
|
| | | passTimes = int(time.time()) - leaveFamilyTime
|
| | | passTimes = GetFamilyTime() - leaveFamilyTime
|
| | | if passTimes < cdTimes:
|
| | | GameWorld.DebugLog("加入公会CD中: leaveCnt=%s,kickedCnt=%s,lastVoluntarily=%s,leaveFamilyTime=%s(%s),passTimes=%s < %s"
|
| | | % (leaveCnt, kickedCnt, lastVoluntarily, leaveFamilyTime, GameWorld.ChangeTimeNumToStr(leaveFamilyTime), passTimes, cdTimes))
|
| | | return True
|
| | | return False
|
| | |
|
| | | def GetFamilyTime():
|
| | | if GameWorld.IsMainServer() and DBFamily.IsFamilyCross():
|
| | | return CrossMgr.GetSSServerMgr().GetCrossTime()
|
| | | return int(time.time())
|
| | |
|
| | | def AutoJoinFamily(crossPlayer):
|
| | | if crossPlayer.GetFamilyID():
|
| | |
| | | curPlayer.SetFamilyActiveValue(0)
|
| | | curPlayer.SetLastWeekFamilyActiveValue(0)
|
| | | curPlayer.SetFamilyLV(0)
|
| | | PlayerControl.SetLeaveFamilyTimeEx(curPlayer, int(time.time()))
|
| | | PlayerControl.SetLeaveFamilyTimeEx(curPlayer, GetFamilyTime())
|
| | | leaveCnt, kickedCnt, _ = PlayerControl.GetLeaveFamilyInfo(curPlayer)
|
| | | GameWorld.DebugLog("__OnLeaveFamily: isVoluntarily=%s,leaveCnt=%s,kickedCnt=%s" % (isVoluntarily, leaveCnt, kickedCnt))
|
| | | delMoneyType, delMoneyPer = IpyGameDataPY.GetFuncCfg("FamilyLeave", 3), 0
|
| | |
| | | cutState = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_FamilyZhenbaogeCut)
|
| | | if cutState and leaveTimeEx:
|
| | | cutCDTimes = IpyGameDataPY.GetFuncCfg("Zhenbaoge", 3) * 60
|
| | | passTimes = int(time.time()) - leaveTimeEx
|
| | | passTimes = PlayerFamily.GetFamilyTime() - leaveTimeEx
|
| | | if passTimes < cutCDTimes:
|
| | | GameWorld.DebugLog("今日已砍价变更仙盟砍价CD中! passTimes=%s < %s" % (passTimes, cutCDTimes), playerID)
|
| | | return
|