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

[SoC] Ковыряемся в файлах


Рекомендуемые сообщения

2 минуты назад, UnLoaded сказал:

Лог покажешь, а?

Ну написал ведь, что вылет безлоговый(

пытался даже делать в _g скрипт,чтобы лог узнать, но ничего(

God save Hatsune Miku!

Ссылка на комментарий
2 часа назад, nego сказал:

Здравствуйте ВАМ. Кто подскажет?

  Показать

additional_inventory_weight = 0 
additional_inventory_weight2 = 0 ; +40 kg --- За что это отвечает?

 

additional_inventory_weight = 0 ; изменение веса с которым можно бегать
additional_inventory_weight2 = 0 ; изменение максимально подымаемого веса

God save Hatsune Miku!

Ссылка на комментарий

Ерунда какая то: пытаюсь совместить stk 10006_bag_fix_attempt_24aug и ai_add_shoc_2.0f4.

Ставлю аддишиновский state_mgr.script - все неписи как один стоят на месте в позе гг от третьего лица и не двигаются, по говорить можно и только, возвращаю атэмптовский - все работает но я не знаю что теряю, за что этот файл отвечает?

 Моя нычкаНычка в арендованном у Опричника холодильнике  

Мы хорошие ребята, жаль патронов маловато:):ukostra:

UriZzz.gif

Ссылка на комментарий

Иии снова здравия желаю, мелочный вопросик. Где лежит функция, отвечающая за вывод на экран советов в самом начале игры (аля, чтобы достать бинокль нажмите 5 и т.д., текстовый туториал, проще говоря), и от чего она зависит, от времени или от попадания ГГ в определенную зону на локации?

Ссылка на комментарий
28 минут назад, SWEAW сказал:

от попадания ГГ в определенную зону на локации?

Спейс рестрикторы в оллспавне. Рекомендую всё же с ним разобраться, ибо 1) в оригинале на него завязано много важного, 2) в нём полно багов и косяков на том же Янтаре, которые иначе не поправить.

  • Не нравится 1
Ссылка на комментарий

Господа, а есть где функция, моментально "перематывающая" игровое время на сколько нужно вперед? Допустим, в диалоге с проводником вызвал функцию смены уровня, но по игровому времени получается, что он доводит меня до места моментально, а это как-то не комильфо.

Ссылка на комментарий
22 минуты назад, SWEAW сказал:

а есть где функция, моментально "перематывающая" игровое время на сколько нужно вперед?

Ищи функцию в схеме сна.

Изменено пользователем Romann
 

Мать: 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.

Химера конечно сильный хищник, а все держится дома. Чего же ты пришел к ней домой и пытаешься её убить? © Болотный Доктор

Ссылка на комментарий
19 минут назад, Romann сказал:

в схеме сна.

Я там уже искал, функция оттуда либо перематывает время до бесконечности при смене локации, либо, если использовать стоппер, останавливает его насовсем, без прибавки.

Скрытый текст

main_sleep.script

 

...

 

function starter(scale) -- скрипт перемотки на нужное время
    local factor = scale * 2650 -- вычисление времени "пробуждения"
    game.start_tutorial("time_scaling") -- вызов функции перемотки
    level.set_time_factor(factor) -- собственно сама перемотка
end

 

function dreamer() -- отвечает за сны
    level.set_time_factor(basic_time_factor) --остановка перемотки.

...

Это функции от спального мешка. Сначала попытался просто подредачить starter:

Скрытый текст

function time() -- скрипт перемотки на нужное время
    local factor = 1 * 2650 -- вычисление времени "пробуждения"
    game.start_tutorial("time_scaling") -- вызов функции перемотки
    level.set_time_factor(factor) -- собственно сама перемотка
end

При смене локации время перематывалось бесконечно. Решил объединить с куском dreamer'а:

Скрытый текст

function time() -- скрипт перемотки на нужное время
    local factor = 1 * 2650 -- вычисление времени "пробуждения"
    game.start_tutorial("time_scaling") -- вызов функции перемотки
    level.set_time_factor(factor) -- собственно сама перемотка

    level.set_time_factor(basic_time_factor) --остановка перемотки.
end

Время остановилось вообще. После оставил от обоих функций только level.set_time или level.set_time_global с заменой переменной time_global() на нее же, но плюс час, но эти функции он не определяет.

  • Не нравится 1
Ссылка на комментарий

@UnLoaded При вызове исходных функций без изменений и по отдельности происходит ровно то же самое, что и при "попытке писать скрипты наугад". Если бы функции из схемы сна работала и с переходом на локации, я бы наверное не лез в специальную тему, чтобы спросить, где эта самая функция находится, потому что она действительно самый очевидный вариант на проверку. Но т.к. она, очевидно, не подошла, и если этого не было понятно из исходной формулировки вопроса, то я перефразирую: есть ли где-то в файлах игры функция НЕ ИЗ СХЕМЫ СНА, мгновенно перематывающая время на нужный отрезок вперед или же сразу устанавливающая желаемое время? Если имелась в виду какая-то другая схема сна, которая есть в файлах, но не использовалась в оригинальной игре, то пожалуйста, уточните, о какой конкретно схеме идет речь, и где она находится. А если таковой в файлах игры нет вообще, то подскажите, где ее можно найти. Заранее спасибо.

Ссылка на комментарий

Все-таки:

local set_current_time_t, set_current_time_f

function set_current_time_wait()
    if game.get_game_time() < set_current_time_t then return false end
    level.set_time_factor( set_current_time_f )
    set_current_time_f = false
    return true
end


function set_current_time( hour, min, sec )    -- починено, работает.
    game_time_time = game.get_game_time()    -- полное игровое время

    local new_time = game.CTime()    -- нужно выставить
    new_time:setHMS( hour, min, sec )

    local hh, mm, ss
    _, _, _, hh, mm, ss = game_time_time:get()    -- текущее время
    local c_time = game.CTime()
    c_time:setHMS( hh, mm, ss )

    if new_time == c_time then return    -- ничего не делаем
    elseif new_time < c_time then        -- следующие сутки
        new_time:setHMS( hour + 24, min, sec )
    end

    new_time:setHMS( 0, 0, new_time:diffSec( c_time ) )
    set_current_time_t = game_time_time + new_time

    if not set_current_time_f then set_current_time_f = level.get_time_factor() end

    level.set_time_factor( 10000 )
    level.add_call( set_current_time_wait, dummy_action )
end

чем именно не нравится такая перемотка ?

 

Да, при смене локации и вообще s/l таймфактор надо заново читать из конфига и выставлять. Или останаввливать перемотку из on_save() хотя-бы, к примеру, актора. Текущий сохраняется непосредственно в сэйве. По-другому - ни как.

 

  • Спасибо 1
Ссылка на комментарий

@Dennis_Chikin Не могу сказать, нравится она мне или нет, т.к. первый раз вижу такую формулировку. Это из оригинальных файлов? Если да, то моя ошибка, что неправильно понял отвечавшего мне человека и стащил функцию из мода со спальником. Не могли бы уточнить, где эти функции находятся? В любом случае спасибо, при возможности протестирую работоспособность в игре.

  • Не нравится 1
Ссылка на комментарий
1 час назад, SWEAW сказал:

есть ли где-то в файлах игры функция НЕ ИЗ СХЕМЫ СНА, мгновенно перематывающая время на нужный отрезок вперед или же сразу устанавливающая желаемое время?

Нет.

Ссылка на комментарий
В ‎18‎.‎08‎.‎2017 в 11:08, UnLoaded сказал:

У меня поиском "stul" в содержимом геймдаты не находится. Откуда у Вас такое взялось ?

Такие анимации есть в R.M.A. и NLC 7. Взял скрипт анимаций оттуда. Но больше регистрационных файлов по этой анимки я  не находил.

Лучше сделать мод с 0, чем пытаться залатать багованный.

DarkSnowder.gif

Ссылка на комментарий

Парни, не могу никак разобраться. Использую X-Ray extensions,  но задам вопрос здесь, так как в ту тему в последнее время очень мало кто заглядывает, на мой взгляд.

Оружие - допустим, арбалет.

Выстрел, стрела попала в НПС\монстра или упала на геометрию уровня. Как мне вычислить этого самого НПС\монстра или координаты места, куда упала стрела если промазал? Если кто подскажет готовую функцию или более-менее похожий вариант исполнения - благодарности не будет границ :) . Конечная цель - заспавнить стрелу в НПС\монстра или подобрать её с геометрии. То есть просто подобрать стрелу, так как их ограниченное количество

 

Подозреваю, что предмет моих изысканий функция RayPick. Но ни описания, ни хотя бы примера использования не смог найти. Из файла помощи в теме  ничего полезного почерпнуть, увы, не смог.

 

 

 

Ссылка на комментарий
3 часа назад, UnLoaded сказал:

Нет.

_g.script же... Другое дело, она там не рабочая была: обращалась к отсутствующей функции движка.

Ссылка на комментарий

@Marafon6540 вот пример использования raypick

https://github.com/dsh2dsh/op2ogse/blob/master/gamedata/scripts/bind_fot.script

см. function check_creatures()

А вот как там с геометрией работать - я не знаю.

  • Спасибо 1
  • Нравится 1
Ссылка на комментарий

@Marafon6540 вот смотри тут

https://xray-engine.org/index.php?title=X-Ray_extensions

get_ray_pick_element() и get_tri_vertex1, get_tri_vertex2, get_tri_vertex3. Может это то, что тебе нужно.

  • Спасибо 1
  • Полезно 1
Ссылка на комментарий

@Marafon6540 ты хочешь реалистичный арбалет сделать? Я пытался, но у меня не вышло приаттачить стрелу к объектам, а так координату можно получить если подключить биндер к самой стреле, в там легко self.object:center() или position(). Только мне непонятно что тебе это даст.

...в конце концов, важен лишь, машинный код.

СТАЛКЕР только для ПК!

Ссылка на комментарий

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...