#!/usr/bin/python
|
# -*- coding: GBK -*-
|
#-------------------------------------------------------------------------------
|
#
|
##@package GM.Commands.Taofa
|
#
|
# @todo:¹«»áÌÖ·¥
|
# @author hxp
|
# @date 2025-10-24
|
# @version 1.0
|
#
|
# ÏêϸÃèÊö: ¹«»áÌÖ·¥
|
#
|
#-------------------------------------------------------------------------------
|
#"""Version = 2025-10-24 19:00"""
|
#-------------------------------------------------------------------------------
|
|
import ChConfig
|
import GameWorld
|
import PlayerControl
|
import PlayerFamilyZhenbaoge
|
import PlayerFamilyTaofa
|
import PlayerFamily
|
import DBDataMgr
|
import random
|
import time
|
|
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 t ¼¸Ãëǰͳ¼ÆµÄ")
|
GameWorld.DebugAnswer(curPlayer, "ÉèÖñ¦Ïä¹±Ï×: Taofa g Òѹ±Ï×±¦Ïä [ÀÛ¼ÆÉ˺¦ ÀúÊ·É˺¦]")
|
#GameWorld.DebugAnswer(curPlayer, "ÐÂÔö³ÉÔ±ÌÖ·¥: Taofa m ÈËÊý [ÿÈ˹¥»÷´ÎÊý ÅÆø´ÎÊý É˺¦ÖµA µ½B]")
|
#GameWorld.DebugAnswer(curPlayer, "ABֵûÓÐÌîÔò°´³£¹æ¿³¼Û¼Û¸ñ¼ÆËã")
|
GameWorld.DebugAnswer(curPlayer, "´´½¨ÏÉÃËÏà¹ØÊ¹ÓÃÃüÁî: CreateFamily")
|
return
|
|
familyID = curPlayer.GetFamilyID()
|
if not familyID:
|
GameWorld.DebugAnswer(curPlayer, "ûÓÐÏÉÃË")
|
return
|
curFamily = DBDataMgr.GetFamilyMgr().FindFamily(familyID)
|
if not curFamily:
|
return
|
|
value1 = msgList[0]
|
if value1 == 0:
|
PlayerFamilyTaofa.OnTaofaReset(curFamily)
|
PlayerFamilyTaofa.OnTaofaResetPlayer(curPlayer)
|
GameWorld.DebugAnswer(curPlayer, "ÖØÖù«»áÌÖ·¥OK")
|
return
|
|
if value1 == "z":
|
gLayer = msgList[1] if len(msgList) > 1 else 0
|
remainSeconds = msgList[2] if len(msgList) > 2 else 3600
|
gEndTime = int(time.time()) + remainSeconds
|
familyAction = DBDataMgr.GetFamilyActionMgr().GetFamilyAction(familyID, PlayerFamilyTaofa.ActionType)
|
gActionData = familyAction.GetActionDataByValue1(PlayerFamilyTaofa.ActionGlobalID, True)
|
PlayerFamilyTaofa.SetFABuzhenLayer(gActionData, gLayer)
|
PlayerFamilyTaofa.SetFABuzhenEndTime(gActionData, gEndTime)
|
PlayerFamily.SendFamilyAction(gActionData)
|
GameWorld.DebugAnswer(curPlayer, "²¼Õó²ã:%s,µ½ÆÚ:%s" % (gLayer, GameWorld.ChangeTimeNumToStr(gEndTime)))
|
return
|
|
# ÐÂÔö³ÉÔ±ÌÖ·¥
|
if value1 == "m":
|
memCnt = msgList[1] if len(msgList) > 1 else 0
|
GameWorld.DebugAnswer(curPlayer, "³ÉÔ±ÌÖ·¥:%s" % (memCnt))
|
return
|
|
elif 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)
|
|
elif value1 == "c":
|
atkCnt = msgList[1] if len(msgList) > 1 else 0
|
itemAddCnt = msgList[2] if len(msgList) > 2 else 0
|
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
|
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_FamilyTaofaBoxTotalGetCnt, totalGetCnt)
|
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_FamilyTaofaBoxUnGetCnt, unGetCnt)
|
GameWorld.DebugAnswer(curPlayer, "ÒÑÁìÈ¡±¦Ïä:%s, δÁìÈ¡:%s" % (totalGetCnt, unGetCnt))
|
|
elif value1 == "t":
|
befSeconds = msgList[1] if len(msgList) > 1 else 0
|
lastTime = int(time.time()) - befSeconds
|
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_FamilyTaofaBoxLastTime, lastTime)
|
GameWorld.DebugAnswer(curPlayer, "Éϴμì²é±¦Ïäʱ¼ä:%s" % (GameWorld.ChangeTimeNumToStr(lastTime)))
|
|
elif value1 == "g":
|
contribCnt = msgList[1] if len(msgList) > 1 else 0
|
boxHurtTotal = msgList[2] if len(msgList) > 2 else None
|
boxHurtTotalHis = msgList[3] if len(msgList) > 3 else None
|
if boxHurtTotal == None:
|
boxHurt = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_FamilyTaofaBoxHurt)
|
boxHurtEx = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_FamilyTaofaBoxHurtEx)
|
boxHurtTotal = boxHurt + boxHurtEx * ChConfig.Def_PerPointValue
|
if boxHurtTotalHis == None:
|
boxHurtHis = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_FamilyTaofaBoxHurtHis)
|
boxHurtHisEx = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_FamilyTaofaBoxHurtHisEx)
|
boxHurtTotalHis = max(boxHurtTotal, boxHurtHis + boxHurtHisEx * ChConfig.Def_PerPointValue)
|
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_FamilyTaofaBoxContribCnt, contribCnt)
|
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_FamilyTaofaBoxHurt, boxHurtTotal % ChConfig.Def_PerPointValue)
|
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_FamilyTaofaBoxHurtEx, boxHurtTotal / ChConfig.Def_PerPointValue)
|
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_FamilyTaofaBoxHurtHis, boxHurtTotalHis % ChConfig.Def_PerPointValue)
|
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_FamilyTaofaBoxHurtHisEx, boxHurtTotalHis / ChConfig.Def_PerPointValue)
|
GameWorld.DebugAnswer(curPlayer, "Òѹ±Ï×±¦Ïä:%s,×ÜÉ˺¦:%s,ÀúÊ·:%s" % (contribCnt, boxHurtTotal, boxHurtTotalHis))
|
|
PlayerFamilyTaofa.SyncTaofaInfo(curPlayer)
|
return
|
|
#Ìí¼Ó¼Ù¿³¼Û
|
gActionData = PlayerFamilyZhenbaoge.GetZhenbaogeActionData(familyID, PlayerFamilyZhenbaoge.ActionGlobalID)
|
if not gActionData:
|
GameWorld.DebugAnswer(curPlayer, "ÇëÏÈÖØÖÃÕ䱦¸ó")
|
return
|
|
familyAction = DBDataMgr.GetFamilyActionMgr().GetFamilyAction(familyID, PlayerFamilyZhenbaoge.ActionType)
|
actionCount = familyAction.Count()
|
|
fackCount = value1
|
randValue1 = msgList[1] if len(msgList) > 1 else 0
|
randValue2 = msgList[2] if len(msgList) > 2 else 0
|
syncActionDataList = [gActionData]
|
startFackID = 1000 + actionCount
|
FakeName = GameWorld.GbkToCode("¼ÙÃû×Ö")
|
for fackID in range(startFackID, startFackID + fackCount):
|
|
playerID = fackID
|
playerName = "%s%s" % (FakeName, fackID)
|
|
if randValue1 and randValue2 and randValue1 <= randValue2:
|
cutPrice = random.randint(randValue1, randValue2)
|
else:
|
cutPrice = PlayerFamilyZhenbaoge.CalcCutPrice(curFamily, gActionData, playerID)
|
|
if not cutPrice:
|
continue
|
|
actionData = PlayerFamilyZhenbaoge.AddCutPrice(familyID, playerID, playerName, cutPrice, gActionData, False)
|
syncActionDataList.append(actionData)
|
nowPrice = PlayerFamilyZhenbaoge.GetFAPriceFinal(gActionData)
|
GameWorld.DebugAnswer(curPlayer, "¿³¼ÛÈË´Î:%s,¿³¼Û:%s,ÏÖ¼Û:%s" % (fackID % 1000, cutPrice, nowPrice))
|
|
PlayerFamily.SendFamilyAction(syncActionDataList)
|
nowPrice = PlayerFamilyZhenbaoge.GetFAPriceFinal(gActionData)
|
GameWorld.DebugAnswer(curPlayer, "Ìí¼Ó¼Ù¿³¼ÛÊý:%s,×Ü¿³¼ÛÊý:%s,µ±Ç°¼Û¸ñ:%s" % (fackCount, familyAction.Count() - 1, nowPrice))
|
return
|