-
Число публикаций
91 -
Регистрация
-
Последнее посещение
-
AMKoin
902 [Подарить AMKoin]
Весь контент пользователя Баба ЯГА
-
[CoP] Ковыряемся в файлах
Баба ЯГА ответил на тему форума автора Halford в Скрипты / конфиги / движок
@Norman Eisenherz где взять этот [m_netpk.script] ? В оригинальных файлах игры нет... Можешь поделится? Я пробовал на Народной Солянке ТЧ, там всё работает, но там есть говый скрипт для перезаписи нетпакетов: spawn_restrictor.rewrite_restrictor(se_obj, custom, 5.0) Сделал так: function create_restr() local se_obj = alife():create("space_restrictor", vector():set(79.319160461426, -0.073770552873611, 462.92016601563), 373155, 199) local custom = "[logic]\ncfg = scripts\\my.ltx" --путь к логике рестриктора spawn_restrictor.rewrite_restrictor(se_obj, custom, 5.0) -- запись логики для рестриктора через нетпакет level.map_add_object_spot_ser(se_obj.id, "habar_location", se_obj:name().."\\n"..se_obj.id ) end create_restr() также написал простейшую логику: [logic] active = sr_idle@wait [sr_idle@wait] on_actor_inside = sr_sound@1 [sr_sound@1] snd = characters_voice\human_03\bandit\help\wounded_thanx\thanx_2 on_timer = 5000 | sr_idle@nil [sr_idle@nil] при входе в рестриктор играется звук. В ТЧ - всё работает. Попробовал перенести скрипт (spawn_restrictor.script) из ТЧ в ЗП, сделал всё тоже самое, но при заходе в рестриктор - вылет, видимо несовместимость в функции перезаписи нетпакетов, т.е. если я правильно понял, мне нужен скрипт для перезаписи нетпакетов для ЗП, как ты написал: [m_netpk.script] ? В оригинальных файлах игры такого скрипта нет... Можешь поделится? Сам не осилю... Сегодня до шести утра по форуму лазил, ничего подходящего не нашёл. П.С. Спустя три часа... Ковыряю... Понаходил разные скрипты для нетпакетов, ни один не подходит для CoP, либо вылеты, либо не все данные записывает в нетпакет, например, то пути не хватает, то параметра active-scheme и т.д. Нужна помощь, всё что хотел - сделал, загвоздка только в записи логики нетпакета для только-что созданного объекта/рестриктора. Комрады, выручайте! -
[CoP] Ковыряемся в файлах
Баба ЯГА ответил на тему форума автора Halford в Скрипты / конфиги / движок
Возможно-ли скриптово, чтобы не ковырять all.spawn: 1) спавним некий объект, например: бочка 2) скриптово добавляем ему логику, что-то типа: custom="[logic]\ncfg = scripts\\my\\my_logic.ltx" Объект заспавнил: spawn_o("bochka", db.actor:position().x+2, db.actor:position().y, db.actor:position().z+2, 1010751, 19, 1) логику простейшую, для теста, написал: [logic] active = ph_idle@use [ph_idle@use] tips = hello как скриптово это заставить работать, чтобы не лазить в СДК и all.spawn? Можно и во время игры и при начале новой игры. Форум перерыл, к сожалению, ничего не смог найти. -
[CoP] Ковыряемся в файлах
Баба ЯГА ответил на тему форума автора Halford в Скрипты / конфиги / движок
Как узнать что арт - одет на поясе? Искал по belt - нет такого параметра в скриптах. -
Математики есть? Имеем: db.actor:position() db.actor:direction() db.actor:set_actor_position( vector():set( x, y, z ) ) Как высчитать координаты для перемещения ГГ от текущей позиции - на три метра вперёд по направлению взгляда?
-
[SoC] Ковыряемся в файлах
Баба ЯГА ответил на тему форума автора Halford в Скрипты / конфиги / движок
@mole venomous Увеличил... вылет xrGame.dll наверное не тянет видик мой, старенький, 512 памяти всего, жаль, много было задумок... эх... -
[SoC] Ковыряемся в файлах
Баба ЯГА ответил на тему форума автора Halford в Скрипты / конфиги / движок
Возник чисто исследовательский вопрос(ы): 1) могу ди я сделать ui_icon_equipment.dds 4096*4096 чтобы добавить свои иконки оружия? (сейчас этот файл 2048*2048) и сильно ли это нагрузит видеопамять, память, проц? 2) знаю, что скорее всего, не сюда, но простите, кто может выложить на какой-нибудь гуглдиск - из Сталкера2 ресурсы dds: инветарь, иконки и т.д. (скачать не могу - инет мобильный, так бы сам скачал и распаковал, но, к сожалению, нет возвожности такой). -
Всё. Вопрос таки решил. Месяц бился... Надо было менять в init, в update и в use_callback. В init добавил условие которое предложил @RayTwitty а именно: ... or item:clsid() == clsid.inventory_box then ... --' кстати, работает также и : .. or item:section() == "inventory_box" then ... --' вопрос только в том, что быстрее отрабатывает?... дальше, путём метода народного втыка и постоянного вывода в лог чтобы понять что и куда и когда, выяснил, что в update надо добавить условие для ящиков без логики и в этом условии ещё раз вызывать use_callback, а именно добавил: --' для всех inventory_box у которых нет логики вызываем callback отдельно ... else if item:clsid() == clsid.inventory_box then item:set_callback( callback.use_object, generic_physics_binder.use_callback, self ) end ... и, наконец, в use_callback заработало то, что мне было надо, а именно, если ГГ открыл ящик, то получаем object ящика: --' проверка нужна, т.к. use_callback возвращает и двери... if item:clsid() == clsid.inventory_box then my_global_var.GVObj(item) log("* [bind_physic_object](use_callback) obj: "..item:id()..", "..item:section()..", "..item:name() ) else log("! (1)[bind_physic_object](use_callback) obj: "..item:id()..", "..item:section()..", "..item:name() ) log("! (2)[bind_physic_object](use_callback) obj: " .. item:id() .. " - это не ящик") end Для чего было надо? Сделал кнопки при открытии ящика: Выложить еду, арты, части мутантов, патроны. Для меня очень удобно, вместо того чтобы клацать мышкой 50 раз, просто один раз на кнопочке - выложить в ящик, и все патроны, например, перекладываются. Также сделал кнопку в инвентаре, сбросить всё в рюкзак, если есть рюкзак, кроме того что в слотах. Всех кто участвовал - благодарю.
-
@RayTwitty файл абсолютно родной из Солянки, ничего не менялось, вот он на гитхабе: https://github.com/Gipnostalker/gipnostalker.github.io/blob/master/stalker/bind_physic_object.script
-
@RayTwitty того что ты написал, у меня нет в файле... Вот код файла bind_physic_object.script, где что изменить?
-
Продолжу: Что выяснил: [bind_physic_object](use_callback): срабатывает только тогда, если ID ящика есть в db.storage, если нету - то нет реакции, вообще никакой. Для примера тестирую на Свалке. Всего 36 рюкзаков, из них в storage только 24, более того, рюкзак который спавнится по заданию Кости на Свалке тоже в storage не добавляется, рюкзак из инвентаря если спавнить - то добавляется. Вопрос актуален: как сделать колбек на открытие любого ящика? Т.е. подошёл, нажал на любой ящик, сработала какя-то функция. ? Написал свой биндер (по аналогии [inventory_box] [m_inventory_box]:inventory_box [rx_inventory_box]:inventory_box [kostya_box] в items_devices.ltx и devices.ltx теперь не работает script_binding = bind_physic_object.init сделал так: script_binding = my_binder.init script_binding = bind_physic_object.init работает только bind_physic_object.init но он не видит все ящики сделал так: script_binding = bind_physic_object.init script_binding = my_binder.init работает только my_binder.init , он видит все ящики, всё как мне надо, НО, теперь не работает bind_physic_object.init ... Вопрос: как повесить на, например, [inventory_box] и bind_physic_object.init и my_binder.init чтобы оба работали, мой биндер нужен только для определения ящика который юзает ГГ, получается что в конструкции вида: [inventory_box] ... script_binding = bind_physic_object.init script_binding = my_binder.init работает тот что написан последним? Выходит два биндера нельзя вешать? П.С. Получается, если мой биндер видит все ящики, значит ошибка в оригинальном биндере bind_physic_object.script?
-
Ребята, прошу помощи, уже неделю ковыряю - неосилю... Проблема следующая: Что нужно? ГГ подходит к ящику (тайнику) и нажимает на него, срабатывает инфо ui_car_body, как узнать какой ящик открыл ГГ? Т.е. надо userdata этого конкретного ящика. Пробовал через bind_physic_object.script -> function generic_physics_binder:use_callback( item, who ) это работает частично, т.к. например на Свалке, ящик возле Беса = gar_simulation_box_2 - не срабатывает (не идёт колбек). Например для трупов сталков прекрасно работает treasure_manager.script -> function CTreasure:use( npc ) , как только нажимаешь на труп, сразу идёт колбек что это за userdata, надо тоже самое но на ящики.
-
Чистое Небо. В файле actor_menu.script есть функции, которые реагируют на открытие/закрытие инвентаря - как скриптово добавить свою кнопку в открытый инвентарь. В солянке такое есть, там это реализовано в actor_inv.script , хотел сделать по аналогии - не вышло, вылет с ошибкой. Кто знает - подскажите. Вылет: stack trace: 001B:02A6C52C xrGame.dll 001B:02D4F25E xrGame.dll, CxImage::`copy constructor closure'() 001B:02692EA3 lua.JIT.1.1.4.dll, luaopen_io() Вылет тот-же: 001B:02D4D5D3 xrGame.dll, CxImage::`copy constructor closure'() 001B:02D4F111 xrGame.dll, CxImage::`copy constructor closure'() 001B:02692EA3 lua.JIT.1.1.4.dll, luaopen_io() Подойдёт любой вариант добавления кнопки, хоть скриптовый хоть с xml - гоавное кнопочку вывести в инвентарь свою, уже обшарил инет, форум амк - разобраться не могу сам... Открылось нормально, добавил просто фон пока без кнопок, НО! Вылет при закрытии инвентаря: 001B:026DAC1E luabind.beta7-devel.rc4.dll, luabind::detail::do_call_member_selection()
-
[SoC] Ковыряемся в файлах
Баба ЯГА ответил на тему форума автора Halford в Скрипты / конфиги / движок
@Norman Eisenherz @naxac @dsh @Okichi перебрал все онлайн объекты на Свалке, стоял возле долговцев, отбежал в другой конец локации, к переходу на Кордон, трупы важных персонажей, типа бандюка Кабана и бандюка у развалин - всё время в онлайне, с этим разобрались, потому и когда в них складывать вещи, то ничего не тормозит при подходе к ним, а вот с рюкзаком - магия, он как раз уходит в оффлайн, но при подходе к нему - ничего не тормозит, хоть там будет 100500 вещей в нём... В чём же всё-таки секрет интересно? По-поводу визуала - я ошибался. Признаю. -
[SoC] Ковыряемся в файлах
Баба ЯГА ответил на тему форума автора Halford в Скрипты / конфиги / движок
@Okichi вот и мне интересно именно для неживых и в онлайне, для тех же рюкзаков -
[SoC] Ковыряемся в файлах
Баба ЯГА ответил на тему форума автора Halford в Скрипты / конфиги / движок
@dsh @Okichi а возможно как-то скриптово проверить все объекты которые в онлайне, даже если они на другой локации, ну т.е. которым запрещено уходить в оффлайн вообще? -
[SoC] Ковыряемся в файлах
Баба ЯГА ответил на тему форума автора Halford в Скрипты / конфиги / движок
@dsh ну, в теории - возможно так и есть, и возможно - так и должно было быть, но это же - сталкер, а вот на практике в оригинале игры, как раз именно магия и происходит с рюкзаками у которых определённый visual - почему - не знаю. В том-то и дело, что время не добавляется при загрузке игры (проверял по разному), а происходит следующее: допустим, коричневый рюкзак лежит возле долга при входе на Бар, накидываем туда оооочень много предметов и бежим на другой край Свалки, рюкзак как-бы уходит в оффлайн (как и должно быть в теории), возвращаемся назад и подбегаем к рюкзаку - ничего не тормозит, даже не дёргается, а вот если сделать то-же самое с другими рюкзаками, у которых именно visual другой, то тогда да, при подходе к ним, игра зависает на 15-20 секунд. Как раз какой-то магией сталкера и попахивает. Один из таких волшебных рюкзаков есть, например, на Радаре, при входе, слева, возле труп нейтрала валяется там при первом заходе на локацию. Понятно, что дело в скриптах, но вот почему именно этот вид рюкзаков не тормозит вообще - непонятно. P.S. Кстати, именно в оригинале игры тоже самое и с трупами, если засунуть в них 100500 предметов, то при подходе к ним - ничего не тормозит вообще и не зависает, хотя они, теоретически, тоже выходят в онлайн-оффлайн. -
[SoC] Ковыряемся в файлах
Баба ЯГА ответил на тему форума автора Halford в Скрипты / конфиги / движок
@Zander_driver за ссылку на модули Артоса, благодарен, буду разбираться, т.к. там не совсем понятно, где старые, где новые, и вообще, что и где. Пока, временно, вопрос решил (по твоей наводке) с помощью нетпакетов, взял файл amk_netpk.script из Соли, и добавил его в оригинальный сталкер, решение выглядит тут, может кому пригодится: s_obj = alife():object(5004) if s_obj and level.object_by_id( s_obj.id ) then t = amk_netpk.get_invbox_data( s_obj ) LOG( "visual = " .. t.visual) end -- result: visual = physics\equipment_cache\equipment_rucksack_01_case И собственно, зачем мне нужен был визуал? Оказалось, что если складывать много всего в тайники, то при подходе к ним - игра зависает, бывает и секунд на 15-20, но, есть такие тайники, в которые сколь угодно не складывай, ничего не тормозит, и картинка у них совсем другая, они коричневого цвета, выяснилось, что это тайники у которых visual == physics\equipment_cache\equipment_rucksack_01_case Почему так происходит, вопрос десятый и меня не сильно интересует, но всё-же вопрос с хранением хабара на каждой локации - решён. -
[SoC] Ковыряемся в файлах
Баба ЯГА ответил на тему форума автора Halford в Скрипты / конфиги / движок
@Zander_driver а можно пример кода, пожалуйста, желательно для оригинального сталкера? P.S. или где посмотреть/скачать модули Артоса? -
[SoC] Ковыряемся в файлах
Баба ЯГА ответил на тему форума автора Halford в Скрипты / конфиги / движок
Как посмотреть скриптово реальный visual предмета, в данном случае, интересует visual inventory_box. Для примера имеем тайник с visual рюкзака: section() = "inventory_box" name() = "level_prefix_inventory_box_0002" id() = 6541 Пробую так (работает): local si = system_ini() s = game.translate_string(si:r_string( "inventory_box", "visual") ) но вот беда, результат: physics\box\expl_dinamit.ogf т.е. выводит какой-то общий визуал, но в реальности, в игре, visual - другой, подскажите, как его посмотреть? -
@sto1en разобрался наконец! Всем спасибо! Причина была в том, что я просто невнимательно смотрел настройки в самой игре, что я только уже не делал, что только не проверял. а оказалось, что у меня все ползунки в настройках: гамма, контраст, яркость - увеличены на один пункт, вот я потому и не заметил, думал что стоят по умолчанию... Вернул положение по умолчанию - теперь всё отлично, цвета совпадают! Уряяя!
-
Подхожу к тайнику, открываю его, вопрос: как узнать ID именно этого рюкзака, который сейчас открыт?
-
@warwer @sto1en Ещё вопрос попутно, в каком формате сохранять DDS для Сталкера, если рисунок с альфой и если без альфы? Какой выбирать правильно? Скриншёт ниже:
-
@sto1en так я беру фон из самой игры, из текстур, т.е. по идее должно быть один в один, но после обработки в фотошопе - получается намного светлее фон... Поставил яркость/контрастность - по умолчанию, взял фон, опять тоже самое. Какие могут быть ещё варианты? Уж очень хочется всё красиво сделать и докопаться до сути, ясно, что я что-то делаю не то, но вот что?..
-
@AndreySol Помогло. Копнул дальше по твоему примеру, и оказалось, что можно и так тоже было: local MyMenu = ui_my_menu.menu() -- > type = userdata local menuIsShown = MyMenu:IsShown() -- > type = userdata local w = MyMenu:GetWidth() -- > type = number -> 1024 local mm_btn = MyMenu:GetButton("knopka"):GetWidth() -- > type = number -> 127 -- т.е. любой GET - работает отлично, и для самого меню, и для -- его елементов; если параметр был задан изначально - -- то вернёт значение, если небыло параметра изначально - то вернёт = nil -- а вот любой SET - не работает, увы... -- SET - всегда возвращает NIL и никакие параметры не меняются, а жаль... MyMenu:GetButton("knopka"):SetText( "меняю на другой" ) -- NIL жаль, думал можно получить меню, и в реальном времени менять координаты кнопок, цвет текста и т.д., но оказалось - нельзя... Хотя, возможно, я всё-же что-то делаю не так?...
-
Делаю в фотошопе картинку (менюшку свою для игры) - а в игре она раза в два светлее... Хотя в фотошопе - нормальный цвет. Что может быть не так?
- [ЧН] OGSM CS 1.8 CE Fixes
- [ЧН] HARDWARMOD 3.2
- [ЗП] The Long Road
- [ЧН] New vision of War
- [ЧН] Old Good Stalker Mod - Clear Sky
- [ЗП] Unofficial Patch
- [ЗП] Смерти вопреки
- [ЗП] Контракт на хорошую жизнь
- [ЗП] Shoker Weapon Mod 2.1
- [ЗП] Hardcore pack for SGM 2.2
- [ЗП] Контракт Синдиката
- [ЗП] Клондайк 2.0
- ...и другие моды
LeDemon