hxp
2025-12-31 46dbf29a22bd25d8e9c6ea4c34fea35a4828d712
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_MainLevel.py
@@ -228,6 +228,13 @@
        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
        
@@ -368,7 +375,7 @@
#    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):
@@ -381,6 +388,8 @@
        __doEquipMainEquip(curPlayer, itemIndexList, opValue)
    elif opType == 1:
        __doDecomposeMainEquip(curPlayer, itemIndexList)
    elif opType == 3: # 结算未掉落物品
        __doMainDrop(curPlayer, [])
    else:
        __doPickupMainItem(curPlayer, itemIndexList)