| | |
| | |
|
| | | itemType = curItem.GetType()
|
| | | itemID = curItem.GetItemTypeID()
|
| | | |
| | | if itemType in IpyGameDataPY.GetFuncEvalCfg("ItemRecordRule", 4) \
|
| | | or itemID in IpyGameDataPY.GetFuncEvalCfg("ItemRecordRule", 5):
|
| | | #GameWorld.DebugLog("不需要记录的物品类型或ID! itemType=%s,itemID=%s" % (itemType, itemID))
|
| | | return False
|
| | | |
| | | itemTypeMinColorDict = IpyGameDataPY.GetFuncEvalCfg("ItemRecordRule", 1)
|
| | | if itemType in itemTypeMinColorDict:
|
| | | minColor = itemTypeMinColorDict[itemType]
|
| | |
| | | or itemID in IpyGameDataPY.GetFuncEvalCfg("ItemRecordRule", 3):
|
| | | #GameWorld.DebugLog("需要记录的物品类型或ID! itemType=%s,itemID=%s" % (itemType, itemID))
|
| | | return True
|
| | | |
| | | if itemType in IpyGameDataPY.GetFuncEvalCfg("ItemRecordRule", 4) \
|
| | | or itemID in IpyGameDataPY.GetFuncEvalCfg("ItemRecordRule", 5):
|
| | | #GameWorld.DebugLog("不需要记录的物品类型或ID! itemType=%s,itemID=%s" % (itemType, itemID))
|
| | | return False
|
| | |
|
| | | #if itemType == ChConfig.Def_ItemType_Rune:
|
| | | # return IsRuneItemNeedRecord(curItem, curItem.GetUserAttr(ShareDefine.Def_IudetRuneLV))
|
| | |
| | | return True
|
| | | if itemID not in ChConfig.Def_TransformItemIDList:
|
| | | return False
|
| | | if itemID == ChConfig.Def_ItemID_SilverMoney:
|
| | | PlayerControl.GiveMoney(curPlayer, IPY_GameWorld.TYPE_Price_Silver_Money, itemCount)
|
| | | elif itemID == ChConfig.Def_ItemID_SP:
|
| | | PlayerControl.PlayerAddZhenQi(curPlayer, itemCount)
|
| | | elif itemID == ChConfig.Def_ItemID_GoldPaper:
|
| | | PlayerControl.GiveMoney(curPlayer, IPY_GameWorld.TYPE_Price_Gold_Paper, itemCount, moneyEventName, addDict)
|
| | | elif itemID == ChConfig.Def_ItemID_RealmPoint:
|
| | | PlayerControl.GiveMoney(curPlayer, ShareDefine.TYPE_Price_RealmPoint, itemCount)
|
| | | elif itemID == ChConfig.Def_ItemID_BossReborn:
|
| | | msgStr = str(itemCount)
|
| | | GameWorld.GetPlayerManager().GameServer_QueryPlayerResult(0, 0, 0, 'AddBossRebornPoint', msgStr, len(msgStr))
|
| | | elif itemID == ChConfig.Def_ItemID_Ysog:
|
| | | PlayerControl.GiveMoney(curPlayer, ShareDefine.TYPE_Price_Ysog, itemCount)
|
| | | elif itemID == ChConfig.Def_ItemID_SoulDust:
|
| | | PlayerControl.GiveMoney(curPlayer, ShareDefine.TYPE_Price_SoulDust, itemCount)
|
| | | elif itemID == ChConfig.Def_ItemID_SoulSplinters:
|
| | | PlayerControl.GiveMoney(curPlayer, ShareDefine.TYPE_Price_SoulSplinters, itemCount)
|
| | | elif itemID == ChConfig.Def_ItemID_SoulCore:
|
| | | PlayerControl.GiveMoney(curPlayer, ShareDefine.TYPE_Price_SoulCore, itemCount)
|
| | | elif itemID == ChConfig.Def_ItemID_Honor:
|
| | | PlayerControl.GiveMoney(curPlayer, ShareDefine.TYPE_Price_Honor, itemCount)
|
| | | elif itemID == ChConfig.Def_ItemID_GoldMoney:
|
| | | PlayerControl.GiveMoney(curPlayer, IPY_GameWorld.TYPE_Price_Gold_Money, itemCount, moneyEventName, addDict)
|
| | | elif itemID == ChConfig.Def_ItemID_FuncSysPrivilege:
|
| | | PlayerControl.GiveMoney(curPlayer, ShareDefine.TYPE_Price_FuncSysPrivilege, itemCount)
|
| | | elif itemID == ChConfig.Def_ItemID_BTGMPoint:
|
| | | PlayerControl.GiveMoney(curPlayer, ShareDefine.TYPE_Price_BTGMPoint, itemCount)
|
| | | elif itemID == ChConfig.Def_ItemID_GuShenMoney:
|
| | | PlayerControl.GiveMoney(curPlayer, ShareDefine.TYPE_Price_GuShenMoney, itemCount)
|
| | | elif itemID == ChConfig.Def_ItemID_GongdePoint:
|
| | | PlayerControl.GiveMoney(curPlayer, ShareDefine.TYPE_Price_GongdePoint, itemCount)
|
| | | elif itemID == ChConfig.Def_ItemID_FamilyFlagWarPoint:
|
| | | PlayerControl.GiveMoney(curPlayer, ShareDefine.TYPE_Price_FamilyFlagWarPoint, itemCount)
|
| | | return True
|
| | |
|
| | | def __CrossServerPutInItem(self, packIndex, tagItem, event=["", False, {}]):
|
| | |
| | | #itemFactory = GameWorld.GetItemFactory()
|
| | | #isBind = tagItem.GetIsBind()
|
| | | # 目前暂只记录放入背包的
|
| | | if not isNeedRecord and packIndex in [IPY_GameWorld.rptItem, ShareDefine.rptTreasure, ShareDefine.rptRune, ShareDefine.rptGatherSoul, ShareDefine.rptDogzItem]:
|
| | | if not isNeedRecord and packIndex in ShareDefine.NeedRecordRPType:
|
| | | isNeedRecord = ItemNeedRecord(tagItem) or isForceEvent
|
| | | putResult = False
|
| | |
|
| | |
| | | return
|
| | |
|
| | | def ResetHeroPack(curPlayer, curPack, beingIndex, endIndex):
|
| | | itemList = []
|
| | | for i in range(beingIndex, endIndex + 1):
|
| | | curRoleItem = curPack.GetAt(i)
|
| | | if curRoleItem.IsEmpty():
|
| | | continue
|
| | | curItem = curRoleItem.GetItem() |
| | | itemList.append(curItem)
|
| | | itemList.sort(__CmpHeroPack)
|
| | | |
| | | curPack.WipePack(beingIndex, endIndex)
|
| | | putPlace = beingIndex
|
| | | for item in itemList:
|
| | | curPack.GetAt(putPlace).AssignItem(item, False)
|
| | | putPlace += 1
|
| | | |
| | | ## 前端自行排序
|
| | | return
|
| | |
|
| | | def __CmpHeroPack(item1, item2):
|
| | | '''排序规则:上阵武将排前,未上阵武将排后,再各自按照以下规则排序
|
| | | 武将等级>突破等级>武将星级>武将品质>武将ID
|
| | | '''
|
| | | |
| | | posNum1, posNum2 = 0, 0
|
| | | for lpIndex in range(item1.GetUserAttrCount(ShareDefine.Def_IudetHeroLineup)):
|
| | | lineupValue = item1.GetUserAttrByIndex(ShareDefine.Def_IudetHeroLineup, lpIndex)
|
| | | lineupID, _, posNum = PlayerHero.GetLineupValue(lineupValue)
|
| | | if lineupID != ShareDefine.Lineup_Main:
|
| | | continue
|
| | | posNum1 = posNum
|
| | | break
|
| | | |
| | | for lpIndex in range(item2.GetUserAttrCount(ShareDefine.Def_IudetHeroLineup)):
|
| | | lineupValue = item2.GetUserAttrByIndex(ShareDefine.Def_IudetHeroLineup, lpIndex)
|
| | | lineupID, _, posNum = PlayerHero.GetLineupValue(lineupValue)
|
| | | if lineupID != ShareDefine.Lineup_Main:
|
| | | continue
|
| | | posNum2 = posNum
|
| | | break
|
| | | |
| | | if (posNum1 and posNum2) or (not posNum1 and not posNum2):
|
| | | lv1 = item1.GetUserAttr(ShareDefine.Def_IudetHeroLV)
|
| | | lv2 = item2.GetUserAttr(ShareDefine.Def_IudetHeroLV)
|
| | | if lv1 == lv2:
|
| | | bLV1 = item1.GetUserAttr(ShareDefine.Def_IudetHeroBreakLV)
|
| | | bLV2 = item2.GetUserAttr(ShareDefine.Def_IudetHeroBreakLV)
|
| | | if bLV1 == bLV2:
|
| | | star1 = item1.GetUserAttr(ShareDefine.Def_IudetHeroStar)
|
| | | star2 = item2.GetUserAttr(ShareDefine.Def_IudetHeroStar)
|
| | | if star1 == star2:
|
| | | heroID1 = item1.GetItemTypeID()
|
| | | heroID2 = item2.GetItemTypeID()
|
| | | ipyData1 = IpyGameDataPY.GetIpyGameData("Hero", heroID1)
|
| | | ipyData2 = IpyGameDataPY.GetIpyGameData("Hero", heroID2)
|
| | | quality1 = ipyData1.GetQuality() if ipyData1 else 0
|
| | | quality2 = ipyData2.GetQuality() if ipyData2 else 0
|
| | | if quality1 == quality2:
|
| | | return cmp(heroID1, heroID2)
|
| | | return -cmp(quality1, quality2)
|
| | | return -cmp(star1, star2)
|
| | | return -cmp(bLV1, bLV2)
|
| | | return -cmp(lv1, lv2)
|
| | | elif posNum1:
|
| | | return -1
|
| | | elif posNum2:
|
| | | return 1
|
| | | else:
|
| | | return cmp(item1.GetItemTypeID(), item2.GetItemTypeID())
|
| | | |
| | | #===============================================================================
|
| | | #Python 版重整物品
|
| | | # def ResetItem(curPlayer, curPackIndex, tick):
|