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

[SoC] Ковыряемся в файлах


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

 

 

А как именно не работает ? Переключатель не становится активным ? Или что там у тебя происходит ?

Именно, не активен. И подсказка не появляется. Но я уже разобрался.

 

В секции

 

[ph_button@active]
on_info = {+generators_message_doctor_2} ph_button@activate

надо было дописать анимку и все заработало, как надо.


А кто пояснит, что такое в all.spawn секция с названием "breakable_object"? Есть еще "climable_object", но это вроде невидимый объект, чтобы ГГ мог забираться по вертикальным лестницам.

Сталкер - наше всё!

Ссылка на комментарий

Подскажите, как сделать чтобы арт не вешался на пояс?

belt = true/belt = false
в конфигах. Если именно это надо. dc

 

Да это оно, спасибо.

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

 

 

 

Ссылка на комментарий

Если нельзя, то возможно ли первый слот сделать равноценным для пистолетов, ПП, помповиков, автоматов? И если можно, то как?

На это кто-то выкладывал движковую правку.

Тутора нет, кол-во слотов и их (не)равнозначность зашиты в движок.

  • Согласен 1
Ссылка на комментарий

Вот еще вопрос назрел. В АМК были так называемые рюкзаки-схроны. Их можно было купить и в нужном месте выбросить, они превращались в обычный рюкзак, который невозможно обратно подобрать.

 

Собственно, вопрос: возможно ли их подбирать обратно/уничтожать совсем? Смысл: я эту фишку вытащил, и на нее метку повесил. Теперь рюкзак-схрон имеет метку, по которой его легко найти. Но идея состоит в следующем: если он мне в этом месте больше не нужен, как его обратно подобрать (или чтоб он вообще пропал, типа, хочешь в другом месте - покупай новый)?

Сталкер - наше всё!

Ссылка на комментарий

@AndreySol, вот функция спавна такого рюкзака:

function use_rukzak(pid)


local obj
local pos = db.actor:position()
obj = alife():create("m_inventory_box", pos, db.actor:level_vertex_id(), db.actor:game_vertex_id())
   if (obj) then
     local t = amk.get_invbox_data(obj)
     t.custom = "[logic]\ncfg = scripts\\treasure_inventory_box.ltx"
     amk.set_invbox_data(t, obj)
     level.map_add_object_spot_ser(obj.id, "my_treasure", "Мой тайник")
  end
end

 

 

А как его подобрать/уничтожить при наведении курсора? Там же выводится "Обыскать тайник"? А если мне нужно именно обыскать, а не убрать его совсем?


А вот еще вопросец: можно ли при обыске конкретного тайника выдавать подсказку не "Обыскать тайник", а при обыске пня, например, выводить "Обшарить пень", а при обыске рюкзака - "Обыскать рюкзак"? Аналогично при обыске сейфа и т.д. - выводить свое сообщение?

Сталкер - наше всё!

Ссылка на комментарий

@AndrewMor,

в scripts\\treasure_inventory_box.ltx меняешь tips на нужный текст

Это и ежу понятно. Я ж говорил, чтобы для разных тайников свою подсказку выдавать. Для пней - свою, для сейфов - свою. Ну и так далее. А если tips сменить - у всех тайников она опять же одинаковая будет.

Сталкер - наше всё!

Ссылка на комментарий

Всем добрый вечер.
 
Как отключить получение автоквеста при заходе на локацию? (По типу "Убить крововсоса на территории Тёмной Долины" и "Уничтожить лагерь разбойников на Дикой Территории") И можно ли это сделать без начала новой игры?
 
config\misc\task_manager.ltx:
; init_condition =

 

dc

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

"Хорошая болезнь - склероз: абсолютно ничего не болит и каждый день новости!"
"А я всё жду и жду твоих аргументов. Всё что я пока вижу - это классическое "Я Д'Артаньян..." (Carnby)
"Рожа обычная, её не выбирают!" (Дьяк)

Ссылка на комментарий

Теперь рюкзак-схрон имеет метку, по которой его легко найти. Но идея состоит в следующем: если он мне в этом месте больше не нужен, как его обратно подобрать

В bind_stalker.script


--// после строки
function actor_binder:take_item_from_box(box, item)
--// добавить
if box:is_inv_box_empty() and box:section()=="m_inventory_box" then
	level.start_stop_menu(level.main_input_receiver(), true)
	alife():create("treasure_item",box:position(),db.actor:level_vertex_id(),db.actor:game_vertex_id(),0)
	alife():release(alife():object(box:id()))
end
Вылетать будет. Как те "рюкзаки Кости". И вообще-то вопрос для более соседней темы, по тому как очень много букв, которые еще написать надо. На самом деле - "сбрасываемый рюкзак", только правильного я не видел еще. dc

 

В ОП-2 не вылетает. Все подбирается спокойно.

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

10.png

Ссылка на комментарий

@AndreySol, Здрасте. Я предполагал, что у них единая система в одном файле (именно скрипт, выдающий квест при заходе на локу). Я о заданиях по убийству кровососа в ТД, уничтожении лагеря бандитов на ДТ и так далее. 

"Хорошая болезнь - склероз: абсолютно ничего не болит и каждый день новости!"
"А я всё жду и жду твоих аргументов. Всё что я пока вижу - это классическое "Я Д'Артаньян..." (Carnby)
"Рожа обычная, её не выбирают!" (Дьяк)

Ссылка на комментарий

Это и ежу понятно. Я ж говорил, чтобы для разных тайников свою подсказку выдавать. Для пней - свою, для сейфов - свою. Ну и так далее. А если tips сменить - у всех тайников она опять же одинаковая будет.

При создании тайника указывай Файлы с разными подсказками.
Ссылка на комментарий

А теперь скажите мне, кто-нибудь: tips - это в данном случае вообще что ? И где ?

tips это параметр здесь:

[logic]

active = ph_idle@enable

[ph_idle@enable]

nonscript_usable = true

tips = st_search_treasure

А в игре, как уже сказали, подсказка при наведении прицела на объект. Изменено пользователем abramcumner
Ссылка на комментарий

Подскажите, как проверить переменную из другого скрипта

 

Имеется биндер, в нём переменная initialized изначально false

function mobile_binder:__init( obj ) super( obj )
        self.object      = obj
	self.initialized = false

Далее переменная становится true

function mobile_binder:update( delta )
	object_binder.update( self, delta )

	-- инициализация
	if (self.initialized) then
		_fp_manager.update()
		self:CreateSpawnProperties()
	else
	    self:DelChangerTeleport()
	    self.initialized = true
	end
	

Как проверить её во внешнем скрипте

	if (mobile_binder.initialized) = true then
		news_manager.send_tip(db.actor, "Существует!", nil, "nano", 5000)
--		_bind_mobile.mobile_binder:MmOpenMenu()                        -- вызов метода того-же скрипта, в котором переменная
	else
		news_manager.send_tip(db.actor, "Не существует!!!", nil, "nano", 5000)
	end

Вылет, причина: внешний скрипт - nil

 

 

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

Есть хабар - пойдёт базар :az1000106:

Ссылка на комментарий

Кроме того, проверкой во внешнем скрипте

if (mobile_binder.initialized) == true then 

ищется переменная initialized в модуле mobile_binder.script (может не быть модуля, либо переменной в нём - отсюда и ссылка на nil), в то время как здесь

function mobile_binder:__init( obj ) super( obj )
        self.object      = obj
	self.initialized = false 

значение присваивается свойству экземпляра класса mobile_binder, а не переменной скриптового модуля.

Для правильной проверки надо во внешнем скрипте сначала получить доступ к этому экземпляру класса, а затем уже читать его свойства.

  • Спасибо 1
Ссылка на комментарий
во внешнем скрипте сначала получить доступ к этому экземпляру класса

По русски - это выглядит так:

 

 В биндере пишите

 

local mobile = nil

function get_mobile_binder()
if mobile == nil then
mobile = mobile_binder()
end
return mobile
end
 
Во внешнем скрипте пишите
 
local mobile = mobile_binder.get_mobile_binder() -- mobile_binder - это имя файла, где находится класс                                                                                --mobile_binder
 
И только после получения доступа пишите
 
if (mobile.initialized) == true then 
Изменено пользователем makdm
  • Спасибо 1
Ссылка на комментарий

@makdm, не всё так однозначно.

Этот пример годится только в том случае, если биндер один и инициализируется один раз. А если много и если один экземпляр может быть в данный момент времени инициализирован, а другой - нет? Яркий пример - биндеры любых множественных объектов в игре, таких как НПС, монстры, аномалии и т. д.

Файлов ТЧ под рукой нет, но подозреваю, что mobile_binder относится как раз к такому типу. В таком случае надо начинать плясать от конкретного объекта.

Ссылка на комментарий

 

 

В таком случае надо начинать плясать от конкретного объекта.

Я вообще-то в своих скриптах  "пляшу" всегда от обратного.

Т.е. я не беру переменную из биндера, а наоборот биндер передаёт нужную мне переменную в мой скрипт.

А уже скрипт обрабатывает её и выполняет те или иные действия.

Ссылка на комментарий

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

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