k01jan 816 Опубликовано 26 Мая 2014 Поделиться Опубликовано 26 Мая 2014 (изменено) Может, попробовать отключать (disable_info, ну или как-то так) каждый раз? abramcumnerОпередил! Изменено 26 Мая 2014 пользователем k01jan Ссылка на комментарий
Full Noob 1 Опубликовано 26 Мая 2014 Поделиться Опубликовано 26 Мая 2014 Поставить лог на actor_binder:info_callback(), и посмотреть, что реально когда выдается. Это ты мне? Если да то я думаю что тут дело просто в том что тот слот не видно и видимо там ячеек нету поэтому такая фигня, и всё же: можно ли отрисовать на худе иконку и состояние предмета под ней? Это было про PDA и инфо. Про слоты вспоминать надо. Что-то такое было, но, думаю, кто-нибудь раньше ответит. dc Ссылка на комментарий
Капрал Хикс 519 Опубликовано 26 Мая 2014 Поделиться Опубликовано 26 Мая 2014 Хм, поршень ui_pda_map_local выдался. Но при попытке завязать на него появление меток схлопотал уже от скрипта Shadows'а вылет при попытке открыть КПК. Дескать, в строке self.owner:AttachChild(self.stat) onwer = nil Ссылка на комментарий
Dennis_Chikin 3 658 Опубликовано 27 Мая 2014 Поделиться Опубликовано 27 Мая 2014 "вылет при попытке открыть КПК. Дескать, в строке self.owner:AttachChild(self.stat) onwer = nil" Логично. Куда он возвращаться должен ? Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
Desertir 202 Опубликовано 27 Мая 2014 Поделиться Опубликовано 27 Мая 2014 Во многих оконных скриптах в конструктор класса аргументом передается владелец или родитель экземпляра класса. Это можно почти везде найти. Проблема в определении косяка, это либо в конструктор передается nil, либо в нем нету инициализации поля self.owner. Ну или еще какая беда, типа родителя уже нету (удалилсо), но тут запись в лог наверное будет другой. ТЧ 1.0004. SAP и Trans mod github Ссылка на комментарий
Капрал Хикс 519 Опубликовано 27 Мая 2014 Поделиться Опубликовано 27 Мая 2014 Если честно, я в этих оконнных скриптах так и не разобрался... сам скрипт, если кому интересно покопаться, вот: Ссылка на комментарий
Full Noob 1 Опубликовано 27 Мая 2014 Поделиться Опубликовано 27 Мая 2014 С ремкомплектом разобрался: гранаты ведь я тоже передвинул в слот песта чтобы трудней было , а ремкомплект поставил на слот гранат и при его доставании сделал weapon_hide и всё работает. Оружие в слоте 3 видно в инвентаре и его нельзя швырять по слотам то что надо, но вот ещё проблемка маленькая: разумеется не обойтись без сообщений чтобы яснее было, но вот только я получаю сообщение не такое news_manager.send_tip(db.actor, "%c[255,255,255,128]Невозможно отремонтировать оружие. Ремкомплект в плохом состоянии!", nil, nil, 3000) а вот этот кошмар http://pixs.ru/showimage/ssuser0527_2904593_12293821.jpg Ссылка на комментарий
Gkchp 1 Опубликовано 27 Мая 2014 Поделиться Опубликовано 27 Мая 2014 Может ли кто-нибудь помочь разобраться с логикой для радио (ЗП)? Перепробовал все туториалы — ничего не вышло. Ссылка на комментарий
abramcumner 1 145 Опубликовано 27 Мая 2014 Поделиться Опубликовано 27 Мая 2014 news_manager.send_tip(db.actor, "%c[255,255,255,128]Невозможно отремонтировать оружие. Ремкомплект в плохом состоянии!", nil, nil, 3000) а вот этот кошмарПо правильному строку "%c[255,255,255,128]Невозможно отремонтировать оружие. Ремкомплект в плохом состоянии!" надо вынести в text/rus/*.xml и грузить в скрипте через game.translate_string() Или можешь просто сменить кодировку в файле скрипте с utf-8 на вин1251 Ссылка на комментарий
Full Noob 1 Опубликовано 27 Мая 2014 Поделиться Опубликовано 27 Мая 2014 (изменено) А как прально транслейт прописать? Я вот вписал в string_table_tips то что надо и news_manager.send_tip(db.actor, "%c[255,255,255,128]"..game.translate_string("rk_text_weapon_in_slot").." %c[255,255,25,25]"..tostring(db.actor:active_slot()).."%c[255,255,255,128] "..game.translate_string("rk_text_repaired"), nil, nil, 3000) но не прокатило Хех а кодировка работает не вылетает как при некоторых. Изменено 18 Июня 2014 пользователем Black Hawk Ссылка на комментарий
Gkchp 1 Опубликовано 28 Мая 2014 Поделиться Опубликовано 28 Мая 2014 (изменено) Объясните кто-нибудь неумному человеку, как в представленной ниже логике сделать так, чтобы после использования кнопки играл звук. [logic]active = ph_button@deactivated[ph_button@activated]anim = offon_press = ph_button@deactivated % -zat_a2_radio_on%tooltip = radio_off[ph_button@deactivated]anim = idleon_press = ph_button@activated % +zat_a2_radio_on%, ph_soundtooltip = radio_on[ph_sound]snd = zat_a2_bar_radiolooped = truemin_idle = 50max_idle = 100random = falseКто-нибудь может объяснить, почему в ЗП напрочь отказывается работать схема ph_sound? Весь день ковыряюсь, но не помогает. [logic]active = ph_sound@act[ph_sound@act]snd = zat_a2_radiolooped = falsemin_idle = 300max_idle = 500random = falseno_hit = true Ну что здесь неправильно? Изменено 18 Июня 2014 пользователем Black Hawk Поправила спойлеры. Ссылка на комментарий
Сталкер Лом 356 Опубликовано 29 Мая 2014 Поделиться Опубликовано 29 Мая 2014 (изменено) Gkchp, В оригинале ЗП эта схема отключена. Включаем так: заходим в файл modules.script, ищем строчки load_scheme("ph_door", "ph_door", stype_item) load_scheme("ph_idle", "ph_idle", stype_item) load_scheme("ph_hit", "ph_hit", stype_item) load_scheme("ph_on_hit", "ph_on_hit", stype_item) load_scheme("ph_button", "ph_button", stype_item) load_scheme("ph_code", "ph_code", stype_item) load_scheme("ph_death", "ph_on_death", stype_item) load_scheme("ph_minigun", "ph_minigun", stype_item) --load_scheme("ph_target", "ph_target", stype_item) load_scheme("ph_oscillate", "ph_oscillate", stype_item) И после этих строк вставляем подключение схемы ph_sound: load_scheme("ph_sound", "ph_sound", stype_item) --Загрузка модуля матюгальника Теперь можно использовать схему. Но я когда у себя начал использовать схему, то немного был недоволен тем, что в этой схеме звук воспроизводится как в ТЧ - по путям, с указанием параметров в логике, а не по .ltx, как это сделано в ЗП. Иными словами, в оригинальной схеме, чтобы отыграть звук его нужно прописать, по-моему в sound_theme.script в виде конструкции ph_snd_themes["gar_seryi_shooting"] = {[[characters_voice\human_01\scenario\garbage\distance_shooting]]} , в то время как в ЗП используется поддержка .ltx файла, что, считаю удобным. После правки у меня убились два параметра - random и looped за ненадобностью - эти и другие параметры настраиваются в .ltx файле. Ссылка: http://rghost.ru/55973662 Пример использования на матюгальнике на Кордоне: [logic] active = ph_sound@idle on_hit = hit [ph_sound@idle] sound = esc_roadblock_megafon_idle on_signal = sound_end|ph_idle@wait [ph_idle@wait] on_timer = 85000|ph_sound@idle Логика очень упрощена и сводится к тому, что рупор воспроизводит звук и на 85 секунд уходит "отдыхать", дабы не орать беспрестанно. А если у тебя радио в баре Скадовск, то там можно и без пауз петь. Настройка звуков делается в файле script_sound_<локация>.ltx вот так: ;В секции list_script_sound_<локация> ставишь указание новой секции: esc_roadblock_megafon_idle ;И в конце файла пиши [esc_roadblock_megafon_idle] type = 3d npc_prefix = false path = characters_voice\scenario\escape\esc_roadblock_megafon_idle_ ;Тут указывается путь до файла, чтоб выбирался рандомно делай названия esc_roadblock_megafon_idle_ 1, esc_roadblock_megafon_idle_ 2 и т.д., а в пути указывай как тут shuffle = rnd idle = 3,5,100 Ну и пара полезных статеек на эту тему: Про ph_sound - http://stalkerin.gameru.net/wiki/index.php?title=Настройка_логики._Часть_4#.D0.A1.D1.85.D0.B5.D0.BC.D0.B0_ph_sound Про настройку .ltx фала - http://stalkerin.gameru.net/wiki/index.php?title=CoP._Разбор_звуковых_конфигов_в_script_sound_*** По переключению схем: [logic]active = ph_button@deactivated[ph_button@activated]anim = off on_game_timer = 5 | ph_sound [ph_button@deactivated]anim = idleon_press = ph_button@activated % +zat_a2_radio_on% tooltip = radio_on[ph_sound]snd = zat_a2_bar_radiolooped = truemin_idle = 50max_idle = 100random = false on_use = ph_button@deactivated %-zat_a2_radio_on% tooltip = radio_off Попробуй так. И погляди в статьях выше примеры как переключают схемы. Изменено 18 Июня 2014 пользователем Black Hawk Не работали спойлеры из-за отсутствия названия скрытого текста. 1 Работы на Artstation - https://www.artstation.com/artist/stalker_lom Ссылка на комментарий
mumie 2 Опубликовано 29 Мая 2014 Поделиться Опубликовано 29 Мая 2014 (изменено) Привет, форумчане! Боюсь вопрос смешон до безумия, но я сам слеп и не вижу причин вылета(Идея такова: 1)Перебираем все и вся в инвентаре2)Записываем каждый элемент инвентаря в таблицу3)Удаляем все4)При необходимости спавним все элементы таблицы поочередно в инвентарь обратно local t_temp = {} function RI() local cnt = db.actor:object_count() for i = 1, cnt-1 do local se_obj = alife():object(i) if se_obj then table.insert(t_temp,1,se_obj:section_name()) end end end function SI() for a = 1, #t_temp do alife():create(t_temp[a], db.actor:position(), 1, db.actor:game_vertex_id(), db.actor:id()) end end Версия игры 1.6.2 хотя я думаю это не важно.Лог No such operator Изменено 29 Мая 2014 пользователем mumie Ссылка на комментарий
Dennis_Chikin 3 658 Опубликовано 29 Мая 2014 Поделиться Опубликовано 29 Мая 2014 Мож таки: local t_temp = {} function RI() local item for i = 0, db.actor:object_count() - 1 do item = db.actor:object( i ) if item and alife():object( item:id() ) then table.insert( t_temp, item:section() ) end end end function SI() for a = 1, #t_temp do alife():create( t_temp[a], vector(), 0, 0, 0 ) end end Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
AndreySol 215 Опубликовано 31 Мая 2014 Поделиться Опубликовано 31 Мая 2014 (изменено) Что-то мне подсказывает, что в инвентаре ГГ могут быть всякие патроны в пачках... А для их спавна ф-ция create не годится, а должно быть вроде create_ammo. Это так, на вскидку... Да и использование object_count на мой взгляд не оправдано - правильнее наверное iterate_inventory, меньше движений: в первом случае получаем число объектов, затем дергаем алайф, чтоб получить сам объект и от него уже секцию, а во втором - сразу получаем объект и секцию от него.... Изменено 31 Мая 2014 пользователем AndreySol Ссылка на комментарий
Zander_driver 10 333 Опубликовано 31 Мая 2014 Поделиться Опубликовано 31 Мая 2014 (изменено) Что-то мне подсказывает, что в инвентаре ГГ могут быть всякие патроны в пачках... А для их спавна ф-ция create не годится, а должно быть вроде create_ammo. Это так, на вскидку... Ну вообще то create тоже годится. Только спавнить будет всегда полные пачки. Чтобы спавнить неполные, уже понадобится create_ammo. Только ей ведь, надо указать сколько патронов должно быть в пачке. А эту информацию надо смотреть, например, ковырнув нет-пакет исходной пачки. Возник у меня такой вопрос. Можно ли скриптом поместить артефакт на пояс? или в конфиге артефакта так нахимичить, чтоб по появлению в инвентаре он сразу на пояс запрыгивал. Стволы с комбезами, в слоты свои, сами запрыгивают. Но тут у нас не слот... Изменено 31 Мая 2014 пользователем Zander_driver Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Ссылка на комментарий
Карлан 1 049 Опубликовано 31 Мая 2014 Поделиться Опубликовано 31 Мая 2014 например, ковырнув нет-пакет исходной пачки. Весьма изощренный метод, достаточно бокс сайз прочесть из секции конфига патронов. @AndreySol, а чем должен объект каунт оправдываться? Мне просто интересно. Другой базар, что итерация работает быстрее, и все нормальные люди всегда ее юзают. @Dennis_Chikin, используя объект каунт нужно перебирать от нуля, а не от единицы. Ссылка на комментарий
Dennis_Chikin 3 658 Опубликовано 31 Мая 2014 Поделиться Опубликовано 31 Мая 2014 "нужно перебирать от нуля". Упс ! Был невнимателен. Поправил. По скорости - а кто-нибудь мерил ? В общем случае вызов функции - операция более дорогая, чем любые другие. По патронам: для alife():create() как раз ни в какие конфиги заглядывать не нужно. Создаст сразу полную, как раз в соответствии с конфигом. Для неполных - да, вытаскивать из пакета, и создавать через create_ammo(). арты на пояс - по-моему через тот же самый конфиг, что и стволы/костюмы/гранаты/бинокли. Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
Карлан 1 049 Опубликовано 31 Мая 2014 Поделиться Опубликовано 31 Мая 2014 Для неполных - да, вытаскивать из пакета, и создавать через create_ammo(). Да чтож вы local ini = system_ini() local num_in_box = ini:r_u32(section, "box_size") while num > num_in_box do alife():create_ammo(section, position, lvi, gvi, pid, num_in_box) num = num - num_in_box end alife():create_ammo(section, position, lvi, gvi, pid, num) И никаких пакетов не нужно. С пакетом получится, как говорится, на все случаи жизни, но для обычного спавна и без него обойтись можно вполне. По скорости - а кто-нибудь мерил ? Мерили, и не раз, и не один человек. Насколько быстрее я уже не помню, но, что быстрее, - так точно. Ссылка на комментарий
Dennis_Chikin 3 658 Опубликовано 31 Мая 2014 Поделиться Опубликовано 31 Мая 2014 num то в этом дивном коде откуда берется ? "Насколько быстрее я уже не помню" - ну так вот цифр и нужны. А то urban legends - этого-то полно. И все ссылаются как раз "кто-то где-то писал, что кто-то где-то что-то мерял". Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти