Jump to content

abbadon101

Member
  • Content Count

    3
  • Joined

  • Last visited

  • Medals

Posts posted by abbadon101


  1. Right, I am using the popup target script found here

    http://forums.bistudio.com/showthread.php?t=80594&highlight=popup+target

    for a target range and MOUT course (2 different scripts 1 for each thing), I have modified it slightly for my own use but full credit goes to the original scripter (I think its F2k Sel)

    The target range works exactly as I want it. The MOUT course doesn't. I want it to popup all 10 targets and then when all have been shot for it to finish or if the time runs out for it to finish, and then say the score like the target range does. However when I run the MOUT course only 3 random targets popup not all 10 of them. I know it is probably something to do with the random numbers used to select the targets that pop up but I know little about scripting and was hoping some one with more knowledge could steer me in the right direction.

    Below is the modified version of the script I am using for the MOUT course.

    //                 How to use. 
    // 1. Place a popup target and name it to pt1 
    // 2. copy it 8 times and it will auto name the targets
    // 3. place this line in a trigger or init  nul=[max,set,time] execVM "popup.sqf" 
    // max  is the total number of targets that will popup
    // set is the max number of targets that can popup per set upto a max of 3
    // time is the amount of time to hit the targets before they go down
    
    
    _maxtarg  = _this select 0;
    _numtargs = _this select 1;
    _skill    = _this select 2;
    
    _targets = [pt2,pt2_1, pt2_2, pt2_3, pt2_4, pt2_5, pt2_6, pt2_7, pt2_8, pt2_9];// target names 
    _many    =  count _targets; // count the number of possible targets
    
    _inc     = 0;// keeps track of the number of popup targets triggered 
    _score   = 0;// keep count of the targets hit
    
    
    {_x  animate["terc",1]} forEach _targets;//puts the targets down before the start
    
    _rnumber1=0; 
    _rnumber2=0;
    _rnumber3=0;
    _rnumber4=0;
    _rnumber5=0;
    _rnumber6=0;
    _rnumber7=0;
    _rnumber8=0;
    _rnumber9=0;
    _rnumber10=0;
    
    _flag1=0;
    _flag2=0;
    
    nopop=true; // sets them to stay down until triggered to popup
    
    hint "Setting up the Range";
    sleep 2;
    hint "Ready";
    sleep 2;
    
    
    while {_inc<_maxtarg} do 
    {
    _rnumber1 = random _many;
    _int = _rnumber1%1;
    _rnumber1 = _rnumber1-_int;
    
    
    // 1. Check for duplicate targets 
    while {(_rnumber1 == _rnumber2) or (_rnumber1 == _rnumber3) or (_rnumber1 == _rnumber4) or (_rnumber1 == _rnumber5) or (_rnumber1 == _rnumber6) or (_rnumber1 == _rnumber7) or (_rnumber1 == _rnumber8) or (_rnumber1 == _rnumber9) or (_rnumber1 == _rnumber10) or (_rnumber2 == _rnumber3) or (_rnumber2 == _rnumber4) or (_rnumber2 == _rnumber5) or (_rnumber2 == _rnumber6) or (_rnumber2 == _rnumber7) or (_rnumber2 == _rnumber8) or (_rnumber2 == _rnumber9) or (_rnumber2 == _rnumber10) or (_rnumber3 == _rnumber4) or (_rnumber3 == _rnumber5) or (_rnumber3 == _rnumber6) or (_rnumber3 == _rnumber7) or (_rnumber3 == _rnumber8) or (_rnumber3 == _rnumber9) or (_rnumber3 == _rnumber10) or (_rnumber4 == _rnumber5) or (_rnumber4 == _rnumber6) or (_rnumber4 == _rnumber7) or (_rnumber4 == _rnumber8) or (_rnumber4 == _rnumber9) or (_rnumber4 == _rnumber10) or (_rnumber5 == _rnumber6) or (_rnumber5 == _rnumber7) or (_rnumber5 == _rnumber8) or (_rnumber5 == _rnumber9) or (_rnumber5 == _rnumber10) or (_rnumber6 == _rnumber7) or (_rnumber6 == _rnumber8) or (_rnumber6 == _rnumber9) or (_rnumber6 == _rnumber10) or (_rnumber7 == _rnumber8) or (_rnumber7 == _rnumber9) or (_rnumber7 == _rnumber10) or (_rnumber8 == _rnumber9) or (_rnumber8 == _rnumber10) or (_rnumber9 == _rnumber10)} do
    {  
    _rnumber2 = random _many;
    _int = _rnumber2%1;
    _rnumber2 = _rnumber2-_int;
    
    _rnumber3 = random _many;
    _int = _rnumber3%1;
    _rnumber3 = _rnumber3-_int;
    
    _rnumber4 = random _many;
    _int = _rnumber4%1;
    _rnumber4 = _rnumber4-_int;
    
    _rnumber5 = random _many;
    _int = _rnumber5%1;
    _rnumber5 = _rnumber5-_int;
    
    _rnumber6 = random _many;
    _int = _rnumber6%1;
    _rnumber6 = _rnumber6-_int;
    
    _rnumber7 = random _many;
    _int = _rnumber7%1;
    _rnumber7 = _rnumber7-_int;
    
    _rnumber8 = random _many;
    _int = _rnumber8%1;
    _rnumber8 = _rnumber8-_int;
    
    _rnumber9 = random _many;
    _int = _rnumber9%1;
    _rnumber9 = _rnumber9-_int;
    
    _rnumber10 = random _many;
    _int = _rnumber10%1;
    _rnumber10 = _rnumber10-_int;
    };
    // 1. END
    
    // 2. Set the targets that will popup
    _rtarget1 = _targets select _rnumber1;
    _rtarget2 = _targets select _rnumber2;
    _rtarget3 = _targets select _rnumber3;
    _rtarget4 = _targets select _rnumber4;
    _rtarget5 = _targets select _rnumber5;
    _rtarget6 = _targets select _rnumber6;
    _rtarget7 = _targets select _rnumber7;
    _rtarget8 = _targets select _rnumber8;
    _rtarget9 = _targets select _rnumber9;
    _rtarget10 = _targets select _rnumber10;
    // 2. END
    
    // 3. Popup target one always active
    _rtarget1 animate["terc", 0];
    _inc=_inc+1;
    // 3. END
    
    // 3a. Check to see if more than one target is required and opopup at random
    // 3b. second target
    If (_numtargs > 1 ) then
    {
    if ((random 2 > 1) and (_inc < _maxtarg)) then
    {
    _rtarget2 animate["terc", 0];
    _inc=_inc+1;
    _flag1=1;
    };
    };
    //3b. END
    
    //3c. Third target
    If (_numtargs > 2 ) then
    {
    if ((random 2 < 1) and (_inc < _maxtarg)) then
    {
    _rtarget3 animate["terc", 0];
    _inc=_inc+1;
    _flag2=1;
    };
    };
    // 3c. END
    
    //3d. Forth target
    If (_numtargs > 3 ) then
    {
    if ((random 3 < 1) and (_inc < _maxtarg)) then
    {
    _rtarget3 animate["terc", 0];
    _inc=_inc+1;
    _flag2=1;
    };
    };
    // 3d. END
    
    //3e. Fith target
    If (_numtargs > 5 ) then
    {
    if ((random 5 < 1) and (_inc < _maxtarg)) then
    {
    _rtarget3 animate["terc", 0];
    _inc=_inc+1;
    _flag2=1;
    };
    };
    // 3e. END
    
    //3f. Sith target
    If (_numtargs > 6 ) then
    {
    if ((random 6 < 1) and (_inc < _maxtarg)) then
    {
    _rtarget3 animate["terc", 0];
    _inc=_inc+1;
    _flag2=1;
    };
    };
    // 3f. END
    
    //3g. Seventh target
    If (_numtargs > 2 ) then
    {
    if ((random 2 < 1) and (_inc < _maxtarg)) then
    {
    _rtarget3 animate["terc", 0];
    _inc=_inc+1;
    _flag2=1;
    };
    };
    // 3g. END
    
    //3h. Eighth target
    If (_numtargs > 8 ) then
    {
    if ((random 8 < 1) and (_inc < _maxtarg)) then
    {
    _rtarget3 animate["terc", 0];
    _inc=_inc+1;
    _flag2=1;
    };
    };
    // 3h. END
    
    //3i. Ninth target
    If (_numtargs > 9 ) then
    {
    if ((random 9 < 1) and (_inc < _maxtarg)) then
    {
    _rtarget3 animate["terc", 0];
    _inc=_inc+1;
    _flag2=1;
    };
    };
    // 3i. END
    
    //3j. Tenth target
    If (_numtargs > 2 ) then
    {
    if ((random 2 < 1) and (_inc < _maxtarg)) then
    {
    _rtarget3 animate["terc", 0];
    _inc=_inc+1;
    _flag2=1;
    };
    };
    // 3j. END
    // 3a. END
    
    // 4. Time allowed for shooting.
    sleep _skill; 
    // 4. END 
    
    // 5. Check to see if targets have been hit and count the score
    if (_rtarget1 animationPhase "terc" > 0.1) then
    {
    	_score = _score+1;
    	    };
    if ((_rtarget2 animationPhase "terc" > 0.1) and (_flag1 == 1)) then
    
    {
    	_score = _score+1;
    	    };
    if ((_rtarget3 animationPhase "terc" > 0.1) and (_flag2 == 1)) then
    {
    	_score = _score+1;
    	    };
    // 4. END		    
    
    // 5. Display Score		    
    hint format ["Targets :%1 Hit :%2",_inc,_score];
    // 5. END
    
    // 6. Reset targets down and restet flags
    _rtarget1 animate["terc", 1];
    _rtarget2 animate["terc", 1];
    _rtarget3 animate["terc", 1];
    _rtarget4 animate["terc", 1];
    _rtarget5 animate["terc", 1];
    _rtarget6 animate["terc", 1];
    _rtarget7 animate["terc", 1];
    _rtarget8 animate["terc", 1];
    _rtarget9 animate["terc", 1];
    _rtarget10 animate["terc", 1];
    _flag1=0;
    _flag2=0;
    // 6. END
    
    sleep 2;
    };
    sleep 2;
    hint "Session Complete";

    Any help would be much appreciated. :D

×