From 26a116683bd08fe6705f12d6386068a801b702b9 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 03 四月 2020 18:11:33 +0800
Subject: [PATCH] 4475 【主干】免费送的3个仙盟,概率随机重名导致无法创建(手动创建与系统随机仙盟名相同的默认当做创建该系统仙盟,防止重复)

---
 ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamily.py |   20 ++++++++++++++++++++
 1 files changed, 20 insertions(+), 0 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamily.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamily.py
index cb145d1..15a7d41 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)

--
Gitblit v1.8.0