| | |
| | | #-------------------------------------------------------------------------------
|
| | |
|
| | | import GameWorld
|
| | | import ShareDefine
|
| | | import NetPackCommon
|
| | | import IpyGameDataPY
|
| | | import PlayerControl
|
| | |
| | |
|
| | | # 战令类型
|
| | | ZhanlingTypeList = (
|
| | | ZhanlingType_LV,
|
| | | ZhanlingType_Realm,
|
| | | ZhanlingType_SkyTower,
|
| | | ZhanlingType_GubaoStar,
|
| | | ZhanlingType_Login,
|
| | | ZhanlingType_GatherTheSoulLV,
|
| | | ZhanlingType_HorsePetTrain,
|
| | | ZhanlingType_GubaoTrain,
|
| | | ) = range(1, 1 + 8)
|
| | | ZhanlingType_LV, # 等级 1
|
| | | ZhanlingType_Realm, # 境界 2
|
| | | ZhanlingType_SkyTower, # 天星塔 3
|
| | | ZhanlingType_GubaoStar, # 古宝总星数 4
|
| | | ZhanlingType_Login, # 登录 5
|
| | | ZhanlingType_GatherTheSoulLV, # 聚魂 6
|
| | | ZhanlingType_HorsePetTrain, # 骑宠养成 7
|
| | | ZhanlingType_GubaoTrain, # 古宝养成 8
|
| | | ZhanlingType_Xianyuan, # 仙缘 9
|
| | | ZhanlingType_Huanjingge, # 幻境阁 10
|
| | | ) = range(1, 1 + 10)
|
| | |
|
| | | def OnPlayerLogin(curPlayer):
|
| | | for zhanlingType in ZhanlingTypeList:
|
| | |
| | | updStateH = GameWorld.SetBitValue(stateH, zhanlingType, 0)
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ZhanlingState, updState)
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ZhanlingStateH, updStateH)
|
| | | if zhanlingType == ZhanlingType_Xianyuan:
|
| | | backValue = PlayerControl.GetMoney(curPlayer, ShareDefine.TYPE_Price_XianyuanScore)
|
| | | PlayerControl.SetMoney(curPlayer, ShareDefine.TYPE_Price_XianyuanScore, 0)
|
| | | GameWorld.Log("重置战令: zhanlingType=%s,backValue=%s,state=(%s to %s) stateH=(%s to %s)"
|
| | | % (zhanlingType, backValue, state, updState, stateH, updStateH), curPlayer.GetPlayerID())
|
| | |
|
| | |
| | | PlayerControl.SendMailByKey("ZhanlingRewardUnget", [playerID], itemList, paramList)
|
| | | return
|
| | |
|
| | | def AddZhanlingValue(curPlayer, zhanlingType, addValue=1):
|
| | | if zhanlingType not in [ZhanlingType_Huanjingge]:
|
| | | return
|
| | | curValue = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ZhanlingValue1 % zhanlingType)
|
| | | updValue = min(ChConfig.Def_UpperLimit_DWord, curValue + addValue)
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ZhanlingValue1 % zhanlingType, updValue)
|
| | | GameWorld.DebugLog("增加战令进度: zhanlingType=%s,addValue=%s,curValue=%s,updValue=%s" |
| | | % (zhanlingType, addValue, curValue, updValue), curPlayer.GetPlayerID())
|
| | | SyncZhanlingInfo(curPlayer, zhanlingType, [])
|
| | | return updValue
|
| | |
|
| | | def SetZhanlingValue(curPlayer, zhanlingType, value1):
|
| | | if zhanlingType not in [ZhanlingType_Huanjingge]:
|
| | | return
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ZhanlingValue1 % zhanlingType, value1)
|
| | | GameWorld.DebugLog("设置战令进度: zhanlingType=%s,value1=%s" % (zhanlingType, value1), curPlayer.GetPlayerID())
|
| | | SyncZhanlingInfo(curPlayer, zhanlingType, [])
|
| | | return value1
|
| | |
|
| | | def GetZhanlingReward(curPlayer, zhanlingType, rewardID):
|
| | | ## 领取战令奖励
|
| | | rewardID = GameWorld.ToIntDef(rewardID)
|
| | |
| | | curValue = PlayerActHorsePetTrain.GetActHorsePetTrainScore(curPlayer)
|
| | | elif zhanlingType == ZhanlingType_GubaoTrain:
|
| | | curValue = PlayerActGubao.GetActGubaoTrainScore(curPlayer)
|
| | | elif zhanlingType == ZhanlingType_Xianyuan:
|
| | | curValue = PlayerControl.GetMoney(curPlayer, ShareDefine.TYPE_Price_XianyuanScore)
|
| | | elif zhanlingType == ZhanlingType_Huanjingge:
|
| | | curValue = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ZhanlingValue1 % zhanlingType)
|
| | | else:
|
| | | return
|
| | |
|
| | |
| | |
|
| | | # 更新已领取成功标记
|
| | | GameWorld.SetDictValueByBit(curPlayer, rewardKey, rewardIndex, 1, True, [zhanlingType])
|
| | | SyncZhanlingInfo(curPlayer, zhanlingType, ipyData)
|
| | | SyncZhanlingInfo(curPlayer, zhanlingType, [ipyData])
|
| | | GameWorld.DebugLog("领取战令奖励: zhanlingType=%s,needValue=%s,rewardType=%s,itemList=%s" % (zhanlingType, needValue, rewardType, itemList), playerID)
|
| | |
|
| | | # 给物品
|
| | |
| | |
|
| | | return
|
| | |
|
| | | def SyncZhanlingInfo(curPlayer, zhanlingType, ipyData=None):
|
| | | def SyncZhanlingInfo(curPlayer, zhanlingType, ipyDataList=None):
|
| | |
|
| | | ipyDataList = []
|
| | | if ipyData == None:
|
| | | if ipyDataList == None:
|
| | | ipyDataList = IpyGameDataPY.GetIpyGameDataByCondition("Zhanling", {"ZhanlingType":zhanlingType}, True)
|
| | | else:
|
| | | ipyDataList = [ipyData]
|
| | | |
| | | if not ipyDataList:
|
| | | return
|
| | | |
| | | |
| | | rewardList = []
|
| | | for ipyData in ipyDataList:
|
| | | rewardIndex = ipyData.GetRewardIndex()
|