From fbf3fe5655d97c67db3bf07706ab5af232dcc9a5 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期四, 18 九月 2025 19:17:48 +0800
Subject: [PATCH] 129 【战斗】战斗系统-服务端(甘夫人技能;增加连击、追击增伤减伤属性;)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTask.py |   36 +++++++++++++++++++++++++++---------
 1 files changed, 27 insertions(+), 9 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTask.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTask.py
index 0d8eef3..1ff3d57 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTask.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTask.py
@@ -145,10 +145,11 @@
     if taskType == ChConfig.TaskType_LV:
         taskValue = curPlayer.GetLV()
         
-    elif taskType == ChConfig.TaskType_FBPass:
-        if len(conds) != 2:
+    elif taskType == ChConfig.TaskType_MainLevel:
+        if not conds:
             return 0
-        mapID, lineID = conds
+        mapID = ChConfig.Def_FBMapID_Main
+        lineID = conds[0]
         taskValue = 1 if FBCommon.IsFBPass(curPlayer, mapID, lineID) else 0
         
     elif taskType == ChConfig.TaskType_TreeLV:
@@ -156,6 +157,24 @@
         
     elif taskType == ChConfig.TaskType_RealmLV:
         taskValue = curPlayer.GetOfficialRank()
+        
+    elif taskType == ChConfig.TaskType_EquipColor:
+        if not conds:
+            return 0
+        needColor = conds[0]
+        equipCnt = 0
+        equipPack = curPlayer.GetItemManager().GetPack(IPY_GameWorld.rptEquip)
+        for equipPlace in ChConfig.Def_MainEquipPlaces:
+            equipIndex = equipPlace - 1
+            if equipIndex < 0 or equipIndex >= equipPack.GetCount():
+                continue
+            curEquip = equipPack.GetAt(equipIndex)
+            if not curEquip or curEquip.IsEmpty():
+                continue
+            itemColor = curEquip.GetItemColor()
+            if itemColor >= needColor:
+                equipCnt += 1
+        taskValue = equipCnt
         
     return taskValue
 
@@ -279,21 +298,20 @@
     if curState != ChConfig.TaskState_CanGet:
         GameWorld.DebugLog("任务未完成无法领奖: taskID=%s,curValue=%s/%s,curState=%s" % (taskID, curValue, needValue, curState), playerID)
         return
-    if not ItemControler.CheckPackSpaceEnough(curPlayer, awardItemList):
-        return
+    #if not ItemControler.CheckPackSpaceEnough(curPlayer, awardItemList):
+    #    return
     
     PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TaskIDLast % taskGroup, taskID)
     PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TaskID % taskGroup, 0)
     PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TaskValue % taskGroup, 0)
     PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_TaskState % taskGroup, 0)
     
-    for itemID, itemCount, isAuctionItem in awardItemList:
-        ItemControler.GivePlayerItem(curPlayer, itemID, itemCount, isAuctionItem, [IPY_GameWorld.rptItem])
-        
+    ItemControler.GivePlayerItemOrMail(curPlayer, awardItemList, event=["Task", False, {}])
+    
     if not __giveNewTask(curPlayer, taskGroup):
         SyncTaskInfo(curPlayer, [taskGroup])
         
-    GameFuncComm.DoFuncOpenLogic(curPlayer, [taskID])
+    GameFuncComm.DoFuncOpenLogic(curPlayer)
     return
 
 def SyncTaskInfo(curPlayer, taskGroupList=None):

--
Gitblit v1.8.0