#!/usr/bin/python
|
# -*- coding: GBK -*-
|
#-------------------------------------------------------------------------------
|
#
|
##@package Player.PlayerBindJadeWheel
|
#
|
# @todo:°óÓñתÅÌ
|
# @author xdh
|
# @date 2018-09-27
|
# @version 1.0
|
#
|
# ÏêϸÃèÊö: °óÓñתÅÌ
|
#
|
#-------------------------------------------------------------------------------
|
#"""Version = 2018-09-27 16:00"""
|
#-------------------------------------------------------------------------------
|
|
import GameWorld
|
import PlayerVip
|
import IpyGameDataPY
|
import IPY_GameWorld
|
import ChPyNetSendPack
|
import PlayerControl
|
import NetPackCommon
|
import ChConfig
|
|
|
|
|
def OnDay(curPlayer):
|
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_BindJadeWheelCurCnt, 0)
|
SyncBindJadeWheelResult(curPlayer)
|
return
|
|
def OnLogin(curPlayer):
|
SyncBindJadeWheelResult(curPlayer)
|
return
|
|
#// A5 17 °óÓñתÅÌ¿ªÊ¼ #tagCMStartBindJadeWheel
|
#
|
#struct tagCMStartBindJadeWheel
|
#
|
#{
|
# tagHead Head;
|
#};
|
def OnStartBindJadeWheel(index, clientData, tick):
|
curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
maxCnt = PlayerVip.GetPrivilegeValue(curPlayer, ChConfig.VIPPrivilege_BindJadeWheel)
|
curCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_BindJadeWheelCurCnt)
|
if curCnt >= maxCnt:
|
GameWorld.DebugLog(' °óÓñתÅÌ´ÎÊý²»×㣡')
|
return
|
costMoney = IpyGameDataPY.GetFuncCfg('BindJadeWheelCfg')
|
if not PlayerControl.HaveMoney(curPlayer, IPY_GameWorld.TYPE_Price_Gold_Money, costMoney):
|
return
|
historyCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_BindJadeWheelHistoryCnt)
|
beSureCountDict = IpyGameDataPY.GetFuncEvalCfg('BindJadeWheelCfg', 4, {})
|
updHistory = historyCnt + 1
|
if updHistory in beSureCountDict:
|
gridNumRateList = beSureCountDict[updHistory]
|
else:
|
gridNumRateList = IpyGameDataPY.GetFuncEvalCfg('BindJadeWheelCfg', 3)
|
gridNum = GameWorld.GetResultByRandomList(gridNumRateList)
|
if not gridNum:
|
GameWorld.ErrLog(' °óÓñתÅÌ Ã»×ª³ö½á¹û gridNumRateList=%s'%gridNumRateList, curPlayer.GetID())
|
return
|
giveMoney = IpyGameDataPY.GetFuncEvalCfg('BindJadeWheelCfg', 2, {}).get(str(gridNum))
|
if not giveMoney:
|
return
|
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_BindJadeWheelCurCnt, curCnt+1)
|
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_BindJadeWheelHistoryCnt, updHistory)
|
|
infoDict = {"giveMoney":giveMoney, "historyCnt":historyCnt, "curCnt":curCnt}
|
PlayerControl.PayMoney(curPlayer, IPY_GameWorld.TYPE_Price_Gold_Money, costMoney, ChConfig.Def_Cost_BindJadeWheel, infoDict)
|
PlayerControl.GiveMoney(curPlayer, IPY_GameWorld.TYPE_Price_Gold_Paper, giveMoney, ChConfig.Def_GiveMoney_BindJadeWheel, isSysHint=False)
|
SyncBindJadeWheelResult(curPlayer, gridNum)
|
|
if giveMoney >= IpyGameDataPY.GetFuncCfg('BindJadeWheelNotice'):
|
PlayerControl.WorldNotify(0, 'BindJadeNotice', [curPlayer.GetName(), giveMoney])
|
return
|
|
def SyncBindJadeWheelResult(curPlayer, gridNum=0):
|
sendPack = ChPyNetSendPack.tagMCBindJadeWheelResult()
|
sendPack.Clear()
|
sendPack.Index = gridNum
|
sendPack.Cnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_BindJadeWheelCurCnt)
|
NetPackCommon.SendFakePack(curPlayer, sendPack)
|
return
|