dsh 3 824 Опубликовано 27 Мая 2017 Поделиться Опубликовано 27 Мая 2017 @HellRatz, в смысле? Что-то типа такого? local s_box = alife():story_object( my_super_uniq_story_id ) local box = level.object_by_id( s_box.id ) db.actor:iterate_inventory( function( npc, item ) db.actor:trasfer_item( item, box ) end, db.actor ) local s_box = alife():story_object( my_super_uniq_story_id ) local box = level.object_by_id( s_box.id ) db.actor:iterate_inventory( function( npc, item ) db.actor:trasfer_item( item, box ) end, db.actor ) По памяти писал. Никаких проверок, типа у нашли-ли мы этот ящик и т.п., нет, а стоит добавить. 1 dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
HellRatz 2 892 Опубликовано 27 Мая 2017 Поделиться Опубликовано 27 Мая 2017 dsh писал(а): Что-то типа такого? Возможно. Надо проверять. Если при выполнении этой функции все предметы из рюкзака просто перелетают в именной ящик который точно есть, то да, оно самое. GTA 3 MAP X-Ray | NFS U:2 MAP X-Ray | RTCW MAP X-Ray | L2D | Раритетные моды на моем облаке — на память о былом. Ссылка на комментарий
Fagot. 400 Опубликовано 28 Мая 2017 Поделиться Опубликовано 28 Мая 2017 @HellRatz, function nah_shmotki(actor, npc) -- news_manager.send_tip(db.actor, "Определили схрон", nil, nil, 10000) inv_box_1 = level_object_by_sid (99984) out_object = actor in_object = inv_box_1 if in_object then -- news_manager.send_tip(db.actor, "Кидаем барахло", nil, nil, 20000) end actor:inventory_for_each(transfer_object_item) endfunction nah_shmotki(actor, npc) -- news_manager.send_tip(db.actor, "Определили схрон", nil, nil, 10000) inv_box_1 = level_object_by_sid (99984) out_object = actor in_object = inv_box_1 if in_object then -- news_manager.send_tip(db.actor, "Кидаем барахло", nil, nil, 20000) end actor:inventory_for_each(transfer_object_item) end 1 С.Т.А.Л.К.Е.Р. - Равновесие-2 Проект виртуальной реконструкции г.Припять. Ссылка на комментарий
276951438 31 Опубликовано 28 Мая 2017 Поделиться Опубликовано 28 Мая 2017 (изменено) Здравствуйте. ТЧ. НС 2016Есть ли возможность заспавнить именной ПДА Меченого из скрытой секции(который был у него на старте), если он был удален или выброшен ? Допустим, вернуть его невозможно, тогда вот что: можно как-то скриптом в нет-пакет заспавненного актеру левого скрытого ПДА любого непися записать характер ГГ ? Изменено 28 Мая 2017 пользователем 276951438 Обитаю в деревне новичков. За медузами хожу к ЧАЭС. Ссылка на комментарий
CRAZY_STALKER666 36 Опубликовано 31 Мая 2017 Поделиться Опубликовано 31 Мая 2017 Забежал на форум спустя пол года - вдруг интересно стало.Один и тот же НПЦ, при неизменяемых параметрах спавна (т.е прописал спавн непися и больше файлы игры не трогал) появляется то в одном месте, то в другом. Причем такая "аномальщина" замечена только для тех, у кого точки walk\look находятся на территории бара(именно подвал). Быть может, у кого догадки есть? Просто спустя пол года от релиза Эпилога мне вдруг интересно стало, где я накосячил( Не соответствует правилам. Ссылка на комментарий
Fagot. 400 Опубликовано 31 Мая 2017 Поделиться Опубликовано 31 Мая 2017 @CRAZY_STALKER666, возможно, проблема в аи-сетке. Попробуй поменять координаты walk и look, перенеси их наверх и посмотри, что получится. С.Т.А.Л.К.Е.Р. - Равновесие-2 Проект виртуальной реконструкции г.Припять. Ссылка на комментарий
CRAZY_STALKER666 36 Опубликовано 31 Мая 2017 Поделиться Опубликовано 31 Мая 2017 Fagot. писал(а): Попробуй поменять координаты walk и look, Менял, переносил. Толку нет) Не соответствует правилам. Ссылка на комментарий
Graff46 598 Опубликовано 31 Мая 2017 Поделиться Опубликовано 31 Мая 2017 Заспавненый в ящик предмет пропадает после перезагрузки игры, респавнер ящика удалён, в чём может быть дело? Ссылка на комментарий
dsh 3 824 Опубликовано 31 Мая 2017 Поделиться Опубликовано 31 Мая 2017 @Graff46, в момент спауна ящик в онлайне был? dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
Graff46 598 Опубликовано 31 Мая 2017 Поделиться Опубликовано 31 Мая 2017 dsh писал(а): в момент спауна ящик в онлайне был? Нет, но если придти к ящику сразу, то предмет в нём будет, а если после разговора, из которого вызывается спавн в ящик предмета, сохраниться и выйти из игры, а потом загрузится, то предмета в ящике не будет. Ссылка на комментарий
naxac 2 447 Опубликовано 1 Июня 2017 Поделиться Опубликовано 1 Июня 2017 (изменено) @Graff46, ящики, которые находятся в спавне, всегда в онлайне, т.к. у них нет флагов перехода в оффлайн в object_flags. Чтобы пофиксить - после спавна предмета и выхода его в онлайн сделай трансфер этого предмета из ящика в тот же ящик. Типа box:transfer_item(item, box). Не так давно, где-то в этой теме или в ковырялке ТЧ, это уже обсуждалось. И даже специальную функцию для спавнa в онлайновые ящики приводили. Изменено 1 Июня 2017 пользователем naxac 1 Аддон для ОП-2.09.2: Яндекс/Google/GitHub Ссылка на комментарий
Graff46 598 Опубликовано 1 Июня 2017 Поделиться Опубликовано 1 Июня 2017 (изменено) naxac писал(а): сделай трансфер этого предмета из ящика в тот же ящик. Типа box:transfer_item(item, box) Не помогло, но потратив 2 дня на парсинг тематических форумов я нашёл, то что нужно ящик перевести в оффлайн, а потом в онлайн, для перезаписи его нэт-пакетов. Вот рабочий код: Показать function spawn_in(box, item) -- Заспавнить НПСу в инвентарь, rewrite = true если спавним в ящикalife():create(item ,box:position(),box:level_vertex_id(),box:game_vertex_id(),box:id()) alife():create(item ,box:position(),box:level_vertex_id(),box:game_vertex_id(),box:id()) switch_offline(box) switch_autoline(box:id()) endfunction spawn_in(box, item) -- Заспавнить НПСу в инвентарь, rewrite = true если спавним в ящикalife():create(item ,box:position(),box:level_vertex_id(),box:game_vertex_id(),box:id()) alife():create(item ,box:position(),box:level_vertex_id(),box:game_vertex_id(),box:id()) switch_offline(box) switch_autoline(box:id()) end function switch_offline (npc) if npc == nil then return end local sim = alife () if sim ~= nil then sim:set_switch_online (npc:id (), false) sim:set_switch_offline (npc:id (), true) end end ------------------------------------------------------------------------------------------- function switch_autoline (id) -- Это моё by Graff46 22.05.14, переводим НПС в нормальный режим local sim = alife () --если мы рядом - НПС онлайн, далеко - НПС оффлайн if sim ~= nil and sim:object(id) then sim:set_switch_online (id, true) sim:set_switch_offline (id, true) end endfunction switch_offline (npc) if npc == nil then return end local sim = alife () if sim ~= nil then sim:set_switch_online (npc:id (), false) sim:set_switch_offline (npc:id (), true) end end ------------------------------------------------------------------------------------------- function switch_autoline (id) -- Это моё by Graff46 22.05.14, переводим НПС в нормальный режим local sim = alife () --если мы рядом - НПС онлайн, далеко - НПС оффлайн if sim ~= nil and sim:object(id) then sim:set_switch_online (id, true) sim:set_switch_offline (id, true) end end Изменено 1 Июня 2017 пользователем Graff46 3 Ссылка на комментарий
Dennis_Chikin 3 658 Опубликовано 4 Июня 2017 Поделиться Опубликовано 4 Июня 2017 (изменено) Забавный эффект наблюдаю: При входе актора в онлайн удаляется пачка объектов. Через некоторое время срабатывает function my_obj_binder:net_spawn( data ) if not object_binder.net_spawn( self, data ) then return false end local obj = sim:object( data.id ) if obj then ... else error() -- разумеется, это и срабатываетfunction my_obj_binder:net_spawn( data ) if not object_binder.net_spawn( self, data ) then return false end local obj = sim:object( data.id ) if obj then ... else error() -- разумеется, это и срабатываетэто так должно быть ? Изменено 4 Июня 2017 пользователем Dennis_Chikin Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
abramcumner 1 160 Опубликовано 4 Июня 2017 Поделиться Опубликовано 4 Июня 2017 @Dennis_Chikin, 2017, отладчик и исходники, исходники и отладчик Такое может быть, например, если вызвать аборт не из акторных скриптов. Движок его отловит, объект удалит, но игру не покрашит. В результате появляются биндеры без объектов. В логе ничего похожего нет? Ссылка на комментарий
Dennis_Chikin 3 658 Опубликовано 5 Июня 2017 Поделиться Опубликовано 5 Июня 2017 Не, тупо, for i = 1, 65535 do if ... then alife():release( obj, true )end end а потом начинает отрабатывать net_spawn() всего удаленного. Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
dsh 3 824 Опубликовано 5 Июня 2017 Поделиться Опубликовано 5 Июня 2017 @Dennis_Chikin, я в некоторых случаях замечал, что движок как бы запланировал вывод в онлайн какие-то объекты и будет пытаться это делать, даже если их удалить после этого и до их net_spawn-а. Вот такое у меня ощущение осталось. Подробно не разбирался. Просто принял к сведению, что возможны чудеса. 1 dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
aka_sektor 1 476 Опубликовано 11 Июня 2017 Поделиться Опубликовано 11 Июня 2017 (изменено) Кто шарит в логике, подскажите, как тут дописать правильно, чтобы в сообщении указывалось имя NPC, а не писалось "Сообщение". [sr_idle@20] on_game_timer = 10000 | sr_idle@30 %+sad_artefuck_ready =send_tip(sad_artefact_upgr_ready:sad_atr_trader) -sad_atr_trader_go_kitchen%[sr_idle@20] on_game_timer = 10000 | sr_idle@30 %+sad_artefuck_ready =send_tip(sad_artefact_upgr_ready:sad_atr_trader) -sad_atr_trader_go_kitchen% send_tip - понятно, что это функция в xr_effects.script Есть даже такой комментарий: --[[ send_tip(news_id:sender:sender_id) 1. news_id 2. sender* 3. sender_id* * - not necessary --]]--[[ send_tip(news_id:sender:sender_id) 1. news_id 2. sender* 3. sender_id* * - not necessary --]] news_id - это текст сообщения, т.е. string id. В моей логике имя sad_artefact_upgr_readysender - это иконка в секции tips_icons news_manager.script. В моей логике имя sad_atr_trader sender_id - а это заголовок сообщения, story_id NPC. story_id моего персонажа прописан в файле по пути: gamedata\configs\creatures\spawn_sections_sad.ltx И выглядит так: [sad_atr_trader]:stalker $spawn = "respawn\sad_atr_trader" character_profile = sad_atr_trader story_id = sad_atr_trader[sad_atr_trader]:stalker $spawn = "respawn\sad_atr_trader" character_profile = sad_atr_trader story_id = sad_atr_traderТ.е. в логике я указал как: [sr_idle@20] on_game_timer = 10000 | sr_idle@30 %+sad_artefuck_ready =send_tip(sad_artefact_upgr_ready:sad_atr_trader:sad_atr_trader) -sad_atr_trader_go_kitchen%[sr_idle@20] on_game_timer = 10000 | sr_idle@30 %+sad_artefuck_ready =send_tip(sad_artefact_upgr_ready:sad_atr_trader:sad_atr_trader) -sad_atr_trader_go_kitchen%Дело в том, что хоть story_id и указан, заголовок все также остается как "Сообщение". UPD: Я все-таки думаю, что story_id читается, но не отображается. Потому что, если указать другое имя, не являющееся story_id - игра вылетит. Думаю, дело в функции send_tip в news_manager.script. Там не прописано отображение имени. Возможно, что-то со времен прошлых игр удалили из скриптов, т.к. я действительно не помню чтобы в ЗП игрок получал сообщения с подписанным именем NPC. UPD2: Проблема решена на форуме ap-pro: http://ap-pro.ru/forum/114-90122-1 Изменено 12 Июня 2017 пользователем aka_sektor Discord-сервер modfaq.ru: https://discord.gg/9j42BXwB Ссылка на комментарий
Demosfen 142 Опубликовано 12 Июня 2017 Поделиться Опубликовано 12 Июня 2017 Как мне начать понимать в скриптах? С какой литературой нужно ознакомиться? Ссылка на комментарий
Kober(BRUC) 99 Опубликовано 12 Июня 2017 Поделиться Опубликовано 12 Июня 2017 12.06.2017 в 10:18, Stalker Nest сказал: Как мне начать понимать в скриптах? С какой литературой нужно ознакомиться? Официальная "литература". Ну и конечно желание, и терпение. Без него далеко не уедешь. Ссылка на комментарий
TIGER_VLAD 361 Опубликовано 13 Июня 2017 Поделиться Опубликовано 13 Июня 2017 Всем привет. Пытаюсь заставить актора зависнуть в воздухе. По нажатию клавиши получаю координаты позиции и телепортирую на апдейте в это тучку с помощью db.actor:set_actor_position. Актора начинает трясти, как в воздухе так и на земле. Пробовал вместо апдейта использовать fastcall, но его еще больше начинает трясти и даже раздваивает. Видео . Почему так происходит ? Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти