Ulman 5 Опубликовано 16 Июня 2011 Поделиться Опубликовано 16 Июня 2011 _Призрак_, ZeeK, а хоть где именно, и вообще скрипт работоспособный? Ссылка на комментарий
KD87 718 Опубликовано 16 Июня 2011 Поделиться Опубликовано 16 Июня 2011 Ulman, а где скрипт-то? в том, что на предыдущей странице никакого sound_update() нет Ссылка на комментарий
Ulman 5 Опубликовано 16 Июня 2011 Поделиться Опубликовано 16 Июня 2011 KD87, да, он на той странице, просто я функцию переименовал, сейчас он выглядит так, в конце дописал ещё 2 end`aи вылета теперь нет: local outfits={ "stalker_gas_outfit", "military_stalker_commander_outfit" } local snd = sound_object([[alexmx\helicopter]]) function sound_update() if db.actor and db.actor:alive() then local outfit = db.actor:item_in_slot(6) if outfit and outfit:section() and outfits[outfit:section()] then if not snd:playing() then snd:play_at_pos(db.actor, vector ():set (0, 0, 0), 0, sound_object.s2d) end end end end Вызываю так, как написал ранее. Но он так и не работает... Ссылка на комментарий
Disord 1 Опубликовано 16 Июня 2011 Поделиться Опубликовано 16 Июня 2011 (изменено) ZeeK, не обязательно. Ошибка в скрипте может быть от отсутствия/присутствия запятой вплоть до неправильного написания кода. Ulman, ЛС. Изменено 16 Июня 2011 пользователем Disord Ссылка на комментарий
amik 253 Опубликовано 16 Июня 2011 Поделиться Опубликовано 16 Июня 2011 Помогите пожалуйста с такой задачкой: Мне нужно из монстра сделать манекена. То есть чтобы тот все игнорировал и стоял на одном месте. gruber ты говорил в ТТ2 глянуть. Не подскажите имя той зверюшки? Под каким именем она заспавнена? Мой архив Сталкером не занимаюсь. Ссылка на комментарий
strelok200 0 Опубликовано 16 Июня 2011 Поделиться Опубликовано 16 Июня 2011 amik, Напиши ему такую логику: [logic] active = mob_remark@hold [mob_remark@hold] anim = stand_idle_0 time = 50000 on_signal = action_end | mob_remark@hold Добавлено через 3 мин.: Можно взять из ТТ2 Смоти логику: doc_pseudodog, doc_bloodsucker, dog_cat... Создаю глобальный мод с новыми локациямЭ Ссылка на комментарий
Ulman 5 Опубликовано 16 Июня 2011 Поделиться Опубликовано 16 Июня 2011 Ребята, с огромной помощью, всё таки мой скрипт заработал, но со звуком появился глюк. Вот ссылка, которая демонстрирует собственно проблему. Кто то с таким сталкивался? P.S. Сам по себе звук нормальный, в звуковом файли один цикл дыхания. Ссылка на комментарий
Kirag 39 Опубликовано 16 Июня 2011 Поделиться Опубликовано 16 Июня 2011 (изменено) Такое чувство, что звук у тебя запускается каждый апдейт, независимо от того, доиграл он предыдущий цикл или нет... Попробуй сохранять время запуска звука в переменной, и запускать снова только если прошло времени больше, чем длина звука. Изменено 16 Июня 2011 пользователем Kirag Мои работы: Ночные прицелы + смена ножевого слота AI вертолетов + ПЗРК Soul Cube Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем. Ссылка на комментарий
Ulman 5 Опубликовано 16 Июня 2011 Поделиться Опубликовано 16 Июня 2011 Я знаю, что я надоел, извините. Я вот хочу попробовать написать скрипт для ТЧ, что бы когда ГГ был голоден, проигрывался звук, желательно рандомный, я примерно что то написал, но вот незнаю как сделать, что бы функция вызывалась каждые 2-3 минуты нормального времени, то есть что бы звук проигрывался при условии голода через определённый промежуток времени. Можете пожалуйсто рассказать на примере. Заранее спасибо. Ссылка на комментарий
RayTwitty 492 Опубликовано 16 Июня 2011 Поделиться Опубликовано 16 Июня 2011 (изменено) Ulman, отслеживать голод ГГ вроде бы нельзя... Так что никак... Хотя можно попробовать сделать по статику на экране (иконка голода)... Если только она именно статиком сделана, а не движком... По звуку: function sound_update() if db.actor and db.actor:alive() then local outfit = db.actor:item_in_slot(6) if outfit and outfit:section() and outfits[outfit:section()] then if not snd:playing() then snd:play_at_pos(db.actor, vector ():set (0, 0, 0), 0, sound_object.s2d) else if snd:playing() then snd:stop() end end end end end То что жирным выделено добавь. Не будет на каждом апдейте включатся. То что подчеркнуто вообще не нужно. Изменено 16 Июня 2011 пользователем Shadows Ссылка на комментарий
Ulman 5 Опубликовано 16 Июня 2011 Поделиться Опубликовано 16 Июня 2011 Shadows, да со скриптом мне уже помогли, но спасибо и за такой способ, буду теперь знать. А вот на счёт голода, вроде бы в моём случае надо ковырять от _g.script да и какая то более чем странная функция там есть: function on_actor_satiety() end Что то мне кажется, что она и была задумана для чего то подобного. Ссылка на комментарий
DiXares 1 Опубликовано 16 Июня 2011 Поделиться Опубликовано 16 Июня 2011 Здравствуйте) Как в Сталкере с io в скриптах? local fl = assert(io.open(".\\test.txt", "a+")) fl:write("test") fl:close() Получится? Или разработчики отрубили все расширения? Ссылка на комментарий
iDreD 5 Опубликовано 16 Июня 2011 Поделиться Опубликовано 16 Июня 2011 Пространство имен io доступно начиная с ЧН. В ТЧ нужно извращаться. Работа в Sculptris 3D [туториал] Страничка на Проза.ру Ссылка на комментарий
PavelSnork 3 Опубликовано 17 Июня 2011 Поделиться Опубликовано 17 Июня 2011 Подскажите, пожалуйста, как можно скриптом вывести текстуру на экран, которая записана в maingame.xml? Например, если здоровье гг меньше такого-то значения, то вывести такую текстуру. Я просто в скриптах не силен, а поиск мне не помог. Жду ли я Сталкер 2? Хм... Ссылка на комментарий
ZeeK 57 Опубликовано 17 Июня 2011 Поделиться Опубликовано 17 Июня 2011 (изменено) Возможно ли заставить мутанта постоянно охотиться только за Гг?? Изменено 17 Июня 2011 пользователем ZeeK Не соответствует. N6260 Ссылка на комментарий
Ulman 5 Опубликовано 17 Июня 2011 Поделиться Опубликовано 17 Июня 2011 (изменено) Ребята, я был прав, функция: function on_actor_satiety() end отвечает за голод. Я переделал её вот так: snd = sound_object([[ambient\underground\rnd_giant]]) function on_actor_satiety() if not snd:playing() then snd:play_at_pos(db.actor, vector():set(0,0,0), 0, sound_object.s2d) end end И звук проигрывался, но к сожалению только один раз за всю игру. Можно ли как то исправить это недоразумение? Изменено 17 Июня 2011 пользователем Ulman Ссылка на комментарий
Disord 1 Опубликовано 18 Июня 2011 Поделиться Опубликовано 18 Июня 2011 Ulman, дело в том, что эта и ей подобные функции (рядышком находятся) отвечают за появление туториалов при начале игры (справа вверху вылезает текст про репутацию, голод, бег и т.д.). Сейчас нет при себе распакованной игры, попробуй во всех скриптах поискать вызов этой функции, а затем уже можно изменить так, чтобы она включалась не один раз. Ссылка на комментарий
Ulman 5 Опубликовано 18 Июня 2011 Поделиться Опубликовано 18 Июня 2011 (изменено) К сожалению больше ни в каком скритпе функция "on_actor_satiety" нигде не вызывается и нигде больше даже такое название не встречается, получается движком вызывается... А вообще с этим что то можно сделать? Хотя я тут наткнулся на скрипт game_stats.script и он как раз ссылается на "satiety". Собственно вот такие функции: function shutdown () printf ("GAME STATS START AT LEVEL [%s]", level.name ()) local l_name = level.name () for a = 1, table.getn (stats), 1 do if stats[a].id == actor_position then printf ("[stats][%s][%s][%d][%f,%f,%f][%f, %f, %f]", l_name, stats[a].time, stats[a].id, stats[a].position.x, stats[a].position.y, stats[a].position.z, stats[a].health, stats[a].radiation, stats[a].satiety) elseif stats[a].id == actor_item_take then printf ("[stats][%s][%s][%d][%f,%f,%f][%s]", l_name, stats[a].time, stats[a].id, stats[a].position.x, stats[a].position.y, stats[a].position.z, stats[a].item_name) elseif stats[a].id == actor_item_drop then printf ("[stats][%s][%s][%d][%f,%f,%f][%s]", l_name, stats[a].time, stats[a].id, stats[a].position.x, stats[a].position.y, stats[a].position.z, stats[a].item_name) elseif stats[a].id == actor_money_trade or stats[a].id == actor_money_quest or stats[a].id == actor_money_total then printf ("[stats][%s][%s][%d][%f,%f,%f][%d]", l_name, stats[a].time, stats[a].id, stats[a].position.x, stats[a].position.y, stats[a].position.z, stats[a].money) end end stats = {} end и такая: function update (delta, actor) additional_time = additional_time + delta if additional_time < filter_time then return end additional_time = 0 local t = { time = game.get_game_time ():timeToString (game.CTime.TimeToSeconds), id = actor_position, position = actor:position (), health = actor.health, radiation = actor.radiation, satiety = actor.satiety } table.insert (stats, t) end Может это как то использовать можно? Изменено 18 Июня 2011 пользователем Ulman Ссылка на комментарий
Real Wolf 34 Опубликовано 18 Июня 2011 Поделиться Опубликовано 18 Июня 2011 Я когда-то просто отключил движковый голод, и написал скриптовой. Но того кода, к сожалению, уже нету. Впрочем, написать его не тяжело. Ссылка на комментарий
Ulman 5 Опубликовано 18 Июня 2011 Поделиться Опубликовано 18 Июня 2011 Real Wolf, мне точно тяжело, я ведь пока только начинаю учиться... А вообще просто интересно, из имеющихся данных, что то можно сделать? Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти