#!/usr/bin/python
|
# -*- coding: GBK -*-
|
#-------------------------------------------------------------------------------
|
#
|
##@package GM.Commands.Zhenbaoge
|
#
|
# @todo:Õ䱦¸ó
|
# @author hxp
|
# @date 2024-10-29
|
# @version 1.0
|
#
|
# ÏêϸÃèÊö: Õ䱦¸ó
|
#
|
#-------------------------------------------------------------------------------
|
#"""Version = 2024-10-29 17:30"""
|
#-------------------------------------------------------------------------------
|
|
import GameWorld
|
import PlayerFamilyZhenbaoge
|
import PlayerFamilyAction
|
import ShareDefine
|
import random
|
|
## Ö´ÐÐÂß¼
|
# @param curPlayer µ±Ç°Íæ¼Ò
|
# @param gmList []
|
# @return None
|
def OnExec(curPlayer, gmList):
|
|
if not gmList:
|
#GameWorld.DebugAnswer(curPlayer, "ÖØÖÃÕ䱦¸ó: Zhenbaoge 0")
|
#GameWorld.DebugAnswer(curPlayer, "ÐÂÔö¼Ù¿³¼Û: Zhenbaoge ´ÎÊý [Ëæ»úAÖµ ÖÁBÖµ]")
|
#GameWorld.DebugAnswer(curPlayer, "ABֵûÓÐÌîÔò°´³£¹æ¿³¼Û¼Û¸ñ¼ÆËã")
|
return
|
|
curFamily = curPlayer.GetFamily()
|
if not curFamily:
|
return
|
|
value1 = gmList[0]
|
if value1 == 0:
|
PlayerFamilyZhenbaoge.OnZhenbaogeReset(curFamily)
|
GameWorld.DebugAnswer(curPlayer, "ÖØÖÃÏÉÃËÕ䱦¸óOK")
|
return
|
|
familyID = curFamily.GetID()
|
gActionData = PlayerFamilyZhenbaoge.GetZhenbaogeActionData(familyID, PlayerFamilyZhenbaoge.ActionGlobalID)
|
if not gActionData:
|
GameWorld.DebugAnswer(curPlayer, "ÇëÏÈÖØÖÃÕ䱦¸ó")
|
return
|
|
familyAction = GameWorld.GetFamilyActionManager().GetFamilyAction(familyID, PlayerFamilyZhenbaoge.ActionType)
|
actionCount = familyAction.Count()
|
|
fackCount = value1
|
randValue1 = gmList[1] if len(gmList) > 1 else 0
|
randValue2 = gmList[2] if len(gmList) > 2 else 0
|
syncActionDataList = [gActionData]
|
startFackID = 1000 + actionCount
|
for fackID in range(startFackID, startFackID + fackCount):
|
FakeName = "¼ÙÃû×Ö".decode(ShareDefine.Def_Game_Character_Encoding).encode(GameWorld.GetCharacterEncoding())
|
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))
|
|
PlayerFamilyAction.SendFamilyAction(syncActionDataList)
|
nowPrice = PlayerFamilyZhenbaoge.GetFAPriceFinal(gActionData)
|
GameWorld.DebugAnswer(curPlayer, "Ìí¼Ó¼Ù¿³¼ÛÊý:%s,×Ü¿³¼ÛÊý:%s,µ±Ç°¼Û¸ñ:%s" % (fackCount, familyAction.Count() - 1, nowPrice))
|
return
|
|