[SoC] Ковыряемся в файлах - Страница 889 - Скрипты / конфиги / движок - AMK Team
Перейти к контенту

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


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

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

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

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

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

2 часа назад, nego сказал:

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

  Показать

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

 

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

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

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

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

28 минут назад, SWEAW сказал:

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

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

  • Не нравится 1

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

22 минуты назад, SWEAW сказал:

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

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

Изменено пользователем Romann
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. Взял скрипт анимаций оттуда. Но больше регистрационных файлов по этой анимки я  не находил.

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

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

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

 

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

 

 

 

3 часа назад, UnLoaded сказал:

Нет.

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

@SWEAW в x-ray extensions есть функция перемотки времени.

Quote

level.advance_game_time( dt_ms )

 

  • Полезно 1

@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 пользователей

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