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

Внимание. На форуме проводятся технические работы с боковым меню.

_Val_ _Val_

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


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

@AndrewMor, вот соляночная функция для спауна вещей кому угодно:

function spawn_item_in_inv(spawn_item,npc)
	if not npc then 
		npc = db.actor 
	end
	local item = alife():create(spawn_item, 
		npc:position(),
		npc:level_vertex_id(),  
		npc:game_vertex_id(),
		npc:id())
	
	if npc:id() ~= db.actor:id() then
		-- Фикс пропадания доспавненного предмета при сейв/лоаде
		level.client_spawn_manager():add(item.id, -1, fix_spawn_item_in_inv, npc)  -- Калбек на выход item в онлайн
	end

	return item
end

Комментарием отмечен тот самый трюк, что бы не пропадало. Вместо

alife():create( "access_card", vector(), 0, 0, obj.id )

сделай

spawn_item_in_inv( "access_card", obj )

Не знаю, какой баг таким образом обходится, но работает.

@AndrewMor, если при спавне предмета в инвентарь объекта объект находится в онлайне, то нужно либо поместить объект в оффлайн до выхода в онлайн заспавненного предмета, а через небольшое время вернуть обратно в онлайн. Либо после выхода в онлайн предмета сделать трансфер его из объекта в тот же объект - как-бы сымитировать, что он там не сам появился, а его туда положили.

Такой глюк движка...

@dsh, забыл написать функцию fix_spawn_item_in_inv - сам каллбэк, в котором происходит трансфер.

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

Аддон для ОП-2.09.2: Яндекс/Google/GitHub/Тема на AP-PRO

naxac.gif

ой, точно, забыл. Привык к анонимным функциям и даже не посмотрел.

 

@AndrewMor, вот она

function fix_spawn_item_in_inv(npc, id, item)
    npc:transfer_item(item, npc)
end

 

 

вот соляночная функция для спауна вещей кому угодно:

Кому угодно - это очень хорошо. Но мой случай - inventory_box. Для ящика будет работать?

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

Здравствуйте. Сделал все, как написано в http://www.amk-team.ru/forum/topic/6458-uroki-po-modostroeniiu/?p=634638,  для отображения на экране сообщений о смерти сталкеров. Вот что получилось: http://s019.radikal.ru/i601/1606/5d/05dda1fdb5cb.png  Подскажите пожалуйста  как исправить, чтобы правильно отображалось. 

@Пруткоф, сохрани файл своего скрипта в другой кодировке (1251, например).

Изменено пользователем varan
  • Спасибо 1

Подскажите пожалуйста, можно ли сделать, чтобы сообщение о смерти сталкеров приходили не мгновенно, а с задержкой. Если да, то как?

Кидать эти сообщения в некий буфер, добавляя туда сведения о времени, когда сообщение заброшено в этот буфер.

А на апдейте (можно не каждом, а раз в сколько-то секунд), перебирать этот буфер, достаточно старые сообщения выводить на экран и удалять из буфера.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine / Мимокрокодил.

Я понял что моя старая подпись что-то нарушает. Удалил все ссылки.

 

 

Подскажите пожалуйста, можно ли сделать, чтобы сообщение о смерти сталкеров приходили не мгновенно, а с задержкой. Если да, то как?

 

Очень просто. У news_manager.send_tip() есть параметры, один из них  - задержка отправки с секундах( игрового времени или реального не помню). Один минус - сообщения будут без звука но это легко компенсировать добавляя play_snd_no_feedback() или что-то подобное...

 

Или перепеши send_tip под себя...

 

Ну итог - ничего сложного нет :)

  • Спасибо 1

Не соответствует правилам.

Добрый вечер. В каком файле, по возможности можно указать и функцию, происходит открытие другого меню, например при нажатии "Опции" или "Титры"? 

З.ы. Поковыряв AMK, так и не нашел, как у них сделано открытие нового меню, с опциями.

 

 

чтобы сообщение о смерти сталкеров приходили не мгновенно, а с задержкой.

Просто не использовать этот скрипт. 

Отношения между людьми- главная ценность в человеческом обществе.
Любая полученная информация- это только повод для размышлений, а не побуждение к действию.
Это должен знать каждый: уроки боевой подготовки Дяди Саши https://yadi.sk/d/60Ec2B06goLAE
Накопано и накнопано:https://yadi.sk/d/mzVY5jQEspwpt

Очень просто. У news_manager.send_tip() есть параметры, один из них  - задержка отправки с секундах.

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

 

function send_tip(actor, news_id, timeout, sender, showtime, sender_id)

if news_id == nil then return false end

 

printf("try to send tips for [%s]", tostring(sender_id))

if sender_id ~= nil then

local sim = alife()

if sim ~= nil then

local npc = sim:story_object(sender_id)

if npc ~= nil then

if npc.online then

--в онлайне проверяем на раненность

if xr_wounded.is_heavy_wounded_by_id(npc.id) then

printf("[PDA]Cannot send tips [%s], sender is heavy wounded", tostring(news_id))

return false

end

end

-- в других случаях только на смерть

if npc:alive() == 1 then

printf("[PDA]Cannot send tips [%s], sender is dead", tostring(news_id))

return false

end

end

end

end

 

if timeout == nil then timeout = 0 end

if showtime == nil then showtime = 5000 end

 

@Пруткоф, это аргумент timeout. Изменено пользователем naxac
  • Нравится 1
  • Полезно 1

Аддон для ОП-2.09.2: Яндекс/Google/GitHub/Тема на AP-PRO

naxac.gif

Всем привет! Какие файлы задействуются при новом разделе в ПДА? Хочу сделать правку для ТТ2, чтоб предложения торгашей и НПС вроде Захара и Мазая отображались в соответствующей вкладке

  • Нравится 1

Благодарю тебя, Зона-матушка, за то что одарила и за то что выпустила. Если что не так-не по злобе мы, а по глупости

Сергей Клочков. " Лунь"

 

 

Всем привет! Какие файлы задействуются при новом разделе в ПДА? Хочу сделать правку для ТТ2, чтоб предложения торгашей и НПС вроде Захара и Мазая отображались в соответствующей вкладке

 

Ничего не понял. О каком новом разделе в ПДА идет речь? В ТТ2 нет ничего подобного...


@Пруткоф, timeout можно делать интересным образом - а именно рандомным значение( мол пока смерть обработаеться, в БД запишеться...)

 

local timeout_random = math.random(20,40)

 

Как то так...

Не соответствует правилам.

@CRAZY_STALKER666, вот именно что нет, а я хочу чтоб было :)  Помнишь как в Солянке-после разговора с НПС в ПДА-журнале в разделе предложения торговцев появляется типа его прайс-лист, например Кузнецов меняет водку на то то и то то, Сидор арты взамен того и того. Вот и хочу правку сделать для ТТ2 аналогичную правочку 

@Eugen81, у меня есть такая, не нашел там про ПДА. Ладно, погуглю :)

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

Благодарю тебя, Зона-матушка, за то что одарила и за то что выпустила. Если что не так-не по злобе мы, а по глупости

Сергей Клочков. " Лунь"

Вопрос такой. Требуеться сделать игнорирование боя(полное) для НПЦ под определенной схемой. Вроде всё просто, но combat_ignore_cond = always

почему то не работает, хотя стоит на своем месте...

Даже экзотика типа combat_ignore_cond =  {!fighting_actor} не помогает...

 

Вот такую логику пробовал - толку считай нет...

 

 

[logic]
active = walker@1


[walker@1]
path_walk = bandit_svita_1
path_look = killer_leader_walk
danger = danger_condition@1

[danger_condition@1]
ignore_distance = 10
ignore_distance_corpse = 10
ignore_distance_sound = 10

 

Не соответствует правилам.

@CRAZY_STALKER666,  а у тебя в логике присутствует просто "combat_ignore = что-то"? Если я правильно помню, то без наличия combat_ignore, combat_ignore_cond просто не обрабатывается. Притом, что указано в combat_ignore, кажется, значения не имеет.

 

У меня еще сложилось впечатление, если я правильно помню, что оно там немножко поломано. Я это дело довольно сильно менял. Хотя могу и ошибаться.

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

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

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

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

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

Войти

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

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

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