Jump to content

Baconator

Member
  • Content Count

    20
  • Joined

  • Last visited

  • Medals

Community Reputation

1 Neutral

About Baconator

  • Rank
    Private First Class
  1. I just wish that Bohemia would bring back the ALICE module for Arma 3. Would make working/scripting with civilians so much easier. TPW does a great job with ambient civs, but he made those scripts for single player, they wont work on a dedicated server.
  2. ok thats what i thought, but i just wanted to make sure. Thank you. As for the lazy evaluation, I'm gonna wait to optimize until i get the mission actually working first lol might save myself a few grey hairs.
  3. i couldnt find it in/understand the waitUntil wiki, so i thought i would ask. Does waitUntil exit after the first true boolean it sees or does it keep executing the code block? example: _var = 1; waitUntil { if (_var == 0) exitWith {true;}; if (_var == 1) exitWith {true;}; if (_var == 2) exitWith {true;}; false; }; so the code block in the waitUntil would look like this after evaluating the conditional statements: waitUntil { false; true; false; false; }; would the waitUntil end at the first true or does the last value need to be true? :confused:
  4. Baconator

    Farooq's Revive

    i dont know how to fix your problem, but it sounds like a locality issue or the function is not returning the player as a value. Check to see if theres a if (isDedicated) then exitWith {}; at the top of the function file or that there is a value returned when the function is done. :confused: good luck
  5. As much as i like to see civilians run around like chickens, that would be awesome. That would set up the mission maker for easier AI interaction, not just for civilians. You could set the side of an opfor unit to civilian, call this function, then a simple if/then condition, then set the side back to original or keep it civilian and boom, you have Nazi SS checking your papers lol edit: no offense to any Nazi's. It's only for example.
  6. findNearestEnemy does not work for civilians unless you specifically set who their enemies are. You could do something like civilian setFriend [west,0]; _target = _man findNearestEnemy _man; civilian setFriend [west,1]; that should work. But it can have adverse effects on AI behavior according to the setFriend wiki if used after mission start. In the case of the civilian though, i dont really care.
  7. Hey BT I would just wait until Zen updates his framework package. That way you dont have to overwrite the function, and, if you can wait a week, it will do the exact same thing! probably even better! :biggrin_o: @Zenophon Ok. Thats what i needed to know. In running some tests i did find out that it updates rather quickly but if the object is moving faster than walking speed it will lag behind a bit but that's expected for server stress purposes. Zen_SpawnItemsOnTable That would be awesome! Ill send you what I've got, because i did run into some locality issues with MP as well as getting the right positions for the spawned items. Generally you would want to spawn the items on something that is not square, as well, the items are not a single point, so it looks weird when a laptop is floating next to a table or whatever. Suggestion. Editing the Zen_OrderInfantryPatrol to be more usable with civilians and also incorporate you're "isSeen" function. The last element in the passed array, the boolean "Chase down the enemy", would be nice to have work for civilians, so if your convoy pulls into a town of civilians, they would all bum rush your vehicles asking for supplies or something. I tried setting this to true, which works somewhat, but because their combat mode gets set to red, they weave in and out of cover before standing next to you with a blank stare. Its rather funny to watch, but quite annoying if you're trying to make a "supply the town then have God's wrath rain down upon you" type mission. As for incorporating the Zen_isSeen function, I can see this working quite well with the patrolling function as another optional parameter. You could pass the patrol function a radius, and with that radius define the minimum/maximum distance before the player, or an enemy unit "isSeen" before the patrol reacts. As an example, you had the last parameter set to true (granted you added functionality to the patrol script for civilian), the civilian AI would keep walking around town until the player was within 3 meters of said civilian. Said civilian would then stop what he was doing and approach (player or AI). This would allow you to very easily set up a believable civilian interaction. Hell, you could take it a step further and turn a separate version of Zen_OrderInfantryPatrol along with Zen_FindGroundPosition into a fully functioning Civilian Interaction Module by incorporating POLPOX's calm soldier script.
  8. You need to make sure each mission folder has the Zen_FrameworkFunctions folder in it. Check the front page of this thread. hey @Zenophon lovin the mission framework! made some minor edits to a couple functions to make them do what i wanted (like Zen_SpawnItemsOnTable - made it so you could have an array of strings and one object or an array of strings and an array of objects, then spawn the items at random positions/directions on each table taking into account the tables length, width and direction) but all in all its exactly what i needed. What makes it special is the documentation. I WISH BIS was this organized! Instead of having to serach through webpage after webpage looking for the exact function you need to use, only to find out its been depricated! FRUSTRATING!!! anyway thankyou. Quick question. Does the Zen_TriggerAreNear update to the position of the object if it is moving? example: I have a moving civilian which i call Zen_TriggerAreNear on. The trigger is activated by west and its radius is 5m. Will the trigger follow the civilian, allowing 'west' to trigger it when they are within 5 meters? Or do i need a waitUntil {condition} before i call the Zen_TriggerAreNear function? Thanks in advance.
  9. Baconator

    Randomly generated roadside IEDs

    so i ran into a bug today that had me pulling my hair out lol im creating a scripted mission and have EPD as well as Grimes revive script executing before my "if (!isServer) exitWith {};" statement. When i run EPD before the revive script, the revive script throws an error something to the effect that the position variable of the player is undefined. Im assuming, because i had blacklist markers defined in the settings for EPD, that it deletes all positions within the area of the blacklisted marker? I dunno. Didnt look into it in detail. Needless to say, my problem was fixed by running the script which relied on the position of the editor placed unit the player is initially spawning into before running EPD. For safe measure i took out any blacklisted markers in EPD settings as well. DISREGARD!! i screwed up :icon_mrgreen: although.. it seems i am getting some interference with blastcore as far as the explosions. It seems to lag a bit before the explosions awesome dust cloud. Does anyone know a way to check if the player is running that mod so i can then turn off this feature? Testing in a mission on hosted server.
  10. all Unit class names as of ArmA 1.10.114486
  11. Whats interesting about the marker array in the createUnit array function parameters is that it selects a marker at random. So if you had an array of 10 markers and your loop ran twice, you could create 1 unit at one marker and another unit at another marker (or potentially two at the same one), and each time this code block was run (maybe put it in its own script and call that script from a trigger activation) you would get 2 units at a random marker position. It wouldn't be the same location every time you played the mission. Very useful for creating dynamic missions and re-playability. Im not sure how heavy the function is for randomly selecting a marker, so if you create a lot of units and place them with the random marker array, it could potentially cause lag and frame drop, but you would run into the problem of having a lot of AI units on the map anyway.
  12. from what i understand the MARKER parameter is where the unit will spawn. So, using this function in a loop, you could create 10 units at (potentially - the description says random, and we all know what random means :p) three different locations depending on where you placed the markers on the map. I havent tested this theory, so dont take my word for it. EDIT: I tested my theory and that is indeed what the MARKER array parameter is. _mkr1Pos = getMarkerPos "mkr1"; for "_i" from 1 to 10 do {_unit = group player createUnit ["B_Soldier_F", _mkr1Pos, ["mkr1", "mkr2", "mkr3"], 0, "NONE"];}; to spawn in a new group (create a new group) you use createGroup so putting the two together would look like this: _newGrp = createGroup west; _mkr1Pos = getMarkerPos "mkr1"; _loop = 1 while (_loop < 10) do { _unit = _newGrp createUnit ["B_Soldier_F", _mkr1Pos, ["mk1", "mkr2", "mkr3], 0, "NONE"]; _loop = _loop + 1; }; note: that if you don't specify a marker it uses the group specified leader's position. note2: that "mkr1", "mkr2", and "mkr3" are objects i placed in the editor with the name "mkr1", "mkr2", and "mkr3" respectively. Or unrespectively, its your code ;)
  13. Nevermind. You only have to that when you have a string, within a string, within another string. Something like this (which i just got to work btw lol): _trgr setTriggerStatements ["bcTriggerPos = getPos thisTrigger; 'Logic' createUnit [bcTriggerPos, group gamelogic, 'nul = [] execVM ""myscript.sqf""']"] where your executing a script in the init of a spawned object. Im betting it has to do with what/how your feeding the setTriggerStatement function the _statements array of strings.
  14. works fantastic! i didn't see that on the list of scripting commands on the wiki...
  15. Here is the total error: Error in expression <bcTriggerPos = getPos this; 'Logic' createUnit [bcTriggerPos,group gamelogic> Error position: <createUnit [bcTriggerPos,group gamelogic> Error 0 elements provided, 3 expected and this is from the missionStart.sqf: _trig setTriggerStatements [ "this", "bcTriggerPos = getPos this; ""Logic"" createUnit [bcTriggerPos, group gamelogic,'nul = this execVM ""LV\fillHouse.sqf""'];", "" ]; im so close to finishing this dang mission lol
×