Jump to content

johnnyboy

Member
  • Content Count

    2683
  • Joined

  • Last visited

  • Medals

  • Medals

Everything posted by johnnyboy

  1. I think it will work either way, but not sure. Try it and find out! Good luck.
  2. johnnyboy

    AI Enhanced Movement [Script]

    It must be rework messing it up. I only have Enhanced Movement mod loaded, and just tired the demo mission, and it worked as before.
  3. johnnyboy

    SOG AI

    Savage Game Design published their Prairie Fire 1.3 update yesterday with tons of new content. I've updated the SOG AI mod as follows: Version 1.21 =========================================== - Added new groups to spawn group selector (US Marines, Force Recon Marines, Cambodian FANK, TQLC marines, etc.) to support PF 1.3 release. - For GM Force Recon missions, intel camera is automatically assigned to player. - Fixed helicopter bug that occurred if player starts mission in a vehicle by waiting until player exits vehicle to initialize this mod. - Fixed issue where aggressive grenade throwing not occurring during Leapfrog when player team is not side West.
  4. I find it annoying that when healing using first aid kit, the player is only 75% healed, which means you have to listen to the player moaning and groaning forever until he can be healed by a medic (by a medkit). A mission maker can solve this for you by using the eventhandler below. With this eventHandler, player is always healed 100% when healing. I'm using this in my new mission Last Tango in Tanoa 2: Razing Cane. Hopefully someone else will find this useful. I can't take credit for this, as I think I found the example somewhere (a post or wiki?), but I don't remember where. So my apologies to the original author. player addEventHandler ["HandleHeal", { _this spawn { params ["_injured","_healer"]; _damage = damage _injured; if (_injured == _healer) then { waitUntil {damage _injured != _damage}; if (damage _injured < _damage) then { _injured setDamage 0; }; }; }; }];
  5. You can force a vehicle forward using setVelocityModelSpace command. Other useful commands for this may be setDir and getRelDir to point the vehicle at object it should crash into. You would need to a write a script to move vehicle near unit (AI won't crash into it though), then force vehicle forward into unit.
  6. johnnyboy

    S I R E N S (Prelude)

    This looks like a cheery happy place I must visit. You know how to set the tone my friend!
  7. johnnyboy

    Creating a Dynamic Base.

    For lots of busy ambient activity in a base, you can use my script. The video show you how to use it.
  8. Thanks again for the Forgotten Few, it's really great. Just played Cam Lao Nam version again the other night. Great fun and variation: Inserted by STAB boat and was impressed by Civ river traffic, a few enemy sampams and fire from the rivers edge. After disembarking, evaded small patrols while advancing my SOG AI team to objective. Great firefights at destroy AA objectives, and CAS. Exfilled a different river route using STAB boats and ran into large enemy patrol boat. Had to haul ass around the bend and ditch the boat. Then took it on with small arms and CAS. Lost half my team. That was hairy. Exited boat at some bombed out camps to clear enemy and multiple QRF teams showed up to challenge us (truck troop carriers and small armored vehicles). Your enemy spawning code is truly impressive, and really utilizes areas all over the massive CLM map.
  9. johnnyboy

    SOG AI

    You can run them both from the init.sqf. In the scriptedEventHandler he used deleteVehicle, which I'm not sure works on a terrain object. So try it, and if it does not work (i.e., the berm is still there), then use hideObjectGlobal instead. Good luck!
  10. johnnyboy

    SOG AI

    @gatordev - Removing berms doesn't change the map look much, so doesn't bother me personally. For immersion, I was going to force animate AI to crawl through fence hole, but decided I didn't have time for that coding. It also could potentially be hinky if happened during a firefight, or you want AI to crawl back thru same hole, etc. It's too bad GM devs didn't make the fence-with-hole object like other ARMA fences where AI knows how to crawl under them. Here's the code I use for berm removal: And here's the code for bolt cutters removing a fence section: Edit: I just chatted with MondKalb a dev on GM DLC, and he has a better solution for bolt cutter removing fence section. Do this instead of loop above: [missionNamespace, "gm_boltCutterUsed", {deleteVehicle (_this select 0)}] call BIS_fnc_addScriptedEventHandler;
  11. johnnyboy

    SOG AI

    SOG AI mod just updated to support GM missions, including Force Recon scenarios.
  12. Script Release 5/3/2021. Sample mission now released. JBOY Giant Alpha Video (raw giant combat footage). Download sample mission here Giant Behavior and Features: Giants will either follow waypoints, or roam randomly until they sense something to attack. Once attacking, they will continue to attack know targets until all known targets are killed, then they will resume roaming or following waypoints. Giants are 3X times larger than humans. Regular giants have human skull heads/helmets. Leader giants have deer skull head/helmets. Leader giants are harder to kill than regular giants. Giants carry clubs, and use them to destroy buildings and vehicles. Giants have unique death animations/sequences. This is necessary because we can't allow giants to ragdoll, as ragdoll forces unit back to original size and looks stupid. Giants have various attacks against human AI. Grab and throw. Grab, spin and throw. Grab and breathe fire on unit, and throw (or spin and throw). Stomp. Are JBOY Giants MP compliant? Probably not. I made an effort to remoteExec all switchMove/etc. commands, but my guess it will need more work to make it function in MP. I'm not really set up to test that, or very good at MP coding. If someone makes suggestions to make it work in MP, I will make those changes. Known issues: Giants occasionally "skate" instead of walking. Giants ignore being shot when shooter far away. Will be fixed later. How to add JBOY Giants to your mission: Credits: @aliascartoonsfor fabulous leak scripts (fire breath!). May make noxious gas attack using gas leak scripts also. @pediathrian for PointIsInBox function @phronk for club attach points and original melee anim guidance (Phronk: I hate your new avatar...that face freaks me out!) @pierremgi for function to get closest point to an object outside of its bounding box. Merci mon frer!
  13. Sorry but that is too much work. But you are welcome to look at my code and use anything you find useful. Unzip this sample giant mission into your missions folder, and then you can open the giant mission in the editor, and also look at the code. https://www.dropbox.com/s/5bf4u2hzrlfi104/JBOY_Giant_v1.Tanoa.7z?dl=0
  14. For some simulated objects (men objects in particular), you can attach them to another man object or game logic, then use setObjectScale to make them larger. You can then play animations on the scaled up object and they look good. So for my giants I created a regular sized unit and made him invisible using hideObjectGlobal. This is the unit that my scripts give doMove commands to to move him around. I then attach the giant unit to this hidden unit, and scale him up. I have a loop running per giant that plays standing, walking, or running animations on giant depending on how fast the hidden unit is moving, which makes it appear the giant is moving. This works well if ran from Editor. But if you export the mission to SP missions, then play the mission from SP scenarios, it does not work.
  15. Yeah its sad, but I don't think its going to work.
  16. I recently found out that setObjectScale on real objects (not simple objects) does not work in published missions. But it will work when you preview run a mission within the editor. So if you want to scale up a unit, that unit will flicker and look like shit. Even if you use setObjectScale on eachFrame. For me this is a huge bummer as I was finally going to publish a mission using my very functional giants. I put at least 100 hours work into the giants, but that effort is wasted. If you want to make a static object larger using setObjectScale, create the object as a simple object, then scale it up.
  17. If firing not working, there are things you can try to make gunners fire independently. You can set up a trigger to cover area where targets are, and use a combo of following commands to force heli gunners to fire: reveal doTarget doSuppressiveFire forceWeaponFire I'd try reveal + doTarget first. If that doesn't work try adding doSuppressiveFire or forceWeaponFire. You can also try adding an invisible target at target position, and having the gunner target the invisible target instead of actual target. Unfortunately, it may require multiple tweaks and experimentation until it works to your satisfaction.
  18. During gameplay or maybe a cutscene, I want the player to have a "flashback" that is a full screen .jpg image. I have a .jpg image of an ARMA 1 character that I want to flash on the screen in a ARMA3 mission. What's the easiest way to do this? I was thinking of putting a billboard out of the way somewhere, and putting the image on the billboard. Then when I want to show this image, I create a camera focused on the billboard. Or maybe I can use cutRsc somehow. But with cutRsc, how do I link the image to it? Any suggestions on easiest way to do this?
  19. johnnyboy

    SOG AI

    SOG AI just updated to Version 1.19: - Fixed bug where those units that joined player later in Western Sahara Extraction mission were not obeying Leapfrog command. Thanks to PandabaconVR for reporting. - Fixed AI team not fast traveling (parachuting) in SP Western Sahara Extraction. - If player using sights or scope, he won't give spotted hand signal when spotting new enemies. This prevents hand signal from interfering with aiming. Good suggestion from DefaultFace. - Removed spawning of Punji traps in East Wind campaign. - Tuned Stealth mode so AI with suppressed weapons more likely to hold fire longer.
  20. johnnyboy

    AZC Dogs

    Thanks for doing this AZC! For some reason I was never motivated to take the extra step to make it a mod. Nice work!
  21. Here's another script from my Property of Mabunga mission. If you've tried that mission, please rate and comment on Steam. With this script, you can make any object fly in V formation. If you use the bird object ("seagull"), the script will play some duck quacking sounds also. If the object is an air vehicle, it turns engine on. This script is intended for ambience and cutscenes, as the flying objects have no AI. Any object can fly, so if flying goats are your thing...have at it. Warning: This script is currently coded to fly at a single altitude, so if you pass in 50 meters as height, and point the formation at a 100 meter hill, it will fly into the hill. It works fine if you know that limitation and use it accordingly. It could be changed to modify Z velocity based on terrain ahead, but I don't plan on doing that any time soon. How to use: 1. In the editor create an arrow marker to be the starting point of formation. 2. In a trigger or your init file, place a call to my script. The video demo mission shown above had 5 calls to my script in the init.sqf (2 bird formations and 3 jet formations): dmy = ["seagull", getMarkerPos "mrkDuckStart", markerDir "mrkDuckStart", 300, 10, 25, 20] execvm "Scripts\JBOY_BirdFormation.sqf"; sleep 6; dmy = ["seagull", getMarkerPos "mrkDuckStart_1", markerDir "mrkDuckStart_1", 1000, 25, 20, 20] execvm "Scripts\JBOY_BirdFormation.sqf"; sleep 15; dmy = ["B_Plane_CAS_01_F", getMarkerPos "mrkDuckStart_2", markerDir "mrkDuckStart_2", 7000, 15, 150, 400] execvm "Scripts\JBOY_BirdFormation.sqf"; sleep .2; dmy = ["B_Plane_CAS_01_F", getMarkerPos "mrkDuckStart_2", markerDir "mrkDuckStart_2", 7000, 15, 150, 400] execvm "Scripts\JBOY_BirdFormation.sqf"; sleep .2; dmy = ["B_Plane_CAS_01_F", getMarkerPos "mrkDuckStart_2", markerDir "mrkDuckStart_2", 7000, 15, 150, 400] execvm "Scripts\JBOY_BirdFormation.sqf"; 3. Create a file in your mission directory called "JBOY_BirdFormation.sqf" and put this code in it: ////////////////////////////////////////////////////////// // JBOY_BirdFormation.sqf // By: johnnyboy // dmy = ["seagull", getMarkerPos "mrkDuckStart", 180, 1000, 10, 50 , 20] execvm "Scripts\JBOY_BirdFormation.sqf"; // dmy = [objType, startPosition, Direction, Iterations, BirdCount, FlockHeight, speed] execvm "Scripts\JBOY_BirdFormation.sqf"; // // Creates V formation of flying objects ////////////////////////////////////////////////////////// // ducks fly at 30-50 kph _objType = _this select 0; _startPos = _this select 1; _dir = _this select 2; _iterations = _this select 3; _birdCount = _this select 4; _flockHeight = _this select 5; _speed = _this select 6; //_speed = 20; _xx = 0; _sleepTime = .1; // ************************************************************************** // create leader physics object that we can use setvelocity on // ************************************************************************** _obj = "Land_CanOpener_F" createVehicle [10,10000,0]; _obj setdir _dir; _obj allowdamage false; // ************************************************************************** // create bird leader object // ************************************************************************** _birdLeader = _objType createVehicle [5,5,5]; _obj disableCollisionWith _birdLeader; _birdLeader setDir getDir _obj; _birdLeader attachTo [_obj, [0,0,0]]; // ************************************************************************** // Add all objects created to an array so we can delete them later // ************************************************************************** _objArray = []; _objArray pushBack _obj; _objArray pushBack _birdLeader; sleep 5; // Get dimensions of object _bbr = boundingBoxReal _birdLeader; _p1 = _bbr select 0; _p2 = _bbr select 1; _maxWidth = abs ((_p2 select 0) - (_p1 select 0)); //_maxLength = abs ((_p2 select 1) - (_p1 select 1)); //_maxHeight = abs ((_p2 select 2) - (_p1 select 2)); // turn engine on for air vehicles if (_objType isKindOf "Air") then { player action["EngineOn", _birdLeader]; }; // ************************************************************************** // Create and attach all follower birds, calculating relative positions for V formation. // Relative positions based on width of object. Follower positions randomly tweaked // a little so bird formation is not "too perfect". // ************************************************************************** _offset = _maxWidth + (_maxWidth/10); // space between birds for "_i" from 1 to _birdCount -1 do { _bird = _objType createVehicle [5,5,5]; if (_objType isKindOf "Air") then { player action["EngineOn", _bird]; }; _objArray pushBack _bird; _bird setDir getDir _obj; if ((_i mod 2) == 1) then { // Odd followers to the left _bird attachTo [_obj, [_offset*-1 + (random 10/10),_offset*-1, 0]]; } else { // Even followers to the right _bird attachTo [_obj, [_offset + (random 10/10), _offset*-1, 0]]; _offset = _offset + _maxWidth + (_maxWidth/10); }; }; // ************************************************************************** // Move the birds // ************************************************************************** _obj setpos [_startPos select 0, _startPos select 1, _flockHeight]; while {_xx < _iterations} do { _xx = _xx + 1; //_obj setVectorDirAndUP [[0.728425,0.68065,-0.078186], [0.00150812,0.112526,0.993648]]; _obj setVelocity [_speed * sin(_dir), _speed * cos(_dir), 0]; sleep _sleepTime; if (_objType == "seagull") then { // Ducks quack periodically _rand = floor(random 100); switch ( true ) do { case (_rand < 3): { _birdLeader say3d "quack1" }; case (_rand < 6): { _birdLeader say3d "quack2" }; case (_rand < 9): { _birdLeader say3d "quack3" }; }; }; }; // ************************************************************************** // Delete the birds // ************************************************************************** {deleteVehicle _x;} forEach _objArray; I just grabbed the duck noises off the web. You can comment that code out it you want. If you want the duck sounds, let me know, and I will upload this demo mission so you can pull all the files down.
  22. Exactly right. Which is why I built SOG AI to overcome that combat behaviour where team resists moving quickly.
  23. Hwy Mike, I wrote this years ago, and don't recall the details. It was strictly for V formations, and beware the warning in OP that height is fixed, so if you point them at a mountain they will fly into it. So its good for only simple ambient fly bys.
  24. Good work dude. Now that you got the arma scripting bug, what are you gonna tackle next? 🤪 btw, your sketch skills are right up there with mine! Haha.
×