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

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

1 hour ago, Graff46 said:

подключиться к биндеру объекта и пользоваться, например, его апдейтом

Если у тебя есть биндер, что тебе мешает прямо в его функции апдейта нужное сделать? Зачем такие странные манипуляции?

 

1 hour ago, Graff46 said:

level.add_call(object, ...), Но эта функция странно себя ведёт

Именно эта форма add_call, в оригинальном движке поломана. Или не доделана, смотря с какой стороны смотреть. Единственная работающая форма add_call, в оригинальном движке, это которая с двумя функциями.

 

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

Цель, подключиться к биндеру объекта и пользоваться, например, его апдейтом в своих целях.

Тогда делается строго наоборот: биндер при апдейте сам дергает за то, что надо.

Можно дать ему табличку при ините, и потом по мере надобности добавлять в нее ненужное.

Ссылка на комментарий
10 часов назад, dsh сказал:

что тебе мешает прямо в его функции апдейта нужное сделать?

 

10 часов назад, Dennis_Chikin сказал:

огда делается строго наоборот

Надо было мне внешние включение, теперь придется придумывать что-то

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

Смотрим  все псевдООПшное творчество из amk. Ну или многострадальные "псиантенну"/таскменеджер от ПЫС.

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

@Graff46, подозреваю, что ты на самом деле изобретаешь менеджер событий. Возьми готовый и доработай по желанию. Вот например

  self.am:call( "on_physic_obj_update", self.object, delta )

Физ. объект генерирует событие "on_physic_obj_update" на своем апдейте. Кому надо, подписываются на это событие и что-то в нем делают.

 

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

@Graff46, ну, вот например доработанный из OGSE

https://github.com/dsh2dsh/op2ogse/blob/old_engine/gamedata/scripts/ogse_signals.script

который я использовал с x-ray extensions.

 

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

Всем привет. Интересует, как можно еще отключать CustomStatic во время прицеливания через оптику(где запускается текстура внешнего прицела или прицельной сетки). Отслеживать через "db.actor:accuracy()*1000"  - не вариант, так как в результате статик будет отключатся и после прицеливания без оптики. В DMX моде вот такая реализация:

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

 


if upd_time3 == nil then
    upd_time3 = time + 500
  elseif upd_time3 < time then
    upd_time3 = time + 500  
    local accuracy = math_ceil(db.actor:accuracy()*1000)
    if accuracy == 1 then
        if not scopeUsed then
            local item = db.actor:active_item()
            if item then
                --get_console():execute("load ~#I#: db.actor:active_item():section()="..tostring(item:section()))
                if item:section() == "wpn_binoc" then
                    scopeUsed = true
                elseif IAmAWeapon[item:clsid()] then
                    local t = amk.get_weapon_data(alife():object(item:id()))
                    scopeUsed = (bit_and(t.addon_flags, 1) == 1 or rx_utils.get_addon_status(item, "sc") == 1)
                    --amk.dump_table(t)
                end
            end
        end
    else
        scopeUsed = false
    end
  end

 

Может получше варианты есть?

Изменено пользователем TIGER_VLAD
Ссылка на комментарий

@TIGER_VLAD, так а вопрос у тебя в чем именно? Как отключить CustomStatic или как определить, что сейчас идет прицеливание?

 

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

или как определить, что сейчас идет прицеливание?

Да, но прицеливание именно через оптику. Вариант вот есть из DMX мода(выше). Просто интересуюсь, есть может варианты получше?

 

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

@TIGER_VLAD, вот например

 

https://github.com/dsh2dsh/op2ogse/blob/3f7514f804eaf1dc875cc3ce8513d8537dd53bc2/gamedata/scripts/ogse_dynamic_hud.script#L115

 

но используется ogse.dll. Кажется zoom_mode() именно оттуда. Грубо в двух словах, если zoom_mode() == 1, значит прицеливание, если active_item() - это оружие и у него есть оптический прицел, значит это прицеливание через оптику.

 

Изменено пользователем dsh
  • Спасибо 1
Ссылка на комментарий

научите как сделать анимацию использование еды, плиз. как в a.r.e.a юзаешь еду, игрок не двигается с мышкой и проподает худ, при этом проигрывается анимация похожая на смерть при выбросе. вот пример https://www.youtube.com/watch?v=Ac692ECmBY4 (на 5:20). зарание спасибо!

Изменено пользователем Joko SS
Ссылка на комментарий

@Joko SS, из use callback-а проверяем, что это нужный предмет, отключаем управление level.disable_input(), отключаем худ level.hide_indicators(), запускаем соотв. анимацию камеры, по желанию запускаем какой-нибудь звук, запускаем таймер на нужное время, когда таймер сработает, включаем обратно худ и возвращаем управление. Это грубо, в двух словах.

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

@dsh, напишешь для меня?) я не селен в скриптах, ток умею добавлять новые предметы

Добавлено Dennis_Chikin,

Вот мне почему-то показалось, что к этому идет, еще с прошлого поста.

Хоть селен, хоть арсенид галлия - однако явный оффтопик.

  • Смешно 5
  • Сочувствую 1
Ссылка на комментарий

Здраствуйте. Попытался подключить для себя динамические новости к последней версии OGSM на Тени Чернобыля и добавить в них некрологи из АМК. В файле bind.stalker я, как и положено, прописал функцию для запуска этих самых новостей в игре через секцию actor_binder:update. , в файле news_main эти некрологи прописал, но игра обиделась за мои действия со скриптами и вместо запуска выплюнула следующий лог:

 

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

FATAL ERROR
 
[error]Expression    : fatal error
[error]Function      : CScriptEngine::lua_error
[error]File          : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp
[error]Line          : 73
[error]Description   : <no expression>
[error]Arguments     : LUA error: ...ow of chernobyl\gamedata\scripts\bind_stalker.script:465: attempt to call field 'show_news_main' (a nil value)

 Как я понял, она не видит функцию(хотя она есть в файле) show_news_main. В чем проблема? Огромная просьба помочь, т.к. в скриптах я абсолютно не шарю, попытался разобраться в файлах и подключить по примеру. Архив с файлами для новостей и сам файл из OGSM прилагаются, смотрите ссылку ниже. 

 

 

  • Сочувствую 2

Все зовут меня Пришедший из Ниоткуда...Почему?Потому что я пришел из ниоткуда и иду в никуда...

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

Как я понял, она не видит функцию(хотя она есть в файле) show_news_main.

Ну так покажи движку, где ф-цию искать, попробуй прописать так:  название_файла_в_котором_ф-ция.show_news_main

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

@AndreySol, попробую, потом напишу результат.

Все зовут меня Пришедший из Ниоткуда...Почему?Потому что я пришел из ниоткуда и иду в никуда...

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

Попробовал так прописать, ошибка осталась, игра не запускается. Пожалуйста, кто можете - скачайте архив и гляньте, что я не так подключаю или еще что делаю.

 

А можно по-человечески объяснить, что значит "вешаем на правую мышь" и как собственно проверять? Я же сказал, что в скриптах ничего не шарю, потому и прошу помощи.

Изменено пользователем MegaStalker
Добавлено Dennis_Chikin,

100500 раз говорили:

Сначала идем сюда: https://www.amk-team.ru/forum/topic/11584-yazyk-lua-obschie-voprosy-programmirovaniya/?page=1

Потом идем на lua.org и качаем там luac5.1.exe с причиндалами. luac5.1.cmd с содержимым вида

c:\куда_положили\luac5.1.exe %1
pause

вешаем на правую мышь, и им проверяем то, что понаделали.

Добавлено Dennis_Chikin,

ПКМ, "открыть с помощью", далее выбрать созданный cmd. Дальше все будет написано фонтом по бэкграунду:

в частности, если написано, что после строки 668 в news_main.script не хватает end - идем в тему по ссылке, внимательно читаем, и разбираемся, почему не хватает.

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

Все зовут меня Пришедший из Ниоткуда...Почему?Потому что я пришел из ниоткуда и иду в никуда...

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

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

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

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

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

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

Войти

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

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

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