Jump to content

opusfmspol

Member
  • Content Count

    719
  • Joined

  • Last visited

  • Medals

Everything posted by opusfmspol

  1. opusfmspol

    Custom Group Color

    When I go in the editor, the default color is white. It becomes green when STHUD is used (not sure about other mods as well). And with STHUD, using the assignTeam command will change the icon color. So maybe you were using that mod in your prior mission.
  2. opusfmspol

    Custom Group Color

    Do you mean setting the Marta group colors in High Command / subordinates? Like when HC groups have been set up, some groups default to squad colors, but the colors can't be changed in the same way team colors can? hcSetGroup _hcleader HCsetgroup [_group, _groupName, _groupColor];
  3. Be sure you're running the addRating command where the unit destroying the aircraft is local. It's the same problem the A2 SecOps "TRAP" (downed aircraft) mission suffered from. The aircraft had to be destroyed for the mission to complete, and sometimes it spawned in as damaged rather than destroyed. The player would destroy the aircraft, but then everybody turned against the player due to the hit against the player's rating. It was handled when A2 updated with Corepatch, if you have A2 you can see how it's done in the missions.pbo> som> data> scripts> TRAP folder, phase script 07. Deals with any side, whether player or AI, destroying the aircraft. Uses public variable, public variable event handler and a SOM function for multiplayer communication, but RemoteExec or RemoteExecCall can be used instead. Basically, the aircraft is local to the server. When a unit (player or AI) destroys the aircraft, the "killed" event handler spawns code and transmits a public variable for others to run the same code. The code runs only where the killer is local. The code reimburses the killer the rating lost for destroying the aircraft. The rating amount reimbursed is fixed based on the aircraft type. (Problem is timing, you can't get the killer's rating before the kill when you don't know who the killer is until the aircraft is destroyed; and as soon as the aircraft's destroyed the rating change is practically instant.) It still suffers a problem in that there can be communication delay; during the time it takes for communication to come through and the code to run local on client, the killer is vulnerable to getting killed as renegade. So when destroying the aircraft the killer has to be out of sight of others (i.e., when on foot I would order team members to watch away from me and make sure I'm not visible to others) , else protected from being shot (i.e., gunner inside a vehicle). Once the communication comes through and rating added, the killer is safe. So not a perfect fix, but hope this helps.
  4. My experience with UnitReady command has been that the check needs to be made where the unit being checked is local. Where the unit is not local, it always return true whether the unit is ready or not.
  5. Seems you're doing a retreating line defense with phases of defense lines, and want the AI to remain on line without fleeing until the order to fall back is given. You want them to stay at the current defense line (the zone). I would think disableAI / enableAI, but not sure it will work for you. Zone Restriction doesn't prevent anyone from leaving the zone, its intended to punish someone who does.
  6. Zone Restriction uses triggers. That's what it means by "sensors". Sensors are: triggers. That's the whole purpose of the ZoRA module. Keep players in an area. If they push the envelope, warn them. If they refuse to heed the warning, kill them. If you want to change its behavior to include AI conditions, waypoints, or more, copy its scripts/FSM's into your mission folder and adjust them to suit your needs.
  7. opusfmspol

    displaying successive hints

    I've been using a function for hints with boolean flag for my missions. Perhaps could revise for use with remote exec. Hope it helps.
  8. opusfmspol

    (SOLVED) kbTell has no audio.

    I believe what .kju points out is that you have speech[]= looking for a game sound instead of a custom sound. In Conversations example, "\Sound\hello.ogg" represents using game sound, "Sound\gk.ogg" and "Sound\bold.ogg" represent using custom sounds. If that's not causing the issue, then have you tried with all mods disabled, not just ACRE? First step to resolve whether mod conflict occurs.
  9. That works only if you want the state of the last player in the list. To return true when any player is unconscious: {if (_x getVariable ["ACE_isUnconscious",false]) exitWith {true}; false} foreach allPlayers
  10. opusfmspol

    Heli Land

    Can also use the waypoint condition to monitor for a true condition. Change the default "true" condition to something which returns true once all living team members are boarded.
  11. {_x assignTeam "RED"} forEach (Crew this); and, {_x assignTeam "BLUE"} forEach (Crew this);
  12. opusfmspol

    Construction Interface Script?

    Maybe a Zeus module could be used. I've tinkered with it enough to limit radius and height but didn't go any further than that. Whether it could be limited enough to correctly imitate A2 COIN, I can't say.
  13. opusfmspol

    You've played to much Arma when:

    . . . when you code using classnames without looking them up to verify, and no resulting errors. . . . when watching an Arma video, the person who did the recording opens their map, and you click the screen to try moving the map.
  14. opusfmspol

    Spawn (custom) compositions

    If not already, for debugging purposes, use -showScriptErrors in startup params and do not use -noLogs. - Using -showScriptErrors gives a black error box on screen when an error occurs. Let's you know when there is an error encountered which is quite helpful. - Not using -noLogs will catch errors in the .rpt log and lets you review the encountered error. But using -noLogs prevents the .rpt from logging errors. The problem is here . . . "Land_TentDome_F" is missing a string quote ( " ) at its end, and there is a comma ( , ) after last item of the array. One would think it should have errored on those. and here . . . createVehicle command needs a string classname to create. You made _objType an array. createVehicle can't do anything with it. One would think it should have given a "type array, expected string" error on that. An array could be used, but it really is simpler to create three objects in a row from string. A problem is that the sleep script shows "obj2" and "obj3" are variables already in use. You would need to decide what variables to use to reference the additional created objects, and how to position them when obj1 is setPos.
  15. opusfmspol

    scripting with modules

    Wouldn't it be better to have placed triggers run a single script that spawns the modules at the location? What's the purpose of using BIS_fnc_locations? Do those modules even use it? I do know using "CityCenter" with BIS_fnc_Locations is rather disappointing.
  16. opusfmspol

    BIS_fnc_spawnGroup; Question.

    Don't Call Compile "New Name", that will error. BIS_fnc_SpawnGroup returns the group created, not the unit, i.e: _group = [<< params >> ] call BIS_fnc_SpawnGroup; Use Units command to select the unit from the group, i.e.: _unit = (Units _group) select 0; If you want the unit available to other scripts, define it as a global variable rather than a local one, i.e.: NewUnit = (Units _group) select 0; If you want other machines to use the unit in scripts, broadcast it as a public variable, i.e.: PublicVariable "NewUnit"; Waypoints are a group function. Use the group, not the unit, i.e.: _wp1 = _group addWaypoint [getmarkerpos "owp2", 0]; Hope this helps.
  17. opusfmspol

    setMarkerAlpha for one side

    Not correct, you can adjust local alpha on editor markers. To my understanding, all markers are local and the difference between createMarker and createMarkerLocal, and their other associated commands, is that the markerLocal commands won't propagate across the network, whereas the other command does propagate to all machines. I just tested this to verify: If you have two machines - - Place a Blufor and Opfor unit on map, player and playable. Name one unit bob and the other bill. - Place two flag markers on map, "flag1" and "flag2". - Place a Radio Alpha trigger, with OnActivation: if (player == bob) then {"flag1" setMarkerAlphaLocal 0;}; - Launch in multiplayer and join on both machines, go to map and view the markers. Markers appear on both machines. - Call the radio trigger. Flag1 marker disappears on Bob's machine but not on Bill's machine. Check your trigger OnActivation and onDeactivation codes. You probably want something like: if (!isDedicated && hasInterface) then {if (side player == West && getMarkerType "bluMZ_1" != "") then {"bluMZ_1" setMarkerAlphaLocal 1;};}; and, if (!isDedicated && hasInterface) then {if (side player == West && getMarkerType "bluMZ_1" != "") then {"bluMZ_1" setMarkerAlphaLocal 0;};};
  18. Might check in directory Steam\Steamapps\common\ , and verify that the Arma 2 folder is named "Arma 2" (space included). The folder being renamed can cause that to happen. Also in Arma 2\addons folder should be a missions.pbo and missions_ew.pbo. Missions.pbo has the A2 campaign.
  19. Variable = params call BIS_fnc_spawnGroup; Variable is the returned group. Use the variable in triggers and for waypoints.
  20. Trigger Activation See Any Group Member
  21. Store the action ID. You want it stored so the action can be checked and properly removed. Add action: if (_vehicle getVariable ["actionVarName",-1] < 0) then { Private _actionID = _vehicle addAction ["Action Name", {_actionCode}]; _vehicle setVariable ["actionVarName",_actionID]; }; . . . . . . . . Remove action: Private _actionID = _vehicle getVariable ["actionVarName",-1]; if (_actionId >= 0) then { _vehicle removeAction _actionID; _vehicle setVariable ["actionVarName",-1]; }; . . . . . . . . Storing actionID should be included in addAction and removeAction pages, imo. These type questions pop up frequently.
  22. Don't know about "faceType" or "genericNames", but my understanding of "identityTypes" is that it holds tags used in randomization, so when units are placed they get random faces, glasses and voices, but within the confines of their given tags. cfgFaces has various faces tagged with identityTypes "Head_NATO"; cfgGlasses has various glasses tagged with identityTypes "G_NATO_default"; and cfgVoice has voices tagged with "LanguageENG_F". So if a placed unit inherits from B_Soldier_base_F and has no identityTypes array defined, it uses those inherited tags to randomly choose face, glasses and voice. When there are multiple tags of a kind, it broadens the randomization range. If a unit class has "identityTypes[]={};" it gets no randomization, it uses defined identity. That's my understanding. If I'm wrong, somebody please correct.
  23. opusfmspol

    Best way to have conversation

    If using the Conversations system, you don't have to use separate files but it helps with organizing. You can pack everything for different conversations into single files, i.e. one .bikb for topic, one .fsm for AI., one handler .sqf for players, etc. Then you only have to add one kbtopic to all speakers at mission start. But as the mission expands with more and more conversations, the files become larger and difficult to search through. So I would say, small missions with maybe a few conversations, you could pack all into single files, but with larger missions having various conversations, you will want to consider breaking the conversations out into files named for their topics.
  24. Since no response, One option is to go into the missions.pbo and review the SOM folders (SecOps Manager). It has a kb folder and fsms folder. Would also need to go into the languagemissions.pbo to find the stringtables used by SOM. Has everything but the gunship run stuff, the Gunship Run stuff is in missions_e.pbo and languagemissions_e.pbo. That's where I learned how the conversation system works, by doing customized SecOps and SecOps supports. While working on that, the posts by Jezuro, HateDread and EvilEcho helped much with understanding how the SOM kb system was set up and functioned. In the end I had dialogues of my own going on. But they're not set up any different than what SOM has, so I suggest looking there. Locality is important. kbTell needs to be done where the unit is local. kbWasSaid is also local, it fails when checking a remote unit, so sleep is used in that instance. SOM is run by server, which does HQ kbTells. It uses public variable event handler on variable "BIS_SOM_codeBurst" to have the players do their kbTells. The artillery support includes use of addaction kbTell calls. Hope it helps.
  25. opusfmspol

    Trigger activates when in vehicle

    You should just have to condition the "not" apart from the "In". if !(don1 In v1) then {<code>}; if (alive don1 && {!(don1 In v1)}) then {<code>}; // Edit - sorry, jumped the gun without reading entirely. If a team do the units as pointed out above, but still condition the two apart like Pierremgi has.
×