From 262e9c36dea8e7712cfc31d5284ab5319fc67990 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期一, 13 一月 2025 10:39:15 +0800 Subject: [PATCH] 10263 【越南】【英文】后端支持NPC仿真实玩家战斗和快速战斗(最大护盾改为存ExAttr16) --- ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerControl.py | 31 ++++++++++++++++--------------- 1 files changed, 16 insertions(+), 15 deletions(-) diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerControl.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerControl.py index 289f531..c572d25 100644 --- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerControl.py +++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerControl.py @@ -31,6 +31,7 @@ import IPY_GameServer import PlayerDBGSEvent import CrossChampionship +import GameWorldMineArea import IpyGameDataPY import CrossRealmMsg import ShareDefine @@ -207,18 +208,6 @@ return NotifyCodeList #------------------------------------------------------------------------------ -def LoadDBPlayer(): - if GameWorld.IsCrossServer(): - return - PlayerDBOper.FindDBOper(PlayerDBOper.Table_DBPlayer, {}, {"PlayerID":1, "AccID":1, "_id":0}, LoadDBPlayerRet) - return - -def LoadDBPlayerRet(resultSetList, extendValueList): - for resultDict in resultSetList: - PyGameData.g_dbPlayerIDMap[resultDict["PlayerID"]] = resultDict["AccID"] - GameWorld.Log("启动服务器加载DBPlayer玩家账号ID对应关系! %s, %s" % (len(PyGameData.g_dbPlayerIDMap), PyGameData.g_dbPlayerIDMap)) - return - def GetDBPlayerAccIDByID(playerID): ## 获取玩家表账号ID - 根据玩家ID, 可用于判断是否本服玩家 return PyGameData.g_dbPlayerIDMap.get(playerID, "") @@ -258,8 +247,8 @@ def GetFBFuncLineID(curPlayer): return curPlayer.GetExAttr3() ##VIP到期时间 -def GetVIPExpireTime(curPlayer): return curPlayer.GetExAttr9() -def SetVIPExpireTime(curPlayer, expireTime): return curPlayer.SetExAttr9(expireTime) +def GetVIPExpireTime(curPlayer): return 0 +def SetVIPExpireTime(curPlayer, expireTime): return def GetValidVIPLV(curPlayer): # @return: 返回当前有效的VIP等级 # vipTime = GetVIPExpireTime(curPlayer) @@ -270,7 +259,9 @@ ## 根据特权ID 和 VIP等级获得特权值 def GetPrivilegeValue(vipLV, privilegeID): - if privilegeID not in ChConfig.VIPPrivilegeList: + #if privilegeID not in ChConfig.VIPPrivilegeList: + # return 0 + if not privilegeID: return 0 vipMsg = IpyGameDataPY.GetIpyGameData('VipPrivilege', privilegeID) if not vipMsg: @@ -289,6 +280,9 @@ curPlayer.MapServer_QueryPlayerResult(0, 0, "SetLeaveFamilyTime", sysMsg, len(sysMsg)) return def GetLeaveFamilyTime(curPlayer):return curPlayer.GetExAttr12() +##玩家离开仙盟时间(主动或被踢都算) +def GetLeaveFamilyTimeEx(curPlayer):return curPlayer.GetExAttr19() +def SetLeaveFamilyTimeEx(curPlayer, value):return curPlayer.SetExAttr19(value) ## 玩家所属服务器组ID def GetPlayerServerGroupID(curPlayer): return curPlayer.GetExAttr13() @@ -385,6 +379,12 @@ curPlayer.MapServer_QueryPlayerResult(0, 0, "DelItem", result, len(result)) return +def MapServerGiveAward(curPlayer, eventName, moneyInfo={}, itemList=[], drDict={}): + ## 地图给奖励 + result = str([eventName, moneyInfo, itemList, drDict]) + curPlayer.MapServer_QueryPlayerResult(0, 0, "GiveAward", result, len(result)) + return + ## 增加仙盟活跃 # @param curPlayer # @param successType: 成就类型 @@ -437,6 +437,7 @@ playerID = curPlayer.GetPlayerID() FuncOpenLogicDict = { ShareDefine.GameFuncID_Championship:lambda curObj:CrossChampionship.DoChampionshipOpen(curObj), + ShareDefine.GameFuncID_MineArea:lambda curObj:GameWorldMineArea.DoMineAreaFuncOpen(curObj), } for funcID in funcIDList: if funcID in FuncOpenLogicDict: -- Gitblit v1.8.0