Jump to content
Ghost Recon.net Forums

making damage effect last forever


Recommended Posts

every time i set damage effect with a proximity it only works once.  Is there away to make it last forever. 

I don't think so I read some where that that's the case?

only have

prorximity, timeExpired, TimeElapsed Counter, timeSet Ect. try em all and see

or wait till Jack or Stalker get on even EricJ

maybe BlockPreseve might cause it to loop also? but not sure

Edited by AO3_Chucky
Link to post
Share on other sites
Trigger:

A member of PlayerPlatoon is within 10 metres of DamageEffect

Responses:

BlockPreserve

EffectActivate (DamageEffect)

Wouldn't this sort of create an infinite/recurrent loop because a player could be in the zone indefinitely...unless it checks this block after a few seconds. From my C++ experience this looks like it would continually process the Block and drain resources. Of course, if its a damage effect continually processed then the only way a player could stay in that zone is if "superman" effect is on, but it might happen. <_<

Link to post
Share on other sites

You sort of answered it for yourself - if anyone uses superman mode to play a mission then all bets are off :rolleyes:

It is true that it is a loop - that is the intention. The difference with GR is that it only processes proximity checks (amongst others) once per second, precisely to manage resources. As long as a player remains within the trigger distance the effect will continue to active once per second. As soon as he dies or leaves it stops. It won't use many resources at all really.

Open up a gtf in Igor - Hamburger Hill would be a good example - and have a look at the script. You will see there a number of QueueLoops running continuously while the game is progress with little effect on performance. The number of active actors on a map will have a far greater effect on resources than polling and processing loops will. One can only guess at how many loops are continuously running to have an AI actor strut his stuff and behave 'intelligently' - probably more than the whole of our mission script for just one AI.

Maybe you were thinking of a runaway loop like this:

Group:

LoopTest

Trigger:

Call

Responses:

BlockPreserve

Increment LoopTestCounter

QueCall LoopTest after this block

That will lock GR up solid as it is executing as fast as the CPU can process it - probably many millions of times a second - and it only ends when the PC runs out memory and the application stops responding.

Hope that explains it a little,

Cheers, Jack :)

Link to post
Share on other sites

Thanks Jack, yeah I was under the impression that from your original post

Trigger:

A member of PlayerPlatoon is within 10 metres of DamageEffect

Responses:

BlockPreserve

EffectActivate (DamageEffect)

that GR would try to process it as fast as possible, but I wasn't aware that the .exe only does so once per second. I guess that's the same thing with "PlatoonSeenByPlatoon" queries and such, being 2 seconds if I believe. Yeah doing so every few seconds wouldnt drain resources at all :thumbsup: btw, how did you find out the number of times GR checks those Triggers?

Edit: Here's another question, slightly off topic. I've noticed a large number of enemies putting a huge burden on my PC(which is pretty good). So for one actor, the .exe is continually processing whether:

1. The actor is currently alive(is that the same thing as Valid in Igor scripting?)

2. The environment might change his alertness: bored/alert/combat or panic.

3. Combat ROE, Movement ROE, Pace, and Stance

4. A script reference allows use of nades

Anything else I'm not aware of besides the Team plan?

Another question, how does the mission check the script? Is there an inherent loop that simply checks through all Enabled Triggers to see if one is valid? If so it would need to process continuously also. :huh:

Edited by Mamon
Link to post
Share on other sites

Most of these things are covered in the Scripting Reference under the Help menu in Igor :thumbsup:

Another question, how does the mission check the script? Is there an inherent loop that simply checks through all Enabled Triggers to see if one is valid? If so it would need to process continuously also

This is an interesting question actually. It would appear most of the triggers that can only execute once per second are parsed by the program once per second - for example to see if a player is in a zone that calls for a proximity trigger. This is why it is possible for a player to run through a trigger zone without triggering it, if it is too small.

Other triggers appear to report their condition to the program. A good example is the death trigger - if, for example, you use a death actor trigger you will notice that it executes the instant the actor dies (same for team, platoon, company).

Jack :)

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...