| | |
| | |
|
| | | import ChConfig
|
| | | import GameWorld
|
| | | import ChPyNetPack
|
| | | import ChPyNetSendPack
|
| | | import NetPackCommon
|
| | | import TurnAttack
|
| | | import BattleObj
|
| | | import TurnBuff
|
| | |
|
| | | FactionList = [1, 2]
|
| | |
|
| | |
| | | # @remarks 函数详细说明.
|
| | | def OnExec(curPlayer, msgList):
|
| | | if not msgList:
|
| | | GameWorld.DebugAnswer(curPlayer, "发起战斗: TurnFight mapID [lineID 玩家ID]")
|
| | | GameWorld.DebugAnswer(curPlayer, "设置属性: TurnFight a 属性ID 值 [阵营 位置] ")
|
| | | GameWorld.DebugAnswer(curPlayer, "击杀目标: TurnFight k 阵营 [位置 ...] ")
|
| | | GameWorld.DebugAnswer(curPlayer, "添加buff: TurnFight b 阵营 位置 buff归属阵营 位置 技能ID [ID ...]")
|
| | | GameWorld.DebugAnswer(curPlayer, "输出明细: TurnFight p [阵营 位置] ")
|
| | | GameWorld.DebugAnswer(curPlayer, "阵营: 1-左边;2-右边")
|
| | | GameWorld.DebugAnswer(curPlayer, "位置: 1~6号位")
|
| | |
| | | __doSetAttr(curPlayer, msgList)
|
| | | elif value == "k":
|
| | | __doKillObj(curPlayer, msgList)
|
| | | elif value == "b":
|
| | | __doAddBuff(curPlayer, msgList)
|
| | | elif value == "p":
|
| | | __printInfo(curPlayer, msgList)
|
| | | |
| | | elif value > 0 and value != ChConfig.Def_FBMapID_Main:
|
| | | __reqTurnFight(curPlayer, msgList)
|
| | | return
|
| | |
|
| | | def __reqTurnFight(curPlayer, msgList):
|
| | | mapID = msgList[0]
|
| | | funcLineID = msgList[1] if len(msgList) > 1 else 0
|
| | | tagPlayerID = msgList[2] if len(msgList) > 2 else 0
|
| | | clientData = ChPyNetPack.tagCMTurnFight()
|
| | | clientData.MapID = mapID
|
| | | clientData.FuncLineID = funcLineID
|
| | | clientData.TagType = 0 if not tagPlayerID else 1
|
| | | clientData.TagID = tagPlayerID
|
| | | index = curPlayer.GetIndex()
|
| | | tick = GameWorld.GetGameWorld().GetTick()
|
| | | if not TurnAttack.OnTurnFight(index, clientData, tick):
|
| | | GameWorld.DebugAnswer(curPlayer, "请求失败,详见服务器日志!")
|
| | | return
|
| | |
|
| | | def __doSetAttr(curPlayer, msgList):
|
| | | ## 设置属性
|
| | | attrID = msgList[1] if len(msgList) > 1 else 1
|
| | | attrValue = msgList[2] if len(msgList) > 2 else 1
|
| | | faction = msgList[3] if len(msgList) > 3 else 1
|
| | | posNum = msgList[4] if len(msgList) > 4 else 1
|
| | | attrValue = msgList[2] if len(msgList) > 2 else 1 |
| | | faction = msgList[3] if len(msgList) > 3 else 0
|
| | | pNum = msgList[4] if len(msgList) > 4 else 0
|
| | |
|
| | | if faction not in FactionList:
|
| | | GameWorld.DebugAnswer(curPlayer, "阵营: 1-左边;2-右边")
|
| | | factionList = [faction] if faction else FactionList
|
| | | |
| | | if attrID not in ChConfig.AttrIDList:
|
| | | GameWorld.DebugAnswer(curPlayer, "不存在该属性ID:%s" % (attrID))
|
| | | return
|
| | |
|
| | | mainFightMgr = TurnAttack.GetMainFightMgr(curPlayer)
|
| | |
| | | if not turnFight.isInFight():
|
| | | GameWorld.DebugAnswer(curPlayer, "主线非战斗中")
|
| | | return
|
| | | batFaction = turnFight.getBatFaction(faction)
|
| | | batLineup = batFaction.getBatlineup(1)
|
| | | objID = batLineup.posObjIDDict.get(posNum)
|
| | | batObj = None
|
| | | |
| | | GameWorld.DebugAnswer(curPlayer, "----- 设置属性 -----")
|
| | | |
| | | batObjMgr = BattleObj.GetBatObjMgr()
|
| | | if objID:
|
| | | batObj = batObjMgr.getBatObj(objID)
|
| | | if not batObj:
|
| | | GameWorld.DebugAnswer(curPlayer, "不存在该战斗对象:阵营:%s,位置:%s" % (faction, posNum))
|
| | | return
|
| | | if not batObj.IsAlive():
|
| | | GameWorld.DebugAnswer(curPlayer, "该对象已被击杀:阵营:%s,位置:%s" % (faction, posNum))
|
| | | return
|
| | | |
| | | if attrID not in ChConfig.AttrIDList:
|
| | | GameWorld.DebugAnswer(curPlayer, "不存在该属性ID:%s" % (attrID))
|
| | | return
|
| | | |
| | | objName = TurnAttack.GetObjName(batObj)
|
| | | GameWorld.DebugAnswer(curPlayer, "%s" % (objName))
|
| | | batObj.GMSetBatAttr(attrID, attrValue)
|
| | | if attrID == ChConfig.AttrID_HP:
|
| | | GameWorld.DebugAnswer(curPlayer, "设置生命:%s/%s" % (batObj.GetHP(), batObj.GetMaxHP()))
|
| | | elif attrID == ChConfig.AttrID_XP:
|
| | | GameWorld.DebugAnswer(curPlayer, "设置怒气:%s" % (batObj.GetXP()))
|
| | | else:
|
| | | GameWorld.DebugAnswer(curPlayer, "设置属性ID:%s,V=%s" % (attrID, attrValue))
|
| | | |
| | | for faction in factionList:
|
| | | if faction not in FactionList:
|
| | | GameWorld.DebugAnswer(curPlayer, "阵营: 1-左边;2-右边")
|
| | | continue
|
| | | batFaction = turnFight.getBatFaction(faction)
|
| | | batLineup = batFaction.getBatlineup(1)
|
| | | posNumList = [pNum] if pNum else batLineup.posObjIDDict.keys()
|
| | | for posNum in posNumList:
|
| | | objID = batLineup.posObjIDDict.get(posNum)
|
| | | batObj = batObjMgr.getBatObj(objID)
|
| | | if not batObj:
|
| | | GameWorld.DebugAnswer(curPlayer, "对象不存在:阵营:%s,位置:%s" % (faction, posNum))
|
| | | continue
|
| | | if not batObj.IsAlive():
|
| | | GameWorld.DebugAnswer(curPlayer, "对象已阵亡:阵营:%s,位置:%s" % (faction, posNum))
|
| | | continue
|
| | | objName = TurnAttack.GetObjName(batObj)
|
| | | GameWorld.DebugAnswer(curPlayer, "%s" % (objName))
|
| | | batObj.GMSetBatAttr(attrID, attrValue)
|
| | | if attrID == ChConfig.AttrID_HP:
|
| | | GameWorld.DebugAnswer(curPlayer, "设置生命:%s/%s" % (batObj.GetHP(), batObj.GetMaxHP()))
|
| | | elif attrID == ChConfig.AttrID_XP:
|
| | | GameWorld.DebugAnswer(curPlayer, "设置怒气:%s" % (batObj.GetXP()))
|
| | | else:
|
| | | GameWorld.DebugAnswer(curPlayer, "设置属性ID:%s,V=%s" % (attrID, attrValue))
|
| | | return
|
| | |
|
| | | def __doKillObj(curPlayer, msgList):
|
| | |
| | | continue
|
| | | batObj = batObjMgr.getBatObj(objID)
|
| | | if not batObj:
|
| | | GameWorld.DebugAnswer(curPlayer, "不存在该战斗对象:阵营:%s,位置:%s" % (faction, posNum))
|
| | | GameWorld.DebugAnswer(curPlayer, "对象不存在:阵营:%s,位置:%s" % (faction, posNum))
|
| | | continue
|
| | | if not batObj.IsAlive():
|
| | | GameWorld.DebugAnswer(curPlayer, "该对象已被击杀:阵营:%s,位置:%s" % (faction, posNum))
|
| | | GameWorld.DebugAnswer(curPlayer, "对象已阵亡:阵营:%s,位置:%s" % (faction, posNum))
|
| | | continue
|
| | | GameWorld.DebugAnswer(curPlayer, "击杀: %s" % TurnAttack.GetObjName(batObj))
|
| | | TurnAttack.SetObjKilled(turnFight, batObj)
|
| | |
| | | NetPackCommon.SendFakePack(curPlayer, clientPack)
|
| | | return
|
| | |
|
| | | def __doAddBuff(curPlayer, msgList):
|
| | | faction = msgList[1] if len(msgList) > 1 else 2
|
| | | posNum = msgList[2] if len(msgList) > 2 else 1
|
| | | ownerFaction = msgList[3] if len(msgList) > 3 else faction
|
| | | ownerPosNum = msgList[4] if len(msgList) > 4 else posNum
|
| | | skillIDList = msgList[5:]
|
| | | if faction not in FactionList:
|
| | | GameWorld.DebugAnswer(curPlayer, "阵营: 1-左边;2-右边")
|
| | | return
|
| | | mainFightMgr = TurnAttack.GetMainFightMgr(curPlayer)
|
| | | turnFight = mainFightMgr.turnFight
|
| | | if not turnFight.isInFight():
|
| | | GameWorld.DebugAnswer(curPlayer, "主线非战斗中")
|
| | | return
|
| | | |
| | | batObjMgr = BattleObj.GetBatObjMgr()
|
| | | batFaction = turnFight.getBatFaction(faction)
|
| | | batLineup = batFaction.getBatlineup(1)
|
| | | objID = batLineup.posObjIDDict.get(posNum)
|
| | | batObj = batObjMgr.getBatObj(objID)
|
| | | if not batObj:
|
| | | GameWorld.DebugAnswer(curPlayer, "对象不存在:阵营:%s,位置:%s" % (faction, posNum))
|
| | | return
|
| | | if not batObj.IsAlive():
|
| | | GameWorld.DebugAnswer(curPlayer, "对象已阵亡:阵营:%s,位置:%s" % (faction, posNum))
|
| | | return
|
| | | |
| | | ownerFaction = turnFight.getBatFaction(ownerFaction)
|
| | | ownerLineup = ownerFaction.getBatlineup(1)
|
| | | ownerID = ownerLineup.posObjIDDict.get(ownerPosNum)
|
| | | buffOwner = batObjMgr.getBatObj(ownerID)
|
| | | if not buffOwner:
|
| | | GameWorld.DebugAnswer(curPlayer, "对象不存在:阵营:%s,位置:%s" % (ownerFaction, ownerPosNum))
|
| | | return
|
| | | if not buffOwner.IsAlive():
|
| | | GameWorld.DebugAnswer(curPlayer, "对象已阵亡:阵营:%s,位置:%s" % (ownerFaction, ownerPosNum))
|
| | | return
|
| | | |
| | | for skillID in skillIDList:
|
| | | addBuff = TurnBuff.DoAddBuffBySkillID(turnFight, batObj, skillID, buffOwner)
|
| | | if addBuff:
|
| | | GameWorld.DebugAnswer(curPlayer, "添加buff成功!skillID=%s,buffID=%s" % (skillID, addBuff.GetBuffID())) |
| | | else:
|
| | | GameWorld.DebugAnswer(curPlayer, "添加buff失败!skillID=%s" % (skillID))
|
| | | return
|
| | |
|
| | | def __printInfo(curPlayer, msgList):
|
| | | ## 输出信息
|
| | | faction = msgList[1] if len(msgList) > 1 else 0
|