From 0a61ceac61e017f86560ce4b226092a23ada4e31 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期四, 07 三月 2019 11:50:06 +0800 Subject: [PATCH] 6323 【后端】【2.0】装备传奇属性生成规则 --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/MakeItemCount.py | 59 +++++++++++++++++++++++++++++++++-------------------------- 1 files changed, 33 insertions(+), 26 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 1c1c849..2fe1b45 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 IpyGameDataPY import GameWorld +import ChConfig + #--------------------------------------------------------------------- #全局变量 #--------------------------------------------------------------------- @@ -36,12 +38,13 @@ #输入命令格式错误 if len(msgList) < 1: - GameWorld.DebugAnswer(curPlayer, "MakeItemCount id, [count, 符印等级]") + GameWorld.DebugAnswer(curPlayer, "MakeItemCount ID (个数 拍品分组 全部传奇属性)") return 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: @@ -49,37 +52,41 @@ return packCount = itemData.GetPackCount() if itemID in ChConfig.Def_TransformItemIDList: - curItem = ItemControler.GetOutPutItemObj(itemID) - ItemControler.SetItemCount(curItem, count, curPlayer.GetPlayerID(), curPlayer.GetAccID(), - curPlayer.GetPlayerName()) + curItem = ItemControler.GetOutPutItemObj(itemID, itemCount, curPlayer=curPlayer) PlayerItemControler = ItemControler.PlayerItemControler(curPlayer) if not PlayerItemControler.PutInItem(IPY_GameWorld.rptItem, curItem, event=[ChConfig.ItemGive_GMMake, False, {"CMD":"MakeItemCount"}]): GameWorld.DebugAnswer(curPlayer, "放入物品失败!") return - if packCount > 1: - __DoGMGivePlayerItem(curPlayer, itemID, count, runeLV) + playerItemControler = ItemControler.PlayerItemControler(curPlayer) + + # 拍品 + if auctionGroup: + isAuctionItem = True + ipyData = IpyGameDataPY.GetIpyGameData("AuctionItem", itemID) + if not ipyData: + GameWorld.DebugAnswer(curPlayer, "非可拍卖物品itemID=%s" % (itemID)) + return + groupItemCount = itemCount / auctionGroup + for i in xrange(auctionGroup): + if i == auctionGroup - 1: + groupItemCount += itemCount % auctionGroup + __DoGMGivePlayerItem(curPlayer, playerItemControler, itemID, groupItemCount, isAuctionItem, isAllAttr) else: - for _ in xrange(count): - __DoGMGivePlayerItem(curPlayer, itemID, 1, runeLV) - + isAuctionItem = False + if packCount > 1: + __DoGMGivePlayerItem(curPlayer, playerItemControler, itemID, itemCount, isAuctionItem, isAllAttr) + else: + for _ in xrange(itemCount): + __DoGMGivePlayerItem(curPlayer, playerItemControler, itemID, 1, isAuctionItem, isAllAttr) return -def __DoGMGivePlayerItem(curPlayer, itemID, count, runeLV): +def __DoGMGivePlayerItem(curPlayer, playerItemControler, itemID, count, isAuctionItem, isAllAttr): if ItemControler.GetAppointItemRealID(itemID): - ItemControler.GivePlayerAppointItem(curPlayer, itemID, 0, True, True) + ItemControler.GivePlayerAppointItem(curPlayer, itemID, isAuctionItem, event=[ChConfig.ItemGive_GMMake, False, {"CMD":"MakeItemCount"}]) 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) - if curItem.GetType() in [ChConfig.Def_ItemType_GatherSoul,ChConfig.Def_ItemType_GatherSoulCore] and runeLV: - curItem.SetUserAttr(ShareDefine.Def_IudetGatherSoulLV, 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=[ChConfig.ItemGive_GMMake, False, {"CMD":"MakeItemCount"}]): GameWorld.DebugAnswer(curPlayer, "放入物品失败!") return -- Gitblit v1.8.0