| | |
| | | GameWorld.DebugAnswer(curPlayer, "武将升星: Hero s 背包位置 升x星")
|
| | | GameWorld.DebugAnswer(curPlayer, "武将突破: Hero b 背包位置 设置等级")
|
| | | GameWorld.DebugAnswer(curPlayer, "武将觉醒: Hero a 背包位置 设置等级")
|
| | | GameWorld.DebugAnswer(curPlayer, "武将图鉴: Hero t 武将ID 图鉴星级 图鉴突破等级")
|
| | | GameWorld.DebugAnswer(curPlayer, "重置图鉴: Hero t 0")
|
| | | #GameWorld.DebugAnswer(curPlayer, "武将图鉴: Hero t 武将ID 图鉴星级 图鉴突破等级")
|
| | | GameWorld.DebugAnswer(curPlayer, "重置图鉴: Hero t 0 [重置阵容推荐]")
|
| | | GameWorld.DebugAnswer(curPlayer, "重置重生: Hero r")
|
| | | GameWorld.DebugAnswer(curPlayer, "武将皮肤: Hero sk 武将ID 皮肤索引 是否解锁")
|
| | | GameWorld.DebugAnswer(curPlayer, "清空武将: ClearPack 35")
|
| | | GameWorld.DebugAnswer(curPlayer, "重置宿缘: Hero sy 0")
|
| | | GameWorld.DebugAnswer(curPlayer, "设置宿缘: Hero sy 宿缘ID 等级 [是否激活]")
|
| | | #GameWorld.DebugAnswer(curPlayer, "清空武将: ClearPack 35")
|
| | | GameWorld.DebugAnswer(curPlayer, "新增武将: MakeItemCount 英雄ID [个数]")
|
| | | GameWorld.DebugAnswer(curPlayer, "阵容上阵: Hero f 阵容ID [武将ID ...]")
|
| | | GameWorld.DebugAnswer(curPlayer, "阵容武将: Hero h 阵容ID 武将ID 等级 星级 突破等级 觉醒等级 皮肤")
|
| | | GameWorld.DebugAnswer(curPlayer, "阵容满级: Hero h 阵容ID 1")
|
| | | GameWorld.DebugAnswer(curPlayer, "一键满级: Hero max [指定等级 星级 突破 觉醒]")
|
| | | GameWorld.DebugAnswer(curPlayer, "清空武将: Hero clear [是否包含生效卡]")
|
| | | return
|
| | |
|
| | | PlayerOnline.GetOnlinePlayer(curPlayer).RefreshRoleAttr()
|
| | |
| | | # 阵容上阵
|
| | | if value == "f":
|
| | | __oneKeyLineup(curPlayer, msgList)
|
| | | return
|
| | | |
| | | # 一键满级
|
| | | if value == "max":
|
| | | __oneKeyMax(curPlayer, msgList)
|
| | | return
|
| | |
|
| | | # 阵容武将
|
| | |
| | | heroIDList = [value2]
|
| | |
|
| | | if value2 == 0:
|
| | | recommendReset = msgList[2] if len(msgList) > 2 else 0
|
| | | syncHeroIDList = []
|
| | | for heroID in heroIDList:
|
| | | if not curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_HeroBook % heroID):
|
| | |
| | | syncHeroIDList.append(heroID)
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_HeroBook % heroID, 0)
|
| | | GameWorld.DebugAnswer(curPlayer, "重置图鉴OK!")
|
| | | else:
|
| | | heroID = value2
|
| | | syncHeroIDList = [heroID]
|
| | | bookStarLV = msgList[2] if len(msgList) > 2 else 0
|
| | | bookBreakLV = msgList[3] if len(msgList) > 3 else 0
|
| | | if (bookStarLV or bookStarLV) and not PlayerHero.GetHeroBookInitState(curPlayer, heroID):
|
| | | PlayerHero.SetHeroBookInitState(curPlayer, heroID, 1)
|
| | | PlayerHero.SetHeroBookStarLV(curPlayer, heroID, bookStarLV)
|
| | | PlayerHero.SetHeroBookBreakLV(curPlayer, heroID, bookBreakLV)
|
| | | GameWorld.DebugAnswer(curPlayer, "设置武将(%s)图鉴星级(%s),突破(%s)" % (heroID, bookStarLV, bookBreakLV))
|
| | | |
| | | if recommendReset:
|
| | | syncIDList = []
|
| | | ipyDataMgr = IpyGameDataPY.IPY_Data()
|
| | | for index in range(ipyDataMgr.GetLineupRecommendCount()):
|
| | | ipyData = ipyDataMgr.GetLineupRecommendByIndex(index)
|
| | | recommendID = ipyData.GetRecommendID()
|
| | | if curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_HeroRecommend % recommendID):
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_HeroRecommend % recommendID, 0)
|
| | | syncIDList.append(recommendID)
|
| | | PlayerHero.Sync_LineupRecommendInfo(curPlayer, syncIDList)
|
| | | GameWorld.DebugAnswer(curPlayer, "重置推荐OK!")
|
| | | |
| | | #else:
|
| | | # heroID = value2
|
| | | # syncHeroIDList = [heroID]
|
| | | # bookStarLV = msgList[2] if len(msgList) > 2 else 0
|
| | | # bookBreakLV = msgList[3] if len(msgList) > 3 else 0
|
| | | # if (bookStarLV or bookStarLV) and not PlayerHero.GetHeroBookInitState(curPlayer, heroID):
|
| | | # PlayerHero.SetHeroBookInitState(curPlayer, heroID, 1)
|
| | | # PlayerHero.SetHeroBookStarLV(curPlayer, heroID, bookStarLV)
|
| | | # PlayerHero.SetHeroBookBreakLV(curPlayer, heroID, bookBreakLV)
|
| | | # GameWorld.DebugAnswer(curPlayer, "设置武将(%s)图鉴星级(%s),突破(%s)" % (heroID, bookStarLV, bookBreakLV))
|
| | | |
| | | PlayerHero.Sync_HeroInfo(curPlayer, syncHeroIDList)
|
| | | return
|
| | |
|
| | |
| | | PlayerHero.ActiveHeroSkin(curPlayer, heroID, skinIndex, isActive)
|
| | | return
|
| | |
|
| | | if value == "clear":
|
| | | isAll = value2
|
| | | backPack = curPlayer.GetItemManager().GetPack(ShareDefine.rptHero)
|
| | | for i in range(backPack.GetCount()):
|
| | | curItem = backPack.GetAt(i)
|
| | | if not curItem or curItem.IsEmpty():
|
| | | continue
|
| | | if not isAll:
|
| | | if curItem.GetUserAttr(ShareDefine.Def_IudetHeroCardEffective):
|
| | | continue
|
| | | curItem.Clear()
|
| | | |
| | | if isAll:
|
| | | PlayerOnline.GetOnlinePlayer(curPlayer).SetEffectiveCardDict({}) # 清空生效缓存
|
| | | return
|
| | | |
| | | # 宿缘
|
| | | if value == "sy":
|
| | | syncIDList = []
|
| | | if not value2:
|
| | | ipyDataMgr = IpyGameDataPY.IPY_Data()
|
| | | for index in range(ipyDataMgr.GetHeroFatesCount()):
|
| | | ipyData = ipyDataMgr.GetHeroFatesByIndex(index)
|
| | | fatesID = ipyData.GetFatesID()
|
| | | if not PlayerHero.GetHeroFatesState(curPlayer, fatesID):
|
| | | continue
|
| | | PlayerHero.SetHeroFatesState(curPlayer, fatesID, 0)
|
| | | PlayerHero.SetHeroFatesLV(curPlayer, fatesID, 0)
|
| | | syncIDList.append(fatesID)
|
| | | GameWorld.DebugAnswer(curPlayer, "重置宿缘")
|
| | | else:
|
| | | fatesID = value2
|
| | | fatesLV = msgList[2] if len(msgList) > 2 else 0
|
| | | fatesState = msgList[3] if len(msgList) > 3 else None
|
| | | ipyData = IpyGameDataPY.GetIpyGameData("HeroFates", fatesID)
|
| | | if not ipyData:
|
| | | GameWorld.DebugAnswer(curPlayer, "宿缘ID不存在: %s" % fatesID)
|
| | | return
|
| | | if fatesLV:
|
| | | fatesQuality = ipyData.GetFatesQuality()
|
| | | if not IpyGameDataPY.GetIpyGameData("HeroFatesQualityLV", fatesQuality, fatesLV):
|
| | | GameWorld.DebugAnswer(curPlayer, "宿缘品质(%s)等级(%s)不存在" % (fatesQuality, fatesLV))
|
| | | return
|
| | | syncIDList.append(fatesID)
|
| | | if fatesState != None:
|
| | | PlayerHero.SetHeroFatesState(curPlayer, fatesID, fatesState)
|
| | | else:
|
| | | fatesState = PlayerHero.GetHeroFatesState(curPlayer, fatesID)
|
| | | PlayerHero.SetHeroFatesLV(curPlayer, fatesID, fatesLV)
|
| | | GameWorld.DebugAnswer(curPlayer, "设置宿缘ID=%s,LV=%s,State=%s" % (fatesID, fatesLV, fatesState))
|
| | | PlayerHero.Sync_HeroFatesInfo(curPlayer, syncIDList)
|
| | | PlayerHero.RefreshLordAttr(curPlayer)
|
| | | return
|
| | | |
| | | itemIndex = value2
|
| | | heroItem = PlayerHero.GetHeroItem(curPlayer, itemIndex)
|
| | | if not heroItem:
|
| | | GameWorld.DebugAnswer(curPlayer, "不存在武将: itemIndex=%s" % itemIndex)
|
| | | return
|
| | |
|
| | | heroID = heroItem.GetItemTypeID()
|
| | | heroIpyData = IpyGameDataPY.GetIpyGameData("Hero", heroID)
|
| | | if not heroIpyData:
|
| | | return
|
| | | quality = heroIpyData.GetQuality()
|
| | | |
| | | if value == 0:
|
| | | PlayerHero.InitHeroItem(heroItem.GetItem())
|
| | | heroItem.Sync_Item()
|
| | | GameWorld.DebugAnswer(curPlayer, "重置武将: itemIndex=%s" % (itemIndex))
|
| | | return
|
| | | |
| | | |
| | | # 等级
|
| | | if value == "l":
|
| | | elif value == "l":
|
| | | heroLV = msgList[2] if len(msgList) > 2 else 1
|
| | | LVMax = PlayerHero.GetHeroLVMax(heroItem)
|
| | | heroLV = min(LVMax, heroLV)
|
| | | heroItem.SetUserAttr(ShareDefine.Def_IudetHeroLV, heroLV)
|
| | | GameWorld.DebugAnswer(curPlayer, "设置武将等级: %s,itemIndex=%s" % (heroLV, itemIndex))
|
| | | return
|
| | | |
| | | |
| | | # 星级
|
| | | if value == "s":
|
| | | elif value == "s":
|
| | | addStar = msgList[2] if len(msgList) > 2 else 1
|
| | | curStar = heroItem.GetUserAttr(ShareDefine.Def_IudetHeroStar)
|
| | | starMax = PlayerHero.GetHeroStarMax(heroItem)
|
| | |
| | | updStar = min(curStar + addStar, starMax)
|
| | | PlayerHero.DoHeroUpdStar(curPlayer, heroItem, updStar)
|
| | | GameWorld.DebugAnswer(curPlayer, "更新武将星级: %s,itemIndex=%s" % (updStar, itemIndex))
|
| | | return
|
| | | |
| | | |
| | | # 突破
|
| | | if value == "b":
|
| | | elif value == "b":
|
| | | breakLV = msgList[2] if len(msgList) > 2 else 0
|
| | | if not IpyGameDataPY.GetIpyGameData("HeroQualityBreak", quality, breakLV):
|
| | | GameWorld.DebugAnswer(curPlayer, "突破等级不存在:%s 品质:%s" % (breakLV, quality))
|
| | | return
|
| | | PlayerHero.SetHeroBreakLV(curPlayer, heroItem, breakLV)
|
| | | GameWorld.DebugAnswer(curPlayer, "设置武将突破: %s,itemIndex=%s" % (breakLV, itemIndex))
|
| | | return
|
| | | |
| | | |
| | | # 觉醒
|
| | | if value == "a":
|
| | | elif value == "a":
|
| | | awakeLV = msgList[2] if len(msgList) > 2 else 0
|
| | | if not IpyGameDataPY.GetIpyGameData("HeroQualityAwake", quality, awakeLV):
|
| | | GameWorld.DebugAnswer(curPlayer, "觉醒等级不存在:%s 品质:%s" % (awakeLV, quality))
|
| | | return
|
| | | PlayerHero.SetHeroAwakeLV(heroItem, awakeLV)
|
| | | GameWorld.DebugAnswer(curPlayer, "设置武将觉醒: %s,itemIndex=%s" % (awakeLV, itemIndex))
|
| | | return
|
| | | |
| | | PlayerOnline.GetOnlinePlayer(curPlayer).OnHeroItemUpate(heroItem) # GM修改
|
| | | return
|
| | |
|
| | | def __oneKeyMax(curPlayer, msgList):
|
| | | ## 一键满级: Hero max [指定等级 星级 突破 觉醒]
|
| | | setLV = msgList[1] if len(msgList) > 1 else None
|
| | | setStar = msgList[2] if len(msgList) > 2 else None
|
| | | setBreakLV = msgList[3] if len(msgList) > 3 else None
|
| | | setAwakeLV = msgList[4] if len(msgList) > 4 else None
|
| | |
|
| | | heroIDList = []
|
| | | ipyDataMgr = IpyGameDataPY.IPY_Data()
|
| | | for index in range(ipyDataMgr.GetHeroCount()):
|
| | | ipyData = ipyDataMgr.GetHeroByIndex(index)
|
| | | if not ipyData.GetPlayerCanUse():
|
| | | continue
|
| | | heroIDList.append(ipyData.GetHeroID())
|
| | | |
| | | curPack = curPlayer.GetItemManager().GetPack(ShareDefine.rptHero)
|
| | | for index in range(curPack.GetCount()):
|
| | | heroItem = curPack.GetAt(index)
|
| | | if not heroItem or heroItem.IsEmpty():
|
| | | continue
|
| | | heroID = heroItem.GetItemTypeID()
|
| | | if heroID in heroIDList:
|
| | | heroIDList.remove(heroID)
|
| | | |
| | | # 给没有的武将
|
| | | for heroID in heroIDList:
|
| | | ItemControler.GivePlayerItem(curPlayer, heroID, 1, False)
|
| | | |
| | | # 设置一键满
|
| | | for index in range(curPack.GetCount()):
|
| | | heroItem = curPack.GetAt(index)
|
| | | if not heroItem or heroItem.IsEmpty():
|
| | | continue
|
| | | __setHeroItem(curPlayer, heroItem, setLV, setStar, setBreakLV, setAwakeLV)
|
| | | |
| | | GameWorld.DebugAnswer(curPlayer, "一键OK!")
|
| | | return
|
| | |
|
| | | def __oneKeyLineup(curPlayer, msgList):
|
| | |
| | | heroItem = curPack.GetAt(itemIndex)
|
| | | if not heroItem or heroItem.IsEmpty():
|
| | | continue
|
| | | heroID = heroItem.GetItemTypeID()
|
| | | heroIpyData = IpyGameDataPY.GetIpyGameData("Hero", heroID)
|
| | | if not heroIpyData:
|
| | | continue
|
| | | quality = heroIpyData.GetQuality()
|
| | | qualityIpyData = IpyGameDataPY.GetIpyGameData("HeroQuality", quality)
|
| | | if not qualityIpyData:
|
| | | continue
|
| | | singleItem = heroItem.GetItem()
|
| | | |
| | | # 天赋 |
| | | if setAwakeLV != None:
|
| | | awakeLV = setAwakeLV
|
| | | if not IpyGameDataPY.GetIpyGameData("HeroQualityAwake", quality, awakeLV):
|
| | | GameWorld.DebugAnswer(curPlayer, "觉醒等级不存在:%s 品质:%s" % (awakeLV, quality))
|
| | | return
|
| | | else:
|
| | | awakeLV = 0
|
| | | for aLV in range(1, 100):
|
| | | if not IpyGameDataPY.GetIpyGameDataNotLog("HeroQualityAwake", quality, aLV):
|
| | | break
|
| | | awakeLV = aLV
|
| | | PlayerHero.SetHeroAwakeLV(heroItem, awakeLV, False)
|
| | | |
| | | doCnt = 0
|
| | | awakeRandCnt = singleItem.GetUserAttrCount(ShareDefine.Def_IudetHeroTalentIDAwakeRand)
|
| | | while awakeRandCnt and doCnt <= 10:
|
| | | doCnt += 1
|
| | | selectIndex = random.randint(0, awakeRandCnt - 1)
|
| | | PlayerHero.doSelectAwakeTalent(curPlayer, itemIndex, selectIndex, False)
|
| | | awakeRandCnt = singleItem.GetUserAttrCount(ShareDefine.Def_IudetHeroTalentIDAwakeRand)
|
| | | |
| | | # 突破
|
| | | if setBreakLV != None:
|
| | | breakLV = setBreakLV
|
| | | if not IpyGameDataPY.GetIpyGameData("HeroQualityBreak", quality, breakLV):
|
| | | GameWorld.DebugAnswer(curPlayer, "突破等级不存在:%s 品质:%s" % (breakLV, quality))
|
| | | return
|
| | | else:
|
| | | breakLV = 0
|
| | | for bLV in range(1, 100):
|
| | | if not IpyGameDataPY.GetIpyGameDataNotLog("HeroQualityBreak", quality, bLV):
|
| | | break
|
| | | breakLV = bLV
|
| | | PlayerHero.SetHeroBreakLV(curPlayer, heroItem, breakLV, False)
|
| | | |
| | | # 星级
|
| | | starMax = PlayerHero.GetHeroStarMax(heroItem)
|
| | | if setStar != None:
|
| | | updStar = min(setStar, starMax)
|
| | | else:
|
| | | updStar = starMax
|
| | | PlayerHero.DoHeroUpdStar(curPlayer, heroItem, updStar, False)
|
| | | |
| | | # 等级
|
| | | lvMax = PlayerHero.GetHeroLVMax(heroItem)
|
| | | if setLV != None:
|
| | | updHeroLV = min(setLV, lvMax)
|
| | | else:
|
| | | updHeroLV = lvMax
|
| | | singleItem.SetUserAttr(ShareDefine.Def_IudetHeroLV, updHeroLV)
|
| | | |
| | | # 皮肤
|
| | | skinIDList = heroIpyData.GetSkinIDList()
|
| | | if setSkinID != None:
|
| | | if setSkinID not in skinIDList:
|
| | | GameWorld.DebugAnswer(curPlayer, "皮肤不存在:%s 品质:%s" % (heroID, setSkinID))
|
| | | return
|
| | | skinIndex = skinIDList.index(setSkinID)
|
| | | singleItem.SetUserAttr(ShareDefine.Def_IudetHeroSkin, skinIndex) |
| | | |
| | | heroItem.Sync_Item()
|
| | | PlayerOnline.GetOnlinePlayer(curPlayer).OnHeroItemUpate([itemIndex])
|
| | | __setHeroItem(curPlayer, heroItem, setLV, setStar, setBreakLV, setAwakeLV, setSkinID)
|
| | |
|
| | | GameWorld.DebugAnswer(curPlayer, "设置阵容武将OK")
|
| | | return
|
| | | |
| | | def __setHeroItem(curPlayer, heroItem, setLV=None, setStar=None, setBreakLV=None, setAwakeLV=None, setSkinID=None):
|
| | | heroID = heroItem.GetItemTypeID()
|
| | | heroIpyData = IpyGameDataPY.GetIpyGameData("Hero", heroID)
|
| | | if not heroIpyData:
|
| | | return
|
| | | quality = heroIpyData.GetQuality()
|
| | | qualityIpyData = IpyGameDataPY.GetIpyGameData("HeroQuality", quality)
|
| | | if not qualityIpyData:
|
| | | return
|
| | | singleItem = heroItem.GetItem()
|
| | | |
| | | # 重置
|
| | | PlayerHero.InitHeroItem(singleItem)
|
| | | |
| | | # 天赋 |
| | | awakeLVMax = 0
|
| | | for aLV in range(1, 100):
|
| | | if not IpyGameDataPY.GetIpyGameDataNotLog("HeroQualityAwake", quality, aLV):
|
| | | break
|
| | | awakeLVMax = aLV
|
| | | if setAwakeLV != None:
|
| | | awakeLV = min(setAwakeLV, awakeLVMax)
|
| | | if not IpyGameDataPY.GetIpyGameData("HeroQualityAwake", quality, awakeLV):
|
| | | #GameWorld.DebugAnswer(curPlayer, "觉醒等级不存在:%s 品质:%s" % (awakeLV, quality))
|
| | | awakeLV = 0
|
| | | else:
|
| | | awakeLV = awakeLVMax
|
| | | PlayerHero.SetHeroAwakeLV(heroItem, awakeLV, False)
|
| | | |
| | | doCnt = 0
|
| | | awakeRandCnt = singleItem.GetUserAttrCount(ShareDefine.Def_IudetHeroTalentIDAwakeRand)
|
| | | while awakeRandCnt and doCnt <= 10:
|
| | | doCnt += 1
|
| | | selectIndex = random.randint(0, awakeRandCnt - 1)
|
| | | itemIndex = heroItem.GetItemPlaceIndex()
|
| | | PlayerHero.doSelectAwakeTalent(curPlayer, itemIndex, selectIndex, False)
|
| | | awakeRandCnt = singleItem.GetUserAttrCount(ShareDefine.Def_IudetHeroTalentIDAwakeRand)
|
| | | |
| | | # 突破
|
| | | breakLVMax = 0
|
| | | for bLV in range(1, 100):
|
| | | if not IpyGameDataPY.GetIpyGameDataNotLog("HeroQualityBreak", quality, bLV):
|
| | | break
|
| | | breakLVMax = bLV
|
| | | if setBreakLV != None:
|
| | | breakLV = min(setBreakLV, breakLVMax)
|
| | | if not IpyGameDataPY.GetIpyGameData("HeroQualityBreak", quality, breakLV):
|
| | | #GameWorld.DebugAnswer(curPlayer, "突破等级不存在:%s 品质:%s" % (breakLV, quality))
|
| | | breakLV = 0
|
| | | else:
|
| | | breakLV = breakLVMax
|
| | | PlayerHero.SetHeroBreakLV(curPlayer, heroItem, breakLV, False)
|
| | | |
| | | # 星级
|
| | | starMax = PlayerHero.GetHeroStarMax(heroItem)
|
| | | if setStar != None:
|
| | | updStar = min(setStar, starMax)
|
| | | else:
|
| | | updStar = starMax
|
| | | PlayerHero.DoHeroUpdStar(curPlayer, heroItem, updStar, False)
|
| | | |
| | | # 等级
|
| | | lvMax = PlayerHero.GetHeroLVMax(heroItem)
|
| | | if setLV != None:
|
| | | updHeroLV = max(1, min(setLV, lvMax))
|
| | | else:
|
| | | updHeroLV = lvMax
|
| | | singleItem.SetUserAttr(ShareDefine.Def_IudetHeroLV, updHeroLV)
|
| | | |
| | | # 皮肤
|
| | | skinIDList = heroIpyData.GetSkinIDList()
|
| | | if setSkinID != None:
|
| | | if setSkinID not in skinIDList:
|
| | | GameWorld.DebugAnswer(curPlayer, "皮肤不存在:%s 品质:%s" % (heroID, setSkinID))
|
| | | return
|
| | | skinIndex = skinIDList.index(setSkinID)
|
| | | singleItem.SetUserAttr(ShareDefine.Def_IudetHeroSkin, skinIndex) |
| | | |
| | | heroItem.Sync_Item()
|
| | | PlayerOnline.GetOnlinePlayer(curPlayer).OnHeroItemUpate(heroItem) # GM修改阵容
|
| | | return
|