The DVD will be targeted at people like you who know enough (intermediate level) PFlow but do not script much. From my point of view, it is an introduction into scripting Particle Flow, so it covers the basics. So I tried to keep it simple. Some math knowledge wouldn’t hurt though. My “The Matrix:Explained” DVD would be a good companion.
Now to your problem - yes, you fire the rockets over multiple frames, and the trails of the first rocket “eat up” your IDs. The simplest solution would be to give birth to all your rockets on frame 0, then keep them invisible in the initial event and “fire” them by using an Age Test or something like that (a Script Test could also be used for more controlled firing). Thus, the rockets would always get the first N IDs, then you can spawn at your heart’s will. Note that you can assign local Render operators to make particles invisible to the renderer in specific events.
The scripted alternative would be to use a Script Operator which initializes and increments a global “rocket launcher” counter and writes the rocket’s number into its Script Integer channel. So instead of using the ID, you would be handing out the numbers and use the Script Integer channel of each particle inside the targeting Script Operator to decide which asteroid to attack. In addition, you could generate RANDOM values to store in the Script Integer channel based on the amount of asteroid particles, so you could have multiple rockets targeting the same asteroid (if desired), or any other special decisions like “never target asteroid 3” and so on. But this is more complicated and requires a bit of scripting knowledge, so try the first approach first…
