From ece7760d17592dfcadef52e47848836b13cf3f47 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期六, 11 一月 2020 16:13:38 +0800 Subject: [PATCH] 1111 MissionDir命令找不到任务名报错防范 --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/MakeItemCount.py | 56 +++++++++++++++++++++++++++++++++----------------------- 1 files changed, 33 insertions(+), 23 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/MakeItemCount.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/MakeItemCount.py index f40d4d2..973cb4a 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/MakeItemCount.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/MakeItemCount.py @@ -14,11 +14,13 @@ # # 模块详细说明 #导入 + import IPY_GameWorld import ItemControler -import ShareDefine -import ChConfig import GameWorld +import ChConfig +import ItemCommon + #--------------------------------------------------------------------- #全局变量 #--------------------------------------------------------------------- @@ -36,40 +38,48 @@ #输入命令格式错误 if len(msgList) < 1: - GameWorld.DebugAnswer(curPlayer, "MakeItemCount id, [count, 符印等级]") + GameWorld.DebugAnswer(curPlayer, "MakeItemCount ID (个数 拍品组数 全部传奇属性)") return + event = [ChConfig.ItemGive_GMMake, False, {"CMD":"MakeItemCount"}] itemID = msgList[0] - count = msgList[1] if len(msgList) > 1 else 1 - runeLV = msgList[2] if len(msgList) > 2 else None + itemCount = msgList[1] if len(msgList) > 1 else 1 + auctionGroup = msgList[2] if len(msgList) > 2 else 0 + isAllAttr = msgList[3] if len(msgList) > 3 else 0 itemData = GameWorld.GetGameData().GetItemByTypeID(itemID) if not itemData: GameWorld.DebugAnswer(curPlayer, '该物品不存在 = %s' % (itemID)) return - packCount = itemData.GetPackCount() - if packCount > 1: - __DoGMGivePlayerItem(curPlayer, itemID, count, runeLV) + if itemID in ChConfig.Def_TransformItemIDList: + curItem = ItemControler.GetOutPutItemObj(itemID, itemCount, curPlayer=curPlayer) + PlayerItemControler = ItemControler.PlayerItemControler(curPlayer) + if not PlayerItemControler.PutInItem(IPY_GameWorld.rptItem, curItem, event=event): + GameWorld.DebugAnswer(curPlayer, "放入物品失败!") + return + + playerItemControler = ItemControler.PlayerItemControler(curPlayer) + + # 拍品 + if auctionGroup > 0: + for _ in xrange(auctionGroup): + if not ItemControler.GivePlayerItem(curPlayer, itemID, itemCount, True, [IPY_GameWorld.rptItem], event=event): + GameWorld.DebugAnswer(curPlayer, "###放入物品失败!") else: - for _ in xrange(count): - __DoGMGivePlayerItem(curPlayer, itemID, 1, runeLV) - + if not ItemCommon.GetIsEquip(itemData): + if not ItemControler.GivePlayerItem(curPlayer, itemID, itemCount, False, [IPY_GameWorld.rptItem], event=event): + GameWorld.DebugAnswer(curPlayer, "###放入物品失败!") + else: + for _ in xrange(itemCount): + __DoGMGivePlayerItem(curPlayer, playerItemControler, itemID, 1, False, isAllAttr, event) return -def __DoGMGivePlayerItem(curPlayer, itemID, count, runeLV): +def __DoGMGivePlayerItem(curPlayer, playerItemControler, itemID, count, isAuctionItem, isAllAttr, event): if ItemControler.GetAppointItemRealID(itemID): - ItemControler.GivePlayerAppointItem(curPlayer, itemID, 0, True, True) + ItemControler.GivePlayerAppointItem(curPlayer, itemID, isAuctionItem, event=event) return - curItem = ItemControler.GetOutPutItemObj(itemID) - ItemControler.SetItemCount(curItem, count, curPlayer.GetPlayerID(), curPlayer.GetAccID(), - curPlayer.GetPlayerName()) - - if curItem.GetType() == ChConfig.Def_ItemType_Rune and runeLV: - curItem.SetUserAttr(ShareDefine.Def_IudetRuneLV, runeLV) - - #将物品放置玩家背包 - PlayerItemControler = ItemControler.PlayerItemControler(curPlayer) - if not PlayerItemControler.PutInItem(IPY_GameWorld.rptItem, curItem, event=[ChConfig.ItemGive_GMMake, False, {"CMD":"MakeItemCount"}]): + curItem = ItemControler.GetOutPutItemObj(itemID, count, isAuctionItem, curPlayer=curPlayer, isAllAttr=isAllAttr) + if not playerItemControler.PutInItem(IPY_GameWorld.rptItem, curItem, event=event): GameWorld.DebugAnswer(curPlayer, "放入物品失败!") return -- Gitblit v1.8.0