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

Скриптование


Svoboда

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

@Homtaro ищите в моде "золотой шар". Там повышался урон из определённой винтовки по некоторым мутантам.

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

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


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

Есть такой код:
 

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

    if obj:section() == "sleepingbag" then
        local can_sleep = true    
        local actor = db.actor
        for id=1,65535 do
            local object = level.object_by_id(id)
            if object ~= nil then
                if (IsStalker(object) and object:relation(actor) == game_object.enemy) or IsMonster(object) then
                    if object:position():distance_to(actor:position()) < ENEMY_RADIUS and object:see(actor) then
                        news_manager.send_tip(actor, "sleep_warning_enemy", nil, "default", 5000)
                        can_sleep = false
                        break
                    end
                end
            end
        end

        -- проверка на радиацию
        if actor.radiation > 0 and can_sleep then
            news_manager.send_tip(actor, "sleep_warning_radiation", nil, "default", 5000)
            can_sleep = false
        end

        if actor.satiety < 0.5 and can_sleep then
            news_manager.send_tip(actor, "satiety_warning_radiation", nil, "default", 5000)
            can_sleep = false
        end
        
        if can_sleep then
        end

    end

 

    -- ATM Sleeping Bag start
    if self.already_jumped==false and jump_level.need_jump==true and (device().frame > self.spawn_frame+2000) then
        jump_level.try_to_jump()
        self.already_jumped = true
        return
    end


Что мне нужно:
Если все проверки проходят, то запускаем окно сна, а если нет, то нет соответственно.

Проблема в чём: если проверка не проходит то окно открывается.

Что не так с кодом?

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

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


Ссылка на сообщение
52 минуты назад, ted.80 сказал:

Функцию целиком выложи, а то не очень понятно что к чему

Это вся функция и есть, впихнул в on_use в биндер.
Впрочем вот все скрипты касательно этого сна: тык

То, что ты кинул не помогло.

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

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


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

@ted.80 выбросил всё лишнее и оставил лишь в on_use такую рабочую конструкцию:
 

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

function update(obj)

    if obj:section() == "sleepingbag" then
        local ui_sleep_init = true    
        local actor = db.actor
        for id, v in pairs(db.storage) do
            local object = level.object_by_id(id)

            if object ~= nil then
                if (IsStalker(object) and object:relation(actor) == game_object.enemy) or IsMonster(object) then
                    if object:position():distance_to(actor:position()) < ENEMY_RADIUS and object:see(actor) then
                        news_manager.send_tip(actor, "sleep_warning_enemy", nil, "default", 5000)
                        ui_sleep_init = false
                        break
                    end
                end
            end
        end

        if actor.radiation > 0 and ui_sleep_init then
            news_manager.send_tip(actor, "sleep_warning_radiation", nil, "default", 5000)
            ui_sleep_init = false
        end


        if actor.satiety < 0.70 and ui_sleep_init then
            news_manager.send_tip(actor, "sleep_warning_satiety", nil, "default", 5000)
            ui_sleep_init = false
        end
        
        if ui_sleep_init == true then
            level.start_stop_menu(atmsleep.UISleep(), true)
        end     
    end
end

Теперь остался такий вопрос: а как можно остановить сон если ГГ проголодается?
Впихнул на апдейт такое:
 

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

        if db.actor.satiety < 0.70 and ui_sleep_init == true then
                news_manager.send_tip(actor, "satiety_sleep", nil, "default", 5000)
                atmsleep.sleep_stop()
        end


Но сон не останавливает.

Что не так?

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

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


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

Никто случайно не вникал (и соответственно) не правил работу стейт менеджера?

Проблема в том, что НПС отыгрывает анимации лишь с into, a out и idle прекрасно игнорирует.

Проблема касается ТЧ и ЧН, как обстоят дела в ЗП - не знаю (но судя по одному скриншоту где НПС "ищет" артефакты в аномалии, то могу предложить что там могли исправить).

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

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


Ссылка на сообщение
12 часов назад, h0N0r сказал:
Раньше было так:

void CScriptBinder::Load			(LPCSTR section)
{
	inherited::Load			(section);
}

Не значит ли это то, что если вернуть такой вид то многоэтапная логика не будет сбрасываться в самое начало при переходе НПС в оффлайн/смены уровня?

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

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


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

Тогда такой вопрос, на счёт того, что НПС переходят в секцию логики указанной в active при переходе в оффлайн.

ЧН.

Пытался метод dsh адаптировать, но упёрся в правки движка:
 

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

FATAL ERROR
 
[error]Expression    : assertion failed
[error]Function      : CInifile::w_string
[error]File          : D:\S.T.A.L.K.E.R. Clear Sky\Hike\xray\xrCore\Xr_ini.cpp
[error]Line          : 632
[error]Description   : !m_flags.test(eReadOnly)
 

stack trace:
 
xrEngine.exe caused an EXCEPTION_BREAKPOINT in module xrCore.dll at 00000000A904F65A, xrDebug::backend()+0346 byte(s), D:\S.T.A.L.K.E.R. Clear Sky\Hike\xray\xrCore\xrDebugNew.cpp, line 0230


Подумал о варианте попроще - поддержки кондлиста.


Помню переносил давным давно на ТЧ поддержку кондлиста для гулагов, примера нет уже.

В принципе, работало, правда, требовалась обязательный сейв-лоад.

Думаю игроку хоть раз за игру да придётся перезагрузиться и НПС уже подхватит новую логику.

Есть у кого пример как реализовать поддержку кондлиста для одиночной логики?

Если ещё релоад не нужен будет - вообще отлично.

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

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

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


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

@mole venomous по-моему он спросил не о кастом дате, а о возможности спавнить вэй-поинт скриптом.

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

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


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

@Nowislaw пример твой не работает?
Попробуй то же самое только под ph_button.

Ну, если не работает пример выше.

  • Спасибо 1

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

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


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

@Капрал Хикс ну впихни этих мутантов в гулаг и пускай этот гулаг твои вояки и игнорят.

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

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


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

@Pavel_2000 можно в bind_stalker.script в actor_binder:take_item_from_box:

    if box:story_id() == 47 and item:section() == "af_ice" then
        db.actor:give_info_portion("yan_have_snezhinka")
    end

Как пример. Правда, надо стори ид назначать.

  • Не согласен 1

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

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


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

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