Все посты %s в %S - AMK Team
Перейти к контенту

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

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

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


Ссылка на сообщение
@Сияние217, на первый взгляд, не сложно. После каждого использования уменьшай его condition. Как дойдешь до нуля - удаляй из инвентаря.

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


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

@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

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


Ссылка на сообщение
58 minutes ago, KD87 said:

перенесенного на исходники

О, это нужная штука. Обратная совместимость полная?

 

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


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

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

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