function I4530110_Use(MapID, InstanceID, TypeID, TargetID) -- Get the number of items in inventory local num = role.GetRoleItemNum(TargetID, 4530110) if num and num > 0 then -- Разбиваем обработку на чанки по 100 предметов local chunkSize = 1000 while num > 0 do local chunk = math.min(num, chunkSize) -- Обрабатываем текущий чанк for i = 1, chunk do role.ModRoleAttValue(MapID, InstanceID, TargetID, 107, 10) end -- Удаляем обработанные предметы role.RemoveFromRole(MapID, InstanceID, TargetID, 4530110, chunk, 101) -- Уменьшаем оставшееся количество num = num - chunk end end end -- Регистрируем событие для предмета aux.RegisterItemEvent(4530110, 1, "I4530110_Use")