From 02e97056134c570be30922f6ee3bb3b17b209524 Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期二, 26 三月 2019 10:17:05 +0800
Subject: [PATCH] 6351 【后端】【2.1】新版骑宠争夺

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py |   47 ++++++++++++++++++++++++++++++++++-------------
 1 files changed, 34 insertions(+), 13 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py
index 20ff038..1128d84 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py
@@ -587,6 +587,27 @@
     #GameWorld.DebugLog("    totalExp=%s,totalMoney=%s,needSpace=%s,jsonItemList=%s" % (totalExp, totalMoney, needSpace, jsonItemList))
     return jsonItemList, totalExp, totalMoney
 
+def DoVirtualItemDrop(curPlayer, dropItemList, dropPosX, dropPosY):
+    ##前端假掉落表现
+    gameMap = GameWorld.GetMap()
+    index = 0
+    for posX, posY in ChConfig.Def_DropItemAreaMatrix:
+        resultX = dropPosX + posX
+        resultY = dropPosY + posY
+        if not gameMap.CanMove(resultX, resultY):
+            #玩家不可移动这个点
+            continue
+        if index > len(dropItemList) - 1:
+            break
+        itemInfo = dropItemList[index]
+        index += 1
+        itemID, itemCount, isAuctionItem = itemInfo
+        curItem = ItemControler.GetOutPutItemObj(itemID, itemCount, isAuctionItem)
+        dropItemDataStr = ChItem.GetMapDropItemDataStr(curItem)
+        SendVirtualItemDrop(curPlayer, itemID, resultX, resultY, dropItemDataStr)
+        curItem.Clear()
+    return
+
 ################################### NPC掉落 ###################################
 Def_NPCMaxDropRate = 1000000 # NPC掉落相关的最大概率, 数值设定
 
@@ -4156,7 +4177,7 @@
             if mapID == ChConfig.Def_FBMapID_GatherSoul:#聚魂副本特殊处理
                 GameLogic_GatherSoul.KillGatherSoulNPCDropAward(itemID, itemCnt, isAuctionItem)
                 dropItemDataStr = ChItem.GetMapDropItemDataStr(curItem)
-                self.SendVirtualItemDrop(ownerPlayer, itemID, resultX, resultY, dropItemDataStr)
+                SendVirtualItemDrop(ownerPlayer, itemID, resultX, resultY, dropItemDataStr)
                 curItem.Clear()
                 continue
             
@@ -4166,21 +4187,10 @@
                 #可以放入背包
                 if ItemControler.DoLogic_PutItemInPack(ownerPlayer, curItem, event=["NPCDrop", False, {"npcID":npcID}]):
                     #通知客户端
-                    self.SendVirtualItemDrop(ownerPlayer, itemID, resultX, resultY, dropItemDataStr)
+                    SendVirtualItemDrop(ownerPlayer, itemID, resultX, resultY, dropItemDataStr)
                     
             else:
                 self.__MapCreateItem(curItem, resultX, resultY, ownerType, ownerID)
-        return
-    
-    def SendVirtualItemDrop(self, player, itemID, posX, posY, userDataStr):
-        #通知客户端
-        vItemDrop = ChPyNetSendPack.tagMCVirtualItemDrop()
-        vItemDrop.ItemTypeID = itemID
-        vItemDrop.PosX = posX
-        vItemDrop.PosY = posY
-        vItemDrop.UserData = userDataStr
-        vItemDrop.UserDataLen = len(vItemDrop.UserData)
-        NetPackCommon.SendFakePack(player, vItemDrop)
         return
     #---------------------------------------------------------------------
     ## NPC被杀死逻辑处理
@@ -5080,6 +5090,17 @@
         return curItem
     
 #---------------------------------------------------------------------
+def SendVirtualItemDrop(player, itemID, posX, posY, userDataStr):
+    #通知客户端假物品掉落
+    vItemDrop = ChPyNetSendPack.tagMCVirtualItemDrop()
+    vItemDrop.ItemTypeID = itemID
+    vItemDrop.PosX = posX
+    vItemDrop.PosY = posY
+    vItemDrop.UserData = userDataStr
+    vItemDrop.UserDataLen = len(vItemDrop.UserData)
+    NetPackCommon.SendFakePack(player, vItemDrop)
+    return
+    
 def GetNPCExp(curPlayer, npcID):
     npcData = GameWorld.GetGameData().FindNPCDataByID(npcID)
     if not npcData:

--
Gitblit v1.8.0