From e268dd1de7fdda3ccbe24880ebd6d60be2debb47 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期五, 12 七月 2024 19:03:00 +0800 Subject: [PATCH] 10202 【越南】【香港】【主干】【砍树】聚魂(增加聚魂战令6; 增加战令GM命令: Zhanling) --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerZhanling.py | 6 ++ ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGatherTheSoul.py | 12 ++++++ ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/Zhanling.py | 72 ++++++++++++++++++++++++++++++++++++ 3 files changed, 89 insertions(+), 1 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/Zhanling.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/Zhanling.py new file mode 100644 index 0000000..617c3c7 --- /dev/null +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/Zhanling.py @@ -0,0 +1,72 @@ +#!/usr/bin/python +# -*- coding: GBK -*- +#------------------------------------------------------------------------------- +# +##@package GM.Commands.Zhanling +# +# @todo:战令 +# @author hxp +# @date 2024-07-12 +# @version 1.0 +# +# 详细描述: 战令 +# +#------------------------------------------------------------------------------- +#"""Version = 2024-07-12 19:00""" +#------------------------------------------------------------------------------- + +import ChConfig +import PlayerControl +import PlayerZhanling +import GameWorld + +#--------------------------------------------------------------------- +#逻辑实现 + +## GM命令执行入口 +# @param curPlayer 当前玩家 +# @param msgList 参数列表 +# @return None +# @remarks 函数详细说明. +def OnExec(curPlayer, msgList): + + if not msgList: + GameWorld.DebugAnswer(curPlayer, "重置奖励: Zhanling 0 类型") + GameWorld.DebugAnswer(curPlayer, "设置战令: Zhanling 类型 是否激活普通 高级") + return + + value = msgList[0] + if value == 0: + zhanlingType = msgList[1] if len(msgList) > 1 else 1 + for keyNum in range(10): + PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ZhanlingReward % (zhanlingType, keyNum), 0) + PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ZhanlingRewardH % (zhanlingType, keyNum), 0) + PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ZhanlingRewardFree % (zhanlingType, keyNum), 0) + + PlayerZhanling.SyncZhanlingInfo(curPlayer, zhanlingType) + GameWorld.DebugAnswer(curPlayer, "重置战令(%s)奖励!" % (zhanlingType)) + + else: + zhanlingType = value + activiteC = msgList[1] if len(msgList) > 1 else 0 + activiteH = msgList[2] if len(msgList) > 2 else 0 + state = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ZhanlingState) + if activiteC: + updState = state|pow(2, zhanlingType) + else: + updState = state&(pow(2, 31 + 1) - 1 - pow(2, zhanlingType)) + PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ZhanlingState, updState) + + state = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ZhanlingStateH) + if activiteH: + updState = state|pow(2, zhanlingType) + else: + updState = state&(pow(2, 31 + 1) - 1 - pow(2, zhanlingType)) + PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ZhanlingStateH, updState) + + PlayerZhanling.SyncZhanlingInfo(curPlayer, zhanlingType) + GameWorld.DebugAnswer(curPlayer, "设置战令类型:%s 普通:%s 高级:%s" % (zhanlingType, activiteC, activiteH)) + + return + + diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGatherTheSoul.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGatherTheSoul.py index fe0f05a..4411e59 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGatherTheSoul.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGatherTheSoul.py @@ -169,6 +169,18 @@ RefreshGatherTheSoulAttr(curPlayer, True) return +def GetGatherTheSoulTotalLV(curPlayer): + totalSoulLV = 0 + ipyDataMgr = IpyGameDataPY.IPY_Data() + for index in range(ipyDataMgr.GetGatherTheSoulCount()): + ipyData = ipyDataMgr.GetGatherTheSoulByIndex(index) + soulID = ipyData.GetSoulID() + soulLV = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GatherTheSoulLV % soulID) + if not soulLV: + continue + totalSoulLV += soulLV + return totalSoulLV + def GetHoleSoulColorCount(curPlayer, soulColor, isDownward): ## 获取镶嵌聚魂品质个数 colorCount = 0 diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerZhanling.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerZhanling.py index 3662208..bf33463 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerZhanling.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerZhanling.py @@ -20,6 +20,7 @@ import IpyGameDataPY import PlayerControl import ChPyNetSendPack +import PlayerGatherTheSoul import ItemControler import IPY_GameWorld import PlayerGubao @@ -33,7 +34,8 @@ ZhanlingType_SkyTower, ZhanlingType_GubaoStar, ZhanlingType_Login, -) = range(1, 1 + 5) +ZhanlingType_GatherTheSoulLV, +) = range(1, 1 + 6) def OnPlayerLogin(curPlayer): for zhanlingType in ZhanlingTypeList: @@ -103,6 +105,8 @@ if not firstLoginTime: return curValue = GameWorld.GetDiff_Day(int(time.time()), firstLoginTime) + 1 + elif zhanlingType == ZhanlingType_GatherTheSoulLV: + curValue = PlayerGatherTheSoul.GetGatherTheSoulTotalLV(curPlayer) else: return -- Gitblit v1.8.0