From 84f9abc7067dde4e6b504a1ba2e9f0600a6de46b Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期二, 12 三月 2019 20:58:56 +0800
Subject: [PATCH] 4042 【后端】【2.0】邮件包含附件时不能删除邮件 - 服务端添加防范
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py | 41 +++++++++++++++++++----------------------
1 files changed, 19 insertions(+), 22 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 a642e49..db1f752 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/NPC/NPCCommon.py
@@ -54,6 +54,7 @@
import PlayerFairyCeremony
import PlayerNewFairyCeremony
import PlayerWeekParty
+import PlayerActLogin
import FamilyRobBoss
import IpyGameDataPY
import PlayerState
@@ -494,7 +495,7 @@
if ItemCommon.GetIsEquip(itemData):
for _ in xrange(itemCount):
- curItem = ItemControler.GetOutPutItemObj(itemID, isBind=isBind)
+ curItem = ItemControler.GetOutPutItemObj(itemID)
if curItem:
needSpace += 1
prizeItemList.append(curItem)
@@ -540,7 +541,7 @@
index += 1
if isinstance(curItem, list):
itemID, itemCount, isBind = curItem
- curItem = ItemControler.GetOutPutItemObj(itemID, itemCount, isBind)
+ curItem = ItemControler.GetOutPutItemObj(itemID, itemCount, False)
if not curItem:
continue
@@ -568,7 +569,7 @@
for prizeItem in prizeItemList:
if isinstance(prizeItem, list):
itemID, itemCount, isBind = prizeItem
- ItemControler.GivePlayerItem(curPlayer, itemID, itemCount, isBind, [IPY_GameWorld.rptItem],
+ ItemControler.GivePlayerItem(curPlayer, itemID, itemCount, 0, [IPY_GameWorld.rptItem],
event=event)
else:
ItemControler.DoLogic_PutItemInPack(curPlayer, prizeItem, event=event)
@@ -2126,8 +2127,8 @@
GameWorld.DebugLog("Boss状态变更: bossID=%s,isAlive=%s,dataMapID=%s,realMapID=%s,copyMapID=%s"
% (bossID, isAlive, dataMapID, realMapID, copyMapID))
if not isAlive:
- if dataMapID in ChConfig.Def_CrossZoneTableName:
- tableName = ChConfig.Def_CrossZoneTableName[dataMapID]
+ if dataMapID in ChConfig.Def_CrossZoneMapTableName:
+ tableName = ChConfig.Def_CrossZoneMapTableName[dataMapID]
realMapID = GameWorld.GetGameWorld().GetRealMapID()
copyMapID = GameWorld.GetGameWorld().GetCopyMapID()
zoneIpyData = IpyGameDataPY.GetIpyGameData(tableName, realMapID, dataMapID, copyMapID)
@@ -2167,6 +2168,7 @@
PlayerFairyCeremony.AddFCPartyActionCnt(curPlayer, ChConfig.Def_PPAct_WorldBoss, 1)
PlayerNewFairyCeremony.AddFCPartyActionCnt(curPlayer, ChConfig.Def_PPAct_WorldBoss, 1)
PlayerWeekParty.AddWeekPartyActionCnt(curPlayer, ChConfig.Def_WPAct_WorldBOSS, 1)
+ PlayerActLogin.AddLoginAwardActionCnt(curPlayer, ChConfig.Def_LoginAct_WorldBOSS, 1)
if mapID == ChConfig.Def_FBMapID_BossHome:
#BOSS之家
@@ -3029,7 +3031,7 @@
# GameWorld.DebugLog("伤血玩家血量为0,清除该伤血!playerID=%s" % hurtID)
# return True
- if not hurtPlayer.GetVisible():
+ if hurtPlayer.GetInitOK() and not hurtPlayer.GetVisible():
GameWorld.DebugLog("伤血玩家不可见,清除该伤血!playerID=%s" % hurtID)
return True
@@ -3066,7 +3068,7 @@
#GameWorld.DebugLog("队员不在本线路,不计!playerID=%s" % playerID)
continue
- if not curTeamPlayer.GetVisible():
+ if curTeamPlayer.GetInitOK() and not curTeamPlayer.GetVisible():
#GameWorld.DebugLog("队员不可见,不计!playerID=%s" % playerID)
continue
@@ -3087,7 +3089,7 @@
teamHurtPlayerIDList.append(playerID)
if not teamHurtPlayerIDList:
- GameWorld.DebugLog("伤血队伍没有活着的队员在boss区域内,清除该伤血!teamID=%s,mapTeamPlayerIDList=%s" % (teamID, mapTeamPlayerIDList))
+ GameWorld.DebugLog("伤血队伍没有符合条件的队员在boss区域内,清除该伤血!teamID=%s,mapTeamPlayerIDList=%s" % (teamID, mapTeamPlayerIDList))
return teamHurtPlayerIDList
def RefreshHurtList(self, tick, refreshInterval=3000):
@@ -4191,7 +4193,7 @@
index += 1
itemCnt = moneyValue if itemID == moneyID else 1
isBind = dropItemBindDict.get(itemID, 1)
- curItem = self.__CreateDropItem(curNPC, itemID, itemCnt, isBind)
+ curItem = self.__CreateDropItem(curNPC, itemID, itemCnt, isBind, dropPlayer)
if not curItem:
continue
self.__MapCreateItem(curItem, resultX, resultY, ChConfig.Def_NPCHurtTypePlayer, ownerID)
@@ -4279,7 +4281,7 @@
itemCnt = moneyValue if itemID == moneyID else 1
isBind = dropIDBindDict.get(itemID, 1)
- curItem = self.__CreateDropItem(curNPC, itemID, itemCnt, isBind)
+ curItem = self.__CreateDropItem(curNPC, itemID, itemCnt, isBind, dropPlayer)
if not curItem:
continue
@@ -4294,8 +4296,7 @@
curItem.SetUserAttr(ShareDefine.Def_IudetSource, ShareDefine.Item_Source_VirtualItemDrop)
dropItemDataStr = ChItem.GetMapDropItemDataStr(curItem)
#可以放入背包
- if ItemControler.DoLogic_PutItemInPack(ownerPlayer, curItem, True, True,
- event=["NPCDrop", False, {"npcID":npcID}]):
+ if ItemControler.DoLogic_PutItemInPack(ownerPlayer, curItem, event=["NPCDrop", False, {"npcID":npcID}]):
#通知客户端
self.SendVirtualItemDrop(ownerPlayer, itemID, resultX, resultY, dropItemDataStr)
@@ -5203,18 +5204,14 @@
#self.__SetItemProtect(curMapItem, dropType, ownerID)
return
- def __CreateDropItem(self, curNPC, itemID, count, isBind):
+ def __CreateDropItem(self, curNPC, itemID, count, isBind, dropPlayer):
## 创建掉落的物品
- curItem = ItemControler.GetOutPutItemObj(itemID)
+ if not isBind and not IpyGameDataPY.GetIpyGameDataNotLog("AuctionItem", itemID):
+ isBind = 1
+ isAuctionItem = not isBind
+ curItem = ItemControler.GetOutPutItemObj(itemID, count, isAuctionItem, curPlayer=dropPlayer)
if not curItem:
return
-
- curMapID = GameWorld.GetMap().GetMapID()
- curMapID = FBCommon.GetRecordMapID(curMapID)
-
- # 掉落数量
- curItem.SetCount(count)
- curItem.SetIsBind(isBind)
return curItem
#---------------------------------------------------------------------
@@ -5460,7 +5457,7 @@
giveItemList = collectNPCIpyData.GetCollectAward()
if giveItemList:
itemID, itemCount, isBind = giveItemList
- ItemControler.GivePlayerItem(curPlayer, itemID, itemCount, isBind, [IPY_GameWorld.rptItem])
+ ItemControler.GivePlayerItem(curPlayer, itemID, itemCount, 0, [IPY_GameWorld.rptItem])
#采集成就
PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_Collect, collectCnt, [npcID])
--
Gitblit v1.8.0