Jump to content

Need Some Timer Assistance Please.


LordXayd

Recommended Posts

Thought I was going to build this entire mod all by my lonesome, but the last goody I put in has me scratching head. Effectively, I'm just trying to make the script pause between executions. Wait 6 seconds, do ABC. Wait 10 more seconds, do DEF. Wait 5 more seconds, do GHI. But all my testing is just not getting it done.

 

Here is the vanilla example script:

float timer

begin gamemode
   if timer < 5
      set timer to timer + GetSecondsPassed
   else
      ;5 seconds have passed, do something special
      set timer to 0
   endif
end

I was thinking something along these lines...

float timer

begin gamemode

   if timer < 6
      set timer to timer + GetSecondsPassed
   else
      ;6 seconds have passed, do ABC
      set timer to 7
   endif

   if timer < 17
      set timer to timer + GetSecondsPassed
   else
      ;10 more seconds have passed, do DEF
      set timer to 18
   endif

   if timer < 23
      set timer to timer + GetSecondsPassed
   else
      ;5 more seconds have passed, do GHI
      set timer to 0
   endif

end

I can tell you that Fallout 3 doesnt like that script very much. It acts like the script is on a loop that eventually crowbars the game. Specifically, it'll do the first timer grouping, but not the 2nd or 3rd.

 

My experience tells me that I have the right command set, but I've gone completely in the wrong direction here. I've actually tried quite a few different techniques, but this is probably the worthiest of pasting up here for assistance. I accept any and all condemnation, provided I'm steered onto the righteous path :D

 



 

Link to comment
Share on other sites

Remove the 'set timer to 7' and 'set timer to 18'. You don't need them. The 'set timer to 7' is causing timer to be stuck at 7, hence the never-ending loop.

 

Also, do you want these things to go on being done indefinitely? As it stands, after you fix it, this script will just go on doing ABC - DEF- GHI over and over forever.

Link to comment
Share on other sites

I eliminated the timer sets, which did help. The script runs to completion, but it's still wonky. Specifically:

  • The first timer set (6) runs.
  • The second timer set (17) runs.
  • The third timer set (23) runs.
  • The first timer set (6) runs again.
  • Then it looks like the script is over.

There's no apparent evidence that the 2nd or 3rd sets run again, nor does the game start locking up.

I tried a few experiments with this:

  • Combining them all into one block with sub-if/endifs
  • Setting the 2nd and 3rd timer sets to == instead of < and dumping the GetSecondsPassed line.

Both of these worsened the situation, so I reverted back to just having removed the timer sets of 7 and 18.

All I really want to do here is have three different things go off in order, with some seconds in between. Just one time per activation.

Link to comment
Share on other sites

  • Recently Browsing   0 members

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