UnLoaded 313 Опубликовано 30 Августа 2016 можно поподробнее Искать\читать тут 1 Поделиться этим сообщением Ссылка на сообщение
UnLoaded 313 Опубликовано 15 Сентября 2016 возможно ли получить значение общего количества патронов в инвентаре? Если ты имеешь в виду движковую ф-цию, которая вернет тебе искомую цифру - такой нет. Скриптом получить искомую цифру - без проблем, довольно примитивная ф-ция получится. Поделиться этим сообщением Ссылка на сообщение
UnLoaded 313 Опубликовано 16 Сентября 2016 (изменено) мне скриптом и надо. Можешь показать код? Примерный шаблон(с использованием модуля нет-пакетов от Artos), дорабатывать - в зависимости от конкретных похотелок: local get_ini = system_ini() local ammo_total = 0 function CheckAllAmmo() local actor = db.actor if actor ~= nil then actor:iterate_inventory(check_inv_items, actor) -- ф-ция-итератор, о ней прочтешь в "Справочнике по ф-циям и классам" -- end return ammo_total -- тута получишь искомую цифру -- end function check_inv_items(actor, item) local section = item:section() if section then if get_ini:section_exist(section) and get_ini:line_exist(section, "class") then local item_class = get_ini:r_string_wq(section, "class") ----- тут сам разберись - выстрелы для подстволов у тебя будут как патроны или нет ??????????????? ----------------- if (item_class == "AMMO") or (item_class == "A_VOG25") or (item_class == "A_M209") then local num_in_box = get_ammo_count(item:id()) -- тута из нет-пакета получим реальное кол-во в реальной пачке -- if num_in_box then ammo_total = ammo_total + num_in_box end end end end end function get_ammo_count(obj_id) local se_obj = alife():object(obj_id) if se_obj then local packet = net_packet() cse_alife_item_ammo.STATE_Write(se_obj, packet) packet:r_seek(packet:w_tell() - 2) return packet:r_u16() -- кол-во боеприпаса в конкретной пачке -- end return 0 end Чуть не забыл - не забудь разрулить тему с наличием в инвентаре гаусс-боеприпасов. Изменено 16 Сентября 2016 пользователем UnLoaded 1 Поделиться этим сообщением Ссылка на сообщение
UnLoaded 313 Опубликовано 19 Сентября 2016 (изменено) Вы все ответили на его часть - как подсчитать патроны требуемые к стволам, которые есть у ГГ Внимательнее посмотри в примеры скриптов... откуда такой вывод? В моем примере происходит перебор всего хлама в инвентаре ГГ, то что является по классу патронами - обрабатывается на предмет получения реального кол-ва в пачке, и суммируется. Где ты увидел привязку к стволам в инвентаре ГГ? Как создать тайник с запиской на следующий тайник (как в Коллекционере)? Не играл в "Коллекционер", но к примеру можно вместе с лутом ложить в тайник саму записку. При использовании этой записки выводить информацию игроку с наводкой на следующий тайник. Изменено 19 Сентября 2016 пользователем UnLoaded Поделиться этим сообщением Ссылка на сообщение
UnLoaded 313 Опубликовано 28 Сентября 2016 Несколько вопросов: 1) xr_motivator.script(а в нем класс motivator_binder) рулит сталкерами. А кто рулит монстрами? 2) какие рабочие кэллбэки есть для сталкеров? В нет_спавн вижу: hit - это понятно death - это то же понятно use_object - это надеюсь то же понятно(этот кэллбэк удерживает непися при разговоре ГГ с ним?) sound - закомментирован, по обработчику вроде понятно, что связан с тем, что слышат неписи. extrapolate_callback - а вот этот о чем? Устанавливается не как вышеперечисленные, а через set_patrol_extrapolate_callback... Это все что есть для сталкеров, или еще что-то имеется? 3) в death_callback есть вызов death_manager.drop_manager(self.object):create_release_item() - это запускает всю цепочку подчистки\доспавна лута, и с этим все понятно. Но и в update есть точно такой-же вызов. Если я правильно понял, в update это нужно для контроля сталкеров, которые уже мертвяки после очередной загрузки игры? И еще, напомните - какая схема управляет подбором оружия сталкерами, и в каком скрипте прописана? Поделиться этим сообщением Ссылка на сообщение
UnLoaded 313 Опубликовано 29 Сентября 2016 4. Схема называется gather_items, сама она находится в движке, в ЗП управляется через xr_gather_items.script Я для ТЧ хотел бы знать. Там как? Поделиться этим сообщением Ссылка на сообщение
UnLoaded 313 Опубликовано 29 Сентября 2016 возможно ты про can_select_item_rules, это в движке on_after_take если верно помню Получается, подбор оружия неписями в ТЧ - это движковое? Я думал, что какая-то схема логики... Такой момент: сценка с Юриком при входе на Свалку, с последующей помощью Бесу. У меня Юрик топает от места сценки к месту, где стоит Бес. Если возле Беса кинуть ствол, к примеру МР-5, то Юрик его подбирает. Но, в дальнейшей перестрелке с бандюками, его не использует. Не сложно было выяснить причину - ствол-то он подбирает, а патронов к нему у него нет. Для теста, сделал спавн ему нужных патронов, после их спавна Юрик сразу переключается на МР-5 и в последующей перестрелке исправно его использует. Тут я подумал - на кой ПЫСы сделали подбор стволов, если их непись не будет использовать? Логично было сделать, при подборе ствола, сразу спавн подходящих боеприпасов. Думал, что этим схема рулит какая-то, потому и хотел ее найти, чтоб попробовать доделать спавн патронов. Но раз это движковое - то видно пока не судьба... Р.S. Попытался сделать спавн патронов через добавление в motivator_binder кэллбэка on_item_take, вроде спавн получился, но сразу же наткнулся на грабли - вылеты при интенсивной боевке. Поделиться этим сообщением Ссылка на сообщение
UnLoaded 313 Опубликовано 2 Октября 2016 @TIGER_VLAD А что, в игре есть деление на такие классы: пистолеты, ружья, автоматы, снайперское, тяжелое? Поделиться этим сообщением Ссылка на сообщение
UnLoaded 313 Опубликовано 15 Октября 2016 (изменено) прогресс-бар в ТЧ работает, конкретно вопрошающему необходим SetWndPos Ну наверное ему нужно все-же SetProgressPos, если разговор о прогресс-баре. Можно пример кода? Ну примерно так: local inv_main = level:main_input_receiver() if inv_main then local inv_xml = CScriptXmlInit() inv_xml:ParseFile("какой-то_файл.xml") -- парсим файл с описанием элементов -- local pb_new = inv_xml:InitProgressBar("конкретный_элемент", inv_main) pb_new:SetAutoDelete(true) pb_new:Show(true) end затем pb_new:SetProgressPos(нужное значение) какой-то_файл.xml создать по аналогии с другими в папке config\ui. Для прогресс-бара описание будет как-то так: <конкретный_элемент x="445" y="349" width="140" height="4" horz="1" min="0" max="100" pos="0"> <progress> <texture a="255" r="255" g="255" b="255">ui_scale_green_sect_horz</texture> </progress> <background> <texture a="80" r="255" g="255" b="255">ui_scale_green_sect_horz</texture> </background> </конкретный_элемент> Изменено 15 Октября 2016 пользователем UnLoaded 1 Поделиться этим сообщением Ссылка на сообщение
UnLoaded 313 Опубликовано 19 Октября 2016 Если мы указываем позицию, то можно любой левел и гейм вертекс левела указать? Уже много раз обсуждалось: при спавне объектов, движок использует гейм-вертекс - для идентификации уровня, на котором будем спавнить, и координаты - для размещения объекта. Левел-вертекс не имеет значения и похоже движком не используется\игнорируется. Соответственно, гейм-вертекс можно указать любой, относящийся к локации. Поделиться этим сообщением Ссылка на сообщение
UnLoaded 313 Опубликовано 20 Октября 2016 Еще так же советую обратить внимание на возможность управления "включенности" гейм вертекса, вы попросту можете отключить не тот вертекс, и это будет ошибкой. Вот это не понял напрочь: что означает "включенность" гейм-вертекса ? Хочу подробнее . Так-же - что такое вершины ? Другое название гейм-вертекса ? Почему ? Поделиться этим сообщением Ссылка на сообщение
UnLoaded 313 Опубликовано 20 Октября 2016 If distance == не предлагать. Если так поставить, то действие выполнятся не будет. С чего бы это ? Если у тебя в кармане 10руб(монетой) - то условие "if в_кармане == 10 then" не должно выполняться ? Ищи ошибку у себя в проверках\условиях, причем достаточно тупую(это без оскорблений, просто так оно и есть)... Поделиться этим сообщением Ссылка на сообщение
UnLoaded 313 Опубликовано 20 Октября 2016 здесь есть не понимание принципов работы с подобными величинами. Ради бога, проясни не понимающим... Будем только рады... Поделиться этим сообщением Ссылка на сообщение
UnLoaded 313 Опубликовано 23 Октября 2016 Юзаю простейшим образом: on_timer = value | ... Загляни в скрипт xr_logic, там увидишь, что этот самый on_timer сделан как и все остальное - на обычном апдейте, который дергается от объекта. А скриптовая подсистема всегда была самой чувствительной к любым подвисаниям, так что ищи другой способ идеальной синхронизации... 1 Поделиться этим сообщением Ссылка на сообщение
UnLoaded 313 Опубликовано 24 Октября 2016 Что для этого нужно сделать? Видимо, отрегулировать параметры звука и его воспроизведения... Поделиться этим сообщением Ссылка на сообщение
UnLoaded 313 Опубликовано 27 Октября 2016 какие свойства смарта можно узнать скриптом? Получи нет-пакет, из него можно выудить практически все... как в ЗП скриптом получить путь к модели НПС? Что значит путь? Я думаю, имелось в виду имя файла и папка в которой он лежит. Если да - то ответ чуть выше. Поделиться этим сообщением Ссылка на сообщение
UnLoaded 313 Опубликовано 15 Ноября 2016 как отследить появление определенного артефакта на поясе у ГГ? Движковой ф-ции для этого в ТЧ нет. Вроде есть какой-то костыльно-скриптовый способ отследить объекты на поясе, если память не подводит - от Kirgudu. Спроси у него... Поделиться этим сообщением Ссылка на сообщение
UnLoaded 313 Опубликовано 28 Ноября 2016 @Kober(BRUC) так попробуй: r_s32("settings", "key")... 1 Поделиться этим сообщением Ссылка на сообщение
UnLoaded 313 Опубликовано 5 Декабря 2016 @losiara Для монстров есть оверрайды: actor_friendly = true/false - если true, то монстр не атакует актера, до первой атаки на него.npc_friendly = true/false - если true, то монстр не атакует сталкеров и монстров, до первой атаки на него.friendly = true/false - если true, то монстр не атакует никого до первой атаки на него.braindead = true/false - если true, то монстр игнорирует любые атаки. 1 1 Поделиться этим сообщением Ссылка на сообщение
UnLoaded 313 Опубликовано 15 Декабря 2016 Возможно ли повторение этих ID игрой и получение ошибки с соот. логом как я привел в предыдущем посте, или подобный вылет возможен только лишь у игровых объектов именно с SIDом??? Насчет возможности повторов ID'ов - ни разу об этом нигде и ничего не попадалось. А раз информации такой нет - значит у движка с этим все нормально. А в приведенном тобой логе достаточно понятно сказано про дублирование SID. Ищи внимательно, где у тебя может происходить более одного спавна объекта, который имеет назначенный SID. 1 Поделиться этим сообщением Ссылка на сообщение