Charsi 440 Опубликовано 19 Июля 2016 Поделиться Опубликовано 19 Июля 2016 (изменено) @CRAZY_STALKER666, dvl_killer_sold_2_w_l? У тебя только dvl_killer_sold_2_w_w и dvl_killer_sold_2_l_l. Изменено 19 Июля 2016 пользователем Charsi 1 1 Lua и LuaJIT плагины для Notepad++ SciTE-RU 3.5.5 плагины для MilkShape3D Ссылка на комментарий
mortan 143 Опубликовано 19 Июля 2016 Поделиться Опубликовано 19 Июля 2016 можно как-то вывести значение fov'a в виде текста в настройках? Я прикрутил туда для него настройку,хотелось бы видеть текущее значение когда двигаешь ползунок. Ссылка на комментарий
naxac 2 445 Опубликовано 20 Июля 2016 Поделиться Опубликовано 20 Июля 2016 (изменено) @mortan, сделай через CUISpinFloat(). Изменено 20 Июля 2016 пользователем naxac Аддон для ОП-2.09.2: Яндекс/Google/GitHub Ссылка на комментарий
Sla-Sla 43 Опубликовано 20 Июля 2016 Поделиться Опубликовано 20 Июля 2016 Такой вопрос: как в ЗП скриптом спрятать оружие допустим, после юза предмета? Ссылка на комментарий
Gray Hawk 0 Опубликовано 20 Июля 2016 Поделиться Опубликовано 20 Июля 2016 (изменено) Всем здравствуйте! Хотелось бы поинтересоваться, как сделать скрипт книги? Например: у меня есть предмет, я его использую, срабатывает скрипт, передо мной вылезает окно с сообщением, чтобы его закрыть нужно нажать отдельную кнопку тоже в этом окне. Я знаю, что это сложно, я видел подобные скрипты, но я не знал, как их использовать и там, скорее всего не было кнопки и многоразового использования читабельного предмета. Очень хочется заполучить данный скрипт. Спасибо большое Изменено 20 Июля 2016 пользователем Gray Hawk Ссылка на комментарий
CRAZY_STALKER666 36 Опубликовано 20 Июля 2016 Поделиться Опубликовано 20 Июля 2016 @Gray Hawk, на форуме есть мод, подобие просмотра книги или фотографии( на деле текстурки ). Поискать надо, название не помню. Народ! Помогите найти ошибку.Вот сам код, вызываеться из bind_stalker.update() local s_obj = { "[[ep\military\ml1]]", "[[ep\military\ml2]]", "[[ep\military\ml3]]" } local snd_flag = false function mil_sound_update() local level_gg = level.name() if snd_flag == false and level_gg == "l07_military" then local s_obj=s_obj[math.random(table.getn(s_obj))] local snd_obj = xr_sound.get_safe_sound_object(s_obj) snd_obj:play_no_feedback(db.actor, sound_object.s2d, 0, vector(), 1.0) snd_flag = true end end Лог вылета - [error]Line : 73[error]Description : [error]Arguments : LUA error: ...ow of chernobyl\gamedata\scripts\bind_stalker.script:324: attempt to call field 'mil_sound_update' (a nil value) Изначально грешил на таблицу(мол получение звука неверно), но и без неё вылетает... Не соответствует правилам. Ссылка на комментарий
Romann 619 Опубликовано 20 Июля 2016 Поделиться Опубликовано 20 Июля 2016 (изменено) Изначально грешил на таблицу(мол получение звука неверно), но и без неё вылетает... Я бы сделал так: local s_obj = { [[ep\military\ml1]], [[ep\military\ml2]], [[ep\military\ml3]], } local snd_flag = false function mil_sound_update() local s_obj=s_obj[ math.random(#s_obj) ] local snd_obj = sound_object(s_obj) local level_gg = level.name() if snd_flag == false and level_gg == "l07_military" then snd_flag = true end if snd_flag then snd_obj:play_no_feedback(db.actor, sound_object.s2d, 0, vector(), 1.0) end end Изменено 20 Июля 2016 пользователем Romann 1 Мать: ASRock X470 Master SLI. Процессор: AMD Ryzen 9 3900X 12-Core(4200 MHz). Память: Patriot Memory 3200 C16 Series. DDR4-3200(1600МГц), 16Гбх2(32Гб). Видео: GeForce GTX 1060 6GB. Блок питания: CoolerMaster 750 Вт. Корпус: Zalman i3 Edge. Химера конечно сильный хищник, а все держится дома. Чего же ты пришел к ней домой и пытаешься её убить? © Болотный Доктор Ссылка на комментарий
Serge! 127 Опубликовано 20 Июля 2016 Поделиться Опубликовано 20 Июля 2016 ocal s_obj = {"[[ep\military\ml1]]","[[ep\military\ml2]]","[[ep\military\ml3]]"}Длинные строки в Lua, на сколько мне помнится, имеют несколько другой синтаксис. Может стоит попробовать написать так: ocal s_obj = {[[ep\military\ml1]],[[ep\military\ml2]],[[ep\military\ml3]]} 1 Ссылка на комментарий
Dennis_Chikin 3 658 Опубликовано 20 Июля 2016 Поделиться Опубликовано 20 Июля 2016 "Изначально грешил на таблицу" и таки да. Либо крестик снять, либо трусы надеть. "ep\\military\\ml1" или [[ep\military\ml1]] - что-нибудь одно. Неплохо еще проверять, что объект получен, прежде чем пытаться с ним что-нибудь делать. 1 1 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
Kondr48 314 Опубликовано 20 Июля 2016 Поделиться Опубликовано 20 Июля 2016 Хотелось бы поинтересоваться, как сделать скрипт книги? Можно посмотреть огсе, там есть. А так все просто: 1) В колбеке на использование предмета ловим нашу книгу, тут же спавним её и открываем страницу. 2) Страница - gui окно с фоном, на котором текст, а также кнопки смены страниц. Скорее всего шрифт придется добавлять, честно скажу - не в курсе делается ли это без ковыряния движка. Ну а если все страницы делать текстурами - слишком большой вес будет. Конечно, если речь не идет об одной-двух страницах) Ссылка на комментарий
CRAZY_STALKER666 36 Опубликовано 20 Июля 2016 Поделиться Опубликовано 20 Июля 2016 @Romann, @Serge!, @Dennis_Chikin, никто из вас не прав, в данной проблеме... Упрастил функцию( нет, ну а что? Никто не запрещает каждую итерацию цикла делать что захочу...) function mil_sound_update() local level_gg = level.name() if level_gg == "l07_military" then local snd_obj = xr_sound.get_safe_sound_object([[ep\hurt]]) snd_obj:play_no_feedback(db.actor, sound_object.s2d, 0, vector(), 1.0) end end Вылет... WAT!&! Перенес в другой скрипт, функцию не менял - НЕТ вылета... Все файлы проверяю постоянно чекером ошибок синтаксиса... но видимо он не все знает... У кого какие идеи? Не соответствует правилам. Ссылка на комментарий
Romann 619 Опубликовано 20 Июля 2016 Поделиться Опубликовано 20 Июля 2016 (изменено) Проблема была в самом файле скрипта... И не понятно, какого она вообще рода... Ну это уже надо смотреть сам скрипт, мало ли, может те же переменные пересекаются в скрипте - названия надо давать оригинальные. А вообще у тебя в коде с таблицей получается две разные переменные с одинаковым названием: local s_obj = { ... } и local s_obj=s_obj[ math.random(#s_obj) ] Надо так: local snd_tbl = { [[ep\military\ml1]], [[ep\military\ml2]], [[ep\military\ml3]], } local snd_flag = false function mil_sound_update() local s_obj=snd_tbl[ math.random(#snd_tbl) ] local snd_obj = sound_object(s_obj) local level_gg = level.name() if snd_flag == false and level_gg == "l07_military" then snd_flag = true end if snd_flag then snd_obj:play_no_feedback(db.actor, sound_object.s2d, 0, vector(), 1.0) end end Изменено 20 Июля 2016 пользователем Romann 1 Мать: ASRock X470 Master SLI. Процессор: AMD Ryzen 9 3900X 12-Core(4200 MHz). Память: Patriot Memory 3200 C16 Series. DDR4-3200(1600МГц), 16Гбх2(32Гб). Видео: GeForce GTX 1060 6GB. Блок питания: CoolerMaster 750 Вт. Корпус: Zalman i3 Edge. Химера конечно сильный хищник, а все держится дома. Чего же ты пришел к ней домой и пытаешься её убить? © Болотный Доктор Ссылка на комментарий
CRAZY_STALKER666 36 Опубликовано 20 Июля 2016 Поделиться Опубликовано 20 Июля 2016 @Romann, даже ваш старый вариант прекрасно работает! Проблема была в самом файле скрипта... И не понятно, какого она вообще рода... Не соответствует правилам. Ссылка на комментарий
Serge! 127 Опубликовано 20 Июля 2016 Поделиться Опубликовано 20 Июля 2016 (изменено) Romann, Serge!, Dennis_Chikin, никто из вас не прав, в данной проблеме... Да уж нет "уважаемый". В данной проблеме не правы Вы и только Вы. Указанный вам факт не являлся единственным ляпом представленного кода. Вот, пожалуйста, второй. local s_obj=s_obj[ math.random(#s_obj) ] Если Вы немного освежите в памяти описание Lua (или изучите его), то узнаете, что после описания local s_obj = ... доступ к разделу памяти таблицы звуков s_obj полностью будет потерян и все потуги в последующими буковками - просто ничто. А получилось в конечном примере потому, что там было изменено само имя таблицы звуков, но если даже и в ней написать длинные строки, как было написано раньше - гарантировано будет вылет. Таки кто не прав? Изменено 20 Июля 2016 пользователем Serge! Ссылка на комментарий
Dennis_Chikin 3 658 Опубликовано 20 Июля 2016 Поделиться Опубликовано 20 Июля 2016 (изменено) local s_obj=s_obj[ math.random(#s_obj) ] Вполне законная операция. Хотя без предупреждения так делать не стоит, если не хотим затруднить кому-нибудь вносить свои изменения, и вообще разбираться, как наш код работает. P.S. Ну не правы - так не правы. Успехов. Изменено 20 Июля 2016 пользователем Dennis_Chikin Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
Serge! 127 Опубликовано 20 Июля 2016 Поделиться Опубликовано 20 Июля 2016 Вполне законная операция. В данном контексте соглашусь, т.к. эти две локальные переменные имеют разные области видимости. Но, в общем такая практика весьма порочна. Ссылка на комментарий
CRAZY_STALKER666 36 Опубликовано 20 Июля 2016 Поделиться Опубликовано 20 Июля 2016 @Dennis_Chikin, @Serge!, я не про то.... Вот смотрите. Если я вызову из того скрипта, пусть даже это: get_console():execute("1") или это if db.actor:has_info then give_info бла бла бла Или любую другую функцию - получу вылет... Вот я к чему... А звуки прекрасно работают, за это отдельное спасибо! Не соответствует правилам. Ссылка на комментарий
Kirgudu 1 207 Опубликовано 21 Июля 2016 Поделиться Опубликовано 21 Июля 2016 Коллеги, вы все не обратили внимание на один момент. Оставив в стороне то, как написана сама функция, видим это: [error]Arguments : LUA error: ...ow of chernobyl\gamedata\scripts\bind_stalker.script:324: attempt to call field 'mil_sound_update' (a nil value) Перенес в другой скрипт, функцию не менял - НЕТ вылета... ИМХО, ошибка где-то в другом месте того модуля, где функция располагалась первоначально. И несмотря на то, что чекер ошибок не даёт, что-то мешает движку прочесть все элементы этого модуля.UPD: Если только функция сначала была не в bind_stalker.script. 1 1 Инструмент Ссылка на комментарий
Kondr48 314 Опубликовано 21 Июля 2016 Поделиться Опубликовано 21 Июля 2016 Я, мб, чего-то не понял об оконных классах? level.start_stop_menu(this.gui_mechanic_wnd(),true) mechanic_info["npc_name"] = first_speaker:character_name() mechanic_info["npc_icon"] = ini:r_string(first_speaker:profile_name().."_cfg","texture") news_manager.send_tip(actor, tostring(mechanic_info["npc_name"])) Здесь сообщение выводится как надо.Но когда мне нужно воспользоваться этими данными, а именно внутри кода скриптового окна уже. Мне приходит в сообщениях "nil". news_manager.send_tip(actor, tostring(mechanic_info["npc_name"])) Ссылка на комментарий
Карлан 1 049 Опубликовано 21 Июля 2016 Поделиться Опубликовано 21 Июля 2016 @Kondr48, вопрос совершенно некорректный. Никто по этим обрывкам не сможет понять что ты делаешь, можно только гадать. Моя кофейная гуща говорит о том, что твоя таблица к моменту вызова типса уже вне зоны видимости, если вообще не уничтожена. Объяви ее в самом начале модуля вот так: local mechanic_info = {} Если вызов типса в этом же модуле, и вот так: mechanic_info = {} Если в ином, но в таком случае вызывать ее нужно module.mechanic_info, почему? Недавно я как-раз рассказывал про видимость переменных, рекомендую прочесть, там же я давал ссылки на главы по окружению из официального мануала. 1 Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти