Перейти к контенту

aka_sektor

Жители
  • Число публикаций

    1 970
  • Регистрация

  • Последнее посещение

  • Дней в топе

    9
  • AMKoin

    4,813 [Подарить AMKoin]

Весь контент пользователя aka_sektor

  1. aka_sektor

    [SoC] Вопросы по SDK

    Я не разбираюсь в ошибках конвертера. По ним консультировался у автора, или у тех кто с ними сталкивался. Если сцену сохранило, всё норм. Обращать внимание нужно на ошибки в SDK, когда откроешь декомпилированный уровень. В любом случае, компилировать уровень придется в SDK. То чем ты хочешь заниматься: Предназначено для уже скопилированных уровней. Таковые, ЕМНИП, имеются в различных паках локаций.
  2. @rusMAFIA, если насчёт "Игры престолов", то там действительно, 2 пожилых человека обсуждали современнное кино, сделанное не для них. Но что касалось вопросов исторических, там довольно интересные факты выяснялись. К тому же, финал не понравился наверное никому. А вот про Чернобыль, они могут рассказать заметно больше, т.к. жили в СССР. Видели изнутри. Может в Чернобыле и не было тогда, но что в стране было в то время - представляют. К тому же, как Клим Жуков дал понять, система образования в СССР была особенная, лучше наверное всего в то время в мире. Советская номенклатура, ну никак не могла себя так вести.
  3. aka_sektor

    [SoC] Вопросы по SDK

    Откуда скачивал его? Мож старая версия. Ну раз ты: Прочти вот пошаговые руководства, начиная с: https://modfaq.ru/Декомпиляция_уровня Может пригодится. Это прошлый век. Сейчас так моды, может и не никто, но мало кто делает. Оно и правильнее, как GSC завещали, в SDK надо делать, как они делали.
  4. Клим Жуков анонсировал, будет разбор каждой серии на канале Гоблина Пучкова: https://youtu.be/GlyXnXJPs5s?t=43 Интересно посмотреть.
  5. Разгребаю пока тему моделей NPC для ТЧ, иные дела отложены...

  6. @WinCap, ну ка поподробнее. Что имеешь ввиду? Собак смотреть ходил к вагончику, где Толик. Они там сталкера догрызают.
  7. @ed_rez, естественно я начинал новую игру. Что за вопрос.
  8. @ed_rez, я брал модель из темы: https://www.amk-team.ru/forum/topic/4304-novye-modeli-nps-tch/ А именно: lafugix\Собака-зомби из Resident Evil by lafugix Путь у новой модели: monsters\lafugix\dog Его я и прописывал вместо всех визуалов в файле m_dog.ltx Эффекта - ноль. Поменял название папки monsters\dog\dog Модель заменилась. Потому и спрашиваю, где задаётся визуал собачек на самом деле?
  9. aka_sektor

    Скриптование

    @naxac, если я правильно понял так: UPD: похоже что нет... UPD2: вот так не вылетает, но затемнение осталось.
  10. @Rastaman_vip74, в том и прикол, менял путь к модели в этом файле, а собаки остаются те же. Возможно путь monsters\dog\dog где-то залочен.
  11. @I am Dead, честно говоря не понял причем тут консольные команды графики. Я дико извиняюсь, а где задаётся визуал собачек? Похоже что не в файле gamedata\config\creatures\m_dog.ltx
  12. А вот ещё вопрос: можно ли как-то сделать, чтобы после загрузки сохранения не надо было каждый раз скрывать интерфейс нажатием "-" (минус) на клавиатуре? И ещё, чтобы по умолчанию не был в руках бинокль, и вообще ничего не было?
  13. aka_sektor

    Скриптование

    Это куда предлагаешь прописать этот код?
  14. @BFG, неа... похоже не оно. Закомментил так: function run_tutorial_if_newbie(actor, npc, p) -- if has_alife_info("esc_trader_newbie") then -- game.start_tutorial(p[1]) -- end end Затухает и дальше.
  15. aka_sektor

    Скриптование

    @naxac, да, робит. А затемнение экрана эт скриптовое?
  16. Может это: function run_tutorial_if_newbie(actor, npc, p) if has_alife_info("esc_trader_newbie") then game.start_tutorial(p[1]) end end И че с этим делать? Подозреваю надо как-то has_alife_info менять наоборот.
  17. @aromatizer, это забавно, похоже всё изменение в файле, это закомментированная строка: [sr_idle@tutorial] ;on_info = {+esc_tutorial_start} sr_idle@tutorial_jump И да, правда отключает. Ещё вопрос: а как бы это "затухание экрана" ещё вначале убрать?
  18. @Капрал Хикс, поставил on_timer = 0 Чет вроде и быстрее, а чет вроде ещё продолжает висеть долго.
  19. А где задаётся время их показа? Мож хоть время подсократить.
  20. Как там отключить текстовые туториалы вначале игры, про отношение, бинокль и т.д. что на экране появляются, не напомните?
  21. aka_sektor

    Скриптование

    @naxac блин, думал только дверью обойтись, но если её пробежать, голос Сидоровича в башке. Может подскажешь, что в логике Сидоровича изменить, чтобы пропустить туториал? [logic] active = {+esc_trader_hello_played} mob_trader@new_idle1, mob_trader@new_start_wait on_trade = mob_trade@new trade = misc\trade_trader.ltx ; ------------------------------------------------------------------------------------------------------ ; ÑÒÀÐÒ ; ------------------------------------------------------------------------------------------------------ ; Æäåì íåìíîãî [mob_trader@new_start_wait] anim_global = chair_hack_idle on_timer = 5000| mob_trader@new_start_intro1 can_talk = false tip_text = ;Ïîäâèãàåìñÿ ê èãðîêó [mob_trader@new_start_intro1] anim_global = chair_hack_to_desk on_signal = animation_end| mob_trader@new_start_intro2 %+esc_trader_hello_played% can_talk = false tip_text = ;Ïåðâàÿ ôðàçà "ÿ òåáÿ ñïàñ..." [mob_trader@new_start_intro2] anim_global = first_phrase anim_head = first_phrase sound_phrase = trader_monolog1 on_signal = animation_end| mob_trader@new_start_intro3 can_talk = false tip_text = ; Æäåì íåìíîãî, âêëþ÷àåì óïðàâëåíèå [mob_trader@new_start_intro3] anim_global = desk_idle tip = tips_esc_trader_how_to_talk on_info = {=talking} mob_trader@new_idle1 on_timer = 5000 | mob_trader@new_start_intro4 ; Ãîâîðèì âòîðóþ ôðàçó (÷òî ñòîèøü? ïîäõîäè) [mob_trader@new_start_intro4] anim_global = desk_talk anim_head = normal sound_phrase = trader_come_here2 on_signal = sound_phrase_end | mob_trader@new_idle1 ;on_info = {=talking} mob_trader@new_idle1 ; îáðûâàòü ôðàçó on_actor_dist_ge_nvis = 5 | {-esc_trader_bye_played +esc_trader_hello_played} mob_trader@new_bye %+esc_trader_bye_played% ;---------------------------------- ;------------- Idle --------------- ;---------------------------------- ;Îñíîâíîé idle (1) - çà ñòîëîì [mob_trader@new_idle1] anim_global = desk_idle on_signal = animation_end| {~25} mob_trader@new_idle1_to_idle3, {~50} mob_trader@new_idle1_to_idle5, {~75} mob_trader@new_idle1_to_idle2, mob_trader@new_idle1_to_idle1 on_info = {=talking} mob_trader@new_idle1_to_idle3 on_actor_dist_ge_nvis = 5 | {-esc_trader_bye_played +esc_trader_hello_played} mob_trader@new_bye %+esc_trader_bye_played% on_actor_dist_ge_nvis2 = 12 | mob_trader@new_wait ; Idle (2) - ïî äèàãîíàëè [mob_trader@new_idle2] anim_global = diagonal_idle on_signal = animation_end| {~25} mob_trader@new_idle2_to_idle3, {~50} mob_trader@new_idle2_to_idle4, {~75} mob_trader@new_idle2_to_idle1, mob_trader@new_idle2_to_idle2 on_info = {=talking} mob_trader@new_idle2_to_idle3 on_actor_dist_ge_nvis = 5 | {-esc_trader_bye_played +esc_trader_hello_played} mob_trader@new_bye %+esc_trader_bye_played% on_actor_dist_ge_nvis2 = 12 | mob_trader@new_wait ; Idle (3) - îòêèíóâøèñü íà ñïèíêó [mob_trader@new_idle3] anim_global = chair_hack_idle on_signal = animation_end| {~30} mob_trader@new_idle3_to_idle2, {~70} mob_trader@new_idle3_to_idle1, mob_trader@new_idle3_to_idle3 on_info = {=talking} mob_trader@new_talking on_actor_dist_ge_nvis = 5 | {-esc_trader_bye_played +esc_trader_hello_played} mob_trader@new_bye %+esc_trader_bye_played% on_actor_dist_ge_nvis2 = 12 | mob_trader@new_wait ; Idle (4) - çà êîìïüþòåðîì [mob_trader@new_idle4] anim_global = compute_idle on_signal = animation_end| {~40} mob_trader@new_idle4_to_idle2, mob_trader@new_idle4_to_idle4 on_info = {=talking} mob_trader@new_idle4_to_idle2 on_actor_dist_ge_nvis = 5 | {-esc_trader_bye_played +esc_trader_hello_played} mob_trader@new_bye %+esc_trader_bye_played% on_actor_dist_ge_nvis2 = 12 | mob_trader@new_wait ; Idle (5) - ÷èòàåò [mob_trader@new_idle5] anim_global = listen_idle on_signal = animation_end| {~45} mob_trader@new_idle5_to_idle1, mob_trader@new_idle5_to_idle5 on_info = {=talking} mob_trader@new_idle5_to_idle1 on_actor_dist_ge_nvis = 5 | {-esc_trader_bye_played +esc_trader_hello_played} mob_trader@new_bye %+esc_trader_bye_played% on_actor_dist_ge_nvis2 = 12 | mob_trader@new_wait ;---------------------------------- ;-------- Àâòîïåðåõîäû -------- ;---------------------------------- ; Ñòîë - ñòîë (ïðîìåæóòî÷íàÿ) [mob_trader@new_idle1_to_idle1] anim_global = desk_idle on_signal = animation_end| mob_trader@new_idle1 ; Äèàãîíàëü - äèàãîíàëü (ïðîìåæóòî÷íàÿ) [mob_trader@new_idle2_to_idle2] anim_global = diagonal_idle on_signal = animation_end| mob_trader@new_idle2 ; Ñïèíêà - ñïèíêà (ïðîìåæóòî÷íàÿ) [mob_trader@new_idle3_to_idle3] anim_global = chair_hack_idle on_signal = animation_end| mob_trader@new_idle3 ; Êîìïüþòåð - êîìïüþòåð (ïðîìåæóòî÷íàÿ) [mob_trader@new_idle4_to_idle4] anim_global = compute_idle on_signal = animation_end| mob_trader@new_idle4 ; ×èòàåò - ÷èòàåò (ïðîìåæóòî÷íàÿ) [mob_trader@new_idle5_to_idle5] anim_global = listen_idle on_signal = animation_end| mob_trader@new_idle5 ;---------------------------------- ;----- Ïåðåõîäû ìåæäó idle-ìè ---- ;---------------------------------- ; Äèàãîíàëü - êîìïüþòåð [mob_trader@new_idle2_to_idle4] anim_global = diagonal_to_compute on_signal = animation_end| mob_trader@new_idle4 ; Êîìïüþòåð - äèàãîíàëü [mob_trader@new_idle4_to_idle2] anim_global = compute_idle_to_diagonal on_signal = animation_end| mob_trader@new_idle2 ; Äèàãîíàëü - ñïèíêà [mob_trader@new_idle2_to_idle3] anim_global = diagonal_to_chair_hack on_signal = animation_end| {=talking} mob_trader@new_talking, mob_trader@new_idle3 ; Ñïèíêà - äèàãîíàëü [mob_trader@new_idle3_to_idle2] anim_global = chair_hack_to_diagonal on_signal = animation_end| mob_trader@new_idle2 ; Ñòîë - ñïèíêà [mob_trader@new_idle1_to_idle3] anim_global = desk_to_chair_hack on_signal = animation_end|{=talking} mob_trader@new_talking, mob_trader@new_idle3 ; Ñïèíêà - ñòîë [mob_trader@new_idle3_to_idle1] anim_global = chair_hack_to_desk on_signal = animation_end| mob_trader@new_idle1 ; Ñòîë - äèàãîíàëü [mob_trader@new_idle1_to_idle2] anim_global = desk_to_diagonal on_signal = animation_end| mob_trader@new_idle2 ; Äèàãîíàëü - ñòîë [mob_trader@new_idle2_to_idle1] anim_global = diagonal_to_desk on_signal = animation_end| mob_trader@new_idle1 ; Ñòîë - ÷èòàåò [mob_trader@new_idle1_to_idle5] anim_global = desk_to_listen on_signal = animation_end| mob_trader@new_idle5 ; ×èòàåò - ñòîë [mob_trader@new_idle5_to_idle1] anim_global = listen_to_desk on_signal = animation_end| mob_trader@new_idle1 ;-------------------------------------- ;------------- Ðàçãîâîð --------------- ;-------------------------------------- [mob_trader@new_talking] anim_global = chair_hack_talk anim_head = normal on_info = {!talking} mob_trader@new_idle3 ;-------------------------------------- ;------------ Òîðãîâëÿ ---------------- ;-------------------------------------- [mob_trade@new] anim_global = chair_hack_idle on_info = {=trading =trade_exchanged} mob_trader@new_trade_exchanged on_info2 = {!trading =trade_exchanged} mob_trader@new_trade_good on_info3 = {!trading !trade_exchanged} mob_trader@new_trade_bad [mob_trader@new_trade_bad] ;anim_global = diagonal_talk anim_global = chair_hack_idle anim_head = angry sound_phrase = trader_bad_trade on_signal = sound_phrase_end | mob_trader@new_idle2 on_actor_dist_ge_nvis = 12 | mob_trader@new_wait [mob_trader@new_trade_exchanged] ;anim_global = diagonal_talk anim_global = chair_hack_idle anim_head = normal sound_phrase = trader_exchanged on_signal = sound_phrase_end | mob_trader@new_idle2 on_actor_dist_ge_nvis = 12 | mob_trader@new_wait [mob_trader@new_trade_good] ;anim_global = diagonal_talk anim_global = chair_hack_idle anim_head = good sound_phrase = trader_good_trade on_signal = sound_phrase_end | mob_trader@new_idle2 on_actor_dist_ge_nvis = 12 | mob_trader@new_wait ;------------------------------------- ;---------- Ïðèâåòñòâèÿ -------------- ;------------------------------------- [mob_trader@new_hello] anim_global = hello anim_head = normal sound_phrase = trader_hello_what_have_you_got on_signal = animation_end | mob_trader@new_idle2 [mob_trader@new_bye] on_actor_dist_ge_nvis = 12 |mob_trader@new_wait anim_global = hello anim_head = normal sound_phrase = trader_bye on_signal = animation_end | mob_trader@new_wait [mob_trader@new_wait] anim_global = diagonal_idle_short on_actor_dist_le_nvis = 3 | {-esc_trader_hello_played} mob_trader@new_hello %+esc_trader_hello_played% on_actor_dist_ge_nvis = 5 | {-esc_trader_bye_played +esc_trader_hello_played} mob_trader@new_bye %+esc_trader_bye_played% on_actor_dist_ge_nvis2 = 12 | %-esc_trader_hello_played -esc_trader_bye_played%
  22. aka_sektor

    Скриптование

    Подскажет кто, что нужно изменить в логике дверей бункера Сидоровича, чтобы они изначально были октрыты? [logic] active = ph_door@locked [ph_door@locked] locked = true snd_open_start = trader_door_unlock on_info = {+esc_trader_can_leave} ph_door@closed %=play_snd(device\door_servomotor)% [ph_door@closed] closed = true locked = false on_use = ph_door@open %-esc_close_door% snd_open_start = trader_door_open_start snd_close_start = trader_door_close_start snd_close_stop = trader_door_close_stop [ph_door@open] closed = false locked = false on_use = ph_door@closed on_info = {+esc_close_door} ph_door@closed snd_open_start = trader_door_open_start snd_close_start = trader_door_close_start snd_close_stop = trader_door_close_stop
  23. aka_sektor

    Новые модели НПС (ТЧ)

    Тема только для публикации готовых к использованию моделей NPC / Монстров. По вопросам работы с моделями, обращайтся в соответсвующие темы в разделе: http://www.amk-team.ru/forum/forum/45-shkola-moddinga/ Большая просьба ко всем: Пройдитесь сначала и до конца темы, посмотрите, может какие-то из утраченных в сети моделей, имеются у вас. Опубликуйте их пожалуйста в теме!
  24. aka_sektor

    Моделирование в MilkShape 3D

    Че за фигня, никак не пойму... артефактит просмотр с X-Ray плагинами Самое прикольное, делаю: Edit -> Refresh Textures Моделька становится нормальной: Но как только шевелю - снова эта хрень.
  25. @Desertir, стоило бы не только ссылку, а непосредственно текст из файла в "шапку" под спойлер положить. Немного ненужной лирики. «Золотой век» модостроения для игры S.T.A.L.K.E.R. прошел, не нужно этого отрицать, все великие деятели этой области уже никогда не продолжат писать свои гениальные произведения. Не буду спорить – модострой продолжается, однако многие согласятся, что это уже «не то» и «прежним» никогда не станет. Введение. Эта статья, по моему замыслу, должна помочь читающему в понимании, что такое скрипты игры S.T.A.L.K.E.R. Кто-то, возможно из великих, сказал: «Нельзя научить, можно научиться». Я почти не сомневаюсь, что этот человек имел ввиду программирование. Это искусство мыслить не так, как все. Мыслить как машина и как человек одновременно. Знания уходят на второе место и, как следствие, программирование нельзя выучить или бездумно списать. Это способ понимать одновременно простые и сложные вещи. Но, если вы можете это делать, или хотя бы безумно желаете этого, то вам открывается «мир» поистине безграничных возможностей. К делу. Итак, вам нужно залезть в скрипты, добавить пару строк, и радоваться жизни дальше. В этом случае можете смело закрыть эту статью, открывать форум АМК или идти на Вики и искать ответа там, т.к. для вас следующий текст будет просто горой слов, который никак не пригодиться. Здесь я попытаюсь объяснить, что же такое скрипты, зачем они нужны, и что нужно для их использования. Скрипт – тестовый файл, содержащий необходимые команды для реализации того или иного функционала игры. Это определение лежит в контексте рассматриваемой игры, на Википедии есть страница «Сценарный язык», которая может оказаться полезной для прочтения. С определением понятно, наверное, зачем же это нужно? К сожалению, пока не изобрели телепатию; компьютер может понимать человека только на определенных языках (в конечном итоге, наборе процессорных инструкций, но не будем сгущать краски), так что ответ очевиден, скрипты нужны для того, чтобы игра понимала, что от нее хотят. Пока вроде бы просто? Не совсем, как же игра понимает текст на самом деле? Тут мне придется сказать пару «умных» слов. Игра это программа. Как ваш браузер, как блокнот или проводник Windows. Все это программы, они написаны на неком языке программирования (ЯП). Скрипты так же пишутся на определенном ЯП – в данной игре это Lua. Сама же игра (движок – X-Ray Engine) написана на языке C++. Связь между этими совершенно разными языками осуществляется посредством LuaBind. Это полезно просто иметь ввиду, а что это такое, и как оно непосредственно работает, не так уж и интересно. Важно то, какие возможности эта привязка (bind) дает. Дело в том, что мы не можем использовать движок напрямую. Нельзя сказать «Хей, чувак, скажи как зовут вот этого NPC, если это Волк, то положи ГГ в инвентарь водку». Если бы скриптов не было, такое действие нельзя было бы добавить или как-то выполнить. Готовую программу можно запустить и закрыть, на этом стандартные манипуляции заканчиваются. Однако если программа может прочесть текстовый файл с определенным содержимым, понять это содержимое и что-либо сделать с ним, тогда мы можем повлиять на программу достаточно серьезно. Этим и занимаются скрипты – влияют на игру, задают для нее сценарий (найдите в словаре слово script). Итак, раз скрипт – текстовый файл, тогда его можно открыть любым текстовым редактором и писать в него все, что душе угодно, почти. Понимание чужих и написание своих скриптов – непростая задача, в которой нельзя помочь, разве только предлагать направление, а следовать ему или нет, выбирать вам. Чтобы использовать скрипты нужно несколько вещей: желание это делать, понимать некоторые принципы программирования, понимать язык скриптов, знать, где посмотреть документацию по ним. Заключение. Так или иначе, я ответил на три поставленный вопроса, кто-то из прочитавших (если такие есть) знал ответы, кому-то было просто (не)интересно, а кто-то сделал для себя выводы, что скриптование – штука хитрая и сложная, но интересная.
×
×
  • Создать...