ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/Taofa.py
@@ -22,37 +22,37 @@
import PlayerControl
import PlayerFamilyTaofa
import PlayerFamily
import CrossPlayer
import DBDataMgr
import random
import time
def OnExec(curPlayer, msgList):
def GetGMServerIDList(curPlayer):
    ## 获取命令额外发送到其他服务器,如跨服
    crossServerID = DBDataMgr.GetFamilyMgr().GetCurCrossServerID()
    if crossServerID:
        GameWorld.DebugAnswer(curPlayer, "本服公会已互通跨服ID:%s" % crossServerID)
        return [crossServerID]
    GameWorld.DebugAnswer(curPlayer, "本服公会未互通")
    return []
def OnExecCross(crossPlayer, msgList):
    if not msgList:
        GameWorld.DebugAnswer(curPlayer, "---------- %s" % GameWorld.GetCurrentDataTimeStr())
        GameWorld.DebugAnswer(curPlayer, "重置公会讨伐: Taofa 0")
        GameWorld.DebugAnswer(curPlayer, "设置布阵层级: Taofa z 层级 [剩余秒]")
        GameWorld.DebugAnswer(curPlayer, "设置当前怒气: Taofa a 怒气")
        GameWorld.DebugAnswer(curPlayer, "设置讨伐次数: Taofa c 已讨伐次数  物品次数")
        GameWorld.DebugAnswer(curPlayer, "设置宝箱领取: Taofa b 已领取宝箱 未领取")
        GameWorld.DebugAnswer(curPlayer, "设置宝箱贡献: Taofa g 已贡献宝箱 [累计伤害 历史伤害]")
        GameWorld.DebugAnswer(curPlayer, "增加成员讨伐: Taofa m 人数 [伤害值A 到B 怒攻概率]")
        GameWorld.DebugAnswer(curPlayer, "创建仙盟相关使用命令: CreateFamily")
        return
    if GameWorld.IsMainServer() and DBDataMgr.GetFamilyMgr().GetCurCrossServerID():
        # 本服公会已互通不再执行本服命令
        return
    
    familyID = curPlayer.GetFamilyID()
    if not familyID:
        GameWorld.DebugAnswer(curPlayer, "没有仙盟")
        return
    familyID = crossPlayer.GetFamilyID()
    curFamily = DBDataMgr.GetFamilyMgr().FindFamily(familyID)
    if not curFamily:
        GameWorld.DebugAnswer(crossPlayer, "没有公会")
        return
    
    value1 = msgList[0]
    if value1 == 0:
        PlayerFamilyTaofa.OnTaofaReset(curFamily)
        PlayerFamilyTaofa.OnTaofaResetPlayer(curPlayer)
        GameWorld.DebugAnswer(curPlayer, "重置公会讨伐OK")
        GameWorld.DebugAnswer(crossPlayer, "重置公会讨伐OK")
        return
    
    if value1 == "z":
@@ -64,15 +64,42 @@
        PlayerFamilyTaofa.SetFABuzhenLayer(gActionData, gLayer)
        PlayerFamilyTaofa.SetFABuzhenEndTime(gActionData, gEndTime)
        PlayerFamily.SendFamilyAction(gActionData)
        GameWorld.DebugAnswer(curPlayer, "布阵层:%s,到期:%s" % (gLayer, GameWorld.ChangeTimeNumToStr(gEndTime)))
        GameWorld.DebugAnswer(crossPlayer, "布阵层:%s,到期:%s" % (gLayer, GameWorld.ChangeTimeNumToStr(gEndTime)))
        return
    
    # 新增成员讨伐
    if value1 == "m":
        __AddMemTaofaAtk(curPlayer, curFamily, msgList)
        __AddMemTaofaAtk(crossPlayer, curFamily, msgList)
        return
    
    elif value1 == "a":
    return
def OnExec(curPlayer, msgList):
    if not msgList:
        GameWorld.DebugAnswer(curPlayer, "-----%s-----" % GameWorld.GetCurrentDataTimeStr())
        GameWorld.DebugAnswer(curPlayer, "重置公会讨伐: Taofa 0")
        GameWorld.DebugAnswer(curPlayer, "设置布阵层级: Taofa z 层级 [剩余秒]")
        GameWorld.DebugAnswer(curPlayer, "设置当前怒气: Taofa a 怒气")
        GameWorld.DebugAnswer(curPlayer, "设置讨伐次数: Taofa c 已讨伐次数  物品次数")
        GameWorld.DebugAnswer(curPlayer, "设置宝箱领取: Taofa b 已领取宝箱 未领取")
        GameWorld.DebugAnswer(curPlayer, "设置宝箱贡献: Taofa g 已贡献宝箱 [累计伤害 历史伤害]")
        GameWorld.DebugAnswer(curPlayer, "增加成员讨伐: Taofa m 人数 [伤害值A 到B 怒攻概率]")
        GameWorld.DebugAnswer(curPlayer, "创建公会相关使用命令: CreateFamily")
        return
    crossPlayer = CrossPlayer.GetCrossPlayerMgr().FindCrossPlayer(curPlayer.GetPlayerID())
    if not crossPlayer:
        return
    value1 = msgList[0]
    if value1 == 0:
        OnExecCross(crossPlayer, msgList)
        PlayerFamilyTaofa.OnTaofaResetPlayer(curPlayer)
        GameWorld.DebugAnswer(curPlayer, "重置玩家讨伐OK")
        return
    if value1 == "a":
        anger = msgList[1] if len(msgList) > 1 else 0
        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_FamilyTaofaAnger, anger)
        GameWorld.DebugAnswer(curPlayer, "当前怒气: %s" % anger)
@@ -83,7 +110,7 @@
        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_FamilyTaofaCnt, atkCnt)
        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_FamilyTaofaItemAddCnt, itemAddCnt)
        GameWorld.DebugAnswer(curPlayer, "已讨伐次数:%s, 物品增加次数:%s" % (atkCnt, itemAddCnt))
    elif value1 == "b":
        totalGetCnt = msgList[1] if len(msgList) > 1 else 0
        unGetCnt = msgList[2] if len(msgList) > 2 else 0
@@ -113,10 +140,10 @@
    PlayerFamilyTaofa.SyncTaofaInfo(curPlayer)
    return
def __AddMemTaofaAtk(curPlayer, curFamily, msgList):
def __AddMemTaofaAtk(crossPlayer, curFamily, msgList):
    #新增成员讨伐: Taofa m 人数 [伤害值A 到B]
    
    GameWorld.DebugAnswer(curPlayer, "---------- %s" % GameWorld.GetCurrentDataTimeStr())
    GameWorld.DebugAnswer(crossPlayer, "---------- %s" % GameWorld.GetCurrentDataTimeStr())
    memCnt = msgList[1] if len(msgList) > 1 else curFamily.GetCount()
    hurtTotalA = msgList[2] if len(msgList) > 2 else 0
    hurtTotalB = msgList[3] if len(msgList) > 3 else hurtTotalA
@@ -125,9 +152,9 @@
    
    if curFamily.GetCount() <= memCnt:
        addMemCnt = memCnt - curFamily.GetCount() + 1
        GameWorld.DebugAnswer(curPlayer, "添加缺少成员: %s" % addMemCnt)
        CreateFamily.OnExec(curPlayer, ["m", addMemCnt])
        GameWorld.DebugAnswer(curPlayer, "当前总成员数: %s" % curFamily.GetCount())
        GameWorld.DebugAnswer(crossPlayer, "添加缺少成员: %s" % addMemCnt)
        CreateFamily.OnExecCross(crossPlayer, ["m", addMemCnt])
        GameWorld.DebugAnswer(crossPlayer, "当前总成员数: %s" % curFamily.GetCount())
        
    actionDataList = []
    for index in range(curFamily.GetCount()):
@@ -144,9 +171,9 @@
        hurtValue = random.randint(hurtTotalA, hurtTotalB)
        isAnger = GameWorld.CanHappen(angerRate) # 概率设置为怒气攻击
        
        actionData = PlayerFamilyTaofa.GMAddMemTaofaAtk(curPlayer, curFamily, memID, hurtValue, isAnger)
        actionData = PlayerFamilyTaofa.GMAddMemTaofaAtk(crossPlayer, curFamily, memID, hurtValue, isAnger)
        actionDataList.append(actionData)
    PlayerFamilyTaofa.RefreshPlayerAwardBoxCnt(curFamily)
    PlayerFamily.SendFamilyAction(actionDataList)
    PlayerFamilyTaofa.SyncMemContribInfo(curFamily)
    return