From 875d928db2370eaaa6a43bf01d0761d7939dab5f Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期六, 13 十月 2018 17:14:42 +0800
Subject: [PATCH] 4064 【后端】【主干】直接给玩家的货币类物品优化处理; 2094 邮件发放神兽装备,神兽背包空间不足逻辑错误;

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/QuestRunner.py |  107 ++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 96 insertions(+), 11 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/QuestRunner.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/QuestRunner.py
index aa17c45..b17f56f 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/QuestRunner.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/QuestRunner.py
@@ -92,7 +92,7 @@
 Def_Run_Around_Reward_Exp = "run_around_exp"              #跑环任务的奖励
 Def_Run_Around_Reward_ExpPoint = "run_around_exp_point"     #跑环任务的奖励
 Def_Run_Around_Reward_Money = "run_around_money"          #跑环任务的给钱
-
+Def_Run_Around_Reward_FamilyHornor = "run_around_familyhornor"     #跑环任务的仙盟贡献奖励
 Def_Run_Around_Reward_Multiple = "run_around_multiple"     #跑环任务的奖励翻倍数
 
 Def_Task_Reward_Per = "reward_per"     #领取任务奖励倍数百分比; 150代表1.5倍
@@ -1362,6 +1362,22 @@
     value = 1
     return QuestRunnerValue.GetEval(conditionType, value, conditionValue)
 
+##判断是否穿戴某部位(非时效)
+# @param curPlayer 玩家实例
+# @param curMission 任务实例
+# @param curConditionNode 节点信息
+# @return 返回值, 是否判断成功
+# @remarks <have_equip value="装备位"/>
+def ConditionType_Have_Equip(curPlayer, curMission, curConditionNode):
+    equipPlace = int(curConditionNode.GetAttribute("value"))
+    roleEquipPack = curPlayer.GetItemManager().GetPack(IPY_GameWorld.rptEquip)
+    curEquip = roleEquipPack.GetAt(equipPlace)
+    if curEquip.IsEmpty():
+        return False
+    if curEquip.GetEndureReduceType():
+        return False
+    return True
+    
 #---------------------------------------------------------------------
 ##增加家族相关值 
 # @param curPlayer 玩家实例
@@ -2848,9 +2864,9 @@
                  packList=[IPY_GameWorld.rptItem], isSuite=False,
                  addAttrLV=0, isLucky=False, skillBoostEff=[], holeCount=0,
                  equipIndex= -1, isGreat=0, baseAttrRate=ShareDefine.Def_MaxRateValue, greatAttrList=[]):
-    if PlayerFamily.DoAddFamilyBossFoodEx(curPlayer, itemID, itemCount, ShareDefine.Def_AddFAVReason_DoFamilyMisson):
-        #仙盟兽粮自动使用
-        return
+#    if PlayerFamily.DoAddFamilyBossFoodEx(curPlayer, itemID, itemCount, ShareDefine.Def_AddFAVReason_DoFamilyMisson):
+#        #仙盟兽粮自动使用
+#        return
         
     #任务给予物品应该只能放入万能背包和背包
     itemControl = ItemControler.PlayerItemControler(curPlayer)
@@ -5432,9 +5448,9 @@
  
     rewardList = __GetRunAroundReward(curPlayer, curMission)
     if rewardList:
-        curExp, curMoney, itemID, itemCount = rewardList
+        curExp, curMoney, curFamilyHornor, itemID, itemCount = rewardList
     else:
-        curExp, curMoney, itemID, itemCount = 0, 0, 0, 0
+        curExp, curMoney, curFamilyHornor, itemID, itemCount = 0, 0, 0, 0
     
     curMission.SetProperty(Def_Run_Around_Reward_Exp, curExp % ChConfig.Def_PerPointValue)
     curMission.SetProperty(Def_Run_Around_Reward_ExpPoint, curExp / ChConfig.Def_PerPointValue)
@@ -5442,6 +5458,8 @@
     
     curMission.SetProperty(Def_Day_Event_Reward_Item_Id, itemID)
     curMission.SetProperty(Def_Day_Event_Reward_Item_Count, itemCount)
+    curMission.SetProperty(Def_Run_Around_Reward_FamilyHornor, curFamilyHornor)
+    
     return
 
 
@@ -5470,14 +5488,14 @@
     curExp = eval(IpyGameDataPY.GetFuncCfg('RunTaskExp'))
     curExp += curLVRunAroundReward.AddExp
     curMoney = baseMoney
-    
+    curFamilyHornor = curLVRunAroundReward.PlayerFamilyHornor
     itemInfo = curLVRunAroundReward.Item
     if itemInfo:
         itemID, itemCount = eval(itemInfo)
     else:
         itemID, itemCount = 0, 0
    
-    return (curExp, curMoney, itemID, itemCount)
+    return (curExp, curMoney, curFamilyHornor, itemID, itemCount)
   
 #---------------------------------------------------------------------
 ##给予跑环奖励
@@ -5505,6 +5523,10 @@
     addDataDict = {ChConfig.Def_Give_Reason_SonKey:"Run"}
     PlayerControl.GiveMoney(curPlayer, runAroundReward.MoneyType, money, ChConfig.Def_GiveMoney_Mission, addDataDict, False)
     
+    familyHornor = curMission.GetProperty(Def_Run_Around_Reward_FamilyHornor)
+    if familyHornor: 
+        PlayerFamily.AddPlayerFamilyActiveValue(curPlayer, familyHornor, True, ShareDefine.Def_AddFAVReason_DoFamilyMisson, True)
+
     item_id = curMission.GetProperty(Def_Day_Event_Reward_Item_Id)
     item_count = curMission.GetProperty(Def_Day_Event_Reward_Item_Count)
     
@@ -6043,10 +6065,38 @@
 # @remarks <Set_Horsetotallv key="" />
 def DoType_Set_Horsetotallv(curPlayer, curMission, curActionNode):
     key = curActionNode.GetAttribute("key")
-    questID = GameWorld.ToIntDef(curMission.GetProperty("id"), 0)
+    questID = GameWorld.ToIntDef(curActionNode.GetAttribute("id"), 0)
     if questID != 0:
         curMission = curPlayer.FindMission(questID)
     curMission.SetProperty(key, PlayerHorse.GetHorseSumLV(curPlayer))
+    return
+
+##设置强化总等级
+# @param curPlayer 玩家实例
+# @param curMission 任务实例
+# @param curActionNode节点信息
+# @return 返回值无意义
+# @remarks <Set_Totalpluslv key="" />
+def DoType_Set_Totalpluslv(curPlayer, curMission, curActionNode):
+    key = curActionNode.GetAttribute("key")
+    questID = GameWorld.ToIntDef(curActionNode.GetAttribute("id"), 0)
+    if questID != 0:
+        curMission = curPlayer.FindMission(questID)
+    curMission.SetProperty(key, ChEquip.GetTotalPlusLV(curPlayer, False))
+    return
+
+##设置装备总星级
+# @param curPlayer 玩家实例
+# @param curMission 任务实例
+# @param curActionNode节点信息
+# @return 返回值无意义
+# @remarks <Set_Equiptotalstar key="" />
+def DoType_Set_Equiptotalstar(curPlayer, curMission, curActionNode):
+    key = curActionNode.GetAttribute("key")
+    questID = GameWorld.ToIntDef(curActionNode.GetAttribute("id"), 0)
+    if questID != 0:
+        curMission = curPlayer.FindMission(questID)
+    curMission.SetProperty(key, ChEquip.GetTotalEquipStars(curPlayer))
     return
 #---------------------------------------------------------------------
 ##DoType_调度器
@@ -7170,10 +7220,30 @@
         for i in equipIndexList:
             suiteInfo = ChEquip.GetSuiteInfoByPlace(curPlayer, i)
             for suiteType, lv in suiteInfo.items():
-                if lv >= 2 and groupType == 1 and suiteType == 2:
+                if lv >= 2 and int(groupType) == 1 and suiteType == 2:
                     groupCnt +=1
     return groupCnt >= needCnt
 
+##法宝激活个数
+# @param None
+# @return None <Mwcnt value="cnt"/>
+def ConditionType_Mwcnt(curPlayer, curMission, curActionNode):
+    totalcnt = GameWorld.ToIntDef(curActionNode.GetAttribute("value"), 0)
+    return PlayerMagicWeapon.GetMWActiveCntTotal(curPlayer) >= totalcnt
+
+##总强化等级
+# @param None
+# @return None <Totalpluslv value="cnt"/>
+def ConditionType_Totalpluslv(curPlayer, curMission, curActionNode):
+    totalcnt = GameWorld.ToIntDef(curActionNode.GetAttribute("value"), 0)
+    return ChEquip.GetTotalPlusLV(curPlayer, False) >= totalcnt
+
+##装备总星级
+# @param None
+# @return None <Equiptotalstar value="cnt"/>
+def ConditionType_Equiptotalstar(curPlayer, curMission, curActionNode):
+    totalcnt = GameWorld.ToIntDef(curActionNode.GetAttribute("value"), 0)
+    return ChEquip.GetTotalEquipStars(curPlayer) >= totalcnt
 
 ##激活法宝,确认与成就逻辑后使用
 # @param None
@@ -7194,4 +7264,19 @@
     else:
         curPlayer.SetVisible(False)
         curPlayer.SetSight(0)
-    return
\ No newline at end of file
+    return
+
+
+# 被动技能孔
+def DoType_Open_Skill_Slots(curPlayer, curMission, curActionNode):
+    # 开孔
+    slotIndex = GameWorld.ToIntDef(curActionNode.GetAttribute("value"), 0)
+    mission_1 = QuestCommon.GetCommonMission(curPlayer)
+    if not mission_1:
+        return
+
+    mission_1.SetProperty("OpenSkillSlots", pow(2, slotIndex)|mission_1.GetProperty("OpenSkillSlots"))
+    
+    return
+
+

--
Gitblit v1.8.0