Para agrupar os itens coletados pelo autoloot, você pode adicionar um loop para percorrer os itens coletados e verificar se há itens semelhantes. Se houver, você pode somar suas quantidades e removê-los da lista de itens coletados. Em seguida, adicione o item agrupado à lista de itens agrupados.
function auto_loot {
check_items
local old_IFS=$IFS
IFS=$'\n'
local items=($(printf '%s\n' "${item_list[@]}" | sort))
local grouped_items=()
for item in "${items[@]}"; do
local name=${item%% *}
local qty=${item#* }
local sum_qty=$qty
for ((i=0; i<${#grouped_items[@]}; i++)); do
local g_name=${grouped_items[$i]%% *}
local g_qty=${grouped_items[$i]#* }
if [[ $name == $g_name ]]; then
sum_qty=$((qty + g_qty))
grouped_items[$i]="$name $sum_qty"
break
fi
done
if [[ $sum_qty -eq $qty ]]; then
grouped_items+=("$name $qty")
fi
done
IFS=$old_IFS
for item in "${grouped_items[@]}"; do
local name=${item%% *}
local qty=${item#* }
loot $name $qty
done
}
-
O loop
for item in "${items[@]}"percorre cada item coletado e verifica se há itens semelhantes na listagrouped_items. -
O loop interno
for ((i=0; i<${#grouped_items[@]}; i++))percorre cada item agrupado e verifica se há um item semelhante. -
Se um item semelhante for encontrado, sua quantidade é somada à quantidade do item coletado atual, e o item coletado é removido da lista de itens coletados.
-
Se nenhum item semelhante for encontrado, o item coletado é adicionado à lista de itens agrupados.
-
Após o loop, a lista de itens agrupados é percorrida e cada item é coletado usando a função
loot.


info
Grupo: Campones
Registrado: 19/09/20
Posts: 13
Reputação: +1
bom o problema é o seguinte, eu peguei um autoloot no forum e ele funciona 100%
mas ele não agrupa os items coletados. gostaria de uma ajuda nesse problema! quem poder ajudar já agradeço! ❤️
este é o script responsavel pela coleta!