Merge branch 'master' of http://192.168.0.87:10010/r/SnxxServerCode
| | |
| | | list BaseAttrTypes; //基础属性类型列表
|
| | | list BaseAttrValues; //基础属性值列表
|
| | | list HelpBattleSkills; //助战技能ID列表
|
| | | DWORD FightPowerEx; //助战附加战力
|
| | | list EquipPlaceColorList; //穿戴装备颜色限制
|
| | | };
|
| | |
|
| | |
| | | Def_ItemID_GoldPaper = 30 # 直接给绑玉
|
| | | Def_ItemID_RealmPoint = 24 # 直接给修行点
|
| | | Def_ItemID_BossReborn = 21 # 直接给boss复活点
|
| | | Def_ItemID_Ysog = 4306 # 直接给符印融合石
|
| | | Def_TransformItemIDList = [Def_ItemID_FamilyContribution, Def_ItemID_FamilyActive, Def_ItemID_SP, Def_ItemID_GoldPaper,
|
| | | Def_ItemID_RealmPoint, Def_ItemID_SilverMoney, Def_ItemID_BossReborn]
|
| | | Def_ItemID_RealmPoint, Def_ItemID_SilverMoney, Def_ItemID_BossReborn, Def_ItemID_Ysog]
|
| | | #---------------------------------------------------------------------
|
| | | #写死的物品类型都放这边
|
| | | Def_ItemType_All = -1 #所有类型
|
| | |
| | | #装备合成某品质某星级
|
| | | RunQuestEvent(curPlayer, "compoundequip", '%s_%s'%(itemColor, itemQuality), Def_RunQuestType_Normal)
|
| | | return
|
| | |
|
| | | def EventRespons_EquipWash(curPlayer, washType, washLV):
|
| | | #装备洗练至X级
|
| | | RunQuestEvent(curPlayer, "equipwash", '%s_%s'%(washType, washLV), Def_RunQuestType_Normal)
|
| | | return
|
| | | #---------------------------------------------------------------------
|
| | |
|
| | | #================================================================================
|
| | |
| | | import ItemCommon
|
| | | import ChConfig
|
| | | import ChEquip
|
| | | import EventShell
|
| | |
|
| | | import random
|
| | |
|
| | |
| | | washSpecLVIpyData = IpyGameDataPY.GetIpyGameDataNotLog("EquipWashSpec", washType, washLV)
|
| | | if washSpecLVIpyData:
|
| | | PlayerControl.WorldNotify(0, "WashMasterCongratulation", [curPlayer.GetPlayerName(), curPlayer.GetPlayerID(), washType, washLV])
|
| | | EventShell.EventRespons_EquipWash(curPlayer, washType, washLV)
|
| | | break
|
| | | return True
|
| | |
|
| | |
| | | # @param lineID 线路id
|
| | | # @return None
|
| | | def __CheckEnter(curPlayer, mapID, lineID):
|
| | | if lineID == 0 or curPlayer.GetTeamLV() == IPY_GameWorld.tmlLeader:
|
| | | if not GameFuncComm.GetFuncCanUse(curPlayer, ShareDefine.GameFuncID_Official):
|
| | | GameWorld.DebugLog("爵位境界功能未开启, 无法开启渡劫!curLV=%s" % curPlayer.GetLV())
|
| | | return False
|
| | | if lineID == 0 or curPlayer.GetTeamLV() == IPY_GameWorld.tmlLeader or (lineID == 1 and curPlayer.GetTeamID() == 0):
|
| | | curRealmLV = curPlayer.GetOfficialRank()
|
| | | realmIpyData = PlayerPrestigeSys.GetRealmIpyData(curRealmLV)
|
| | | if not realmIpyData:
|
| | |
| | | # if curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RealmFBIsOpen) != 1:
|
| | | # return False
|
| | |
|
| | | if not GameFuncComm.GetFuncCanUse(curPlayer, ShareDefine.GameFuncID_Official):
|
| | | GameWorld.DebugLog("爵位境界功能未开启, 无法开启渡劫!curLV=%s" % curPlayer.GetLV())
|
| | | return False
|
| | | |
| | | return True
|
| | |
|
| | |
|
| | |
| | | FBCommon.SetFBStep(FB_Step_MapPrepare, tick)
|
| | |
|
| | |
|
| | | |
| | | fbPlayerCnt = gameFB.GetGameFBDictByKey(ChConfig.Def_FB_NPCStrengthenPlayerCnt)
|
| | | DuJieFBCfg = GetRealmFBTimeCfg()
|
| | | if not gameFB.GetGameFBDictByKey(DuJieFB_LeaderPlayerID):
|
| | | #重置属性加成
|
| | |
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RealmFBAttrAdd % attrID, 0)
|
| | |
|
| | | GameWorld.DebugLog('玩家进入副本')
|
| | | if lineID == 0 or curPlayer.GetTeamLV() == IPY_GameWorld.tmlLeader:
|
| | | |
| | | if fbPlayerCnt == 1 or curPlayer.GetTeamLV() == IPY_GameWorld.tmlLeader:
|
| | | __SetFBLeaderPlayer(curPlayer)
|
| | | if gameFB.GetFBStep() == FB_Step_Fighting:
|
| | | __OnDuJieFBStart(tick)
|
| | | isHelpFight = lineID == 1 and curPlayer.GetTeamLV() != IPY_GameWorld.tmlLeader
|
| | | isHelpFight = lineID == 1 and curPlayer.GetTeamLV() != IPY_GameWorld.tmlLeader and fbPlayerCnt > 1
|
| | | joinType = FBCommon.GetFBJoinType(curPlayer, isHelpFight)
|
| | | EventReport.WriteEvent_FB(curPlayer, ChConfig.Def_FBMapID_DuJie, lineID, ChConfig.CME_Log_Start, joinType)
|
| | |
|
| | |
| | | ("list", "BaseAttrTypes", 0),
|
| | | ("list", "BaseAttrValues", 0),
|
| | | ("list", "HelpBattleSkills", 0),
|
| | | ("DWORD", "FightPowerEx", 0),
|
| | | ("list", "EquipPlaceColorList", 0),
|
| | | ),
|
| | |
|
| | |
| | | self.BaseAttrTypes = []
|
| | | self.BaseAttrValues = []
|
| | | self.HelpBattleSkills = []
|
| | | self.FightPowerEx = 0
|
| | | self.EquipPlaceColorList = [] |
| | | return |
| | | |
| | |
| | | def GetBaseAttrTypes(self): return self.BaseAttrTypes # 基础属性类型列表
|
| | | def GetBaseAttrValues(self): return self.BaseAttrValues # 基础属性值列表
|
| | | def GetHelpBattleSkills(self): return self.HelpBattleSkills # 助战技能ID列表
|
| | | def GetFightPowerEx(self): return self.FightPowerEx # 助战附加战力
|
| | | def GetEquipPlaceColorList(self): return self.EquipPlaceColorList # 穿戴装备颜色限制 |
| | | |
| | | # 神兽强化表 |
| | |
| | | return False
|
| | | return True
|
| | |
|
| | | def __DoTransformItem(self, curPlayer, tagItem):
|
| | | def DoTransformItem(self, curPlayer, tagItem):
|
| | | ## 将特殊物品转化为对应数值
|
| | | itemID = tagItem.GetItemTypeID()
|
| | | if itemID not in ChConfig.Def_TransformItemIDList:
|
| | |
| | | elif itemID == ChConfig.Def_ItemID_BossReborn:
|
| | | msgStr = str(itemCount)
|
| | | GameWorld.GetPlayerManager().GameServer_QueryPlayerResult(0, 0, 0, 'AddBossRebornPoint', msgStr, len(msgStr))
|
| | | elif itemID == ChConfig.Def_ItemID_Ysog:
|
| | | PlayerControl.GiveMoney(curPlayer, ShareDefine.TYPE_Price_Ysog, itemCount)
|
| | |
|
| | | return True
|
| | |
|
| | |
| | | def PutInItem(self, packIndex, tagItem, defaultPile=True, event=["", False, {}]):
|
| | | curPlayer = self.__Player
|
| | |
|
| | | if self.__DoTransformItem(curPlayer, tagItem):
|
| | | tagItem.Clear() # 需清除,不然会导致内存泄露
|
| | | if packIndex != ShareDefine.rptTreasure and self.DoTransformItem(curPlayer, tagItem):
|
| | | tagItem.Clear() # 需清除,不然会导致内存泄露 寻宝仓库可暂存直接转化数值的物品
|
| | | return True
|
| | |
|
| | | isEquip = ItemCommon.CheckItemIsEquip(tagItem)
|
| | |
| | | return
|
| | |
|
| | | def __DoDropItemToOtherPack(curPlayer, itemControl, fromPackIndex, toPackIndex, itemIndex, curItem):
|
| | | if itemControl.DoTransformItem(curPlayer, curItem):
|
| | | curItem.Clear()
|
| | | return True
|
| | | curItemTypeID = curItem.GetItemTypeID()
|
| | | #curItemGUID = curItem.GetGUID()
|
| | | curItemCount = curItem.GetCount()
|
| | |
| | | # 助战状态换装需要刷属性
|
| | | if GetDogzIsHelpFight(curPlayer, dogzID):
|
| | | RefreshDogzAttr(curPlayer)
|
| | | PlayerControl.PlayerControl(curPlayer).RefreshPlayerAttrState()
|
| | |
|
| | | return
|
| | |
|
| | |
| | | if GetDogzIsHelpFight(curPlayer, dogzID):
|
| | | SetDogzIsHelpFight(curPlayer, dogzID, False) # 因为脱下了状态,所以必须设置为非助战状态
|
| | | RefreshDogzAttr(curPlayer)
|
| | | PlayerControl.PlayerControl(curPlayer).RefreshPlayerAttrState()
|
| | |
|
| | | return
|
| | |
|
| | |
| | | GameWorld.DebugLog("神兽助战状态变更!dogzID=%s,isFight=%s" % (dogzID, isFight), playerID)
|
| | | SetDogzIsHelpFight(curPlayer, dogzID, isFight)
|
| | | RefreshDogzAttr(curPlayer)
|
| | | PlayerControl.PlayerControl(curPlayer).RefreshPlayerAttrState()
|
| | | return
|
| | |
|
| | |
|
| | |
| | |
|
| | | if isRefreshAtrr:
|
| | | RefreshDogzAttr(curPlayer)
|
| | | PlayerControl.PlayerControl(curPlayer).RefreshPlayerAttrState()
|
| | |
|
| | | return
|
| | |
|
| | |
| | | def RefreshDogzAttr(curPlayer):
|
| | | ## 刷新神兽属性
|
| | |
|
| | | fightPowerEx = 0
|
| | | allAttrList = [{} for _ in range(4)]
|
| | |
|
| | | dogzEquipPack = curPlayer.GetItemManager().GetPack(ShareDefine.rptDogzEquip)
|
| | |
| | | ChEquip.CalcAttr_LegendAttr(curPlayer, curEquip, allAttrList)
|
| | | #GameWorld.DebugLog(" 装备传奇: itemID=%s,%s" % (itemID, allAttrList))
|
| | |
|
| | | # 附加战力
|
| | | fightPowerEx += ipyData.GetFightPowerEx()
|
| | | |
| | | # 保存计算值
|
| | | PlayerControl.SetCalcAttrListValue(curPlayer, ChConfig.Def_CalcAttrFunc_Dogz, allAttrList)
|
| | | curPlayer.SetDict(ChConfig.Def_PlayerKey_MFPEx % ShareDefine.Def_MFPType_Dogz, fightPowerEx)
|
| | | return
|
| | |
|
| | | def Sync_DogzInfo(curPlayer):
|