From 2e892e272f7aea0a7ffbae81e43731c6b20119e6 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期一, 04 八月 2025 10:46:12 +0800
Subject: [PATCH] 121 【武将】武将系统-服务端(竞技场支持进攻、防守阵容)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py | 127 ++++++++----------------------------------
1 files changed, 25 insertions(+), 102 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
index 9c84d58..fbcc07c 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/ChPlayer.py
@@ -38,7 +38,6 @@
import PlayerGameWallow
import NetPackCommon
import ChPyNetSendPack
-import Operate_PlayerBuyZhenQi
import DataRecordPack
import PlayerBillboard
import UpdatePlayerName
@@ -51,18 +50,15 @@
import PlayerFamily
import PlayerLoginDayAward
import PlayerGodWeapon
-import PlayerWorldAverageLv
import PlayerGoldInvest
import PlayerActivity
import FBCommon
import BossHurtMng
import PlayerWishingWell
-import PlayerAttrFruit
import PlayerSuccess
import PlayerDienstgrad
import PlayerFreeGoods
import PlayerRecover
-import GameLogic_IceLode
import GameLogic_SkyTower
import PlayerEquipDecompose
import PlayerGreatMaster
@@ -200,6 +196,7 @@
#@return 返回值无意义
#@remarks 玩家登陆游戏初始化
def InitLoginPlayer(curPlayer, tick):
+ PlayerOnline.OnPlayerLogin(curPlayer)
#初始化玩家的时钟个数
if curPlayer.GetTickTypeCount() == 0:
curPlayer.SetTickTypeCount(ChConfig.TYPE_Player_Tick_Count)
@@ -509,7 +506,6 @@
if PlayerControl.GetCrossMapID(curPlayer):
PlayerControl.SetCrossMapID(curPlayer, 0)
- PlayerOnline.OnPlayerLogin(curPlayer)
TurnAttack.OnPlayerLogin(curPlayer)
SyncGuideState(curPlayer)
@@ -531,9 +527,6 @@
#通知玩家的buff
__Sync_ClientBuff(curPlayer)
-
- #初始化现实时间物品
- InitRealityTimeItem(curPlayer, tick)
#---刷新了玩家属性, 登陆只刷新一次,其他地方不用刷
DoPlayerLoginInMap(curPlayer, tick)
@@ -563,9 +556,6 @@
#PK模式
SyncPKModel(curPlayer)
-
- #装备相关信息
- ChEquip.OnPlayerEquipLoginLogic(curPlayer)
#大师
PlayerGreatMaster.MasterOnLogin(curPlayer)
@@ -580,9 +570,6 @@
PetControl.DoLogic_PetInfo_OnLogin(curPlayer, tick)
PlayerPet.OnPlayerPetLogin(curPlayer)
- #清空玩家万能背包中的任务物品
- ItemControler.ClearPackEventItem(curPlayer, IPY_GameWorld.rptAnyWhere)
-
#PlayerLoginNotify(curPlayer, tick)
#防沉迷计算下线累积时间
@@ -595,9 +582,6 @@
# 首充/天天首充/充值豪礼
PlayerGoldGift.OnLogin(curPlayer)
- #通知购买功能中各购买类型的已购买和可购买次数
- Operate_PlayerBuyZhenQi.DoPlayerLogin(curPlayer)
-#
# #通知功能首次触发情况
GameFuncComm.Sync_FuncOpenState(curPlayer)
#
@@ -647,14 +631,8 @@
# 副本进入时间
FBCommon.FBOnLogin(curPlayer)
- #世界等级
- PlayerWorldAverageLv.OnLogin(curPlayer)
-
# 投资理财
PlayerGoldInvest.OnLogin(curPlayer)
-
- #属性果实使用情况
- PlayerAttrFruit.AttrFruitOnLogin(curPlayer)
#成就
PlayerSuccess.SuccOnLogin(curPlayer)
@@ -928,19 +906,19 @@
#---补满血满魔---
GameObj.SetHP(curPlayer, GameObj.GetMaxHP(curPlayer))
- curPlayer.SetMP(curPlayer.GetMaxMP())
+ #curPlayer.SetMP(curPlayer.GetMaxMP())
#默认触发一次功能开启
if curPlayer.GetLV() == 1:
GameFuncComm.DoFuncOpenLogic(curPlayer)
#初始化组队状态
- autoJoinReqCheck = IpyGameDataPY.GetFuncCfg("TeamCheckSet", 1)
- autoInviteCheck = IpyGameDataPY.GetFuncCfg("TeamCheckSet", 2)
- PlayerControl.SetTeamCheckStateEx(curPlayer, int(not autoJoinReqCheck), int(not autoInviteCheck))
+ #autoJoinReqCheck = IpyGameDataPY.GetFuncCfg("TeamCheckSet", 1)
+ #autoInviteCheck = IpyGameDataPY.GetFuncCfg("TeamCheckSet", 2)
+ #PlayerControl.SetTeamCheckStateEx(curPlayer, int(not autoJoinReqCheck), int(not autoInviteCheck))
#玩家默认恶名值
- curPlayer.SetInfamyValue(ChConfig.Def_FirstLogin_InfamyValue)
+ #curPlayer.SetInfamyValue(ChConfig.Def_FirstLogin_InfamyValue)
#curPlayer.SetDict("ThunderLogin", 1)
#记录第一次登陆
@@ -951,6 +929,8 @@
for mailTypeKey, mailItemList in mailList:
PlayerControl.SendMailByKey(mailTypeKey, [curPlayer.GetPlayerID()], mailItemList)
+ PlayerHero.OnPlayerFirstLogin(curPlayer)
+
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_FirstLogin, 1)
return
@@ -1097,18 +1077,6 @@
rolePack = itemManager.GetPack(packIndex)
rolePack.Sync_Refresh()
- # 刷下装备评分,仓库可以暂不处理,取出装备后登录触发刷新
- for i in xrange(rolePack.GetCount()):
- curItem = rolePack.GetAt(i)
- if curItem.IsEmpty():
- continue
- newScore = ItemCommon.CalcEquipGS(curItem)
- hisScore = ItemCommon.GetEquipGearScore(curItem)
- if hisScore != newScore:
- ItemCommon.SetEquipGearScore(curItem, newScore)
- GameWorld.Log("登录更新装备评分: packType=%s,i=%s,hisScore=%s,newScore=%s,itemID=%s,guid=%s"
- % (packIndex, i, hisScore, newScore, curItem.GetItemTypeID(), curItem.GetGUID()), curPlayer.GetPlayerID())
-
for packIndex in ChConfig.Def_VPackCnt_Dict.keys():
ItemControler.Sync_VPackItem_Refresh(curPlayer, packIndex)
@@ -1139,16 +1107,6 @@
# #itemManager.GetPack(IPY_GameWorld.rptBreakPrepare).Sync_Refresh()
# #itemManager.GetPack(IPY_GameWorld.rptBreakItem).Sync_Refresh()
#===============================================================================
- return
-
-#---------------------------------------------------------------------
-##初始化现实时间物品
-#@param curPlayer 玩家实例
-#@param tick 时间戳
-#@return 返回值无意义
-#@remarks 初始化现实时间物品
-def InitRealityTimeItem(curPlayer, tick):
- PlayerState.ProcessTimeEquip(curPlayer, tick)
return
#---------------------------------------------------------------------
@@ -1291,9 +1249,8 @@
if GameWorld.IsCrossServer():
curPlayer.SetForbiddenSyncClientState(False)
- playerControl = PlayerControl.PlayerControl(curPlayer)
- #刷新所有状态
- playerControl.ReCalcAllState()
+ olPlayer = PlayerOnline.GetOnlinePlayer(curPlayer)
+ olPlayer.ReCalcAllAttr()
if GameWorld.IsCrossServer():
curPlayer.SetForbiddenSyncClientState(True)
@@ -1479,36 +1436,30 @@
#@return 返回值无意义
#@remarks 初始化玩家背包
def InitPlayerPack(curPlayer) :
- itemManager = curPlayer.GetItemManager()
-
+
#设置装备实际个数,默认最大个数
- curPack = itemManager.GetPack(IPY_GameWorld.rptEquip)
- curPack.SetCount(curPack.GetMaxCount())
+ PlayerControl.Init_PackCount(curPlayer, IPY_GameWorld.rptEquip, defaultMax=True, isSync=False)
#初始化玩家背包
- PlayerControl.Init_ItemPack(curPlayer)
+ PlayerControl.Init_PackCount(curPlayer, IPY_GameWorld.rptItem)
#初始化玩家仓库
#PlayerControl.Init_Warehouse(curPlayer)
#初始化鉴定背包,默认最大个数用于存放主线掉落
- curPack = curPlayer.GetItemManager().GetPack(IPY_GameWorld.rptIdentify)
- curPack.SetCount(curPack.GetMaxCount())
- curPack.Sync_PackCanUseCount()
+ PlayerControl.Init_PackCount(curPlayer, IPY_GameWorld.rptIdentify, defaultMax=True)
#初始化英雄背包
- PlayerControl.Init_HeroPack(curPlayer)
+ PlayerControl.Init_PackCount(curPlayer, ShareDefine.rptHero)
#初始化临时交换背包,默认最大个数
- curPack = itemManager.GetPack(ShareDefine.rptTempSwap)
- curPack.SetCount(curPack.GetMaxCount())
+ PlayerControl.Init_PackCount(curPlayer, ShareDefine.rptTempSwap, defaultMax=True, isSync=False)
#初始化临时存放背包,默认最大个数
- curPack = itemManager.GetPack(ShareDefine.rptTempItem)
- curPack.SetCount(curPack.GetMaxCount())
+ PlayerControl.Init_PackCount(curPlayer, ShareDefine.rptTempItem, defaultMax=True, isSync=False)
#初始化寻宝背包
- PlayerControl.Init_TreasurePack(curPlayer)
+ PlayerControl.Init_PackCount(curPlayer, ShareDefine.rptTreasure)
#初始化神兽物品背包
#curPack = curPlayer.GetItemManager().GetPack(ShareDefine.rptDogzItem)
@@ -1535,6 +1486,8 @@
#curPack = itemManager.GetPack(ShareDefine.rptPet)
#curPack.SetCount(ItemCommon.GetPackInitCount(ShareDefine.rptPet))
#curPack.Sync_PackCanUseCount()
+
+ ItemCommon.SyncPackBuyCnt(curPlayer)
#通知玩家物品信息
__Sync_PackDetel(curPlayer)
@@ -1769,7 +1722,6 @@
PassiveBuffEffMng.OnLoadMapGFPassive(curPlayer)
PlayerYinji.OnLoadMap(curPlayer)
- ItemControler.PlayerItemControler(curPlayer).RefreshStartEquipCount() # 刷新装备珍品星级
#EndLoadMap需放在最后, 0403 tagPlayerLoginLoadOK
curPlayer.EndLoadMap()
@@ -1861,7 +1813,7 @@
NotifyPlayerBasePoint(curPlayer, pointAttrIDList)
playerControl = PlayerControl.PlayerControl(curPlayer)
playerControl.RefreshPlayerAttrState()
- PlayerControl.SetLingGenMaxIndex(curPlayer)
+ #PlayerControl.SetLingGenMaxIndex(curPlayer)
return
#// B2 07 重置加点 #tagCMResetAttrPoint
@@ -2409,7 +2361,6 @@
#下线了,将存储在字典中的真实XP值,设置给玩家,完成通知和存储
#curPlayer.SetXP(curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_RecordXPValue))
#######################################################################
- PlayerOnline.OnPlayerLogoff(curPlayer)
#下线逻辑
PlayerControl.PlayerLeaveServer(curPlayer, tick)
@@ -2448,6 +2399,9 @@
#离线session
EventReport.WriteEvent_session(curPlayer)
+
+ #需放最后
+ PlayerOnline.OnPlayerLogoff(curPlayer)
return
#---------------------------------------------------------------------
@@ -3435,7 +3389,7 @@
#参考经验
rExp = PlayerControl.GetPlayerReExp(curPlayer)
reLV = curPlayer.GetLV() #参考等级
- worldLvExpRate = PlayerWorldAverageLv.GetWorldAverageLvExpRate(curPlayer) #世界等级经验加成
+ worldLvExpRate = 0
#经验公式
redeemExp = int(eval(recList[1]))
@@ -3486,34 +3440,6 @@
# @param tick: 时间戳
# @return: None
def ReceiveFamilyArrestAward(index, clientData, tick):
- curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
- arrestID = clientData.ArrestID
-
- bit = ShareDefine.Def_ArrestOverState_BitDic.get(arrestID)
- if bit == None:
- #没有这个家族悬赏任务
- GameWorld.DebugLog("没有这个家族悬赏任务 arrestID=%s" % arrestID)
- return
-
- receiveState = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_FamilyArrestAwardState)
-
- if receiveState & pow(2, bit):
- #该任务奖励已经领取
- GameWorld.DebugLog("该任务奖励已经领取 arrestID=%s" % arrestID)
- return
-
- if curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_FamilyArrestQueryState) == 1:
- #已经在查询中, 不重复查询
- GameWorld.DebugLog("已经在查询中, 不重复查询 arrestID=%s" % arrestID)
- return
-
- sendMsg = '%s' % arrestID
-
- #向GameServer请求该悬赏任务是否已经完成
- curPlayer.GameServer_QueryPlayerByID(ChConfig.queryType_FamilyArrest, 0, 'FamilyArrestAward', sendMsg, len(sendMsg))
-
- #设置状态查询中
- curPlayer.SetDict(ChConfig.Def_PlayerKey_FamilyArrestQueryState, 1)
return
@@ -3651,9 +3577,6 @@
# 功能开启奖励
elif rewardType == ChConfig.Def_RewardType_OpenFunc:
GameFuncComm.GetFuncOpenAward(curPlayer, dataEx)
- # 冰晶矿脉星级奖励
- elif rewardType == ChConfig.Def_RewardType_IceLodeStar:
- GameLogic_IceLode.GetIceLodeStarAward(curPlayer, dataEx)
# 领取周狂欢活动奖励
elif rewardType == ChConfig.Def_RewardType_WeekPartyAct:
PlayerWeekParty.GetWeekPartyActionAward(curPlayer, dataEx, dataExStr)
--
Gitblit v1.8.0