From 545986a8fdde345b28cf3004be84c6cfe79a3dc1 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 19 四月 2019 11:29:12 +0800
Subject: [PATCH] 6459 【后端】【2.0】缥缈仙域开发单(跨服分区逻辑优化,支持跨服妖王分区状态同步)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ChItem.py | 49 +++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 49 insertions(+), 0 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ChItem.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ChItem.py
index e2e458c..94d6e0b 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ChItem.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Item/ChItem.py
@@ -53,6 +53,7 @@
import NPCCommon
import FBCommon
+import random
import json
#---------------------------------------------------------------------
#导入
@@ -1780,6 +1781,54 @@
return
#---------------------------------------------------------------------
+
+def DoMapDropItem(curPlayer, itemList, npcID, dropPosX, dropPosY, isOnlySelfSee=True, isDropDisperse=True):
+ if not itemList:
+ return
+ if isDropDisperse:
+ dropItemList = []
+ for itemInfo in itemList:
+ if isinstance(itemInfo, list):
+ itemID, itemCount, isAuctionItem = itemInfo
+ # 拍品不拆
+ if isAuctionItem:
+ dropItemList.append(itemInfo)
+ continue
+ for _ in xrange(itemCount):
+ dropItemList.append([itemID, 1, isAuctionItem])
+ else:
+ dropItemList.append(itemInfo)
+ else:
+ dropItemList = itemList
+
+ random.shuffle(dropItemList) # 打乱顺序
+ index = 0
+ playerID = curPlayer.GetPlayerID()
+ gameMap = GameWorld.GetMap()
+ 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
+
+ curItem = dropItemList[index]
+ index += 1
+ if isinstance(curItem, list):
+ itemID, itemCount, isAuctionItem = curItem
+ curItem = ItemControler.GetOutPutItemObj(itemID, itemCount, isAuctionItem, curPlayer=curPlayer)
+
+ if not curItem:
+ continue
+
+ AddMapDropItem(resultX, resultY, curItem, ownerInfo=[ChConfig.Def_NPCHurtTypePlayer, playerID],
+ dropNPCID=npcID, isOnlySelfSee=isOnlySelfSee)
+ return
+
## 在地上添加物品(统一接口)
# @param itemPosX 位置x
# @param itemPosY 位置y
--
Gitblit v1.8.0