Jump to content

gokitty1199

Member
  • Content Count

    311
  • Joined

  • Last visited

  • Medals

Everything posted by gokitty1199

  1. Last content update: 6/13/2018 showing how to use the radius for addAction, using params instead of select, adding to arrays with various commands, altering arrays with various commands, get/setUnitLoadout Last content update: 6/10/2018 going through config files and getting details to sort what you want, using radius with addAction, params, and altering arrays with resize, pushBack, pushBackUnique, set, and append and going over to assist with resize count. Last content update: 5/27/2018 added GUI tutorial for how to make a weapon selector using cfgWeapon Last content update: 5/24/2018 added sector control tutorial Last content update: 5/21/2018 This is my arma 3 scripting tutorial series which is aimed to help both people getting into making their own scripts with fairly detailed simple tutorials as well as for the intermediate person looking to create their own features for their missions. The plans for this series is to almost fully cover everything behind the arma 3 missions that people play on a daily basis and have enough content provided in the videos where people can go off and make their own vision for their mission with the knowledge gained. Most of these videos are made on the fly at 1AM-4AM without any pretesting which should give someone the idea of what goes into finding syntax errors and narrowing down a bug that's causing your feature to not function properly. It is also an excuse for you to cut me some slack if you see mistakes :) . A lot of these tutorials are made with multiplayer in mind since I think most people want to play their missions online with their friends(which is why publicVariable has been utilized so much so new people can get a good grasp on the power those commands have). New videos are added to the playlist almost every day so if your stuck with something, maybe it has been covered in a video. If you have any requests on what you would like to see made then please suggest it here. topics covered so far Scripting tutorial playlist Database tutorials with INIDBI2 playlist GUI/Dialog tutorials playlist
  2. gokitty199's door Code Lock Script by gokitty199/IM SORRY BUFFALO(both me) not sure why the images are so small Description: Allows you to set a code lock to any door that you placed a tablet next to for your mission. Features: Set Door code Change Door code Unlock Door Lock Door Version: 1.0 Installation: Download: updated 5/28/2018 https://www.dropbox.com/s/8fzzjtyz24iker9/kitty_lockFolder.rar?dl=0 Steam Page: https://steamcommunity.com/sharedfiles/filedetails/?id=1396624743 to do list:
  3. gokitty1199

    Ryzen 7 5800X, 6800 XT, and low FPS.

    a little more input to this. i also have a 6800xt with a 5900x and ever since i replaced my old gtx 970 with the new 6800xt my YAAB benchmarks have dropped 10fps on average. with stock cpu clocks and ram speed at 3600mhz cl16-19-19-39 with the 6800xt i was getting 70-73fps (i am using CMA). the same setting with the gtx 970 was getting 80-84fps average. with the gtx 970 and cpu clocked to 4.6ghz all core this bumped up to 88-91fps average. the same setting with the 6800xt was still getting 70-73fps. with the 6800xt and cpu clocked to 4.5ghz (made some adjustments since last test) and ram overclocked to 3600mhz cl14-14-14-28 there was still 0 gain. overclocking my cpu and ram with the 6800xt in it yielded 0 improvement in arma where as it made a MASSIVE improvement with the gtx 970. it seems theres something going on with the rx 6000's and arma and i have yet to figure out what since their release is causing this issue because i should be pushing over 90fps average in that benchmark now with the cpu and ram overclock i have setup now but im still stuck at 70-73. so far there is only about a 2fps difference (margin of error) between 1080p and 2160p in that benchmark with this setup with standard settings
  4. Ordered 3200mhz cl14-14-14-34 ram to OC and challenge his score ;) (5900x OCed with 91.2fps with 3600mhz cl16-16-16-39 current)
  5. im willing to bet $2 my method works and was implemented wrong lol
  6. assuming i understood you correctly, call this on the first person who enters the triggers client and it will broadcast the system chat to everyone. not with systemChat no, you would need another form of displaying the message for that(afaik) BUF_DisplayText = { _profileName = profileName; _str = format["Time: %1 ProfileName: %2", time, _profileName]; _str remoteExec ["systemChat", 0, false]; };
  7. you can put whatever you want in it. so each time a player enters the trigger you want to display text to everyone showing who entered the trigger? or do you want it to only display who entered the trigger first to everyone or what? that part is still unclear to me
  8. you can simply call a function from the trigger to run on the clients. how do you want it called exactly and for who do you want it to be shown to? heres an example of what i mean BUF_DisplayText = { _profileName = profileName; systemChat format["Time: %1 ProfileName: %2", time, _profileName]; };
  9. the variables are not actually defined due to spawn{}. heres an example of what i mean this will throw an undefined variable error for _unit(inside of spawn{}). the first params ["_passedInUnit"] is referring to [this] that you passed into the sectorTacticInfantry.sqf script, the unit itself which you need to add to the top outside of spawn. params ["_passedInUnit"]; [] spawn { params ["_unit"]; hint str _unit; }; now heres a working example where it knows what _unit is. im passing in [this] just like before into the script(how you called it in your post, no different), im assigning it outside of spawn{}, then i am passing it INTO spawn{} so the script inside of spawn{//script here} knows what it is params ["_passedInUnit"]; [_passedInUnit] spawn { params ["_unit"]; hint str _unit; }; make sense? spawn is not really a part of your .sqf script that you execVM, its more so telling the game to compile/add a new script to the scheduler which is why you have to pass variables into it to use them. i would consider trying to rewrite alot of your script and try to make it more efficient because alot of open loops on alot of AI will cause some lag. try coming up with a method that fires once on a specific event or X seconds and checks all of them at once(i havent really read your script so sorry if that will not achieve what your trying to do). consider creating a function that takes in a unit as a parameter and call it instead
  10. that seems about right since it prints out hints pretty quickly with just a slight delay sometimes, thank you. scripting ftw
  11. do you by chance know how often triggers check their conditions? i saw someone posted it a few weeks ago but for the life of me i cannot find that post
  12. am i the only one who thinks its a bad idea to have triggers rapidly checking to see if a side is dead(not being a dick im honestly asking if it would be considered worse or better than the below method as i just dont use trigger conditions ever)? specifically having multiple triggers that are constantly checking the exact same thing for 2 sides when you can check everything only when a unit dies right away? i just read your post again and im assuming you want to check and see if any of those (opfor and independent) units are inside of the trigger area, you can simply do this and remove the constant trigger condition checks all together with this in initServer.sqf. this checks only when one of the units die and not continually, just a quick little blurp if that makes sense and checks only for the amount of units inside of the trigger area. if you want to change it to all the opfor/independent units across the entire map just remove inAreaArray enemyCountTrigger. enemyCountTrigger being the name of the trigger for this test addMissionEventHandler ["EntityKilled", { params ["_unit", "_killer", "_instigator", "_useEffects"]; _opAndIndiRemaining = count (allUnits select {side _x == east || side _x == independent} inAreaArray enemyCountTrigger); if (_opAndIndiRemaining <= 0) then { "EveryoneWon" call BIS_fnc_endMissionServer; }; }]; if you want to check opfor and independent separately just do this addMissionEventHandler ["EntityKilled", { params ["_unit", "_killer", "_instigator", "_useEffects"]; _IndiRemaining = count (allUnits select {side _x == independent} inAreaArray enemyCountTrigger); _opforRemaining = count (allUnits select {side _x == east} inAreaArray enemyCountTrigger); //do whatever you want with the number of remaining opfor/independent }];
  13. off a glance it looks correct. put it in initServer.sqf
  14. a suggestion, since triggers would be constantly checking the condition, it may be better to check if all opfor/independents are eliminated via a entityKilled event handler so its only going to check each time something dies instead of every like (is it 3ms for triggers?). addMissionEventHandler ["EntityKilled", { params ["_unit", "_killer", "_instigator", "_useEffects"]; _opAndIndiRemaining = count (allUnits select {side _x isEqualTo east || side _x isEqualTo independent}); if (_opAndIndiRemaining <= 0) then { "EveryoneWon" call BIS_fnc_endMissionServer; }; }];
  15. because it needs to know where to create the unit and it needs a position. you can get the position of the trigger if thats what you want? if not you can simply place down some markers and use getMarkerPos "markerName" where you see _pos. i would recommend you simply create a function that you can call for this for simplicity and so you dont have to deal with global variables where they are not needed
  16. group is not a variable. you need to create a group for the unit to be in, such as myGroup = createGroup east; and then use myGroup. same thing with pos, have you defined pos?
  17. in triggers (correct me if im wrong) you cannot use local variables(variables starting with _) so _group and _pos are going to give you errors
  18. use distance. when i was making my weapon/zombie spawner/despawner, i got an array of all the players and all of the weaponholders/zombie units and simply had a control variable that determined if they should be deleted by looping through all of the objects and zombies and players with a nested foreach. so outer foreach loop was for an array of objects and zombies, the inner foreach loop was for players. i would do a check, if the object/zombie was less than 300 meters from the player, dont delete and break out of that foreach to the outter foreach. i have to go real quick but heres a quick example of what i mean { _object = _x; _deleteObject = true; { if (_object distance _x < 300) then { _deleteObject = false; //break out of loop }; } forEach _players; if (_deleteObject) then { deleteVehicle _object; }; } forEach _objects;
  19. when i automated my competition shooting mission, i set the starting time and final time as variables on the timer itself. Set an action or trigger that fires a loop(if you need to see the time displayed continually), or set the start time and end time and subtract them to see the total time(more accurate than a loop timer unless you perform checks every 5 seconds or so to set the time to the proper time). what you could do is set the start time on the timer right as the script starts/trigger activates and start your loop. have a local variable be your current time. every 5 seconds, get the current time with "time" and subtract start time from it, then set your current time varaible to equal it. you can run multiple timers at once but keep in mind a hint will get overwritten with each new hint
  20. it will work in multiplayer, its in the initPlayerLocal, any player that joins the server will get these actions. simply setting damage for the engine isnt enough with the helicopters(afaik) to damage the engine, im not sure what else you need to do though. no i did not, you probably have something removing the actions.
  21. well thats fun -_- hopefully this is good then https://paste.ofcode.org/39ZRzDa3fMMVNmQ9k2rUrxV
  22. gokitty1199

    increase damage to player?

    question, whats the difference? ive always wondered if there was a difference between setDamage and setDammage
  23. weird typo or something as i simply rewrote the line and it decided to no longer have the error eventhough it looked the same. this does work in multiplayer and shows all options(just tested) if you put it in initPlayerLocal.sqf player addAction ["Heal Tail Rotor", { vehicle player setHitPointDamage ["hitVRotor", 0]; }, [], 1.5, true, false, "", "(vehicle player) isKindOf 'helicopter'"]; player addAction ["Heal Engine", { vehicle player setHitPointDamage ["Engine", 0]; }, [], 1.5, true, false, "", "(vehicle player) isKindOf 'helicopter'"]; player addAction ["Break Engine", { vehicle player setHitPointDamage ["hitEngine", 1]; vehicle player setHitPointDamage ["hitEngine2", 1]; vehicle player setHitPointDamage ["hitEngine3", 1]; }, [], 1.5, true, false, "", "(vehicle player) isKindOf 'helicopter'"]; player addAction ["Break Tail Rotor", { vehicle player setHitPointDamage ["hitVRotor", 1]; }, [], 1.5, true, false, "", "(vehicle player) isKindOf 'helicopter'"]; player removeAction DCON_Eject;//no clue what this is but you had it in your original post
  24. put this in initPlayerLocal.sqf. this should only display the action when the player is inside of a helicopter and should allow anybody to perform these actions(if their in a helicopter) player addAction ["Heal Tail Rotor", { vehicle player setHitPointDamage ["hitVRotor", 0]; }, [], 1.5, true, false, "", "(vehicle player) isKindOf 'helicopter'"]; player addAction ["Heal Engine", { vehicle player setHitPointDamage ["hitEngine", 0]; }, [], 1.5, true, false, "", "(vehicle player) isKindOf 'helicopter'"]; player addAction ["Break Engine", { vehicle player setHitPointDamage ["hitEngine", 1]; }, [], 1.5, true, false, "", "(vehicle player) isKindOf 'helicopter'"]; player addAction ["Break Tail Rotor", { vehicle player setHitPointDamage ["hitVRotor", 1]; }, [], 1.5, true, false, "", "(vehicle player) isKindOf 'helicopter'"]; player removeAction DCON_Eject;
  25. gokitty1199

    increase damage to player?

    a lazy way is with a hit event handler kind of like so. is it possible to alter the damage done by weapons without altering configs? player addEventHandler ["Hit", { params ["_unit", "_source", "_damage", "_instigator"]; if (alive _unit) then { _currentDamage = getDammage _unit; _newDamage = _currentDamage + 0.1; _unit setDamage _newDamage; }; }];
×