| | |
| | |
|
| | | #// A3 23 使用物品 #tagCMUseItems
|
| | | #
|
| | | #struct tagCMUseItemsSelect
|
| | | #{
|
| | | # DWORD SelectID; //选择项ID
|
| | | # WORD SelectCnt; //选择数
|
| | | #};
|
| | | #
|
| | | #struct tagCMUseItems
|
| | | #{
|
| | | # tagHead Head;
|
| | | # BYTE ItemIndex; //物品在背包中索引
|
| | | # WORD UseCnt; //使用个数,0表示全部使用
|
| | | # DWORD ExData; //使用扩展值, 默认0, 选择物品宝箱时发送选择的物品ID
|
| | | # BYTE SelectCount; //指定选择项,当批量使用单个箱子需要同时选中多种选项时使用该值
|
| | | # tagCMUseItemsSelect SelectList[SelectCount];
|
| | | #};
|
| | | def OnUseItems(index, packData, tick):
|
| | | curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
| | | itemIndex = packData.ItemIndex
|
| | | useCnt = packData.UseCnt
|
| | | exData = packData.ExData
|
| | | GameWorld.DebugLog("OnUseItems itemIndex=%s,useCnt=%s,exData=%s" % (itemIndex, useCnt, exData), curPlayer.GetPlayerID())
|
| | | selectDict = {}
|
| | | if packData.SelectCount:
|
| | | for selectInfo in packData.SelectList:
|
| | | selectDict[selectInfo.SelectID] = selectInfo.SelectCnt
|
| | | GameWorld.DebugLog("OnUseItems itemIndex=%s,useCnt=%s,exData=%s,selectDict=%s" % (itemIndex, useCnt, exData, selectDict), curPlayer.GetPlayerID())
|
| | | if selectDict:
|
| | | exData = selectDict
|
| | | GameWorld.DebugLog(" 使用多项选择,以多选为准! exData=%s" % exData)
|
| | | elif exData:
|
| | | GameWorld.DebugLog(" 使用单项选择,兼容旧模式! exData=%s" % exData)
|
| | |
|
| | | backPack = curPlayer.GetItemManager().GetPack(IPY_GameWorld.rptItem)
|
| | | curItem = backPack.GetAt(itemIndex)
|