5798 子 【1.5】境界调整 / 【后端】【1.5】境界老号处理
| | |
| | | Def_PDict_BossRebornTemplateID = "BossRebornTemplateID" # 玩家身上的BOSS复活模板ID
|
| | | Def_PDict_BRActionCurTimes = "BRActionCurTimes_%s" #当前完成次数 参数BOSS复活活动ID
|
| | | Def_PDict_BRActionGotTimes = "BRActionGotTimes_%s" #当前已领次数 参数BOSS复活活动ID
|
| | | Def_PDict_BRActionWorldLV = "BRActionWorldLV_%s" #BOSS复活活动开启时世界等级
|
| | |
|
| | | #仙界盛典
|
| | | Def_PDict_FairyCeremonyID = "FairyCeremonyID" # 玩家身上的仙界盛典活动ID,唯一标识,取活动开始日期time值
|
| | |
| | | Def_VerFix_Horse, # 坐骑等级上限修改,对应技能触发修改;
|
| | | Def_VerFix_Pet, # 灵宠等级上限修改,对应技能触发修改;
|
| | | Def_VerFix_AddPoint, # 老号属性点修复;
|
| | | ) = range(8)
|
| | | Def_VerFix_ReamlvFix, # 老号境界等级变更;
|
| | | ) = range(9)
|
| | |
|
| | | ##==================================================================================================
|
| | | #游戏消费点类型定义
|
| | |
| | | return False
|
| | | needLV = ipyData.GetChanllengeLv()
|
| | | if curPlayer.GetLV() < needLV:
|
| | | GameWorld.DebugLog(' 检查可否进行挑战 bossID-%s 等级不足 %s'%(needLV))
|
| | | GameWorld.DebugLog(' 检查可否进行挑战 bossID-%s 等级不足 %s'%(bossID, needLV))
|
| | | return False
|
| | | delResult = FBCommon.DelFBEnterTicket(curPlayer, ChConfig.Def_FBMapID_PersonalBoss)
|
| | | isOK = delResult[0]
|
| | |
| | | return True
|
| | |
|
| | | def OnLogin(curPlayer):
|
| | | |
| | | if not GameWorld.GetDictValueByBit(curPlayer, ChConfig.Def_Player_Dict_VersionFix, ChConfig.Def_VerFix_ReamlvFix):
|
| | | GameWorld.SetDictValueByBit(curPlayer, ChConfig.Def_Player_Dict_VersionFix, ChConfig.Def_VerFix_ReamlvFix, 1)
|
| | | #计算老号当前境界修行点--折算修行点对应新境界--弥补多余修行点
|
| | | oldRealmLV = curPlayer.GetOfficialRank()
|
| | | if oldRealmLV:
|
| | | givePoint = IpyGameDataPY.GetFuncEvalCfg('ReRealm', 1, {}).get(oldRealmLV, 0)
|
| | | curPoint = PlayerControl.GetMoney(curPlayer, ShareDefine.TYPE_Price_RealmPoint)
|
| | | givePoint += curPoint
|
| | | newRealmLV = 0
|
| | | ipyMgr = IpyGameDataPY.IPY_Data()
|
| | | maxRealmLV = ipyMgr.GetRealmByIndex(ipyMgr.GetRealmCount()-1).GetLv()
|
| | | for lv in xrange(maxRealmLV):
|
| | | ipyData = GetRealmIpyData(lv)
|
| | | if not ipyData:
|
| | | break
|
| | | needPoint = ipyData.GetNeedPoint()
|
| | | if givePoint < needPoint:
|
| | | break
|
| | | givePoint -= needPoint
|
| | | newRealmLV = lv + 1
|
| | | |
| | | PlayerControl.PayMoney(curPlayer, ShareDefine.TYPE_Price_RealmPoint, curPoint, isNotify=False)
|
| | | if newRealmLV > 0:
|
| | | curPlayer.SetOfficialRank(newRealmLV-1)
|
| | | DoRealmLVUpLogic(curPlayer, False)
|
| | | PlayerControl.SendMailByKey('ReRealm', [curPlayer.GetID()], [(ChConfig.Def_ItemID_RealmPoint, givePoint, 1)], [newRealmLV, givePoint])
|
| | | GameWorld.Log('老号境界处理 oldRealmLV=%s,newRealmLV=%s,givePoint=%s'%(oldRealmLV, newRealmLV, givePoint), curPlayer.GetID())
|
| | | |
| | | |
| | | SyncRealmFBState(curPlayer)
|
| | | return
|
| | |
|
| | |
| | | DoRealmLVUpLogic(curPlayer)
|
| | | return
|
| | |
|
| | | def DoRealmLVUpLogic(curPlayer):
|
| | | def DoRealmLVUpLogic(curPlayer, needSys=True):
|
| | | curRealmLV = curPlayer.GetOfficialRank()
|
| | | nextRealmLv = curRealmLV + 1
|
| | | GameWorld.DebugLog(' 升级境界nextRealmLv=%s'%nextRealmLv)
|
| | |
| | |
|
| | | curPlayer.SetOfficialRank(nextRealmLv)
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RealmFBIsOpen, 0)
|
| | | PlayerControl.WorldNotify(0, 'RealmUpSuccess', [curPlayer.GetName(), nextRealmLv])
|
| | | if needSys:
|
| | | PlayerControl.WorldNotify(0, 'RealmUpSuccess', [curPlayer.GetName(), nextRealmLv])
|
| | | RefreshOfficialAttr(curPlayer)
|
| | | GameFuncComm.DoFuncOpenLogic(curPlayer)
|
| | | SyncRealmFBState(curPlayer)
|
| | |
| | | passlv = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_TrialTower_PassLV)
|
| | | DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_PassRuneTower, 1, [passlv])
|
| | | elif succType == ShareDefine.SuccType_GodWeapon:
|
| | | ResetSuccessByType(curPlayer, succType)
|
| | | maxType = ipyDataMgr.GetGodWeaponByIndex(ipyDataMgr.GetGodWeaponCount()-1).GetType()
|
| | | for i in xrange(1, maxType + 1):
|
| | | weaponLV = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GodWeaponLV % i)
|
| | |
| | | elif succType in [ShareDefine.SuccType_InlayGatherSoul, ShareDefine.SuccType_GatherSoulLvUp]:
|
| | | PlayerGatherSoul.DoGatherSoulSuccessLogic(curPlayer)
|
| | | elif succType == ShareDefine.SuccType_RealmlvUp:
|
| | | ResetSuccessByType(curPlayer, succType)
|
| | | UptateSuccessProgress(curPlayer, succType, curPlayer.GetOfficialRank())
|
| | | elif succType == ShareDefine.SuccType_PetClassLV:
|
| | | ResetSuccessByType(curPlayer, succType)
|
| | |
| | | elif succType in [ShareDefine.SuccType_EquipWashLV1,ShareDefine.SuccType_EquipWashLV2,ShareDefine.SuccType_EquipWashLV3]:
|
| | | Operate_EquipWash.EquipWashSuccess(curPlayer)
|
| | | elif succType == ShareDefine.SuccType_MWSkillUp:
|
| | | ResetSuccessByType(curPlayer, succType)
|
| | | skillManager = curPlayer.GetSkillManager()
|
| | | for i in range(0, skillManager.GetSkillCount()):
|
| | | curSkill = skillManager.GetSkillByIndex(i)
|
| | |
| | | elif succType == ShareDefine.SuccType_EquipSuit:
|
| | | Operate_EquipSuitCompose.DoSuiteSuccess(curPlayer)
|
| | | elif succType == ShareDefine.SuccType_FamilyTechLV:
|
| | | ResetSuccessByType(curPlayer, succType)
|
| | | techNeedLVDict = IpyGameDataPY.GetFuncEvalCfg('FamilyTechNeedLV', 1, {})
|
| | | techIDList = techNeedLVDict.keys()
|
| | | for techID in techIDList:
|
| | | techLV = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_FamilyTechLV % techID)
|
| | | UptateSuccessProgress(curPlayer, succType, techLV, [techID])
|
| | | elif succType == ShareDefine.SuccType_AlchemyLV:
|
| | | ResetSuccessByType(curPlayer, succType)
|
| | | alchemyLV = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_AlchemyLV)
|
| | | UptateSuccessProgress(curPlayer, succType, alchemyLV)
|
| | | elif succType == ShareDefine.SuccType_VIPLV:
|