Search the Community
Showing results for tags 'sarogahtyp'.
Found 17 results
-
[Release] SSSB - Sarogahtyps Simple Suicide Bomber V-1.0
sarogahtyp posted a topic in ARMA 3 - MISSION EDITING & SCRIPTING
Hey guys! This is a simple script to turn a unit into a suicide bomber which waits for a nearby player and then follows and explodes. Have fun with it. In those spoiler below u can see how to use this script with COS - Civilian Occupation System /* SSSB - Sarogahtyps Simple Suicide Bomber Description: Function can be called wherever u want even in init line. It waits for player who is in range and follows him until reached and then BOOOOM! The bomber is walking if player can see the bomber. If there is no line of sight to player then the bomber will run. Works even if the bomber is driving a vehicle. If player is out of range before bomber can reach him then the bomber will just wait for the next player in range. You can pass a chance to get a bomber to the function. This is useful for implementing the script into COS - Civilian Occupation System. You can apply the script to all civilians and if u pass e.g. 1 % as chance then only every 100th civ will become a bomber and wait for near players. Enjoy the boom. :-) Cheers Saro. Paramameters: object - the object of your unit which should become a bomber number (optional) - range to seek for players (default is 300 m) number (optional) - chance to turn the unit into a bomber. (default is 100 %) Return values: number - handle of spawned script if someone likes to check if bombers script has ended (scriptDone) will return -1 if script ends without spawning code (in case no civ was turned into bomber) */ params [["_civ", objNull,[objNull]], ["_act_range", 300, [0]], ["_chance", 100, [0]]]; if ((random 100 > _chance) || !(alive _civ)) exitWith {-1}; _handle = [_civ, _act_range] spawn { params ["_bomber", "_act_range"]; private _melee_dist = 15; private _boom_dist = 5; private _dist_target = _act_range; private _lost_range = round (_act_range * 1.2); private _act_range_sqr = _act_range ^ 2; private _melee_dist_sqr = _melee_dist ^ 2; private _boom_dist_sqr = _boom_dist ^ 2; private _dist_target_sqr = _act_range ^ 2; private _lost_range_sqr = _lost_range ^ 2; private _grp_bomber = group _bomber; private _is_vec = if (isNull objectParent _bomber) then {false} else {true}; private _target_players = []; private _wp =[]; while {(alive _bomber) && (_dist_target_sqr > _boom_dist_sqr)} do { // wait until players are in range waitUntil { sleep (2 + random 1); _target_players = (allPlayers - entities "HeadlessClient_F") select {(alive _x) && ((_x distanceSqr _bomber) < _act_range_sqr)}; ((count _target_players > 0) || !(alive _bomber)) }; // end everything if suicide bomber is already dead if !(alive _bomber) exitWith {}; // follow nearest player as long as bomber lives, target is in range and target is not close enough to boom while {alive _bomber && (_dist_target_sqr < _lost_range_sqr) && (_dist_target_sqr > _boom_dist_sqr)} do { _target_players = (allPlayers - entities "HeadlessClient_F") select {(alive _x) && ((_x distanceSqr _bomber) < _act_range_sqr)}; // get nearest player _target_players = _target_players apply {[(_x distanceSqr _bomber), _x]}; _target_players sort true; _target_plyr = _target_players select 0 select 1; // check distance and visibility _dist_target_sqr = if(count _target_players > 0) then {_target_players select 0 select 0} else {_lost_range_sqr}; _can_see = [_target_plyr, "VIEW", _bomber] checkVisibility [(eyePos _target_plyr), (eyePos _bomber)]; // add waypoint and set bombers behavior if (count _wp > 0) then {_grp_bomber setCurrentWaypoint _wp;} else {_wp = _grp_bomber addWaypoint [position _target_plyr, 0];}; _wp setWaypointPosition [position _target_plyr, 0]; _wp setWaypointBehaviour "CARELESS"; _wp setWaypointCombatMode "BLUE"; _wp setWaypointCompletionRadius 0; _grp_bomber setBehaviour "CARELESS"; _grp_bomber setCombatMode "BLUE"; //run if close enough or if target cant see bomber if ( (_can_see < 0.3) || ((_dist_target_sqr < _melee_dist_sqr) && !_is_vec) || ((_dist_target_sqr < (2 * _melee_dist_sqr)) && _is_vec) ) then { _wp setWaypointSpeed "FULL"; } else { _wp setWaypointSpeed "LIMITED"; }; sleep (0.5 + random 0.5); }; // end follow while _wp = []; }; // main while end if (_is_vec) then { _boom = createVehicle ["Bo_GBU12_LGB", getPos _bomber, [], 0, "CAN_COLLIDE"]; } else { _boom = createVehicle ["R_60mm_HE", getPos _bomber, [], 0, "CAN_COLLIDE"]; }; deleteVehicle _bomber; }; //spawn end _handle Init Line usage: COS - Integration: Changelog SSSB 1.0 -changed from distance to distanceSqr for performance reasons -fixed bug with targets distance (variable not defined) -changed return value from true to script handle to make scriptDone check available SSSB 0.9 (initial version) -just created it because of so much requests for something like this seen in forum version with sound integration: -
loot spawner [RELEASE] Sarogahtyps Simple Loot Spawner - SSLS V-1.2
sarogahtyp posted a topic in ARMA 3 - MISSION EDITING & SCRIPTING
Sarogahtyps Simple Loot Spawner - SSLS V-1.2 Spawns weapons, items and bags in buildings near to alive players maybe inside a trigger area or marker area. Deletes stuff if players are not close enough anymore. The script doesnt care about any trigger preferences except the trigger area. Soft delayed item spawning to prevent performance impact. Script reads your missions config files and should spawn loot of your mods (e.g. CUP weapons, Etc.) as well DOWNLOAD V-1.2 DOWNLOAD V-1.1 Usage: initServer.sqf fnc_spawn_loot = compileFinal preprocessFileLineNumbers "SSLSv1-1.sqf"; _d = [] call fnc_spawn_loot; you are able to stop the loot spawning script at any time by SSLS_script_switch_off = true; If you set up high spawn chances (see top of script) and have a high player count on your server then I recommend to make trigger or marker areas for spawning to get the needed performance. But if you do not encounter performance issues then spawning loot everywhere near players should be okay. Tweakable features (can be found on top of the script): //***** EDIT BELOW TO ADJUST MAIN BEHAVIOR // (L) means lower values are better for performance - (H) means the opposite SSLS_script_switch_off = false; //if you want to stop spawning loot then set this to true at any time in your mission _trigger_array = []; // contains the names of triggers/markers in which area loot should spawn. _spawn_chance = 100; // (L) The chance to spawn loot inside of a specific house. _launcher_chance = 30; // chance to spawn a launcher as weapon instead of rifle, pistol or machine gun _item_chance = 70; // chance to spawn an item instead of a weapon _bag_chance = 50; // chance to spawn a backpack instead of an item _max_magazines = 7; // the maximum number of magazines spawned for a gun _max_magazines_launcher = 3; // maximum number of ammo to spawn for rocket launchers _max_magazines_gl = 5; // maximum number of ammo to spawn for grenade launchers _house_distance = 25; // (L) houses with that distance to players will spawn loot _player_exclude_distance = 15; //if 2 players or more are closer together than this then only 1 player is considered _exclude_loot = []; //classnames of items which should never spawn (blacklist) _exclusive_loot = []; //add classnames here and nothing else will be spawned (whitelist) _use_bohemia_classes = true; // for spawning bohemia created stuff set this to true _use_mod_classes = true; //// for spawning stuff from loaded mods set this to true _debug = false; //information about number of places where items were spawned or deleted // if you have performance issues then consider introducing spawning areas (_trigger_array) before changing following values! _spawn_interval = 1.5; // (H) desired runtime for the main loop. time which is not needed will be used for soft spawning or a break. //***** EDIT ABOVE TO ADJUST MAIN BEHAVIOR details: Changelog 1.1 (download) -fixed a major bug which showed an error message during spawning -added feature to enable/disable Mod/Bohemia classes spawning -huge performance optimizations (shorter arrays, better smooth spawning and other stuff) Changelog 1.0 (download) -added script -
shortest path [RELEASE] Sarogahtyps Simple Shortest Paths - SSSP V-2.0
sarogahtyp posted a topic in ARMA 3 - MISSION EDITING & SCRIPTING
Sarogahtyps Simple Shortest Paths - SSSP V-1.0 the simplest way to find your path 😉 Actually there is the Dijkstra algorithm and the A* algorithm available. Both are able to get a shortest path through a "2D"-map and A* is always faster than Dijkstra on this. How much faster A* is depends on the size of the given situation. As more nodes and connections the given situation has as more A*'si advantage comes in play. Dijkstra's advantage is that it should find the true shortest path always while A* just finds one short Path. Also Dijkstra is much better able to solve the shortest path problem in a house with multiple floors (3D-problem). A* can solve this as well but it's often slower there and finds much longer shortest paths in that situation. A* will solve this through a multiple floor handler which is currently not implemented for it. sqf implementation of Dijkstra algorithm: Usage: First you should read the script header. The script supports 2 different formats of node/connection lists. the first syntax of parameter 3. and 4. is needed if you don't like to precalculate the distances/weights for all connections. In this case you will deliver the node positions as well and the script calculates the distances itself. The alternative syntax for parameter 3. and 4. has no positions but those distances instead. I recommend to implement the script to armas function library by registering it via description.ext file. But it will work with or without a manually done compiling as well. The following lines executes the script twice and writes the solution to .rpt-file via diag_log command. One time the precompiled script is spawned the second time it gets called (works only if environment is scheduled). Yes, you can use execVM as well. It has the same usage as the spawned function: The output for the situation shown in picture above is: 1:56:25 "Nodes after spawn" 1:56:25 [0,2,3] 1:56:25 " " 1:56:25 "Nodes after call" 1:56:25 [0,2,3] 1:56:25 " " Yeah, correct solution ... it works 😄 sqf implementation of A*-algorithm A* - Dijkstra runtime comparsion videos Planned features: - A* algorithm improvement to solve 3D problems (multiple floors) - Travelling Salesman algorithms Known issues: -Dijkstra is currently not getting always the true shortest path due to a bug in implementation Changelog v 2.0 (Download: Scripts Zip - Mission) - added implementation for A*-algorithm - minor performance optimizations on Dijkstra - added demo mission which is able to compare both algorithms v 1.1 (Download SQF) -performance optimizations - 65-70% less readability / 30-35% better performance v 1.0 (Download: SQF - Mission) - initial release- 32 replies
-
- 17
-
- travelling salesman
- dijkstra
-
(and 4 more)
Tagged with:
-
SSAAPS - Sarogahtyps Simple Arena Active Protection System Full Singleplayer and Multiplayer compatible. Arma 3 script which simulates the russian Arena system which is an Active Protection System (APS) for tanks. Basically the russian Arena system lifts an explosive charge upto some meters above the tank. There it explodes and directs a few hundred shrapnels in a cone to the ground. If the countermeasure is successfull then the incoming threat is hit by some shrapnels of the cone. The script spawns some bullets above the tank which create the shrapnel cone. Then the incoming threat gets (hopefully) directed to ground. GitHub - Branch GitHub - wiki GitHub - Issue Tracker GitHub - Download GitHub - Direct File Download Dropbox - Download (temporary disabled) Installation (short story) - copy "functions" folder in your missions root folder - integrate cfgFunctions from description.ext into your own description.ext - if you secured your missions remote execution then integrate CfgRemoteExec from description.ext into your own description.ext - if you don't have a description.ext then you can just copy the given one into your missions root folder - apply the script with this line to any vehicle: [tank_1] spawn saro_fnc_arena_start; to stop the script on that vehicle just do this on any part of your mission: tank_1 setVariable ["saro_arena_active", false, true]; to adjust the behavior of the sysem you should take a look into fn_arena_start.sqf I do not recommend to adjust more parameters than skill and reload time. Full installation documentation will follow within the next days/weeks/months 😉 The Download contains an Example mission as .pbo and as unpacked Folder. brand-new shiny trailer video: version 1.0 video: Please tell me all thoughts you have in this thread. Issues and wishes can also reported on GitHub - Issue Tracker Changelog v1.10 - added simulation of the charge container which lifts up, explodes and sends shrapnels to threat - added ability to get threats exploding mid-air instead of smashing to ground only - added parameter to adjust protection skill of the system v1.01 - hot fix - new vanilla example mission created. the old one was mod depended. v 1.0 - initial release
-
[RELEASE] Sarogahtyps Spawn Script Creator - SSSC [ALPHA 0.5]
sarogahtyp posted a topic in ARMA 3 - MISSION EDITING & SCRIPTING
*********************************************** Sarogahtyps Spawn Script Creator - SSSC Alpha 0.5 the easy way to cache ur units, vehicles and their waypoints by Sarogahtyp Gives mission designers the ability to delete and spawn their editor created units, vehicles and waypoints as often as they want and at the time they wanna. Its partially very similiar to Jebus - Just Editor Based Unit Spawning written by @dreadpirate but has complete different way of using and of course very different scripting methods. Actual version: Alpha 0.5 Key Features: units and vehicles spawn with the same behavior, damage, loadout (and so on) as they had before they were deleted waypoints are synced with other waypoints and triggers as they were before they were deleted every spawned object has the same group assignement as prior deletion see the full list of what is stored and reset after spawning in spoiler: How to apply this script to your mission: Download and unpack the .rar file. copy the content of the folder "SSSC" to ur mission root. If u already have a description.ext then integreate the one in SSSC to your own description.ext If u have a whitelist for remote execution of commands in your mission then you have to ensure that the following commands are whitelisted because they are remotely executed (HowTo): setVehicleVarName How to use this scripts functions in your mission: everey function returns true if it is ended. thats usefull for checking if its ended when using spawn instead of call. ----------------------------------------------------------------------------------------------------------------------------------------------------------------- 1. you have to mark one unit of each group which should be handled (saved, deleted, spawned) at the same time: saroSSC_fnc_mark [_unit, _index] call saroSSC_fnc_mark; _unit is those one unit of the group which should be handled. _index is a number chosen by you to differentiate sets of groups to handle. Example: if u have 2 groups ( A and B ) which should be deleted at start of mission and another group ( C ) which should be deleted after its done something then u mark like this: In the init field of one unit of group A and one unit of group B: [this, 0] call saroSSC_fnc_mark; In the init field of one unit of group C: [this, 1] call saroSSC_fnc_mark; now group A and B r marked with index 0 and group C with index 1 ----------------------------------------------------------------------------------------------------------------------------------------------------------------- saroSSC_fnc_save [_index] call saroSSC_fnc_save; Use this function at the time u want to save the actual behavior of ur prior marked groups. At this point all information is saved and your groups will be spawned later with the behavior of this point of time. [0] call saroSSC_fnc_save; [1] call saroSSC_fnc_save; ----------------------------------------------------------------------------------------------------------------------------------------------------------------- saroSSC_fnc_delete [_index] call saroSSC_fnc_delete; Use this function at the time u want to delete all objects and waypoints of ur prior marked and saved groups. [0] call saroSSC_fnc_delete; [1] call saroSSC_fnc_delete; ----------------------------------------------------------------------------------------------------------------------------------------------------------------- saroSSC_fnc_spawn [_index] call saroSSC_fnc_spawn; Use this function at the time u want to spawn all objects and waypoints of ur prior marked, saved, and deleted groups. Ensure that there is a small delay after using this function until all objects are spawned. This is neccessary because this scripts contents are spawned (scheduled environment) and run parrallel to other stuff. This is the only function which uses scheduled environment because it needs some more time/performance. [0] call saroSSC_fnc_spawn; [1] call saroSSC_fnc_spawn; ----------------------------------------------------------------------------------------------------------------------------------------------------------------- saroSSC_fnc_destruct [_index] call saroSSC_fnc_destruct; Use this function at the time u dont need the information stored with saroSSC_fnc_save before to free some memory. After using this function u could use saroSSC_fnc_save, saroSSC_fnc_delete and saroSSC_fnc_spawn again on the same marked sets of groups. [0] call saroSSC_fnc_destruct; [1] call saroSSC_fnc_destruct; ----------------------------------------------------------------------------------------------------------------------------------------------------------------- saroSSC_fnc_unmark [_index] call saroSSC_fnc_unmark; Use this function at the time u dont like to do anything with ur prior marked set of groups. After using it u have to mark again first before u can save, delete and spawn. [0] call saroSSC_fnc_unmark; [1] call saroSSC_fnc_unmark; ----------------------------------------------------------------------------------------------------------------------------------------------------------------- saroSSC_fnc_update_triggers call saroSSC_fnc_update_triggers; This function is needed only if mission designer creates triggers by script during mission. It should be run after such scripted trigger creation to update known triggers. Thats neccessary because SSSC gets all triggers at mission start only. no arguments and no return value. ----------------------------------------------------------------------------------------------------------------------------------------------------------------- saroSSC_fnc_set_options This function can be used to choose which options should be saved and restored. This is useful if u dont want to save everything which is featured. Less saving means more performance. See fn_set_options.sqf header for further informations. this function has to be called before saroSSC_fnc_save. it will destroy all allready saved information because of array structure changes. ----------------------------------------------------------------------------------------------------------------------------------------------------------------- Planned features: implement option to pass mission designers custom code for execution after spawning (like EHs) store and reset units trait - DONE store and reset units hitparts - DONE store and reset vehicles hitparts - DONE store an reset vehicles loadout - DONE add killed EH for group leaders to ensure group handling works after leader died - DONE add function to update known triggers (if someone creates triggers during mission) - DONE add options array to switch storing of specific info on/off - DONE relase BETA version add function to copy the whole spawn script to clipboard. with this feature mission designers are able to create their own spawn script without saving all information to memory during mission. release FINAL version armaholic release page Script Download (Dropbox) Example Mission (Dropbox) Known issues: 1. A set of group with e.g. index 0 cant interact with waypoints or triggers of a set of groups marked with 1. If u need to interact groups with the same waypoints and trigger then you have to ensure that they are marked with the same index. 2. Found a bug if a group waits at a join (or join and lead) waypoint for the other group and then using save, delete and spawn methods at this situation. Both groups r double spawned if that bug encounters and after that they behave weird. I think I know why that happens and will fix it soon. Changelog: V 0.5 Alpha - 07.06.2017 fixed a bug with editor given variable names (thx for report @gavc) added saving of stuff in backpacks, vests and uniforms inside of vehicle inventories. added saroSSC_fnc_set_options - now u r able to set saving options for units and vehicles. see fn_set_options.sqf header for further informations. this function has to be called before saroSSC_fnc_save. it will destroy all allready saved information because of array structure changes. added support for setFace and face added support for setNameSound and nameSound added support for setPitch and pitch added support for setAmmo and ammo added support for setBleedingRemaining and getBleedingRemaining added support for getOxygenRemaining added support for unitRecoilCoefficient restructured some array for faster handling V 0.4 Alpha - 13.06.2016 added new function saroSSC_fnc_update_triggers to update known triggers added vehicle loadout support substituted some forEach with count to speed up things a bit did some clean up work on scripts added killed eventhandler to leaders to get script also working if a leader dies added support for partial hitpoints of units and vehicles. V 0.31 Alpha - 09.06.2016 fixed a bug with muliple deletions and spawns, it was not working - now it is added handling of units trait (medic, engineer, explosiveSpecialist, UAVHacker, camouflageCoef, audibleCoef, loadCoef) V 0.3 Alpha - 08.06.2016 Initial Release Enjoy! *********************************************** Development Section in this section u can get information about the progress since the latest release and you can get a downloadable dev version with an own changelog and an own dev version number, too. I added that section because I want to give mission designers the ability to add all new features as soon as possible without bothering foxhound everytime I added 2 or 3 commands to the scripts. next steps: global: fix bug desribed in known issues (double spawning maybe caused by group unification and seperation) add function to pass custom code which will be executed after spawning. that could be EHs or disable AI commands or whatever u like. add support for allVariables, getVariable and setVariable units: add support for getObjectTexture and setObjectTexture vehicles: add support for setCollisionLight and isCollisionLightOn add support for getFuelCargo, getAmmoCargo, getRepairCargo add support for isLightOn and setPilotLight add support for locked and lock add support for lockCargo and lockedCargo add support for lockDriver and lockedDriver add support for lockTurret and lockedTurret add support for canUnloadInCombat and setUnloadInCombat add support for getObjectTexture and setObjectTexture groups: add support for setGroupIdGlobal instead of setGroupId release: release Beta version actual dev version: none Changelog since latest relase: none download link: none- 47 replies
-
- 7
-
- spawn script creator
- sssc
-
(and 8 more)
Tagged with:
-
What I want to know is if there is a simple command to check if point A has a line of sight to point B ?
- 20 replies
-
- LOS
- line of sight
-
(and 4 more)
Tagged with:
-
[CLOSED] Sarogahtyps Spawn Script Creator (SSSC)
sarogahtyp posted a topic in ARMA 3 - MISSION EDITING & SCRIPTING
Hello guys, I m writing a script similar to Murklors Editor based AI spawn script by trigger for Arma 2. My script should be able to handle any kind of vehicle and unit and its waypoints. Mission designers could use it to place their stuff in the editor and let be deleted what they want at any time and let it spawn again at the time in mission they want to. If the script is finished it should feature some modes. Modes: 1. Trigger mode: Stuff is deleted at mission start and is spawned by trigger. This should be the easy way for guys with less scripting knowledge. They just put a command at the init line of one unit of the group they want to be handled and it should be spawned if the specified trigger fires. 2. Manual mode: Mission designer takes full control and deletes the stuff he wants at a time he wants to and spawns it at another time with the use of my scripts. 3. Script creation mode: Mission designer first specifies the stuff to handle. Starts the mission in editor and my script is creating a spawn script and copies it to clipboard. Now mission designer can paste it to a file and use that for spawning. Please tell me if u have ideas for other modes the script should feature. Upto now I started with storing all information of a unit before deleting it with this script: What I want to know about this script is if u have ideas for mor information which could be stored in the array. I want the script as resilient as possible against all modifications which could be done before unit is deleted. So any modification should be stored and reset after spawning the unit. Actually I ve no loadout storing implemented. That will be done later. So tell me your ideas about all other informations I ve not covered yet annd could be stored for a unit. EDIT: updated script with new element of info array. TODO list - updated regularly @foxhound I appreciate your work very much but this link is not a public release. Its just a PRE-ALPHA drop for the readers of this topic only: Sarogahtyps Spawn Script Creator 0.2 - PRE-ALPHA Description:- 20 replies
-
- 3
-
- Spawn Script Creator
- WIP
-
(and 4 more)
Tagged with:
-
[BUG?] syncing and "on act" not working with cycle waypoints
sarogahtyp posted a topic in ARMA 3 - MISSION EDITING & SCRIPTING
i ve 2 groups with 3 waypoints for each of them placed at 2D editor. there r 2 move waypoints and the last is a cycle waypoint to let em walk along the waypoints continuously. I ve synced every pair of waypoints each other. wp 1 of group 1 is synced with wp 1 of group 2 wp 2 of group 1 is synced with wp 2 of group 2 wp 3 of group 1 is synced with wp 3 of group 2 my thougts were that the group which is faster waits for the slower group on each waypoint. that works for the first and second waypoint but at the third (cycle) waypoint the faster group isnt waiting but running to wp 1 and waiting there until the slower group is at wp 1. I just need a confirmation for that behaviour to know if thats normal that syncing of cycle waypoints seems to be senseless... thx alot. EDIT after some more testing I noticed that cycle waypoints dont execute the "On Activation" field. I entered a systemChat in it which works if its a move waypoint but not if its a cycle waypoint. Is that intended or a bug?-
- Saro
- Sarogahtyp
-
(and 6 more)
Tagged with:
-
[SOLVED] get bullet speed of weapon/magazine
sarogahtyp posted a topic in ARMA 3 - MISSION EDITING & SCRIPTING
I wonder if it is possible to get the initial speed of a bullet before shooting it. I think about writing an aiming help for moving targets where a crosshair is drawn at the point that u have to shoot at to get a hit.- 17 replies
-
I d like to learn more about that command cause i ve to use it in near future i think. In another thread we stuck at the point where we d like to send one variable together with the command to the clients and tried to let the other variable get the Client itsself. this command should be executed on all clients: player reveal _desired_object; _desired_object should be sent from Server to all clients but player should be executed at the clients itsself to get the local player entity. EDIT: Could this be the solution?: _desired_object remoteExec ["player reveal", -2];
- 11 replies
-
- remoteExec
- call
-
(and 3 more)
Tagged with:
-
[SOLVED] Translating Direction Vector From World Space to Model Space
sarogahtyp posted a topic in ARMA 3 - MISSION EDITING & SCRIPTING
I can get a players weapon direction vector with dir = player weaponDirection (currentWeapon player); That represents the normal vector for the direction of the weapon in world space as far as I know. The question is, how can I translate it to the modelspace of the player? EDIT: What do I need that for? I ve a point at players weapon in players model space, in this case the IR Laser mount point. I want to change the point accordingly to the change of the weapon direction in model space.- 9 replies
-
- Direction Vector
- Translate
- (and 6 more)
-
I d like to implement a spawning laser target in this thread. The user can activate the IR Laser with his bound key (standard is L). I want that the user can activate the laser with L (or his bound key) and then I want to override that key to spawn a laser target when he presses L again. Another time pressing L should delete the laser target and bind L back to laser activation/deactivation so if he presses L next time the laser turns off. I dont need help with that laser target. I need help with getting users key binding for laser activation and override it. Upto now I tried the displayEventHandler ["Keydown", {code}] thing but its not overriding the key nor giving me the key binding of the user. EDIT off topic: how can I edit the topic and the tags in this forum. I heavily tried to find a way but i never found.
-
- Override
- Key Binding
-
(and 2 more)
Tagged with:
-
[SOLVED] Get objects from vehicles radar
sarogahtyp posted a topic in ARMA 3 - MISSION EDITING & SCRIPTING
Hey guys, The Question is if it is possible to get a list of objects shown in vehicles radar? The reason is that I am working on some little FSM scripts to enhance A.I. shooting from vehicles. Until now I have a zu-39 tigris with this "Tigris Flak Conversion Script". The vanilla ai begins to shoot only if the directly attacking plane (a10) has passed the tigris. My FSM script enhanced that behavior and now tigris begins to shoot if A-10 is about 1.000 m away. Maybe I can optimize it some more. Why I need that radar objects? I want the tigris to target and shoot the A-10 only if it appears on the radar of tigris. -
[SOLVED] Get all seats and their type from a vehicle
sarogahtyp posted a topic in ARMA 3 - MISSION EDITING & SCRIPTING
Hey guys, i hope for ur help. I wanna spawn AI gunners for a vehicle the player has chosen to drive. createVehicleCrew is no option cause i wont spawn inside of the vec. I wanna spawn outside and let em get in. For that I wanna know if the vehicle chosen by player has a gunner and/or a commander seat and how much turrets it has. Also I need to get the correct turretPath to that turrets. Additional it would be nice to spawn some AI which should take their seat at these cargo seats from where they are able to shoot with their own guns. So I need the cargo index of that seats Any help is apreciated. Thanks a lot.- 10 replies
-
- get vehicle seats
- get turrets of vehicle
-
(and 2 more)
Tagged with:
-
[SOLVED] broadcast of variable in variable space of object
sarogahtyp posted a topic in ARMA 3 - MISSION EDITING & SCRIPTING
I ve some vehicles with variables in their variable space and I want to have them broadcasted betwenn headless client (HC) and server. _squad setVariable["respawtime", 300]; I know that i could set the parameter public to true to broadcast it to all. _squad setVariable["respawnable", 300, true]; But thats more network traffic than I need. Is there a way to use publicVariableServer and publicVariableClient to broadcast that variable? Or is the variable also transferred if I use setOwner to transfer the ownership between server and HC? Thanks a lot for any advice.- 5 replies
-
- broadcast
- setVariable
- (and 6 more)
-
headless client detection after reconnect
sarogahtyp posted a topic in ARMA 3 - MISSION EDITING & SCRIPTING
Hello guys, in arma 3 there is an already opened issue. The issue is that a linux headless client (HC) which is connected to a linux game server gets kicked for signature timeout after some time. The command line parameter -cpucount=1 passed at HC start can extend the time until it gets kicked from some minutes (without cpucount=1) to some hours. In my case the HC gets kicked after nearly exact 3 1/2 hours. I wrote a script at my linux machine which reconnects the HC after it was kicked within a minute. Now the problem. I m editing a domination map created by Xeno to implement some minor features. I want that features executed at HC if it is connected. I know that I can detect HC with if (!isNil "HC_D_UNIT") then { _hc_present = true; }; Where HC_D_UNIT is the name of the HCs game logic. What Xeno did in his d_init.sqf is something like that: if (isNil "HC_D_UNIT") then { HC_D_UNIT = _this; }; _this represents the server which means if I try to detect the HC as mentioned above then _hc_present is always true because it points to the server now. I think Xeno did that to ensure that all work which is thought to be done by HC should be done by server if HC is not connected until a timout. I wont change Xenos code cause i dont know what depends on it. What I need now is another method to detect if the HC is present or not. Thank you for any advise.- 1 reply
-
- headless client
- detection
-
(and 6 more)
Tagged with:
-
self created addon is not loaded by dedicated linux server
sarogahtyp posted a topic in ARMA 2 & OA - ADDONS & MODS: DISCUSSION
Hey guys, i think i m doin a little mistake in my addon creation. The addon i try to create is called inidb. I know that there is a downloadable release but its library (inidb.dll) is for windows only. I downloaded the library linux sources from git hub (https://github.com/newtondev/inidb-linux) and compiled them to the needed inidb.so file for my virtual linux server. The unpacked addon is part of that download and consists of a config.cpp file and a init.sqf. config.cpp: class CfgPatches { class iniDBI { units[] = {}; weapons[] = {}; requiredVersion = 0.1; requiredAddons[] = {}; init = "call compile preprocessFileLineNumbers '\inidb\init.sqf'"; }; }; Those 2 files are the content of the folder inidb which i packed with cpbo to inidb.pbo My folder structure at server is as described at git hub: @inidb (folder) db (folder) inidb.so (file) addons (folder) inidb.pbo (file) Im starting my server with the option: -mod=@inidb Generaly my dedicated linux server is able to handle mods. I have other mods (not self created) which are running fine. In my mission which should use the addon i ve the following init.sqf file: init.sqf if(isServer) then { call compile preProcessFile "\inidb\init.sqf"; }; The log file at server produces the following line: Warning Message: Script inidb\init.sqf not found I think there are 2 things which could cause this message and i need your help to get a clue whats goin wrong. It could be that i did a mistake with the path to the addons init.sqf file. The other thing could be that the addon is not loaded by the server for some reason, but i dont know. I googled that problem fo a week and i tried other pathes as described above and i tried to autostart the script by setting up a module in config.cpp and in my mission. But nothing helped, i cant get it working. Edit: Ok, 24 hours r gone since i posted this, 50 views and no little answer. I think i m doin something wrong with that thread. For that reason i try to simplify it to some questions: How defines an addon the path to its scripts? Is it defined by the folder which was packed with cpbo? What does that $PREFIX$ file do i read about? Do i need those file in my case and which content would be correct? The script file in the addons pbo-file should be called from a script in my mission with call compile preProcessFile "\inidb\init.sqf"; what is to do that this works? Are there any reasons which could cause a server to not load an addon? Guys ur help would be very appreciated cause i m stuck with the creation of my mission and cant do a little step forward until the problem with that addon is solved. ********************************************************** code container for WIP: if (!isServer) exitWith {true}; /* Author: Sarogahtyp Title: SSSS - Sarogahtyps Simple Server Statistics Description: Arguments: number - refresh time in seconds Return value: boolean - true if script has been finished */ _admin_check = []; _admin_obj = objNull; while {true} do { // wait for a logged in admin waitUntil { sleep (20 + random 20); _admin_check = (allPlayers - entities "HeadlessClient_F") select {(admin owner _x) != 0}; (count _admin_check > 0) }; _admin_obj = admin_check select 0; //throw infos as long as admin is logged in while {(admin owner _admin_obj) != 0} do { // collect server infos _s_fps = str diag_fps; // frames per second _s_just_players = allPlayers - entities "HeadlessClient_F"; // all player objects _s_plyr_num = count _just_players; // number of players _s_just_HCs = entities "HeadlessClient_F"; // all HC objects _s_HC_num = count _just_HCs; // number of headless clients _s_a_grp_num = {local (leader _x) and alive (leader _x)} count allGroups; // all groups where alive units in _s_e_grp_num = { (count units _x) == 0 } count allGroups; // empty groups _s_d_grp_num = { ({!alive _x}count units _x) > 0 }count allGroups; //groups where only deads in _s_unit_num = {local _x} count allUnits; // living units _s_vec_num = {local _x} count (vehicles - entities "WeaponHolderSimulated"); // living vecs _s_wh_num = {local _x} count (entities "WeaponHolderSimulated") //weapons on ground _s_al_ent_num = {local _x} count entities [[], [], true, true]; // alive entities _s_de_ent_num = {local _x} count entities [[], ["Logic"], true]; //dead entities except logic //collect HC infos //request not available info from HCs remotely if (_s_HC_num >0) then { for "_i" from 0 to (_s_HC_num - 1) do { _str = format ["Saro_HC_report_%1", _i]; missionNamespace setVariable [_str, []]; [_str] remoteExecCall ["Saro_fnc_report_stats_to_server", (_s_just_HCs select _i)]; }; //wait until all HCs responded with desired info waitUntil { sleep (0.1 + random 0.1); _sum = 0; for "_i" from 0 to (_s_HC_num - 1) do { _str = format ["Saro_HC_report_%1", _i]; if (count (missionNamespace getVariable _str) > 0) then { _sum = _sum + 1; }; (_sum == _s_HC_num) }; }; }; sleep (15 + random 15); }; // info while end }; // endless while (end) /* Author: Sarogahtyp Title: SSSS - Sarogahtyps Simple Server Statistics Function Name: Saro_fnc_report_stats_to_server; Description: function used via remote execution by server to recieve some statistical infos Arguments: String - name of global variable which should returned to server by publicVariableServer Return value: true */ params ["_ret_string"]; _tmp_info_array = []; _tmp_info_array pushBack diag_fps; missionNamespace setVariable [_ret_string, _tmp_info_array]; publicVariableServer _ret_string;