Jump to content

meatball

Member
  • Content Count

    734
  • Joined

  • Last visited

  • Medals

Posts posted by meatball


  1. I've got a test version available if anyone wants to try it, but it's still pretty broken and I've not been able to test everything, but if anyone feels like giving it a shot, you're welcome to, just expect you're going to see some issues.

    V 0.65 Release

    - The latest patch (0.74.108135) really broke stuff in my opinion and makes the game hard to play in some cases. There's still stuff not working, and even though the scripts appear to be working fine, the engine continuously throws up tons of "Undefined variable" error messages.

    - Fixed the end game triggers that the latest patch broke.

    - Added random extraction points! (Still testing, so may be a bit buggy)

    - Added parameter to choose whether or not First Aid Kits are required to revive other players. Default is No.

    - Added vehicles and enemy spawn locations to southern portions of island.

    - Made enemy heli reinforcement arrival more variable.

    ---------- Post added at 23:19 ---------- Previous post was at 23:05 ----------

    By the by, there's a slight chance someone might have figured out the underlying issue with all this errors (has something to do with the scripts using 'nil' in them). If that's the case, that's awesome, because it can be fixed, but until spunFIN can dig through some of his scripts and fix them, there's not a lot I'll be able to do to fix them.

    ---------- Post added at 00:17 ---------- Previous post was at 23:19 ----------

    Ah, whoops. Completely spaced and forgot to re-enable revival ingame. Updated the mission file at dropbox above.

    I won't be updating again though until all the scripts are fixed for this latest beta patch. Apologize I can't get everything working, but a lot of these scripts are way above my head :)


  2. move didn't seem to work either. Here's the entire script. I'm sure it's not the cleanest, since it's my first shot at building my own script so any suggestions would be appreciated.

    // randomExtract point script written by Meatball
    //
    //   Have 6 invisible markers already on the map named lz_0 through lz_5
    //   Have 6 invisible helippads already on the map named hp_0 through hp_5
    //      lz_0 is next to hp_0, etc.
    //
    
    if (!isServer)exitWith{};
    private ["_randomExtract","_lzName","_hpName","_evacH","_evacWP","_evacTrig1","_bricks","_heli","_heliCrew","_heliGroup"];
    
    // Pick Random extraction location.  
    _randomExtract = floor(random 6);// Update 6 to total number of extraction points/helipads you've created on the map.
    
    // Show Extraction point marker on map
    
    _lzName = "lz_" + str _randomExtract;
    _hpName = "hp_" + str _randomExtract;
    
    radFound = 0;
    
    //hint format["lzName & hpName: %1 & %2",_lzName,_hpName];
    
    _lzName setMarkerTypeLocal "mil_Pickup";  // For more icon types see http://community.bistudio.com/wiki/cfgMarkers
    _lzName setMarkerColorLocal "ColorRed";  // For more Colors see http://community.bistudio.com/wiki/setMarkerColorLocal
    
    _bricks = [markerPos _lzName, random 360, "Land_Bricks_V4_F", CIVILIAN] call BIS_fnc_spawnVehicle;
    
    // Create Guardians around extraction point.
    
    //call compile format["nul = [%1,2,(numEnemies*80),true,true,false,0.20,0.05,enemySkill,nil,nil,nil] execVM 'militarize.sqf';",_hpName];
    
    // Create evac trigger.
    // Trigger 1 - Radio Trigger
    _evacTrig1=createTrigger["EmptyDetector",getMarkerPos _lzName];
    _evacTrig1 setTriggerActivation["WEST","PRESENT",false];
    _evacTrig1 setTriggerArea[2,2,0,false];
    _evacTrig1 setTriggerStatements["this","hint 'After digging through the pile of bricks you find the radio and call in for evac.  The chopper is en route and they tell you to hold out till they arrive!';radFound = 1;",""];
    _evacTrig1 setTriggerTimeout[2,2,2,false];
    
    waitUntil {radFound == 1};  // Wait for players to 'find' radio with Radio Trigger.
    
    // Spawn evac helicopter and fly to Evac Point
    _evacH = [markerPos "evacSpawn", random 360, "B_Heli_Transport_01_camo_F", west] call BIS_fnc_spawnVehicle;
    
    _heli = _evacH select 0;
    _heliCrew = _evacH select 1;
    _heliGroup = _evacH select 2;
    
    _heli allowDamage false;
    
    evacHeli = _heli;
    
    call compile format["wp0 = _heliGroup addwaypoint [getPos %1, 0];",_hpName];
    wp0 setWaypointType "LOAD";
    wp0 setWaypointSpeed "FULL";
    wp0 setWaypointBehaviour "CARELESS";
    wp0 setWaypointCombatMode "BLUE";
    wp0 setWaypointStatements ["true","doStop evacHeli; evacHeli land 'LAND';"];
    
    sleep 20;
    hint "DemoTeam two, this is Ghost twelve.  We are en route for evac.  ETA under two minutes.";
    
    // Wait for units to extract
    waitUntil {{_x in evacHeli} count units demoteam == {alive _x and !captive _x} count units demoteam};
    
    wp1 = _heliGroup addwaypoint [getMarkerPos "endMark", 5];
    wp1 setwaypointtype "MOVE";  
    

    ---------- Post added at 22:17 ---------- Previous post was at 22:13 ----------

    You're right, it is the doStop...duh.

    Any idea how to assign the doStop and Land commands to wp0?


  3. Having trouble with a helicopter I'm spawning with a script to move to a pickup location. The helicopter does spawn, but it just sits there, hovering at the spawn location. Here's the code I'm using.

    // Spawn evac helicopter and fly to Evac Point
    _evacH = [markerPos _spawnPos, random 360, "B_Heli_Transport_01_camo_F", west] call BIS_fnc_spawnVehicle;
    
    _heli = _evacH select 0;
    _heliCrew = _evacH select 1;
    _heliGroup = _evacH select 2;
    
    _heli allowDamage false;
    evacHeli = _heli;
    
    evacHeli doMove (getmarkerPos "_lzName");
    
    call compile format["wp0 = _heliGroup addwaypoint [getPos %1, 0];",_hpName];
    wp0 setWaypointType "LOAD";
    wp0 setWaypointSpeed "FULL";
    wp0 setWaypointBehaviour "CARELESS";
    wp0 setWaypointCombatMode "BLUE";
    doStop _heli;
    _heli land "LAND";
    

    The doMove was at attempt to force it to go, but no dice. Anyone have any ideas?


  4. Yeah, the latest patch jacked a lot of the underlying scripts. I'm working through them now, but to be honest, I think they have some sort of issue with the patch as a _lot_ of misions/scripts have become unplayable. Sorry, and I'll keep trying to figure out what's happening! I do have the targets destroyed piece fixed, and I'm working in some new additions (random extraction points anyone?) :) But until they fix whatever is messed up or tell us what the patch did, I can't seem to get rid of the black script error message popups. The game is playable with them, but it's annoying as heck.


  5. So here's the basics of what I'm seeing. I'm using spunFIN's Ambient Combat script (which has worked without a problem prior to the patch), and when that fires, I see this error message pop up.

    _xError.jpg

    The actual block of text is a portion of Ambient combat supporting script (LV_fnc_ACcleanUp.sqf) that is checking for dead groups and removing them. Here's the full script.

    //ARMA3Alpha function LV_fnc_ACcleanUp v0.85 - by SPUn / lostvar
    //removes dead groups and groups in defined distance
    private ["_i","_wGroup","_leader","_uns","_sUnit","_maxDis","_nsUnit","_tempUnits","_x"];
    _sUnit = _this select 0;
    _maxDis = _this select 1;
    
    while{true}do{
    _i = 0;
    while{_i < (count LV_ACS_activeGroups)}do{
    	_wGroup = LV_ACS_activeGroups select _i;
    	_leader = leader _wGroup;
    	_uns = { alive _x } count units _wGroup;
    
    if((typeName _sUnit) == "ARRAY")then{
     _tempUnits = [];
     {
       if(alive _x)then{
         _tempUnits set[(count _tempUnits), _x];
       };
     }forEach _sUnit;
     if((count _tempUnits)>1)then{
       _nearestUnit = _tempUnits select 0;
       {
         if((_x distance _leader)<(_nearestUnit distance _leader))then{
           _nearestUnit = _x;
         };
       }forEach _tempUnits;
       _nsUnit = _nearestUnit;
     }else{
       _nsUnit = _tempUnits select 0;
     };	
    };		
    //		hint format["cleanUp, total groups: %1",(count LV_ACS_activeGroups)];
    
    	if(_uns < 1)then{
    		LV_ACS_activeGroups = LV_ACS_activeGroups - [_wGroup];
    		if((side _wGroup) == west)then{
    			LV_AI_westGroups = LV_AI_westGroups - [_wGroup];
    		}else{
    			LV_AI_eastGroups = LV_AI_eastGroups - [_wGroup];
    		};
    	}else{
    		if(_leader distance _nsUnit > _maxDis)then{
    			LV_ACS_activeGroups = LV_ACS_activeGroups - [_wGroup];
    			if((side _wGroup) == west)then{
    				LV_AI_westGroups = LV_AI_westGroups - [_wGroup];
    			}else{
    				LV_AI_eastGroups = LV_AI_eastGroups - [_wGroup];
    			};
    			{ deleteVehicle _x }forEach units _wGroup;
    		};
    	};
    	sleep 1;
    	_i = _i + 1;
    };
    sleep 30;
    };
    

    Here's the latest .rpt file as well.

    I'm also seeing some crazy generic undefined variables in other portions of the script that actually look like it's referencing internal A3 functions.

    ret_error.jpg

    What's strange is that the script actually seems to be working correctly, it's just spitting out errors every 20 seconds once it starts running. Not sure we're going to find a work around to this and I think BI is going to have either fix it, or tweak the error messages so script writers can figure out what they have wrong.


  6. Ah perfect, that's got me going in the right direction. Now I'm just tweaking with Waypoints and trying to force the heli to sit and wait until all alive, but not captured units from a certain group are in. Here's what I have.

    wp0 = _heliGroup addwaypoint [getMarkerPos _lzName, 0];
    wp0 setWaypointType "LOAD";
    wp0 setWaypointBehaviour "CARELESS";
    wp0 setWaypointCombatMode "BLUE";
    doStop _heli;
    _heli land "LAND";
    
    wp1 = _heliGroup addwaypoint [getMarkerPos _lzName, 5];
    wp1 setWaypointType "MOVE";
    wp1 setWaypointStatements ["true","{_x in _heli} count units demoteam == {alive _x and !captive _x} count units demoteam;"];
    
    wp2 = _heliGroup addwaypoint [getMarkerPos "endMark", 5];
    wp2 setwaypointtype "MOVE";  

    Pretty sure this should work, but with my testing with myself and an AI set to init with "demoteam = group this;" the heli is taking off as soon as one of us gets in. Looks like it's only showing one of us as being in demoteam for some reason. There something I need to do to make sure both player and AI are counted?

    • Like 1

  7. Working on building a script that will pick a random evacuation location and then spawn an AI helicopter that will come in and pick up the players. I've got the script randomizing the evac point, putting that marker on the map for the players and then spawning an AI piloted Ghosthawk at a safe location so far. Since I really don't want the helicopter to be shot down, I'm trying to set it invulnerable, but it appears that the setVehicleInit has been disabled in Arma3.

    Anyone have any idea how to set initialization values (this allowdamage false; in particular) to units spawned using BIS_fnc_spawnvehicle?


  8. Hate to start another AI Helicopter Pickup thread, but I think I have a different wrinkle with this. My mission puts all the players in the same group called "demoteam". Players can be revived if they get knocked out, but if they are not revived within a set amount of time, they automatically respawn in a 'prison' and get set captive by a repeatable trigger at that location with the following code in the triggers Action.

    {_x setCaptive true;removeallweapons _x;removeAllItems _x;removeBackpack _x;removeVest _x;removeHeadgear _x} foreach thislist;

    Once the uncaptured members of demoteam finish all the objectives they are given a location to get evac from and when they get there I have an AI helicopter called "heli" that comes in with a Load waypoint at the evac point with a "dostop heli;heli land "Land"; in the on Act for the waypoint. Waypoint is set to Careless behavior and Hold Fire combat mode so it should come in regardless of enemy activity. The helicopter comes in as expected, lands and shuts down without a problem. To make sure the helicopter doesn't just take off and fly off to the end point before anyone gets in, I have another Move waypoint just a few meters away with the following condition:

    {_x in heli} count units demoteam == {alive _x and !captive _x} count units demoteam;

    What I'm expecting the helicopter to do is to come in, land, and shut off it's engine until every member of demoteam that is still alive, but is not captured gets on board, and then take off to fly to the end point of the mission. The problem is, sometimes the helicopter works fine and takes off after all the team gets on board, other times it will take off as soon as any of the team members gets in, stranding the other players on the ground, and then other times it just never takes off, even if everyone that isn't captured gets in. I'm not really sure if it's my code, or things are just buggy with AI heli's and waypoints, but any thoughts would be appreciated. :)


  9. Really great script, Thanks for this awesome job, so far everything working good but i have one question. I checked the whole thread and i couldn't find any solution even two other also asked this question.

    Even when i set the active life limits to 1 and once the teammate is revived and if he get shot and goes down 2nd time still he can be revived and on his screen it shows 1 life remaining. So how to fix the reviving limit so after certain numbers of revives the player will stay dead.

    and when the reviving duration time outs the person should be dead but instead he spawn in the ocean. Any help would be appreciated.

    Not positive about the first piece, but if you set "BTC_active_lifes" to 1 and "BTC_lifes" to 1 in the =BTC=_revive_init.sqf, it should only allow a player to be respawned once.

    About players revive duration timing out and spawning in the ocean there's a few things you can do. The script requires that there is 'respawn' enabled in the game, so you can't set it so people are truly dead, but what you can do is create a 'prison' somewhere and dump people there and say if they are not revived, they are captured. Create an empty icon on your map called 'Respawn_west" and when people time out, they will respawn there. Then just surround that location with concrete walls so they can't get out. You can even create a trigger there that will remove all their gear, etc. It's not the most elegant solution, but it works.


  10. New Version Released, v 0.6 with some minor updates and tweaks including:

    - Multiple random insertion points (over 10) for player team using Shuko's SHK-randstapos script.

    - Tweaked amount of 'hunters' so they will continue to spawn in longer games.

    Until the Armaholic page is updated, the new version can be grabbed on dropbox: Static Loop v 0.6

    Looking forward, I'm still trying to figure out why the evac helicopter works sometimes, and other times does not. In the meantime, I've created a marker that will appear on the map when the chopper comes in so the players can fly there manually if need be. Beyond that I'm looking to add random extraction points and more variety to enemy patrols/units.

    Let me know if you notice any issues or bugs!


  11. Cool! Honestly, the ending is almost inconsequential compared to the real meat of the mission. I'd focus on expanding on your core concept, which seems to be a real winner.

    Thanks again! I really tried to make it so it would be something that could be replayed multiple times and players would get a different experience every time. I've played a lot of missions that once you figure out where things are, there really isn't any reason to play it again, because you just get into a pattern. I took a lot of inspirations from Enigma's Escape from Chenarus for A2. That really became our go to co-op mission to play with our group of players because every time we played it was something new. I was trying to capture that feeling.

    Finally, some ideas!

    • A number of possible coastal starting positions in addition to the one near Kill Farm, so we don't take the same route every time. Even just two or three might make things way more interesting.
    • Dynamic enemy attacks which are more situationally aware, e.g. the occasional enemy boat insertion if players are near the coast, or a paradrop. Just some variety to break up the constant stream of choppers setting down to release an enemy squad!

    Great ideas. This is my first go at mission making, so I'm still learning how to mod/script, but I'll see what I can come up with. :)


  12. Excellent, I'm glad you like it! I'll have to look into the Ghosthawk not lifting off. It's supposed to check to make sure everyone that is alive, but not captured is in and then take off, but the waypoints are a bit buggy at times, so I'll experiment with it.

    Have you found the AI skill and numbers to be about right, or do you think they're too hard/too easy, or too few/too many of them?

    I thought about adding in a repair script, but I thought it might make it a bit too easy if folks could repair up all the vehicles they find to full health. I found that I liked it better personally when you had to search for vehicles and hope the wreck that you found would get you to the next point.

    Appreciated the feedback, and I'm happy you guys are enjoying it! If you guys have any other ideas or comments, feel free to toss them my way!


  13. @Keewa - Pretty sure if you disable respawn (set BTC_disable_respawn to 1 in the revive_init.sqf file) it'll pretty much function exactly like that. Even though people won't see the button and be able to self respawn, they should still respawn at their main side respawn marker at the end of the BTC_revive_time_max time. Might also want to set BTC_black_screen and BTC_action_respawn both to 0, depending on if you want a black screen or the players to be able to see the surroundings.


  14. Static Loop v 1.1

    COOP 2-8 Players

    by Meatball

    Static_Loop_S.jpg

    Features

    - Parameters available to change number of enemies (based on amount of players), enemy skill level, weather, time of day, medic personnel and required equipment.

    - Unlimited Players revives, but player must be revived by other players within 10 minutes to avoid capture.

    - Numbers and locations of starting and ending points, vehicles, supplies, and enemies, vary from game to game for re-playability.

    Situation

    The invasion is on! In an effort to destroy enemy communications and surveillance assets, your demolitions team has been inserted on shores of Stratis shortly after the start of the invasion. Your task, destroy all enemy transmission, communication and radar assets.

    Changelog

    v 1.1 (10/31/13)

    - Tested and working with Arma III Official v 1.04.111668

    - BI changed the amount of damage that towers can take. Instead of all towers taking 1 explosive charge to destroy, larger towers now take 3-4 explosive charges and smaller towers take 2-3 charges to knock down. Added lot's of extra ammo/explosive crates to the map to compensate.

    - Weather and Time of day are now set to "Random" by default. They can be changed with the Parameters available at mission start.

    - Tweaked weather script. Appears to be working correctly, but is still a work in progress.

    - Removed SLP Spawn as it was not working properly.

    v 1.0 (9/22/13)

    - v 1.0 release, and first release to Steam Workshop. Tested and working with Arma III Official v 1.00.109911

    - Weather, woot! Players can now choose starting weather and the weather will randomly change throughout the mission. Note though that this will NOT work if the mission is hosted on a dedicated server. Having trouble making that work with the new A3 weather system.

    - Updated to the latest version of AI Spawn Script Pack (v0.90) by SpunFin

    - Added in new vehicles and units from official release.

    - Various minor bug fixes and code tweaks.

    v 0.9 (8/28/13)

    - Minor tweaks to AI skills levels. Lowered Normal, Hard & Extreme Levels slightly.

    - Reconfigured triggers for destroyed towers/buildings so they should no longer break every time when the game is patched.

    - Fixed a problem with Starting script that would sometimes cause the insertion helicopter to crash.

    - Believe the BTC Revive error message is now fixed.

    v 0.85 (8/13/13)

    - Fixed broken triggers caused by patch (working on fixing it so it doesn't happen every time it's patched)

    - Added a new parameter that allows players to choose who can revive, all players or only the Combat Life Saver. Default is Everyone.

    v 0.8 (8/3/13)

    - Fixed Random starting points. Players will now randomly start at one of ten starting locations.

    - Enemy helicopter reinforcements will now randomly either land to drop off troops or air drop troops.

    - Redid Intro/Outro screens for mission start and end.

    - Updated to new AI Spawn Script Pack (.80).

    - Updated to new SLP Spawn (3.43) scripts for AI player hunter groups and made some minor tweaks.

    - Updated to latest =BTC= Revive script (.93RC).

    - Fixed a problem with the Ambient Radio script throwing errors.

    - Lot's of other minor fixes/tweaks.

    v 0.71 (7/29/13)

    - Fixed a problem with name of mission showing correctly.

    - Fixed a problem with the first aid kit required for revive parameter.

    - Fixed a problem with the mission name not showing up in the mission list.

    - Temporarily disabled random starting points. Working through some issues with it.

    v 0.7 (7/27/13)

    - Fixed a lot of the undefined variable messages with the help of spunFin!

    - May still be some bugs with the new patch and new functions.

    v 0.65 (7/26/13)

    - The latest patch (0.74.108135) really broke stuff in my opinion and makes the game hard to play in some cases. There's still stuff not working, and even though the scripts appear to be working fine, the engine continuously throws up tons of "Undefined variable" error messages.

    - Fixed the end game triggers that the latest patch broke.

    - Added Random extraction points! (May still be a bit buggy)

    - Added Parameter to choose whether or not First Aid Kits are required to revive other players. Default is No.

    - Added vehicles and enemy spawn locations to southern portions of island.

    - Made enemy heli reinforcement arrival more variable.

    Version 0.6 (7/22/13)

    - Added random starting points for player team using Shuko's SHK-randstapos script.

    - Tweaked the amount of 'hunters' so they will continue to spawn in longer games.

    Version 0.5 (7/9/13)

    - First 'Public' Release, tested on Arma 3 Beta version 0.72

    - Minor tweaks to AI skill level and amount of hunter helicopters.

    Credits and Addons

    - AI Spawn Script Pack by spunFIN

    - Ambient Radio Chatter by Clarkey

    - =BTC= Revive by Giallustio

    - CLY Remove Dead Script by Celery

    - SHK-randstapos Random Starting Location Script by Shuko

    - Tons of help from spunFin (AI Spawn Script Pack), Genesis92x (Endless Survival Mission) and everyone on the BI and Armaholic forums.

    Known Issues

    - None

    Mods Needed

    None - Tested on Arma III Official v 1.04.111668

    Installation

    Extract the .pbo file to your Steam/SteamApps/common/ArmA 3/MPMissions folder.

    Download link(s)

    Latest Version:

    - Steam Workshop Link: Static Loop

    - Armaholic Link (Thanks Big!): Static Loop


  15. Hmm, that leads me to think if there's anything that can be done. I've noticed in some of my testing I'll see missions bog down, yet I never see my CPU go above 45-50% for the Arma process. There must be some way to allow for more CPU processing and threads, especially with most folks having multicore CPU's these days.


  16. You can't group a trigger with more one group, but there's a way to do something similar. I'm not home, so I don't know the exact syntax off my head, but you can set the trigger to go off on anyone, but set the condition to check the count of people in the trigger for either group being > 0. Once again, don't quote me on the syntax, but something along these lines should do the work.

    {_x in thislist} count units group1 >= 0 or {_x in thislist} count units group2 >= 0;

×