Перейти к контенту

Скриптование


Svoboда

Рекомендуемые сообщения

Люди, прошу помощи с одним скриптом. Бывалым скриптерам это труда не доставит.

Суть скрипта в чём: мне нужно принести Сидоровичу один из артефактов: Выверт или Грави. За это он мне 1500 даёт. Если у игрока только Выверт - Сидор забирает Выверт, если только Грави - забирает Грави. Если и то, и другое - забирает Выверт. Проблема вот в чём: Сидор забирает у меня Грави, хотя его у меня нет в инвентаре, но есть Выверт, который так и остаётся в рюкзаке. Помимо этого он даёт 1500, получается, что ни за что. Помогите исправить эту проблему, пожалуйста. Вот код:

function give_esc_art(first_speaker, second_speaker)
    local artefact=first_speaker:object("af_vyvert")
    if artefact==nil then dialogs.relocate_item_section(second_speaker, "af_gravi", "out")
    else dialogs.relocate_item_section(second_speaker, "af_vyvert", "out")
    end
    dialogs.relocate_money(second_speaker, 1500, "in")
end

Заранее спасибо.

Поделиться этим сообщением


Ссылка на сообщение

Увы, помогло только частично. Теперь Сидорович забирает нужный артефакт (Выверт), но он всё ещё остаётся в рюкзаке.
 
А, проблема в самой функции relocate_item_section. Я посмотрел скрипт, отвечающий за передачу водки механику "Свободы" - там функция relocate_item. Хотя она указана, как устаревшая. Я посмотрел функцию relocate_item_section, и в ней есть пометка, что она перемещает только квестовые предметы. Вот функция:

function relocate_item_section(victim, section, type)
	if db.actor and victim then
		if type == "in" then

			--' Трансферить нужно только квестовые предметы.
			if quest_section[section] == true and
			   victim:object(section) ~= nil 
			then
				victim:transfer_item(victim:object(section), db.actor)
			else
				alife():create(section,	
					    db.actor:position(),
						db.actor:level_vertex_id(),	
						db.actor:game_vertex_id(),
						db.actor:id())
			end
		elseif type == "out" then
			db.actor:transfer_item(db.actor:object(section), victim)
		end
		news_manager.relocate_item(db.actor, type, section)
	end
end

 


Наверное, из-за этого артефакт из моего рюкзака и не отбирается. Может, кто-нибудь подскажет, как сделать эту функцию универсальной, то есть не только квестовые предметы перетаскивать?

 

Напоминаю: портянки убираем под спойлер. Kirgudu

Изменено пользователем Kirgudu

Поделиться этим сообщением


Ссылка на сообщение

Я в скриптах пока не очень понимаю, только если по шаблону писать. То есть этот скрипт на перемещение предметов подойдёт на ТЧ 1.0006?

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...