#!/usr/bin/python # -*- coding: GBK -*- #------------------------------------------------------------------------------- # ##@package GM.Commands.CreateFamily # # @todo:´´½¨¼ÙÏÉÃË # @author hxp # @date 2018-01-12 # @version 1.0 # # ÏêϸÃèÊö: ´´½¨¼ÙÏÉÃË # #------------------------------------------------------------------------------- #"""Version = 2018-01-12 18:00""" #------------------------------------------------------------------------------- import GameWorld import ShareDefine import PlayerFamily import GameWorldFamilyWar ## Ö´ÐÐÂß¼­ # @param curPlayer µ±Ç°Íæ¼Ò # @param gmList [] # @return None def OnExec(curPlayer, gmList): if not gmList: GameWorld.DebugAnswer(curPlayer, "CreatFamily ´´½¨¼ÙÏÉÃ˸öÊý ¿ÉÑ¡²ÎÊý(ÏÉÃ˵ȼ¶ ÊÇ·ñÉèÖÃÁªÈüÃû´Î)") GameWorld.DebugAnswer(curPlayer, "ɾ³ý´´½¨µÄ¼ÙÏÉÃË: CreatFamily 0") return creatCount = gmList[0] if creatCount <= 0: delFamilyList = [] familyManager = GameWorld.GetFamilyManager() for i in xrange(familyManager.GetCount()): family = familyManager.GetAt(i) if not family.GetCount(): delFamilyList.append(family) delCnt = len(delFamilyList) for delFamily in delFamilyList: familyID = delFamily.GetID() familyWarRank = PlayerFamily.GetFamilyWarRank(delFamily) familyManager.DelFamily(familyID) GameWorldFamilyWar.OnDeleteFamily(familyID, familyWarRank) PlayerFamily.DoFamilySort() GameWorld.DebugAnswer(curPlayer, "ɾ³ý¼ÙÏÉÃËÊý: %s" % delCnt) return # ÕÒ³ö¼ÙÏÉÃ˵Ä×îµÍÕ½Á¦ maxWarRank = 0 minTotalFightPower = 1000001 familyManager = GameWorld.GetFamilyManager() for i in xrange(familyManager.GetCount()): family = familyManager.GetAt(i) maxWarRank = max(maxWarRank, PlayerFamily.GetFamilyWarRank(family)) if not family.GetCount(): minTotalFightPower = min(minTotalFightPower, PlayerFamily.GetFamilyTotalFightPower(family)) creatTime = GameWorld.GetCurrentDataTimeStr() FakeFamilyName = "¼ÙÏÉÃË".decode(ShareDefine.Def_Game_Character_Encoding).encode(GameWorld.GetCharacterEncoding()) FakeLeaderName = "¼ÙÃËÖ÷".decode(ShareDefine.Def_Game_Character_Encoding).encode(GameWorld.GetCharacterEncoding()) succCreatCount = 0 creatCount = min(100, creatCount) familyLV = gmList[1] if len(gmList) > 1 else 1 warRank = gmList[2] if len(gmList) > 2 else 0 familyManager = GameWorld.GetFamilyManager() curCnt = familyManager.GetCount() for i in xrange(curCnt + 1, creatCount + curCnt + 1): familyName = "%s_%s" % (FakeFamilyName, i) curFamily = familyManager.AddFamily(familyName) if curFamily == None: continue succCreatCount += 1 #---´´½¨¼ÙÏÉÃË--- curFamily.SetCreateTime(creatTime) curFamily.SetLV(familyLV) curFamily.SetAcceptJoin(ShareDefine.FamilyAcceptJoin_Refuse) # ÉèÖþܾøÉêÇë curFamily.SetLeaderName("%s%s" % (FakeLeaderName, i)) minTotalFightPower -= 1 PlayerFamily.SetFamilyTotalFightPower(curFamily, minTotalFightPower) if warRank and maxWarRank < (GameWorldFamilyWar.FamilyWar_MaxFamilyCount - GameWorldFamilyWar.FamilyWar_GroupFamilyCount): maxWarRank += 1 PlayerFamily.SetFamilyWarRank(curFamily, maxWarRank) GameWorld.DebugAnswer(curPlayer, "´´½¨¼ÙÏÉÃËÊý: %s" % succCreatCount) PlayerFamily.DoFamilySort() return