Jump to content

ffredyk

Member
  • Content Count

    15
  • Joined

  • Last visited

  • Medals

Community Reputation

49 Excellent

1 Follower

About ffredyk

  • Rank
    Private First Class

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Hello fellow Arma players! Is there anyone still remembering the original "Survivor" simple mission in Girna that blew up when Arma was still in Alpha? Well, it has been more than 10 years and I thought that it's time to create a PROPER sequel :) Survivor is back! Prevail as a Survivor against numerous bullies! Use the environment, skills, equipment and fallen enemies' gear to annihilate those pesky bullies that just want you dead! 10 Year Anniversary 10 years ago, I've created and published a mission called "Survivor". It was a simple small mission set up entirely in the old 2D editor using triggers, waypoints and units. That mission became my first workshop success in Arma 3 community and is still played and praised today! To remind you of this mission and to pay proper respect to the community - I've created this sequel, packed with action, story line, comic pages and inovative gameplay features, that will keep you busy for the entirety of this rollercoaster! Features - 10 story missions , each being more difficult and complex as you progress - 4 secret missions , that you can unlock by inspecting certain items in the world (can be found during story missions) - 78+ comic (manga) pages explaining the story line and secrets - 24 music songs , picked from Epidemic Music! - 36+ secret images explaining my personal history - Epic gameplay features during certain missions! - Ultimate challenge that gets harder the more you accomplish - Fast restart after death (no waiting for the mission reload) - Death cam (enjoy your suffering in slowmo) DOWNLOAD Steam Workshop
  2. Hello all, since there is a lot of heat around the new RTS addon released and mentioned in official COMRAD.. I wanna join this new found wave of RTS fans and bump my old mission that never received much attention. Curway: Aegis - supposed to be a series of missions played RTS-style from top-down view. Technically it is heavily modified Zeus, custom tailored for SP missions playing as Zeus, controlling only one side. Entire UI is made with arma style in mind and I tried to integrate custom icons and UI into interface as fluid elements that are not visually much different from the vanilla Zeus. Operation Saboteur - is a first mission from the series "Aegis". Player has to complete a series of tasks visually presented in the world Features Men of War styled gameplay Control a set squad of units Receive reinforcements by advancing in the mission Rocket launching UI with rocket travel lines Grenade throwing UI with grenade trajectory lines AI adjustments and enhancements for better responsiveness and control Quick menu for changing stances, running speed and quick actions 3D visual task system, with partial completions and actions (like setting up a bomb) Cutscene system - moving your camera to points of interests smoothly, presenting new objectives with animations much more.. Download: Workshop: https://steamcommunity.com/sharedfiles/filedetails/?id=1420857501
  3. ffredyk

    City Upload

    City Upload You are member of a task force stopping terrorists from hacking military satellite network. Will you succeed? A small scenario involving you and 3 other AI agents trying to stop the hacking attack. You will need to fight hired goons and get to the uplink terminal to be able to stop the attack. Your teammates will try to help as much as they can, but you are heavily outnumbered. There is no time for full assault to overcome the entire town and you are the first squad able to react, do your best. Gameplay: https://www.youtube.com/watch?v=bekckC21k3Y Steam: https://steamcommunity.com/sharedfiles/filedetails/?id=2389249400
  4. I am actually trying to figure these out right now.. I am stuck at the diary records function, because it is completely undocumented and chaotic (code is branching into 2-3 separate logics and none of them works for me 😄 ) There is a function bin_fnc_switchMap and similar one that enables/disables which modes are available to switch between. I will document them together with other functions I have ready.. I will update this thread with all new discoveries or research that I have made so far. But I don't know when I will have time to write them down, I have been kinda overwhelmed with the work lately.
  5. So I added the compass function which is fairly simple (just toggles the compass) I didn't see any references to this shooting star effect in the functions.. Maybe it is dug deep somewhere, but I would rather assume it is created as a particle or via cutRsc somehow.. I will try to rip active scripts, entities and displays(controls) during the intro when this happens, it will take a few hours tho..
  6. Thanks, I had a lot of fun figuring these out actually😄 I want to look into these smaller function later today. Namely the simple notification function (little bar in the top middle screen space) but from the fast lookup I had on it earlier it seems it won't support custom text sadly 😕 and the danger zone functions (they are somehow interconnected with acctime management function - namely bin_fnc_initAcctime), there are some acctime enhancement functions too (timemultiplier boosting) I will take a look at the compass too. And I need to figure out how the omni-directional antenna notifying player about ongoing signals around him works..
  7. Hello, so I spent last 4 days reverse engineering and studying the new contact functions and scripting systems. I have figured out almost everything and I will update this thread as I figure out rest of what's left unexplored. Spectrum Device / EM / Radios This one was really tough to solve. The internal system is quite big and chaotic a little bit. The most important functions tend to be descripted, but the rest of the system are "unorganized" chunks of codes. [string: Antenna ID,object: Owner,int: Antenna Type] call BIN_fnc_setAntenna; This function is easy to use. You just think of some unique ID for the antenna, object that will hold the antenna and you define the type of antenna (2 -> transceiver = both receives and transmits signal) Antenna ID is also looked up in the config for predefined values. Check CfgContact >> Antennas Example: ["AlienTracker",bin_drone,2] call BIN_fnc_setAntenna; [string: Antenna ID,string: Signal classname] call BIN_fnc_addSignal; This function is easy to use too. It gives the antenna sounds (signals) we want to play on it. The signals are defined in the config CfgContact >> Signals Signals can be looped. Example: ["AlienTracker","EM_Drone_01_Tracking_01"] call BIN_fnc_addSignal; [string: Antenna ID, string: Name] call BIN_fnc_setAntennaName; Set's the visible name of the antena ie. when used on squad, instead of "Unknown squad" displays the second param Example: ["AlienTracker","Ligma ET"] call BIN_fnc_setAntennaName; [object: UGV class UAV] spawn BIN_fnc_initUGV; This sets up all the EM functionality for UGVs UGVs emit UAV Telemetry signals and listens for jamming and hacking Hold action is added to the UGV for it's destruction. All UGVs set by this functions are on the same frequency, think of that when planning placements Example in editor init: [this] spawn BIN_fnc_initUGV; [object: unit, string: Company, string: Squad] spawn BIN_fnc_initAISquad; This one is the party popper. This is the one used on unit groups. It is initialized on any unit in the group Company is string in format "C0?" where ? stands for a number from 1 to 9 (but it really just reads entries from config CfgContact >> Antennas It is C-zero-one not C-O-one Squad is a single lowercase letter from "a" to "h" and "q" which is the base (not used in this function) This function looks for units that have a radio backpack on them in the whole group, uses them as target unit if found Example in editor init: [this, "C01", "a"] spawn BIN_fnc_initAISquad; The EM system for AI Base is created automaticaly from script initAISquad, which checks if the base is already ready or not. There are missionNamespace scripted eventHandlers for signal listening and custom scripting but I didn't test these enough to tell you about them properly. Alien Drone The small alien drone can be easily placed in editor (best practice as side east) and has two types of behaviour - Aggresive and Passive. You can read about the setup on the wiki https://community.bistudio.com/wiki?title=Arma_3_Alien_Entity_Behavior Official variable naming of the drone is bin_drone There are some uncovered script functions however (please note, I didn't yet properly test all behaviour branches so information I provide may be misleading anyhow) [object: Drone,int: Max signals,int: Jamming time,array: ?next puzzle?,int: number of repetitions] call bin_fnc_puzzle_mole; This function creates what is called a puzzle - numerous signals for player to jam with their signal detector. Max signals defines how many concurent signals are visible on the spectrum at the same time Jamming time defines how long it takes to jam one signal successfuly Next puzzle is something I didn't mess up with yet, so I can't provide much information Number of repetitions define how many times a new signal emerges when one is jammed There is a scripted eventHandler for you to listen, that fires when the puzzle is completed [missionNamespace, "puzzleCompleted",{/*codehere*/}] call bis_fnc_addScriptedEventHandler; There are other event handler (self-explanatory): puzzleReset, puzzleStepCompleted, puzzleTerminated There is a lot of functions puzzle-related.. I am messing with them now, so I will fill this list when I create more robust information Example: [bin_drone,1,1,[],3] call bin_fnc_puzzle_mole; [object: Drone,int: Radius m,int: Speed m/s,int: Delay] call bin_fnc_setGravityPulse; Shield's effect is made using light entity nad sound effect (when hit, PP is also used) Shield eats away stamina and stops the player for a second when near the source. Shield shakes the player's camera and creates deep sounds when felt from far. Speed is the speed, the gravity shield reaches the Radius distance from the drone Radius define the distance from the drone the shield will reach This one creates pulsing shield around the Drone once every Delay seconds Example: [bin_drone,300,100,3] call bin_fnc_setGravityPulse; [object: AFO] call BIN_fnc_initMothershipLights; Powers up the big AFO (it's lights) CBRN There are some CBRN functions not explained in the wiki (specialized on the chemical warfare), but are tagged as incomplete or "not robust" so I will be experimenting with them and when something is proved to be working I will list it here Other There are few useful scripts for unit enhancement, you can find more of these on the wiki: https://community.bistudio.com/wiki/Arma_3_CBRN But there are some hidden ones: [object: Unit, bool: Attach/detach] spawn bin_fnc_attachChemlight; Attaches a blue glowstick on the shoulder of the unit the same way as it is seen in campaign. Best practice is to mark only soldiers with radios that can be messed up with signal detector. Example: [this, true] spawn bin_fnc_attachChemlight; [object: Ball, int: Time to decompose] spawn BIN_fnc_matterBallEffects; Effects used for the matter balls (yellow blobs the alien leaves behind) Adds lights, refraction particles and animates the ball to decompose itself Example: [this, 100] spawn bin_fnc_matterBallEffects [object: Vehicle] call BIN_fnc_empVehicle; Tunes the vehicle so it's more post-EMP Can be reverted by setting second parameter bool (destruction of the engine) Example: [this] call BIN_fnc_empVehicle; [object: Unit, vector: Force] call BIN_fnc_setRagdoll; Ragdolls the unit with the directional force Example: [player,[0,100,0]] call BIN_fnc_setRagdoll; [classname: Vision type] spawn BIN_fnc_showVision; The hallucination effect from the campaign when player completed the drone's puzzles Takes the data from config CfgContact >> VisionSequences [bool: Shown] call BIN_fnc_showHorizontalCompass; Shows or hides the horizontal compass at the top of the screen Example: [true] call BIN_fnc_showHorizontalCompass; So that's it, at least for now.. I will update this thread as I discover and study more scripts and functions the Contact DLC has to offer. Trust me, there is a lot of unused things (chemical detector for example) and I've created a lot of custom scripts to complement these features. Just take a look at this sneak peak: If there is anyone that wants to study these things with me, you just need the Functions and Config viewers. I tried to take a peak inside campaign init files, but there are mostly empty or contains unrelevant logic. The hard-way is sometimes the only way, at least for now 😄
  8. Hello, I was able to get Chemical Detector working, alien signals, gravity pulses and anomalies are all working but I am not able to figure out one thing left - that is the EM device to communicate with AI squads and base.. I tried to reverse engineer the functions to some degree, but the system is so complicated I just couldn't get it to work through multiple ways. I tried to rip initialization scripts from campaign missions (using debug console, loadFile "init.sqf" and other predefined scripts), but only init.sqf was shown to contain few scripting lines with basic player setup. Does anyone here know how the EM is initialized, assigned to AI and manipulated? Or are there any other known files other than init.sqf, initPlayerLocal.sqf and initServer.sqf that may contain any leads? Or for the best solution, can some of the devs tell me how are the functions used?
  9. I don't want the player to be able to control enemy units, and managing restrictions event based is not perfect (player is still able to manipulate AI waypoint etc.). So I just made them uneditable and rendered their icons the same way curator interface does. But when player wants to attack the enemy unit, he right-clicks it, assuming that it will work the same way as in vanilla zeus. Therefore I am trying to recreate it with DESTROY waypoints (my waypoints have exactly the same settings as the vanilla zeus ones) and AI still refuses to work as expected. So I am asking someone, who might know, how to set the DESTROY waypoints the best way, for them to work reliably. Simple said, just tell me how to create attacking waypoints for AIs that behave the same way as in zeus.
  10. That's it? Nothing can be done to make it work? Am I just supposed to release a bugged feature, without any possible solution left?
  11. Sorry, I had a snippet ready, but forgot to add it. //Event Hadler: When zeus places a waypoint (context: added when pressed RMB while hovering over an enemy unit - attack order) eh_waypointModifier = zeusModule addEventHandler ["CuratorWaypointPlaced", { params ["","_group","_waypointID"]; //Waypoint created by curator interface _wp = [_group,_waypointID]; //Waypoint array _group reveal cw_var_unitToAttack; //Revealing the enemy to ordered group (not helping) _wp setWaypointType "DESTROY"; //Sets the waypoint as "DESTROY" so AI would know it is going to attack something (Curator interface does the same) //AI usually moves towards the target, sometimes it does nothing. But it won't attack the enemy. //** Method 1 ** _wp setWaypointBehaviour "COMBAT"; //Makes the AI move towards the waypoint more reliably (Curator interface does the same) //AI moves towards the target tacticaly, it sometimes even engages against the enemy. //** Method 2 ** _wp setWaypointPosition [(position cw_var_unitToAttack),0]; //Sets the position of the waypoint so spatial DESTROY can find it's actual target more easily - does quite the opposite //AI usually stays on position //** Method 3 ** //Variable 'sys_unitToAttack' set by logic calling this EH _wp waypointAttachVehicle sys_unitToAttack; //Attaches the waypoint to the enemy unit - actually attaches the waypoint several meters away from unit, sometimes to different object (waypointAttachedVehicle still returns sys_unitToAttack) //AI usually moves towards the target, but won't attack //** Method 4 ** deleteWaypoint _wp; //Removes the waypoint created by curator interface _wp = _group addWaypoint [position sys_unitToAttack, 0]; //Creates a whole new waypoint on enemy's position _group setCurrentWaypoint _wp; //Sets the new waypoint as current so AI can't be confused which waypoint to use //AI just stands on place doing nothing. zeusModule removeEventHandler ["CuratorWaypointPlaced",eh_waypointModifier]; //Not needed anymore sys_unitToAttack = nil; //Not needed anymore }]; All units ordered by waypoints have YELLOW combat mode and NORMAL or FULL speed mode, they have all skills maxed out and their morale is disabled. Enemies are independent FIA units with normal skills, normal morale, only with stand pose set to CROUCH or STAND
  12. Hello, I am modifying curator interface, and I've run into a problem with AI following waypoints. The curator interface has only friendly units editable. Enemy units are rendered through my script separatedly so they can't be manipulated. To reinvent the functionality of "right-pressing" the enemy units with mouse to attack them, I am using CuratorWaypointPlaced event handler. I tried to modify waypoint passed from event handler, I tried to create new one and set it to waypointType "DESTROY" and delete the passed one. And I tried to set the one event handler gave me. AI just refuses to behave correctly as in vanilla zeus interface What am I trying to do: - Recreate the RMB behaviour in curator interface - Make AI move to and attack units at "DESTROY" waypoint What is actually happening: [when waypoint is attached to enemy] AI just stands on place nothing is happening, except the AI seems to guard more the direction to it's waypoint attached waypoints are offset to units they are attached to even several meters. (the position is different) sometimes attachWaypointVehicle attaches waypoint to nearby objects instead to enemy unit (but waypointAttachedVehicle still returns enemy unit) [when waypoint is spatial on ground] AI moves to position, sometimes attacking the enemy usually doing weird sh** on the way. when friendly units are too close to waypoint, unit may start killing nearby friendly units (nearby to waypoint) instead of enemy sometimes the waypoint survives for about 5 seconds before disappearing (maybe false completion?) when forced waypoint position by setWaypointPosition to position identical to enemy unit, sometimes the waypoint refuses and jumps to a nearby position What vanilla zeus does when creating a waypoint: Type: "DESTROY" Behaviour: "COMBAT" Position: under interface cursor it doesn't attach the waypoint to units, only sets position, type and behaviour. When I do the exact same, my AI's refuses to work properly (identical to vanilla zeus) //Event Hadler: When zeus places a waypoint (context: added when pressed RMB while hovering over an enemy unit - attack order) eh_waypointModifier = zeusModule addEventHandler ["CuratorWaypointPlaced", { params ["","_group","_waypointID"]; //Waypoint created by curator interface _wp = [_group,_waypointID]; //Waypoint array _group reveal cw_var_unitToAttack; //Revealing the enemy to ordered group (not helping) _wp setWaypointType "DESTROY"; //Sets the waypoint as "DESTROY" so AI would know it is going to attack something (Curator interface does the same) //AI usually moves towards the target, sometimes it does nothing. But it won't attack the enemy. //** Method 1 ** _wp setWaypointBehaviour "COMBAT"; //Makes the AI move towards the waypoint more reliably (Curator interface does the same) //AI moves towards the target tacticaly, it sometimes even engages against the enemy. //** Method 2 ** _wp setWaypointPosition [(position cw_var_unitToAttack),0]; //Sets the position of the waypoint so spatial DESTROY can find it's actual target more easily - does quite the opposite //AI usually stays on position //** Method 3 ** //Variable 'sys_unitToAttack' set by logic calling this EH _wp waypointAttachVehicle sys_unitToAttack; //Attaches the waypoint to the enemy unit - actually attaches the waypoint several meters away from unit, sometimes to different object (waypointAttachedVehicle still returns sys_unitToAttack) //AI usually moves towards the target, but won't attack //** Method 4 ** deleteWaypoint _wp; //Removes the waypoint created by curator interface _wp = _group addWaypoint [position sys_unitToAttack, 0]; //Creates a whole new waypoint on enemy's position _group setCurrentWaypoint _wp; //Sets the new waypoint as current so AI can't be confused which waypoint to use //AI just stands on place doing nothing. zeusModule removeEventHandler ["CuratorWaypointPlaced",eh_waypointModifier]; //Not needed anymore sys_unitToAttack = nil; //Not needed anymore }]; I've spend at least 7 hours figuring this nonsense out and trying several AI hacks. I want to have my scenario addon-free, just working with vanilla, so any mods are not usable to me. Only scripting hacks. This is not really a request for help. It is a request for someone from dev-team to give me some insight on how zeus waypoints works so I can successfuly and reliably replicate. Thx.
  13. I would say that substracting two arrays would be faster process than computing distance between two vectors multiple times. Try using https://community.bistudio.com/wiki/BIS_fnc_codePerformance Compare these two: [" _array250 = player nearRoads 250; _array200 = player nearRoads 200; _arrayFinal = _array250 - _array200; "] call BIS_fnc_codePerformance; [" _array250 = player nearRoads 250; _arrayFinal = []; { if(_x distance player > 200) then {_arrayFinal = _arrayFinal + [_x]} } forEach _array250; "] call BIS_fnc_codePerformance; EDIT: Surprise :confused: First code: Second code:
  14. I don't really have time for depackanging whole BIS game just to find how all the road classes are named. Can someone point me or show me some easy way on how to get them? I am making little racing court, but without navigation it's lacking main aspect of entertainment. I would like to experiment with displaying 3D icon symbol of road in the 50m front cone of player so he can see what is gonna f* him up behind the horizont. All I need is some easy way or guidance on how to get the classes of roads. I will figure the rest. Thanks for any help.
×