Jump to content

Need some help with Magazine Vending Machine Script


Recommended Posts

I'm trying to make a simple mod to fix New Vegas Strip underused unique Magazine Vending Machine, as you all probably know, despite having it's own unique model, those thing can only be used once, I'm hoping to fix it by making it reset after 48 hours, but it require some script writing which i have no clue how to do it.

 

The following is vanilla script of those vending machines:

 

Scn    VStripMagazineVendingMachineScript

Short    bDoOnce
Float    fRandom

Begin OnActivate

    If IsActionRef Player == 1
        If bDoOnce == 0
            Set fRandom to GetRandomPercent
            If fRandom < 7
                Player.AddItem MagazineNVBarter 1
            Elseif fRandom >= 7 && fRandom < 14
                Player.AddItem MagazineNVCritical 1
            Elseif fRandom >= 14 && fRandom < 21
                Player.AddItem MagazineNVEnergyWeapons 1
            Elseif fRandom >= 21 && fRandom < 28
                Player.AddItem MagazineNVExplosives 1
            Elseif fRandom >= 28 && fRandom < 35
                Player.AddItem MagazineNVSurvival 1
            Elseif fRandom >= 35 && fRandom < 42
                Player.AddItem MagazineNVGuns 1
            Elseif fRandom >= 42 && fRandom < 49
                Player.AddItem MagazineNVLockpick 1
            Elseif fRandom >= 49 && fRandom < 56
                Player.AddItem MagazineNVMedicine 1
            Elseif fRandom >= 56 && fRandom < 63
                Player.AddItem MagazineNVMeleeWeapons 1
            Elseif fRandom >= 63 && fRandom < 70
                Player.AddItem MagazineNVRepair 1
            Elseif fRandom >= 70 && fRandom < 77
                Player.AddItem MagazineNVScience 1
            Elseif fRandom >= 77 && fRandom < 84
                Player.AddItem MagazineNVSneak 1
            Elseif fRandom >= 84 && fRandom < 93
                Player.AddItem MagazineNVSpeech 1
            Elseif fRandom >= 93
                Player.AddItem MagazineNVUnarmed 1
            Endif
            Set bDoOnce to 1
            Activate
        Else
            Activate
        Endif
    Else
        Activate
    Endif

End

 

 

Anyone can help me out?

Link to comment

try this, i added a reset timer for every 48 hours right after as player is using it

 

Scn    VStripMagazineVendingMachineScript

int bDoOnce
Float fRandom
float fResetTimer

Begin OnActivate

    If IsActionRef Player == 1
        If bDoOnce == 0
            Set fRandom to GetRandomPercent
            If fRandom < 7
                Player.AddItem MagazineNVBarter 1
            Elseif fRandom >= 7 && fRandom < 14
                Player.AddItem MagazineNVCritical 1
            Elseif fRandom >= 14 && fRandom < 21
                Player.AddItem MagazineNVEnergyWeapons 1
            Elseif fRandom >= 21 && fRandom < 28
                Player.AddItem MagazineNVExplosives 1
            Elseif fRandom >= 28 && fRandom < 35
                Player.AddItem MagazineNVSurvival 1
            Elseif fRandom >= 35 && fRandom < 42
                Player.AddItem MagazineNVGuns 1
            Elseif fRandom >= 42 && fRandom < 49
                Player.AddItem MagazineNVLockpick 1
            Elseif fRandom >= 49 && fRandom < 56
                Player.AddItem MagazineNVMedicine 1
            Elseif fRandom >= 56 && fRandom < 63
                Player.AddItem MagazineNVMeleeWeapons 1
            Elseif fRandom >= 63 && fRandom < 70
                Player.AddItem MagazineNVRepair 1
            Elseif fRandom >= 70 && fRandom < 77
                Player.AddItem MagazineNVScience 1
            Elseif fRandom >= 77 && fRandom < 84
                Player.AddItem MagazineNVSneak 1
            Elseif fRandom >= 84 && fRandom < 93
                Player.AddItem MagazineNVSpeech 1
            Elseif fRandom >= 93
                Player.AddItem MagazineNVUnarmed 1
            Endif
            set fResetTimer to gamedayspassed + 2
            Set bDoOnce to 1
            Activate
        Else
            Activate
        Endif
    Else
        Activate
    Endif

End

Begin Gamemode

if bDoOnce == 1 && fResetTimer <= gamedayspassed
	set bDoOnce to 0
endif

end

 

Link to comment

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...