Перейти к содержанию

  • 0
Авторизация  
bobrovskii

Этот человек заминирован.

Вопрос

ГГ идет, в данном случае, по Спрингвейлу, никого не трогает, ни с чем/кем не взаимодействует, и тут появляется сообщение "Этот человек заминирован", и предлагается его обезвредить, либо оставить в покое. Это баг или норма? Так как даже не понятно кого обезвреживать, рядом же никого нет...

ScreenShot1.jpg

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


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

11 ответов на этот вопрос

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

  • 0
4 часа назад, bobrovskii сказал:

ГГ идет, в данном случае, по Спрингвейлу, никого не трогает, ни с чем/кем не взаимодействует, и тут появляется сообщение "Этот человек заминирован", и предлагается его обезвредить, либо оставить в покое. Это баг или норма? Так как даже не понятно кого обезвреживать, рядом же никого нет...

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

Найти бы, откуда это.

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

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


Ссылка на сообщение
  • 0
2 часа назад, MagnuMspec сказал:

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

Это не квест, а довольно дурацкий рандом энкаунтер из тройки. емнип, конкретно в этом спавнится несколько рейдеров и вася который подбежит к ГГ а ля "бля, спасайте, мне в задницу заснули пол кило тротилла", и потом уже можно его "активировать" и разминировать.

image.png
Попозже посмотрю Айди если нужно.

  • Спасибо! 1

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


Ссылка на сообщение
  • 0
14 часов назад, pz_4 сказал:

Это не квест, а довольно дурацкий рандом энкаунтер из тройки. емнип, конкретно в этом спавнится несколько рейдеров и вася который подбежит к ГГ а ля "бля, спасайте, мне в задницу заснули пол кило тротилла", и потом уже можно его "активировать" и разминировать.

Вот этот FFEU54HumanBomb [NPC_:000474BC]

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

Попробовал добавить:

GRA_FFEU54HumanBomb.esp

Еще добавил флаг No Low Level Processing, вдруг влияет.

  • Нравится 1

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


Ссылка на сообщение
  • 0
4 часа назад, MagnuMspec сказал:

Вот этот FFEU54HumanBomb [NPC_:000474BC]

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

Попробовал добавить:

GRA_FFEU54HumanBomb.esp

Еще добавил флаг No Low Level Processing, вдруг влияет.

Да, оно. Теперь подбегает NPC, просит его разминировать. При провале он просто разворачивается и убегает. Взрыва нет (если, конечно, он должен быть). А вот рейдеры из этой встрече просто стоят и не атакуют, даже если к ним в упор подойти.

ScreenShot3-1.jpg

P.S.: Кстати, прокачал консолью (через setav) навык взрывчатки до 100. Ловушка не обезвреживается...

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


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

Переделал немного скрипт. Теперь, если навык больше 75, то бомба обезвреживается, NPC убегает, рейдеры убегают за ним. Если навык меньше, то бомбу не удается обезвредить, происходит взрыв и рейдеры становятся агрессивны. 

А вот если оставить в покое, то ничего не происходит. NPC убегает, рейдеры пассивны.

Скрипт ниже (;------------------------ это добавленные/закомментированные строки), профи скажите, вдруг что не так:

Спойлер

scn TrapCorpseSCRIPT

;---------------------------------------------------------------------------------------------------------
; The Trap should start it's timer when the player is a certain distance away since this is a proximity trap.
; Should have an audible beep, ending with a higher pitched beep.
; The player can run up and activate the trap having the option to disarm it.
; If disarmed, the player can activate it again and have the option to rearm it, which automatically starts the timer again b/c the trap is a proximity trap.
; NOTE: Activation messages will only work if scripted NPC is dead...
;---------------------------------------------------------------------------------------------------------

short trapTriggered        ;0 = default        1 = trap has been triggered        2 = trap is being rearmed as a proximity trap    3 = trap is being rearmed as a timed trap    4=trap is about to explode
short trapDisarmed        ;0 = trap active    1 = trap has been disarmed        2 = trap has exploded
short interactAttempt        ;0 = default        1 = Attempt to Disarm        2 = Rearm
; NOTE: actor value variable01 is used to track the state of a trapped (live) NPC:
; * It is set in GREETING to 1, which allows you to get the Message box the next time you activate him
; * If you successfully disarm the bomb, it is set to 2
; * If you talk to him again, you get a one time greeting and then it is set to 3

short PCExplosivesSkill
short neededExplosivesSkill        ; how high we want the PC explosive skill to be in order to disarm trap.
short button

ref mySelf

float timer
float bufferTimer
float soundTimer
float timerMax            ; set to timed trap maximum (10 currently)

;---------------------------------------------------------------------------------------------------------

Begin onLoad
    set mySelf to getSelf
    set neededExplosivesSkill to 75
End

;---------------------------------------------------------------------------------------------------------

Begin onActivate

if IsActionRef player == 1

    set PCExplosivesSkill to player.getAV explosives

    if getDead == 1
        if (trapDisarmed == 0)
            ;ask player if he wants to disarm it
            ShowMessage TrapCorpseWarnMsg
            set interactAttempt to 1

        elseif (trapDisarmed == 1)
            ;ask player if he wants to rearm it
            ShowMessage TrapCorpseRearmMsg
            set interactAttempt to 2
        else
            ; trap has already gone off -- let player loot corpse
            Activate
        endif
    ; if I've spoken to a live NPC, variable01 is set to 1 by greeting so I can attempt to disarm the bomb
    elseif trapDisarmed == 0
        ;ShowMessage DefaultDebugIncrement01
        ;ask player if he wants to disarm it
        ShowMessage TrapCorpseWarnMsgLive
        set interactAttempt to 1
    else
        Activate
    endif

endif

End

;---------------------------------------------------------------------------------------------------------

Begin gamemode
    if (interactAttempt == 3)
        ; triggered by dialogue, just pop the message
        ;ask player if he wants to disarm it
        ShowMessage TrapCorpseWarnMsgLive
        set interactAttempt to 1
    endif        

    if (interactAttempt == 1)                                                        ;attempts to disarm
        set button to getButtonPressed
        if (button > -1)
            set interactAttempt to 0
            set PCExplosivesSkill to player.getAV explosives            ;------------------------
            if (button == 0)
                if (PCExplosivesSkill >= neededExplosivesSkill)
                    ;message "You successfully disarm the trap."
                    ShowMessage TrapDisarmMsg
                    set trapDisarmed to 1
                    set trapTriggered to 5                                            ;trap has been disarmed
                    setav variable01 2                                            ; mark NPC as having been disarmed (for dialogue conditions)
                else
                    ;message "You fail to disarm the trap."                    ;set timer of trap to explode after leaving dialog
                    ShowMessage TrapDisarmFailMsg
                    set trapDisarmed to 0
                    set trapTriggered to 3                                                  ;------------------------
                    set timerMax to 10                                                      ;------------------------
                    ShowMessage TrapRearmTimerMsg timerMax           ;------------------------
                endif
            elseif (button == 1)
                ;don't do anything
            endif
        endif
    endif

;***********************************

    if (interactAttempt == 2)                                                        ;rearming trap
        set button to getButtonPressed

        if (button > -1)
            set interactAttempt to 0
            if (button == 0)
                ;player wants to rearm as a proximity trap
                ShowMessage TrapRearmProximityMsg
                set trapTriggered to 2                                                ;trap is rearmed so start buffer timer
                set trapDisarmed to 0
                set bufferTimer to 10    
            elseif (button == 1)
                set timerMax to 10
                ShowMessage TrapRearmTimerMsg timerMax 
                set trapTriggered to 3                                                ;trap is rearmed as a timed trap
                set trapDisarmed to 0
            elseif (button ==2)
                ;loot body
                Activate player
            elseif (button ==3)
                ;do nothing
            endif
        endif
    endif

;***********************************
    
    if (trapDisarmed == 0)
        if (trapTriggered == 0)
            if (GetDistance3D Player <= 400)
                mySelf.playSound OBJMegatonBombTamperArm
                set trapTriggered to 1
                set timer to 1
            endif
        endif

        if (trapTriggered == 1)
            ;if (timer >0)                                                                      ;------------------------
                ;set timer to (timer - GetSecondsPassed)                     ;------------------------
            ;elseif (timer<0)                                                                ;------------------------
                mySelf.playSound WPNRifleLaserReloadInOut
                set trapTriggered to 4
                set timer to 4
            ;endif                                                                              ;------------------------
        endif

        if (trapTriggered == 2)                                                        ;trap has been rearmed as proximity so start buffer timer
            if (bufferTimer > 0)
                set bufferTimer to (bufferTimer - GetSecondsPassed)
            elseif (bufferTimer < 0)
                set trapTriggered to 0                                                ;buffer time is up, trap is now rearmed
            endif
        endif

        if (trapTriggered == 3)
            set timer to timerMax                                                            ;trap is now a timed trap and will explode in 10 seconds
            set trapTriggered to 1
        endif
        
        if (trapTriggered == 4)
            if (timer > 0)
                set timer to (timer - GetSecondsPassed)
            elseif (timer < 0)
                mySelf.placeatme GrenadeFragExplosion 1
                ; kill me bloodily
                kill mySelf 1
                kill mySelf 3
                kill mySelf 5
                kill mySelf 7
                kill mySelf 10
                set trapDisarmed to 2                                            ;trap has exploded
            endif
        endif    
    endif

End

 

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


Ссылка на сообщение
  • 0
3 часа назад, bobrovskii сказал:

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

Вообще странно, скрипт ванильный, я не менял, должен бы работать, как в ф3.

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


Ссылка на сообщение
  • 0
1 час назад, bobrovskii сказал:

А вот если оставить в покое, то ничего не происходит. NPC убегает, рейдеры пассивны.

По идее нужно чтоб при ничего не деланье бомба срабатывала.

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


Ссылка на сообщение
  • 0
34 минуты назад, MagnuMspec сказал:

По идее нужно чтоб при ничего не деланье бомба срабатывала.

Сделал так, чтобы при "оставить в покое" бомба взрывалась, как при провале попытки обезвредить, так же отнимается 25 единиц кармы. Рейдеры становятся агрессивны.

При провале обезвреживания, бомба взрывается, рейдеры также агрессивны.

При успешном обезвреживании, начисляется 25 единиц кармы, рейдеры бегут за NPC, если NPC рядом, то рейдеры агрятся.

Вроде так должно все работать.... Скрипт ниже (;------------------------ это добавленные/закомментированные строки), профи скажите, вдруг что не так:

Спойлер

scn TrapCorpseSCRIPT

;---------------------------------------------------------------------------------------------------------
; The Trap should start it's timer when the player is a certain distance away since this is a proximity trap.
; Should have an audible beep, ending with a higher pitched beep.
; The player can run up and activate the trap having the option to disarm it.
; If disarmed, the player can activate it again and have the option to rearm it, which automatically starts the timer again b/c the trap is a proximity trap.
; NOTE: Activation messages will only work if scripted NPC is dead...
;---------------------------------------------------------------------------------------------------------

short trapTriggered        ;0 = default        1 = trap has been triggered        2 = trap is being rearmed as a proximity trap    3 = trap is being rearmed as a timed trap    4=trap is about to explode
short trapDisarmed        ;0 = trap active    1 = trap has been disarmed        2 = trap has exploded
short interactAttempt        ;0 = default        1 = Attempt to Disarm        2 = Rearm
; NOTE: actor value variable01 is used to track the state of a trapped (live) NPC:
; * It is set in GREETING to 1, which allows you to get the Message box the next time you activate him
; * If you successfully disarm the bomb, it is set to 2
; * If you talk to him again, you get a one time greeting and then it is set to 3

short PCExplosivesSkill
short neededExplosivesSkill        ; how high we want the PC explosive skill to be in order to disarm trap.
short button

ref mySelf

float timer
float bufferTimer
float soundTimer
float timerMax            ; set to timed trap maximum (10 currently)

;---------------------------------------------------------------------------------------------------------

Begin onLoad
    set mySelf to getSelf
    set neededExplosivesSkill to 75
End

;---------------------------------------------------------------------------------------------------------

Begin onActivate

if IsActionRef player == 1

    set PCExplosivesSkill to player.getAV explosives

    if getDead == 1
        if (trapDisarmed == 0)
            ;ask player if he wants to disarm it
            ShowMessage TrapCorpseWarnMsg
            set interactAttempt to 1

        elseif (trapDisarmed == 1)
            ;ask player if he wants to rearm it
            ShowMessage TrapCorpseRearmMsg
            set interactAttempt to 2
        else
            ; trap has already gone off -- let player loot corpse
            Activate
        endif
    ; if I've spoken to a live NPC, variable01 is set to 1 by greeting so I can attempt to disarm the bomb
    elseif trapDisarmed == 0
        ;ShowMessage DefaultDebugIncrement01
        ;ask player if he wants to disarm it
        ShowMessage TrapCorpseWarnMsgLive
        set interactAttempt to 1
    else
        Activate
    endif

endif

End

;---------------------------------------------------------------------------------------------------------

Begin gamemode
    if (interactAttempt == 3)
        ; triggered by dialogue, just pop the message
        ;ask player if he wants to disarm it
        ShowMessage TrapCorpseWarnMsgLive
        set interactAttempt to 1
    endif        

    if (interactAttempt == 1)                                                        ;attempts to disarm
        set button to getButtonPressed
        if (button > -1)
            set interactAttempt to 0
            set PCExplosivesSkill to player.getAV explosives                    ;-----------------------------
            if (button == 0)
                if (PCExplosivesSkill >= neededExplosivesSkill)
                    ;message "You successfully disarm the trap."
                    ShowMessage TrapDisarmMsg
                    RewardKarma 25                                              ;-----------------------------
                    set trapDisarmed to 1
                    set trapTriggered to 5                                            ;trap has been disarmed
                    setav variable01 2                                            ; mark NPC as having been disarmed (for dialogue conditions)
                else
                    ;message "You fail to disarm the trap."                    ;set timer of trap to explode after leaving dialog
                    ShowMessage TrapDisarmFailMsg
                    set trapDisarmed to 0
                    set trapTriggered to 3                              ;-----------------------------
                    set timerMax to 10                                  ;-----------------------------
                    ShowMessage TrapRearmTimerMsg timerMax              ;-----------------------------
                endif
            elseif (button == 1)
                ;don't do anything
                RewardKarma -25                                   ;-----------------------------
                set trapDisarmed to 0                             ;-----------------------------
                set trapTriggered to 3                            ;-----------------------------
                set timerMax to 10                                ;-----------------------------
                ShowMessage TrapRearmTimerMsg timerMax            ;-----------------------------
            endif
        endif
    endif

;***********************************

    if (interactAttempt == 2)                                                        ;rearming trap
        set button to getButtonPressed

        if (button > -1)
            set interactAttempt to 0
            if (button == 0)
                ;player wants to rearm as a proximity trap
                ShowMessage TrapRearmProximityMsg
                set trapTriggered to 2                                                ;trap is rearmed so start buffer timer
                set trapDisarmed to 0
                set bufferTimer to 10    
            elseif (button == 1)
                set timerMax to 10
                ShowMessage TrapRearmTimerMsg timerMax 
                set trapTriggered to 3                                                ;trap is rearmed as a timed trap
                set trapDisarmed to 0
            elseif (button ==2)
                ;loot body
                Activate player
            elseif (button ==3)
                ;do nothing
            endif
        endif
    endif

;***********************************
    
    if (trapDisarmed == 0)
        if (trapTriggered == 0)
            if (GetDistance3D Player <= 400)
                mySelf.playSound OBJMegatonBombTamperArm
                set trapTriggered to 1
                set timer to 1
            endif
        endif

        if (trapTriggered == 1)
            ;if (timer >0)                                                 ;-----------------------------
                ;set timer to (timer - GetSecondsPassed)                   ;-----------------------------
            ;elseif (timer<0)                                              ;-----------------------------
                mySelf.playSound WPNRifleLaserReloadInOut
                set trapTriggered to 4
                set timer to 4
            ;endif                                                         ;-----------------------------
        endif

        if (trapTriggered == 2)                                                        ;trap has been rearmed as proximity so start buffer timer
            if (bufferTimer > 0)
                set bufferTimer to (bufferTimer - GetSecondsPassed)
            elseif (bufferTimer < 0)
                set trapTriggered to 0                                                ;buffer time is up, trap is now rearmed
            endif
        endif

        if (trapTriggered == 3)
            set timer to timerMax                                                            ;trap is now a timed trap and will explode in 10 seconds
            set trapTriggered to 1
        endif
        
        if (trapTriggered == 4)
            if (timer > 0)
                set timer to (timer - GetSecondsPassed)
            elseif (timer < 0)
                mySelf.placeatme GrenadeFragExplosion 1
                ; kill me bloodily
                kill mySelf 1
                kill mySelf 3
                kill mySelf 5
                kill mySelf 7
                kill mySelf 10
                set trapDisarmed to 2                                            ;trap has exploded
            endif
        endif    
    endif

End

 

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


Ссылка на сообщение
  • 0
8 минут назад, bobrovskii сказал:

Сделал так, чтобы при "оставить в покое" бомба взрывалась, как при провале попытки обезвредить, так же отнимается 25 единиц кармы. Рейдеры становятся агрессивны.

При провале обезвреживания, бомба взрывается, рейдеры также агрессивны.

А прям сразу или с задержкой? В оригинале как я понимаю там на пакетах завязано, и непись должен пробежать немного. Но могу путать, давно это было.

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


Ссылка на сообщение
  • 0
18 минут назад, MagnuMspec сказал:

А прям сразу или с задержкой? В оригинале как я понимаю там на пакетах завязано, и непись должен пробежать немного. Но могу путать, давно это было.

С задержкой.

Вот видюшка, примерно с 45 секунды.

При провале обезвреживания задержка такая же.

  • Спасибо! 1

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


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  


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

Важная информация

Мы используем файлы cookie для обеспечения корректной работы сайта. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек. Узнать больше об обработке данных поможет Политика конфиденциальности