From 9ba17f30e36a856861f1774567f6bd2a5114b9f0 Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期二, 04 十二月 2018 14:33:45 +0800
Subject: [PATCH] 4860 【后端】【1.3.100】新增退出仙盟,需要12小时才能再退出仙盟
---
ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerControl.py | 4 ++++
ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamily.py | 16 +++++++++++++++-
ServerPython/CoreServerGroup/GameServer/Script/DataRecordPack.py | 6 +++---
3 files changed, 22 insertions(+), 4 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/DataRecordPack.py b/ServerPython/CoreServerGroup/GameServer/Script/DataRecordPack.py
index 3181aab..d01edf5 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/DataRecordPack.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/DataRecordPack.py
@@ -318,13 +318,13 @@
# @param tagFamilyLV: 被踢者职位
# @return:
def DR_PlayerLeaveFamily(curPlayer, familyID, familyName, familyCnt, familyLV,
- tagPlayerID, tagPlayerName, tagFamilyLV):
-
+ tagPlayerID, tagPlayerName, tagFamilyLV, leaveFamilyTime=0):
dataDict = {'PlayerID':curPlayer.GetPlayerID(), 'AccID':curPlayer.GetAccID(),
"PlayerName":curPlayer.GetName(),
"FamilyID":familyID, "FamilyName":familyName, "Count":familyCnt, "FamilyJob":familyLV,
"tagPlayerID":tagPlayerID, "tagPlayerName":tagPlayerName, "tagFamilyJob":tagFamilyLV}
-
+ if leaveFamilyTime:
+ dataDict['leaveFamilyTime'] = leaveFamilyTime
#发送封包
SendEventPack("PlayerLeaveFamily", dataDict, curPlayer)
return
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerControl.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerControl.py
index 75f0f65..9486609 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerControl.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerControl.py
@@ -219,6 +219,10 @@
def GetTodayXianyuanCoin(curPlayer): return curPlayer.GetExAttr11()
def SetTodayXianyuanCoin(curPlayer, value): return curPlayer.SetExAttr11(value)
+##玩家主动退出仙盟时间(<100代表退出次数)
+def SetLeaveFamilyTime(curPlayer, value): return curPlayer.SetExAttr12(value)
+def GetLeaveFamilyTime(curPlayer):return curPlayer.GetExAttr12()
+
## 是否脱机挂机状态
def GetIsTJG(curPlayer):
if curPlayer.GetDictByKey(ChConfig.Def_OnlineType):
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamily.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamily.py
index f93b284..2a94c9b 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamily.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamily.py
@@ -1492,6 +1492,20 @@
if GameWorld.GetGameWorld().GetDictByKey(ShareDefine.Def_Notify_WorldKey_DailyActionState % ShareDefine.DailyActionID_FamilyRobBoss):
PlayerControl.NotifyCode(curPlayer, "FairyGrabBossExitError")
return
+ #判断退出时间间隔
+ curTime = int(time.time())
+ lastLeaveFamilyTime = PlayerControl.GetLeaveFamilyTime(curPlayer)
+ if lastLeaveFamilyTime > 100:
+ remainTime = IpyGameDataPY.GetFuncCfg('ExitFairyTime', 2) - (curTime - lastLeaveFamilyTime)
+ if remainTime > 0:
+ PlayerControl.NotifyCode(curPlayer, "ExitFairyTime", [remainTime*1000])
+ return
+ updTime = 1 if IpyGameDataPY.GetFuncCfg('ExitFairyTime') > 1 else curTime
+ elif lastLeaveFamilyTime >= IpyGameDataPY.GetFuncCfg('ExitFairyTime')-1:
+ updTime = curTime
+ else:
+ updTime = lastLeaveFamilyTime+1
+ PlayerControl.SetLeaveFamilyTime(curPlayer, updTime)
#XW_JZ_LeaveFamily <n color="0,190,255">{%S1%}</n><n color="255,255,0">退出了家族!</n> 25 - -
NotifyAllFamilyMemberMsg(curFamily, curPlayer, "XW_JZ_LeaveFamily", [curPlayer.GetName()])
@@ -1507,7 +1521,7 @@
__DoPlayerLeaveFamilyByID(curFamily, curPlayerID)
DataRecordPack.DR_PlayerLeaveFamily(curPlayer, curFamily.GetID(), curFamily.GetName(), curFamily.GetCount(),
- familyLV, curPlayer.GetPlayerID(), curPlayer.GetName(), familyLV)
+ familyLV, curPlayer.GetPlayerID(), curPlayer.GetName(), familyLV, updTime)
if curFamily.GetCount() == 0:
#玩家离开后, 家族没有人了 , 删除这个家族
--
Gitblit v1.8.0