| | |
| | | bossType = npcData.GetBossType()
|
| | | bossTypeList.append(bossType)
|
| | |
|
| | | # 支持未击杀结算掉落,防止一次性掉太多导致玩家一直堆积未结算的掉落,前端在掉落背包满处理完后会补发一次请求处理未结算掉落
|
| | | if not bossTypeList:
|
| | | bossType = 0 # 默认小怪
|
| | | bossTypeList = [bossType]
|
| | | GameWorld.DebugLogEx("未击杀结算掉落默认按小怪掉落! bossTypeList=%s" % bossTypeList)
|
| | | |
| | | for bossType in bossTypeList:
|
| | | if bossType in bossTypeDropRateDict:
|
| | | continue
|
| | |
|
| | |
| | | # tagHead Head;
|
| | | # BYTE Count;
|
| | | # WORD IndexList[Count]; // 掉落背包中的物品格子索引列表
|
| | | # BYTE OPType; // 0 - 拾取非装备物品;1 - 分解;2 - 穿戴/替换;
|
| | | # BYTE OPType; // 0 - 拾取非装备物品;1 - 分解;2 - 穿戴/替换;3-结算未掉落物品;
|
| | | # BYTE OPValue; // 操作额外指令值,由操作类型决定,如穿戴时可发送穿戴后是否自动分解
|
| | | #};
|
| | | def OnMainDropItemOP(index, clientData, tick):
|
| | |
| | | __doEquipMainEquip(curPlayer, itemIndexList, opValue)
|
| | | elif opType == 1:
|
| | | __doDecomposeMainEquip(curPlayer, itemIndexList)
|
| | | elif opType == 3: # 结算未掉落物品
|
| | | __doMainDrop(curPlayer, [])
|
| | | else:
|
| | | __doPickupMainItem(curPlayer, itemIndexList)
|
| | |
|