Как удалив задания Лукаша и Воронина, избежать их повторного выполнения?
Вопрос
Как удалив задания Лукаша и Воронина, избежать их повторного выполнения?
Ответ
Чтобы предотвратить повторное выполнение заданий после их завершения, можно добавить дополнительный код в скрипт. Например, вы можете использовать функцию для удаления связанных предметов и уведомлений после завершения задачи. Вот пример того, как это можно сделать:
```lua
if task_desc.status == 'completed' and task_desc.parent == parent then
--' Забираем у игрока квестовый предмет.
local can_finish = true
if task_desc.type == 'artefact' or task_desc.type == 'monster_part' or task_desc.type == 'find_item' then
local rem_item = db.actor:object(task_desc.target)
if rem_item == nil then
can_finish = false
else
local se_obj = alife():object(rem_item:id())
if se_obj then
alife():release(se_obj, true)
news_manager.relocate_item(db.actor, 'out', task_desc.target)
end
end
end
-- Удаляем связанные предметы и уведомления.
local removeTask = function(task)
if db.task:object(task) then
alife():release(db.task:object(task), true)
db.task:remove_object(task)
news_manager.remove_task(task, task_desc.parent)
end
end
-- Удаляем задания Лукаша и Воронина.
removeTask('LukaTask1')
removeTask('LukaTask2')
removeTask('VoroninTask1')
removeTask('VoroninTask2')
if can_finish == true then
self.task_info[v].status = 'rewarded'
end
end
Замените LukaTask1, LukaTask2 и другие на реальные ID заданий, которые вы хотите удалить.