From da98bed8397215ff8e3709d9d34da8c1d6391c07 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期三, 19 九月 2018 14:46:51 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.87:10010/r/SnxxServerCode

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/Operate_EquipWash.py         |    2 ++
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_DuJie.py |   16 +++++++++-------
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ItemControler.py                       |   11 ++++++++---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerDogz.py                        |    9 +++++++++
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py                            |    3 +++
 PySysDB/PySysDBPY.h                                                                                             |    1 +
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventShell.py                         |    5 +++++
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py                                 |    3 ++-
 8 files changed, 39 insertions(+), 11 deletions(-)

diff --git a/PySysDB/PySysDBPY.h b/PySysDB/PySysDBPY.h
index a905f89..93c27c3 100644
--- a/PySysDB/PySysDBPY.h
+++ b/PySysDB/PySysDBPY.h
@@ -135,6 +135,7 @@
 	list		BaseAttrTypes;	//基础属性类型列表
 	list		BaseAttrValues;	//基础属性值列表
 	list		HelpBattleSkills;	//助战技能ID列表
+	DWORD		FightPowerEx;	//助战附加战力
 	list		EquipPlaceColorList;	//穿戴装备颜色限制
 };
 
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
index de74685..ebf0c30 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChConfig.py
@@ -260,8 +260,9 @@
 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             #所有类型
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventShell.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventShell.py
index 5c487bd..e9310da 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventShell.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventShell.py
@@ -1842,6 +1842,11 @@
     #装备合成某品质某星级
     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
 #---------------------------------------------------------------------
 
 #================================================================================
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/Operate_EquipWash.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/Operate_EquipWash.py
index ecb5a2f..23f9e03 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/Operate_EquipWash.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/Operate_EquipWash.py
@@ -26,6 +26,7 @@
 import ItemCommon
 import ChConfig
 import ChEquip
+import EventShell
 
 import random
 
@@ -357,6 +358,7 @@
             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
 
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_DuJie.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_DuJie.py
index ebda50a..a118afe 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_DuJie.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_DuJie.py
@@ -123,7 +123,10 @@
 #  @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:
@@ -139,9 +142,7 @@
 #        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
 
 
@@ -184,7 +185,7 @@
         FBCommon.SetFBStep(FB_Step_MapPrepare, tick)
     
     
-    
+    fbPlayerCnt = gameFB.GetGameFBDictByKey(ChConfig.Def_FB_NPCStrengthenPlayerCnt)
     DuJieFBCfg = GetRealmFBTimeCfg()
     if not gameFB.GetGameFBDictByKey(DuJieFB_LeaderPlayerID):
         #重置属性加成
@@ -193,11 +194,12 @@
             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)
     
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
index 8e23e21..e36210d 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
@@ -131,6 +131,7 @@
                         ("list", "BaseAttrTypes", 0),
                         ("list", "BaseAttrValues", 0),
                         ("list", "HelpBattleSkills", 0),
+                        ("DWORD", "FightPowerEx", 0),
                         ("list", "EquipPlaceColorList", 0),
                         ),
 
@@ -1212,6 +1213,7 @@
         self.BaseAttrTypes = []
         self.BaseAttrValues = []
         self.HelpBattleSkills = []
+        self.FightPowerEx = 0
         self.EquipPlaceColorList = []
         return
         
@@ -1219,6 +1221,7 @@
     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 # 穿戴装备颜色限制
 
 # 神兽强化表
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ItemControler.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ItemControler.py
index cdb2f21..2742f25 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ItemControler.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ItemControler.py
@@ -1048,7 +1048,7 @@
             return False
         return True
     
-    def __DoTransformItem(self, curPlayer, tagItem):
+    def DoTransformItem(self, curPlayer, tagItem):
         ## 将特殊物品转化为对应数值
         itemID = tagItem.GetItemTypeID()
         if itemID not in ChConfig.Def_TransformItemIDList:
@@ -1070,6 +1070,8 @@
         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
     
@@ -1082,8 +1084,8 @@
     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)
@@ -1396,6 +1398,9 @@
     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()
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerDogz.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerDogz.py
index 3f9c581..ccb1d2d 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerDogz.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerDogz.py
@@ -125,6 +125,7 @@
     # 助战状态换装需要刷属性
     if GetDogzIsHelpFight(curPlayer, dogzID):
         RefreshDogzAttr(curPlayer)
+        PlayerControl.PlayerControl(curPlayer).RefreshPlayerAttrState()
         
     return
 
@@ -201,6 +202,7 @@
     if GetDogzIsHelpFight(curPlayer, dogzID):
         SetDogzIsHelpFight(curPlayer, dogzID, False) # 因为脱下了状态,所以必须设置为非助战状态
         RefreshDogzAttr(curPlayer)
+        PlayerControl.PlayerControl(curPlayer).RefreshPlayerAttrState()
         
     return
 
@@ -262,6 +264,7 @@
     GameWorld.DebugLog("神兽助战状态变更!dogzID=%s,isFight=%s" % (dogzID, isFight), playerID)
     SetDogzIsHelpFight(curPlayer, dogzID, isFight)
     RefreshDogzAttr(curPlayer)
+    PlayerControl.PlayerControl(curPlayer).RefreshPlayerAttrState()
     return
 
 
@@ -432,6 +435,7 @@
     
     if isRefreshAtrr:
         RefreshDogzAttr(curPlayer)
+        PlayerControl.PlayerControl(curPlayer).RefreshPlayerAttrState()
         
     return
 
@@ -460,6 +464,7 @@
 def RefreshDogzAttr(curPlayer):
     ## 刷新神兽属性
     
+    fightPowerEx = 0
     allAttrList = [{} for _ in range(4)]
     
     dogzEquipPack = curPlayer.GetItemManager().GetPack(ShareDefine.rptDogzEquip)
@@ -520,8 +525,12 @@
             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):

--
Gitblit v1.8.0