From 4e3d1ff7e0b98fc18b0b6e63e449f3d7577c0ba6 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 05 十一月 2025 11:16:31 +0800
Subject: [PATCH] 16 卡牌服务端(功能开启增加开服天条件支持;)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFamily.py | 45 +++++++++++++++++++++++++++++----------------
1 files changed, 29 insertions(+), 16 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFamily.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFamily.py
index f493192..93c6f86 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFamily.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFamily.py
@@ -23,8 +23,8 @@
import PlayerViewCache
import ChPyNetSendPack
import PlayerFamilyEmblem
-#import PlayerFamilyZhenfa
import PlayerFamilyZhenbaoge
+import PlayerFamilyTaofa
import IPY_PlayerDefine
import IpyGameDataPY
import IPY_GameWorld
@@ -82,8 +82,8 @@
family = familyManager.GetAt(i)
familyID = family.GetID()
- #珍宝阁
PlayerFamilyZhenbaoge.OnDay(family)
+ PlayerFamilyTaofa.OnDay(family)
for index in xrange(family.GetCount()):
member = family.GetAt(index)
@@ -100,6 +100,7 @@
return
ResetDailyDonateCnt(curPlayer)
PlayerFamilyZhenbaoge.PlayerOnDay(curPlayer)
+ PlayerFamilyTaofa.PlayerOnDay(curPlayer)
return
def OnPlayerLogin(curPlayer, tick):
@@ -108,8 +109,8 @@
PlayerLoginRefreshFamily(curPlayer, tick)
Sync_RequestAddFamilyInfo(curPlayer, False)
SyncDonateCntInfo(curPlayer)
- #PlayerFamilyZhenfa.OnPlayerLogin(curPlayer)
PlayerFamilyZhenbaoge.OnPlayerLogin(curPlayer)
+ PlayerFamilyTaofa.OnPlayerLogin(curPlayer)
return
def OnPlayerLogout(curPlayer):
@@ -126,7 +127,7 @@
return
curMember.SetOffTime(int(time.time()))
#XW_JZ_LeaguerLeaveline <n color="0,190,255">{%S1%}</n><n color="255,255,0">下线了!</n> 25 - -
- NotifyAllFamilyMemberMsg(familyID, "XW_JZ_LeaguerLeaveline", [curPlayer.GetPlayerName()])
+ #NotifyAllFamilyMemberMsg(familyID, "XW_JZ_LeaguerLeaveline", [curPlayer.GetPlayerName()])
Broadcast_FamilyChange(familyID, FamilyChangeType_MemLogout, excludeIDList=[playerID])
return
@@ -162,7 +163,7 @@
NetPackCommon.SendFakePack(curPlayer, GetPack_FamilyReqJoinInfo(familyID))
#XW_JZ_LeaguerOnline <n color="0,190,255">{%S1%}</n><n color="255,255,0">上线了!</n> 25 - -
- NotifyAllFamilyMemberMsg(familyID, "XW_JZ_LeaguerOnline", [curPlayer.GetName()], [playerID])
+ #NotifyAllFamilyMemberMsg(familyID, "XW_JZ_LeaguerOnline", [curPlayer.GetName()], [playerID])
Broadcast_FamilyChange(familyID, FamilyChangeType_MemLogin, excludeIDList=[playerID])
# 盟主上线处理
@@ -279,17 +280,17 @@
if DirtyList.IsWordForbidden(familyName):
#XW_JZ_Family_NameNoLegality 对不起,家族名称中含有非法字符
- PlayerControl.NotifyCode(curPlayer, "XW_JZ_Family_NameNoLegality")
+ PlayerControl.NotifyCode(curPlayer, "NameSensitive")
return
if len(familyName) <= 0 or len(familyName) > Def_CreatFamily_MaxStr:
- PlayerControl.NotifyCode(curPlayer, "GeRen_liubo_980181", [Def_CreatFamily_MaxStr / 2, Def_CreatFamily_MaxStr])
+ PlayerControl.NotifyCode(curPlayer, "NameLenLimit", [Def_CreatFamily_MaxStr / 3, Def_CreatFamily_MaxStr])
return
familyMgr = DBDataMgr.GetFamilyMgr()
if familyMgr.FindFamilyByName(fullFamilyName):
#XW_JZ_EstablishErr_Name <n color="255,255,0">对不起,您输入的家族名已存在,建立家族失败!</n> 25 - -
- PlayerControl.NotifyCode(curPlayer, "XW_JZ_EstablishErr_Name")
+ PlayerControl.NotifyCode(curPlayer, "NameExists")
return
return fullFamilyName
@@ -317,7 +318,7 @@
maxLen = IpyGameDataPY.GetFuncCfg("FamilyNameFormat", 2)
if len(fullName) > maxLen:
GameWorld.ErrLog("仙盟全名 familyName=%s,全名=%s len=%s > %s, check FamilyNameFormat.txt" % (familyName, fullName, len(fullName), maxLen))
- PlayerControl.NotifyCode(curPlayer, "GeRen_liubo_980181", [maxLen / 2, maxLen])
+ PlayerControl.NotifyCode(curPlayer, "NameLenLimit", [maxLen / 3, maxLen])
return ""
return fullName
@@ -357,7 +358,7 @@
if broadcastFamilyChange:
Broadcast_FamilyChange(familyID, FamilyChangeType_MemJoin, excludeIDList=[playerID])
#通知所有家族成员, 这个人加入了家族
- NotifyAllFamilyMemberMsg(familyID, "XW_JZ_EnterFamily", [member.GetPlayerName()], excludeIDList=[playerID])
+ #NotifyAllFamilyMemberMsg(familyID, "XW_JZ_EnterFamily", [member.GetPlayerName()], excludeIDList=[playerID])
if jionPlayer:
PlayerControl.NotifyCode(jionPlayer, 'XW_JZ_EnterFamilyInfo', [family.GetName()])
@@ -463,6 +464,7 @@
familyMgr = DBDataMgr.GetFamilyMgr()
familyMgr.DelPlayerReqJoinFamilyIDAll(curPlayer.GetPlayerID())
Sync_RequestAddFamilyInfo(curPlayer)
+ PlayerFamilyTaofa.OnPlayerEnterFamily(curPlayer)
return
def __OnLeaveFamily(curPlayer, isVoluntarily, tick):
@@ -497,6 +499,8 @@
delMoney = int(nowMoney * delMoneyPer / 100.0)
GameWorld.DebugLog(" 扣除货币: delMoneyType=%s,delMoneyPer=%s,nowMoney=%s,delMoney=%s" % (delMoneyType, delMoneyPer, nowMoney, delMoney))
PlayerControl.PayMoney(curPlayer, delMoneyType, delMoney, "LeaveFamily")
+
+ PlayerFamilyTaofa.OnPlayerLeaveFamily(curPlayer)
FBLogic.OnLeaveFamily(curPlayer, tick)
return
@@ -713,17 +717,17 @@
family = familyMgr.GetAt(index)
if not family:
continue
- familyID = family.GetID()
+ #familyID = family.GetID()
lvMin = family.GetJoinLVMin()
if lvMin and realmLV < lvMin:
- GameWorld.DebugLog(" 官职不足的不处理! familyID=%s,lvMin=%s" % (familyID, lvMin), playerID)
+ #GameWorld.DebugLog(" 官职不足的不处理! familyID=%s,lvMin=%s" % (familyID, lvMin), playerID)
continue
if family.GetJoinReview():
- GameWorld.DebugLog(" 需要审核的不处理! familyID=%s" % familyID, playerID)
+ #GameWorld.DebugLog(" 需要审核的不处理! familyID=%s" % familyID, playerID)
continue
MemberMax = GetFamilySetting(family.GetLV(), "MemberMax")
if family.GetCount() >= MemberMax:
- GameWorld.DebugLog(" 成员已满的不处理! familyID=%s" % familyID, playerID)
+ #GameWorld.DebugLog(" 成员已满的不处理! familyID=%s" % familyID, playerID)
continue
#直接加入
@@ -732,6 +736,7 @@
# 可再扩展自动请求,暂时不处理
GameWorld.DebugLog("没有可自动进入的仙盟!")
+ PlayerControl.NotifyCode(curPlayer, "QuickEnterFamilyFail")
return
def GetFamilySetting(familyLV, fieldName):
@@ -1220,6 +1225,7 @@
#XW_JZ_LeaveFamily <n color="0,190,255">{%S1%}</n><n color="255,255,0">退出了家族!</n> 25 - -
NotifyAllFamilyMemberMsg(familyID, "XW_JZ_LeaveFamily", [curPlayer.GetName()])
+ __DoPlayerLeaveFamilyByID(family, playerID, curPlayer)
MapServer_FamilyRefresh(curPlayer, 0, 1)
if family.GetCount() == 0:
@@ -1285,10 +1291,16 @@
#删除玩家
tagPlayer = GameWorld.GetPlayerManager().FindPlayerByID(tagMemberID)
+ __DoPlayerLeaveFamilyByID(family, tagPlayerID, tagPlayer)
if tagPlayer:
MapServer_FamilyRefresh(tagPlayer, 0)
Broadcast_FamilyChange(familyID, FamilyChangeType_MemLeave)
+ return
+
+def __DoPlayerLeaveFamilyByID(curFamily, leavePlayerID, tagPlayer=None):
+ ## 有玩家离开家族处理,主要针对家族层级的,玩家个人的在 __OnLeaveFamily 处理
+ PlayerFamilyTaofa.OnFamilyMemberLeave(curFamily, leavePlayerID, tagPlayer)
return
#// A6 11 家族改名 #tagCMRenameFamily
@@ -1485,7 +1497,7 @@
curMember.SetDonateCntTotal(memDonateCntTotal)
GameWorld.DebugLog("家族捐献: donateType=%s,donateCnt=%s,%s,memDonateCntDay=%s,memDonateCntDay=%s"
% (donateType, donateCnt, awardItemList, memDonateCntDay, memDonateCntTotal), playerID)
- ItemControler.GivePlayerItemOrMail(curPlayer, awardItemList)
+ ItemControler.GivePlayerItemOrMail(curPlayer, awardItemList, event=["FamilyMoneyDonate", False, {}])
return
def ResetDailyDonateCnt(curPlayer):
@@ -1605,7 +1617,8 @@
def SendFamilyActionInfo(curPlayer, familyID, actionType):
## 发送家族行为
# @param curPlayer: 为None时通知该仙盟所有成员
-
+ if not familyID:
+ return
familyAction = DBDataMgr.GetFamilyActionMgr().GetFamilyAction(familyID, actionType)
clientPack = ChPyNetSendPack.tagMCFamilyActionInfo()
--
Gitblit v1.8.0