| | |
| | | import PlayerGameEvent
|
| | | import EventReport
|
| | | import PlayerTeHui
|
| | | import GameLogic_XMZZ
|
| | | import PlayerGatherSoul
|
| | | import PlayerSuccess
|
| | | import PlayerPet
|
| | | import PlayerGreatMaster
|
| | |
| | | import PlayerCostRebate
|
| | | import PlayerFairyCeremony
|
| | | import FunctionNPCCommon
|
| | | import CrossRealmPlayer
|
| | | import ChNetSendPack
|
| | | import PlayerState
|
| | | import QuestCommon
|
| | |
| | | # notifyCnt 代表广播周围玩家的数量,0为全部广播 -1为指定列表随机, 其他数字为指定指
|
| | | def PyNotifyAll(curPlayer, sendPack, notifySelf=True, notifyCnt=0):
|
| | | if notifyCnt == -1:
|
| | | notifyCnt = random.choice((6, 6, 10, 10, 20))
|
| | | notifyCnt = 8
|
| | | #GameWorld.DebugLog("PyNotifyAll %s"%notifyCnt)
|
| | |
|
| | | curPlayer.NotifyAll(sendPack.GetBuffer(), sendPack.GetLength(), notifySelf, notifyCnt)
|
| | |
| | |
|
| | | FBLogic.DoPlayerChangeMapLogic(curPlayer, tick)
|
| | | #summonList = list()
|
| | | |
| | | #召回宠物
|
| | | PetControl.ReCallFightPet(curPlayer)
|
| | | #1. 删除自己不需要的召唤兽(火焰之灵等)
|
| | | #必须用while, 因为在循环中要删除
|
| | | # 召唤兽切地图不带过去
|
| | |
| | | if not curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_RouteServerInitOK):
|
| | | #RouteServer未初始化不允许切换地图, 缓存处理
|
| | | GameServerRefresh.Set_PlayerRouteServerInitOK_OnLeaveFB(curPlayer, 1)
|
| | | return
|
| | | |
| | | GameWorld.Log("PlayerLeaveFB...", curPlayer.GetPlayerID())
|
| | | if GameWorld.IsCrossServer():
|
| | | CrossRealmPlayer.PlayerExitCrossServer(curPlayer)
|
| | | return
|
| | |
|
| | | #中立地图回到上一次非中立常规地图
|
| | |
| | | PlayerFamilyTech.CalcFamilyTechAttr(curPlayer)
|
| | | PlayerEquipDecompose.RefreshEDAttr(curPlayer)
|
| | | PlayerDogz.RefreshDogzAttr(curPlayer)
|
| | | PlayerGatherSoul.RefreshGatherSoulAttr(curPlayer)
|
| | | self.RefreshAllState(isForce=True)
|
| | | GameWorld.DebugLog("End ReCalcAllState!!!")
|
| | | return
|
| | |
| | | }
|
| | |
|
| | | for i in xrange(1, ChConfig.Def_Calc_AllAttrType_MAX):
|
| | | if i in [ChConfig.TYPE_Calc_AttrHP, ChConfig.TYPE_Calc_AttrMP]:
|
| | | if i in [ChConfig.TYPE_Calc_AttrHP, ChConfig.TYPE_Calc_AttrMP, ChConfig.TYPE_Calc_ProDef]:
|
| | | continue
|
| | | value = 0 if i not in initAttrDict else initAttrDict[i]
|
| | | EffGetSet.SetValueByEffIndex(curPlayer, i, value)
|
| | |
| | | ## 副本功能线路ID, 这里做db存储,防止在合并地图副本中掉线重上时前端无法加载正确的场景资源,登录加载场景时机为0102包
|
| | | def SetFBFuncLineID(curPlayer, funcLineID): return curPlayer.SetExAttr3(funcLineID, False, False)
|
| | | def GetFBFuncLineID(curPlayer): return curPlayer.GetExAttr3()
|
| | |
|
| | | ## 跨服状态: 0-非跨服状态,1-跨服状态
|
| | | def GetCrossRealmState(curPlayer): return curPlayer.GetExAttr5()
|
| | | def SetCrossRealmState(curPlayer, value): curPlayer.SetExAttr5(value, False, True)
|
| | |
|
| | | ## 铜钱点, 支持铜钱超20亿
|
| | | def GetSilver(curPlayer): return curPlayer.GetExAttr6() * ChConfig.Def_PerPointValue + curPlayer.GetSilver()
|
| | |
| | | def GetPetMaxAtk(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_AttrPetMaxAtk)
|
| | | def SetPetMaxAtk(curPlayer, value): curPlayer.SetDict(ChConfig.Def_PlayerKey_AttrPetMaxAtk, value)
|
| | |
|
| | | #---宠物伤害百分比提升----
|
| | | def GetPetDamPer(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_AttrPetDamPer)
|
| | | def SetPetDamPer(curPlayer, value): |
| | | curPlayer.SetDict(ChConfig.Def_PlayerKey_AttrPetDamPer, value)
|
| | | curPlayer.SendPropertyRefresh(ShareDefine.CDBPlayerRefresh_PetDamPer, value, False)
|
| | | #---宠物伤害百分比提升----移到GameObj下
|
| | | #===============================================================================
|
| | | # def GetPetDamPer(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_AttrPetDamPer)
|
| | | # def SetPetDamPer(curPlayer, value): |
| | | # curPlayer.SetDict(ChConfig.Def_PlayerKey_AttrPetDamPer, value)
|
| | | # curPlayer.SendPropertyRefresh(ShareDefine.CDBPlayerRefresh_PetDamPer, value, False)
|
| | | #===============================================================================
|
| | | #---宠物技能伤害百分比提升----
|
| | | def GetPetSkillAtkRate(curPlayer): return curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_PetSkillAtkRate)
|
| | | def SetPetSkillAtkRate(curPlayer, value): curPlayer.SetDict(ChConfig.Def_PlayerKey_PetSkillAtkRate, value)
|