From 95fb3b3d2ebabcc183b50722f7e7c0d65c115952 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 24 二月 2021 14:13:56 +0800
Subject: [PATCH] 4949 【主干】【BT2】节日祝福-在boss之家击杀个人boss完成了击杀boss之家boss游历值
---
ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamily.py | 36 ++++++++++++++++++++++++++++++------
1 files changed, 30 insertions(+), 6 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamily.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamily.py
index cb145d1..9ae4a20 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamily.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamily.py
@@ -137,6 +137,22 @@
return []
return fakeIDList
+def GetFamilyNameFakeIndex(familyName):
+ ## 获取仙盟名是否是系统随机出来的假仙盟名
+ # @return: 0-不是, >0 对应的 fakeIndex
+ fakeFamilyNameList = IpyGameDataPY.GetFuncEvalCfg('FakeFamilyName')
+ randomCnt = IpyGameDataPY.GetFuncCfg('FakeFamilyName', 2)
+ for i in xrange(randomCnt):
+ fakeID = PlayerDBGSEvent.GetDBGSTrig_ByKey(PlayerDBGSEvent.Def_FakeFamilyIndex % i)
+ if not fakeID:
+ continue
+ nameIndex = fakeID - 1
+ if nameIndex >=0 and nameIndex < len(fakeFamilyNameList):
+ fakeName = GameWorld.GbkToCode(fakeFamilyNameList[nameIndex])
+ if familyName == fakeName:
+ return fakeID
+ return 0
+
def SyncFakeFamilyInfo(curPlayer=None):
'''通知假仙盟信息'''
fakeIDList = RandomFakeFamily()
@@ -269,6 +285,10 @@
#-设置家族成员属性
DoPlayerJionFamily(curFamily, curPlayer, IPY_GameServer.fmlLeader)
creatFamilyTimes = PlayerDBGSEvent.GetDBGSTrig_ByKey(PlayerDBGSEvent.Def_ServerCreatFamilyTimes)
+ # 如果是手动指定仙盟名创建的,判断是否在系统随机的假仙盟里,如果是的话就当做创建系统分配的假仙盟处理
+ if familyName and not fakeIndex:
+ fakeIndex = GetFamilyNameFakeIndex(familyName)
+ GameWorld.DebugLog(" 玩家手动输入创建仙盟名与系统随机的假仙盟名相同,默认当做创建假仙盟!fakeIndexID=%s" % (fakeIndex))
#扣道具(前N个战盟并且假编号在随机编号里不要钱)
if fakeIndex and fakeIndex in fakeIndexList:
PlayerDBGSEvent.SetDBGSTrig_ByKey(PlayerDBGSEvent.Def_FakeFamilyIndex % fakeIndexList.index(fakeIndex), 0)
@@ -1716,8 +1736,10 @@
addFamilyMoney, curFamily.GetFamilyActiveValue(), addFamilyActiveValue)
#通知客户端
- #curFamily.Broadcast_FamilyChange()
- curPlayer.Sync_FamilyInfo()
+ if addFamilyHornor:
+ curFamily.Broadcast_FamilyChange()
+ else:
+ curPlayer.Sync_FamilyInfo()
#金钱变更时才通知
if addFamilyMoney != 0:
@@ -1962,8 +1984,10 @@
if not PlayerControl.GetIsTJG(curPlayer):
#上线重置离线时间为0, 非脱机挂才设置
- curMember.SetExattr2(0)
+ curMember.SetExattr2(0) # 在线0,脱机1,>1离线时间
curPlayer.Sync_FamilyInfo()
+ else:
+ curMember.SetExattr2(1) # 脱机1
curPlayer.MapServer_FamilyRefresh()
curMember = GetPlayerFamilyMember(curPlayer)
@@ -2891,7 +2915,7 @@
GameWorld.Log("GetLeaderOfflineTime->FindMember, None;%s" % leaderID)
return 0
offLineTimeNum = curMember.GetExattr2()
- if not offLineTimeNum:
+ if not offLineTimeNum or offLineTimeNum == 1:
return 0
offLineTime = GameWorld.ChangeTimeNumToStr(offLineTimeNum)
return GameWorld.GetPastHour(offLineTime)
@@ -2902,7 +2926,7 @@
for i in range(0, family.GetCount()):
member = family.GetAt(i)
offLineTimeNum = member.GetExattr2()
- if not offLineTimeNum:
+ if not offLineTimeNum or offLineTimeNum == 1:
#有人在线直接返回
return 0
if not offLineTime:
@@ -2937,7 +2961,7 @@
elif toMember2.GetExattr1() < member.GetExattr1():
toMember2 = member
- offLineHour = GameWorld.GetPastHour(GameWorld.ChangeTimeNumToStr(member.GetExattr2())) if member.GetExattr2() else 0
+ offLineHour = GameWorld.GetPastHour(GameWorld.ChangeTimeNumToStr(member.GetExattr2())) if member.GetExattr2() > 1 else 0
#GameWorld.DebugLog('memberID=%s 离线%s小时,历史贡献度%s'%(member.GetPlayerID(), offLineHour, member.GetExattr1()))
if offLineHour < 48:
if not toMember1:
--
Gitblit v1.8.0