Jump to content

Undeceived

Member
  • Content Count

    1977
  • Joined

  • Last visited

  • Medals

  • Medals

Posts posted by Undeceived


  1. On 12.8.2018 at 4:23 PM, stburr91 said:

    However,  for all the mission makers out there, if you play a mission, and you enjoyed it, please take a few moments to comment, and rate the mission. It's really all the mission makers get in return for their many hours of time spent creating a mission.  

     

    THIS!!

     

    This is what I ALWAYS do, as I perfectly know that mission designers get almost no feedback.

     

    And knowing how a negative rating can hurt (given that only a few people rate) sometimes I give the creator feedback while I do NOT rate the mission down. Instead I tell him that he will get a thumb up from me if he improves the respective part of the mission.

     

     

    (Oops, sry for the double post...:dontgetit:)

    • Like 1

  2. The suggestion that @lexx brought up is good and we really could use a bit of support by BIS when it comes to rating and giving feedback to mission  designers.

     

    What I really miss though (and unfortunately I don't have the needed time for it) is a good web page that reviews scenarios. I loved e.g. the OFPEC.com times because you could find quality stuff there - no matter if it was campaigns or single missions. The reviews were detailed and extensive, showing up pros, cons and special details. Yes, it took the rewiever a lot of time but the value for the players and the community was enormous.

     

     

    • Like 5

  3. I remembered this campaign today again. :icon5:Actually I didn't remember its name but only the name of the protagonist, Alex Rico. After googling him I came here.

    I can't remember any of the missions after all these years, but I remember that cutscene where Alex drives the motor bike. Must have been the intro (?). :icon_biggrin: 

    What I also remember is that I had a ton of fun with the campaign. After all these years THANK YOU @nettrucker and @TOY!

    • Like 2

  4. Nice, haleks! Gonna try this out too.

     

     

    Btw. when I look at the first picture in the first post I always see the (resistance) player symbol in the editor. :-D Can't help it - should close Arma more often..... :-D

    • Like 1

  5. Sorry for the double post:

     

    bad benson's result array brought up a last question: 

    There's a way to remove the brackets so that the array looks like this, isn't it?

     

    ["hgun_P07_F","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","FirstAidKit","B_AssaultPack_rgr_LAT"]

     

    Nevermind, I messed something up while writing the post above.

     

    bad benson's array result looks like this: 

    [["hgun_P07_F"],["30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag"],["FirstAidKit"],["B_AssaultPack_rgr_LAT"]]
     

     

    I checked it and for the achievement of my ultimate goal (fill the stuff into a crate) it's not needed to have all weapons+mags+items+backpacks in one array altogether.

     

    This will put the output of bad benson's code into a container:

    {crate addWeaponCargoGlobal [_x,1]; } forEach (_stuff select 0);
    {crate addMagazineCargoGlobal [_x,1]; } forEach (_stuff select 1);
    {crate addItemCargoGlobal [_x,1]; } forEach (_stuff select 2);
    {crate addBackpackCargoGlobal [_x,1]; } forEach (_stuff select 3);


     


  6. bad benson, yeah, that did the trick. Many thanks, man!

     

     

     

     

    To summarize the thread for mission designers that might have the same question:

     

    With this code you can create an array with items, magazines, weapons and backpacks that are laying on the ground in a trigger area:

    //Code by bad benson with elements of Schatten's function:
    
    _trigger = trigger_0; 
    _stuff = [[],[],[],[]];  
     
    _objs = (nearestObjects [_trigger, ["WeaponHolder", "WeaponHolderSimulated"], selectMax ((triggerArea _trigger) select [0, 2])]) select {_x inArea _trigger};  
     
    _objs inAreaArray _trigger apply  
    { 
     (_stuff select 0) append (weaponCargo _x); 
     (_stuff select 1) append (magazineCargo _x); 
     (_stuff select 2) append (itemCargo _x); 
     (_stuff select 3) append (backpackCargo _x); 
    };

     

    To show the array:

    hint str (_stuff);

     

    @bad benson's code creates an array with classname strings for each individual item. E.g.:

     

    [["hgun_P07_F"],["30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag"],["FirstAidKit"],["B_AssaultPack_rgr_LAT"]]

     

     

     

    If you need an array that looks like this:

     

    [[["hgun_P07_F",1]],[["30Rnd_65x39_caseless_mag",3]],[["FirstAidKit",1]],[["B_AssaultPack_rgr_LAT",1]]]

     

    then you can use @Schatten's function:

    SCH_fnc_getStuffInsideTrigger = { 
     private _allStuff = [ 
      [], 
      [], 
      [],  
      []  
     ]; 
     
     params [ 
      ["_trigger", objNull, [objNull]] 
     ]; 
     
     if ((isNull _trigger) or {(typeOf _trigger) != "EmptyDetector"}) exitWith {_allStuff}; 
     
     private ["_className", "_classNames", "_index", "_quantities", "_quantity", "_stuff", "_stuffOfType", "_weaponHolder", "_weaponHolders"]; 
     
     _weaponHolders = (nearestObjects [_trigger, ["WeaponHolder", "WeaponHolderSimulated"], selectMax ((triggerArea _trigger) select [0, 2])]) select {_x inArea _trigger}; 
     
     { 
      _weaponHolder = _x; 
     
      { 
       _classNames = _x select 0; 
       _quantities = _x select 1; 
     
       _stuffOfType = _allStuff select _forEachIndex; 
     
       { 
        _className = _x; 
        _quantity = _quantities select _forEachIndex; 
     
        _index = _stuffOfType findIf {(_x select 0) == _className}; 
     
        if (_index >= 0) then { 
         _stuff = _stuffOfType select _index; 
     
         _stuff set [1, (_stuff select 1) + _quantity]; 
        } else { 
         _stuffOfType pushBack [_className, _quantity]; 
        }; 
       } forEach _classNames; 
      } forEach [ 
       getWeaponCargo _weaponHolder, 
       getMagazineCargo _weaponHolder, 
       getItemCargo _weaponHolder, 
       getBackpackCargo _weaponHolder 
      ]; 
     } forEach _weaponHolders; 
     
     _allStuff 
    }; 

     

    Show the result / call the function with:

    hint (str ([trigger_0] call SCH_fnc_getStuffInsideTrigger));

     

     

    Many thanks to you both, guys.

    • Like 1
    • Thanks 1

  7. @bad benson

     

    Cool, thanks for the addition / change.

     

    When using this, the code worked:

     

    _trigger = myCollectorTrigger;
    _stuff = [[],[],[],[]]; 
    
    _objs = (nearestObjects [_trigger, ["All"], selectMax ((triggerArea _trigger) select [0, 2])]) select {_x inArea _trigger}; //taken from Schatten's code
    
    _objs inAreaArray _trigger apply 
    {
    	(_stuff select 0) append (weaponCargo _x);
    	(_stuff select 1) append (magazineCargo _x);
    	(_stuff select 2) append (itemCargo _x);
    	(_stuff select 3) append (backpackCargo _x);
    };
    
    

     

    The only problem left now is that all stuff that the units in the trigger have (and also the stuff that is in vehicles) is also added to the arrays. :icon_biggrin: Is there a way to exclude everything so that only the stuff on the ground is collected?

     

     

     

    EDIT:

     

    14 hours ago, bad benson said:

    but his function also gives you an amount for each item while mine just uses doubles (class string for each individual item) which you probably want. so depends on what you need really.

     

    Btw. this is what I need: One individual string for every item. :icon14:


  8. 3 hours ago, bad benson said:

    in the meantime you can try this

     

    
    _stuff = [[],[],[],[]]; 
    
    _objs = vehicles;
    
    _objs inAreaArray _trigger apply 
    {
    	(_stuff select 0) append (weaponCargo _x);
    	(_stuff select 1) append (magazineCargo _x);
    	(_stuff select 2) append (itemCargo _x);
    	(_stuff select 2) append (backpackCargo _x);
    };

     

    Thanks badbenson, I tried out this code but unfortunately the vehicles thing didn't work, so _stuff didn't have anything. As it seems to me, there are no vehicles in the trigger (I dropped an item, a mag and a rifle).

     

    Your explanations after this code were too much for my brain - couldn't understand it - sorry. :icon_biggrin:

     

     

     

     

    EDIT:

    _objs = vehicles select {_x isKindOf "Car"};

     

    worked when I placed a quad. But searching for the weaponholders didn't work.


  9. Hi guys, I would like to "collect" the items, weapons, magazines and backpacks that the player has put on the ground inside a certain trigger and put then into a crate.

    Is there a way to detect this stuff and create an array out of it.

     

    The relatively new command inAreaArray looked promising at first but unfortunately it doesn't recognize items, weapons and magazines (I couldn't do it at least).

     

    Does anyone know more?
     

    Thanks a lot!

     

     

     

    See the solution here: 

     


  10. Hello guys.

     

    The problem: I have an addAction on an object ("Take object"), which appears when the player looks at it (means when the center of the screen is on the object - I think it's the same as cursorObject or cursorTarget).

    This normally works fine but I noticed that in some cases it doesn't. The action appears when the player looks somewhere under or beside the object (I'm using a leaflet) but not when he looks right AT it. I think this is related to the fact that the leaflet is placed on the ground of a shed which I placed in the editor. On the ground itself (outside) it works ok.

     

    Because of this problem I fear that the player would look at the object but go on because the action doesn't appear. ThereforeI want to expand the area on which the player can look to activate the action. And what else could be better than a 3D trigger. :icon_biggrin:

     

    Now, is there a way to check if the player is looking into the dimensions of this trigger cube?

     

    y4mujw4cg7qXySldZmmGwZGuaxFzomcma0oyaELf

     

    Any input (other ideas too) is appreciated, thanks.


  11. 1 hour ago, tRiKy_ch said:

    btw with this method you have to create a script who collect all the data you need (e.g. unit/vehciles status and positions, objective status, destroyed building, and so...) and put it in the string to save, for loading you have to write a script who read this string and set all these data to the mission

     

    Ok, I'm starting right away to write these scripts then... :icon_biggrin: Hm, that sounds like an impossible task. :icon_confused:

     

    1 hour ago, AZCoder said:

     

    That must be some crazy mission.....

    Of course you can simply auto save it for the player before they run into the horde of enemy ... although autosave is something of a warning bell to alert players.

     

     

    Yeah, but this is not always predictable.

     

    And you're right - this was the way in OFP that you knew that something was gonna happen soon. :icon_biggrin:

     

     

    Anyway, thanks for your replies.


  12. Hi guys!

     

    Is there a way to (scriptwise) save the game in a way that multiple save-game slots are created, just like when the player saves manually via the ESC menu (there are 8 slots or so)?

     

    In many of my missions I offer the player unlimited saves via the radio menu 0-0-0, but here I use the saveGame command, which has only "one slot", which again means that the newest save-game overwrites the previous one. If the player then (we all know these situations :icon_biggrin:) gets in a bad situation (e.g. suddenly is overwelmed by 1000000 soldiers and 400 tanks just one second after using this save-game) AND if he didn't use the alternative "User Save" from the menu, which creates the save-game at another location, then... well, he's screwed and he will have to restart the whole mission, which is kinda frustrating.

     

    This is why I'm looking for another way to use the radio menu save-game. The saveGame command is ok, but absolutely fails in the situations mentioned above.

     

     

    So: Is there a way to scriptwise make a User Save? Or is there a way to create multiple slots for the saveGame command (two would already be ok).

     

    Looking forward to your ideas, thanks.

    • Like 1

  13. Good roadmap for the rest of this year. Looking forward to it and thanks, BI.

     

    The story of (Grumpy :icon_biggrin:) Old Man sounds exciting. And I really expect a continuation of Miller's story line. You heard it, BI! :icon_biggrin:

     

    Glad that the next Arma is still years away - this way we have some more time to finish one or another project.

    • Like 4

  14. 35 minutes ago, 7erra said:
    
    _cfgArray = getArray (configfile >> "CfgWeapons" >>  _yourWeapon >> "WeaponSlotsInfo" >> "MuzzleSlot" >> "compatibleItems"); 
    _supressor = [nil, selectRandom _cfgArray] select (count _cfgArray > 0);
    _unit addPrimaryWeaponItem _supressor;

     

     

    Thanks a lot, 7erra! Much appreciated.

     

    At first it didn't work, but then I checked the config and found what to change -> the part in the "WeaponSlotsInfo". In vanilla it is "MuzzleSlot", in CUP it's "CUP_EastMuzzleSlotAK". 

     

    This means that the code is not totally "universal", but in my case it's absolutely sufficient as there are no Western weapons in the corresponding mission.

     

    Thanks again!

     

    The code looks like this now:

     

    _cfgArray = getArray (configfile >> "CfgWeapons" >> (currentWeapon player) >> "WeaponSlotsInfo" >> "CUP_EastMuzzleSlotAK" >> "compatibleItems"); 
    _supressor = [nil, selectRandom _cfgArray] select (count _cfgArray > 0);
    player addPrimaryWeaponItem _supressor; 

     

    • Like 2
×