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

OGSE: КБ разработчиков


Zander_driver

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

(изменено)

Уважаемые разработчики, если вам не трудно. Не могли бы вы сделать отдельную запускалку мода, без конфигуратора? А еще, если не трудно, объясните пожалуйста, что именно делает конфигуратор, перед запуском движка? Я вижу, что при запуске с конфигуратором скриптам становится доступен lua модуль lfs. Что еще он делает?

 

Заранее спасибо.

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

Поделиться этим сообщением


Ссылка на сообщение

Ага, значит конфигуратор не нужен. Я-то предполагал, что он память запущенного XR_3DA.exe правит, или какой-нибудь код туда вставляет.

 

Уважаемые разработчики, огромная вам благодарность за ogse_signals.script. Полезнейшая и удобнейшая вещь.

Поделиться этим сообщением


Ссылка на сообщение

Спрошу тут опять, разработчиков. Сам докопаться не могу. Где в текстовых файлах мода читал, что прицельную точку на коллиматорных прицелах сделали светящейся. Расскажите пожалуйста подробности. Я вчера стал среди моделей в meshes искать оружие с коллиматорным прицелом и не нашел. Посмотрел все скрипты, на предмет каких нибудь действий в режиме прицеливания, и опять ничего не нашел, кроме динамического худа. Что же имелось ввиду?

Поделиться этим сообщением


Ссылка на сообщение

Расскажите пожалуйста про тепловизор. В скриптах вижу, что он включется командой r2_render_mode thermal. Но работает это странно. Правильно я подозреваю, что для его правильной работы должны быть еще каким-то образом модифицированы все текстуры теплокровных существ?

Поделиться этим сообщением


Ссылка на сообщение

Ага, спасибо. С ИК стало понятнее. Теперь не могу понять с флерами от ламп и с эффектами грязи на линзах. Капли дождя на худе включаются, а эти эффекты не могу увидеть. В опциях они включены. Этим эффектам нужно что-нибудь еще, кроме шейдеров?

 

 

Вчера портировал динамические костры и вот что-обнаружил. Лампочка костра включается/выключается, как положено. А вот огонь ни в какую гаснуть не хочет. Единственный вариант, когда у меня все это заработало, это когда я добавил flame:disable_anonaly() при спауне объекта пламени. Только после этого пламя начало выключаться disable_anomaly() и включаться обратно enable_anomaly(). Не сталкивались-ли вы с этим, уважаемые разработчики?

Поделиться этим сообщением


Ссылка на сообщение

@KD87, включаются/выключаются эффекты нормально, switch_shaders это в модуле динамического худа делает. Вот только самого эффекта фларов от ламп я не вижу. Может какие-нибудь лампочки особенные нужны?

Поделиться этим сообщением


Ссылка на сообщение

Вчера в своей адаптации движка OGSE к ОП-2 я исправлял переставшие работать телепорты и заметил одну вещь. Вот кусок скрипта:

db.actor:give_info_portion("biznes_remove_special_item")
amk.remove_item_from_inventory(obj, db.actor)
db.actor:disable_info_portion("biznes_remove_special_item")

Как мы здесь видим, выполнение значимого кода помечается флажком. Этот код выполняется в коллбэке получения предмета. Судя по использованию флажка, автор предполагал, что после выполнения remove_item_from_inventory() немедленно начнется выполнение коллбэка на потерю предмета, которые обратит внимание на установленный флажок. И судя по тому, что с чистым движком это работает более-менее правильно и уже много лет, автор был недалек от истины и чистый движок действительно вызывает коллбэки немедленно при возникновении события. Так вот, пытаясь заставить этот код работать на движке OGSE, я обнаружил, что в нем коллбэки ставятся в некоторую очередь и вызываются строго друг за другом. Как минимум это относится к коллбэкам получения/потери предметов. Т.е. пока полностью не отработает коллбэк на получение предмета, не будет вызван коллбэк на потерю предмета, если мы что-нибудь удалим при получении предмета. Это действительно так? Это в движке OGSE менялось?

  • Согласен 1

Поделиться этим сообщением


Ссылка на сообщение

Подскажие пожалуйста, как отключить вот такой отладочный вывод?

[02/21/15 21:38:31]	Current[0]->sun_dir (-0.254641,0.786415,0.562769)
[02/21/15 21:38:31]	Current[1]->sun_dir (-0.488530,0.724880,0.485682)
[02/21/15 21:38:31]	CurrentEnv.sun_dir (-0.328769,0.772826,0.542818)
[02/21/15 21:38:31]	current_weight 0.307262
[02/21/15 21:38:31]	mpower 0.000000

Поделиться этим сообщением


Ссылка на сообщение
(изменено)

В тупик я какой-то зашел. Подскажите пожалуйста. Портирую погоду из OGSE. Вроде все работает, кроме солнца. Солнца на небе нету. Если в compile_frame_point() закомментировать

 

  tab.sun_dir = string.format("%f,%f", az,za)

 

то появляются флары от солнца, а самого солнца все равно нету. Что-то я упустил при портировании, но вот что?

 

Ой, солнце похоже из под земли теперь светит. Тень ГГ на заборе нарисована так, будто солнце под ногами.


Понял наконец в чем проблема. Я сам дурак. sun_pos.script использует parse_nums() из _g.script, а эту фунцию я не перенес из OGSE и использовалась существующая, которая с отрицательными числами не умеет работать. В результате позиция солнца всегда была положительное и оно светило из под земли.

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

Поделиться этим сообщением


Ссылка на сообщение

Уважаемые разработчики,

 

разбирался вчера с ogse_night_vision.script и наткнулся на следующую непонятность. В скрипте есть обработка прицелов с ночным видением. Но эта обработка полностью отключена вот этим, в начале скрипта:

local allow_scopes_nv_cheat = true

и вот этим, в обработке режима прицеливания:

function on_sniper_mode(mode)
	if allow_scopes_nv_cheat == true then return end

У меня вопрос. Зачем это отключено было?

Поделиться этим сообщением


Ссылка на сообщение

@k01jan, не, шейдеры тоже  OGSE-шные. Они вероятно тоже участвуют, но не только они. Полагаю, что информация о светимости живых существ прописана либо в их моделях, либо в textures.ltx.

Поделиться этим сообщением


Ссылка на сообщение

 

 

Еще кое-что по консольным командам

 

А почему r2_details_opt не используется? Есть какие-нибудь рекомендации по оптимальным параметрам этой команды?

Поделиться этим сообщением


Ссылка на сообщение
(изменено)

@HellRatz,  я правильно понимаю, что тебе нужны сохраняемые таймеры?

 

Посмотрел start_timer(). Это явно устаревшая штука. Я вот так делаю:

ogse_st_mgr.delayed_fun_start( script_name() .. ".restore_power_delayed" )
  :set_delay(
    math.random( 1, level.get_game_difficulty() * 2 + 3 )
  )
  :init( script_name() .. ".restore_power_delayed" )
  :start( true )

function restore_power_delayed()
    set_actor_power_max( 1 )
end

Это просто пример использования. Можно вот так:

function start_gtimerDHMS( name, d, h, m, s, fname, ... )
  return ogse_st_mgr.delayed_fun_start( name )
    :set_gdelayDHMS( d, h, m, s )
    :init( fname, ... )
    :start()
end

start_gtimerDHMS(
  nil, d, h, m, 0,
  ( script_name() .. ".end_af_transform" ),
  table.concat( result, "," ),
  t.udacha,
  t.pos.x, t.pos.y, t.pos.z, t.gv, t.lv,
  t.info_portion,
  table.concat( from_komp, "," ),
  t.remove_anomaly,
  t.remove_anomaly_id,
  level.name()
)

сделать свою библиотечную функцию, что бы меньше писать. В общем, как, когда нравится. И имей ввиду, у этих таймеров параметр у start() имеет огромное значение. Без него таймер медленный, т.е. сработает не в строго указанное время, а + X. X зависит от загруженности метода update. Т.ч. если нужна точность, то всегда используй :start( true )

Изменено пользователем dsh
  • Спасибо 1
  • Полезно 1

Поделиться этим сообщением


Ссылка на сообщение

@KD87 выкладывай конечно, пригодится.

 

Т.е. все функции прямого доступа к памяти из x-ray extensions не реализованы и нужно все переделывать на использование экспортированных методов? А все остальное, из XE, оно реализовано?

 

А то, что было в ogse.dll, оно все реализовано? Менеджер погоды, вроде, на это завязан, шейдеры, возможно.

Поделиться этим сообщением


Ссылка на сообщение
(изменено)

@KD87 меня не это по большей части беспокоит. Все эти изменения смерджить можно. У меня в моде используется доступ к памяти для вещей, которых нет в огсе. Ну да там видно будет. Ты сам планируешь продолжать работу на движком?

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

Поделиться этим сообщением


Ссылка на сообщение

@KD87 начал смотреть скрипты. Ох, похоже с совместимостью будут проблемы. Сразу же наткнулся на

-       if sl ~= 4294967295 and npc:item_in_slot(sl) then
+       if sl ~= 255 and npc:item_in_slot(sl) then

Т.е. изменен тип числа, возвращаемого active_slot()? А где еще такое изменение сделано? m_story_id тоже изменено? Формат сейва со стороны движка прежний или изменился как-то?

 

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

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

AMK-Team.ru

×
×
  • Создать...