The current pre-release of the client ("pioneer" in the version) is only compatible to itself. So you can only play with other testers. Please be aware!
  • UI mod request, stop base ctrl+k

    9
    0 Votes
    9 Posts
    615 Views
    IndexLibrorumI
    Better to just not execute it then. Don't want to accidentally have your com explode.
  • Get Hidden Map Area

    2
    0 Votes
    2 Posts
    243 Views
    C
    @Rama Hey Rama, It is possible to get the Information of the Hidden Area outside the Map Uveso has Show me an Way how to do that. I primary use it for several Spawn Mechanics of callable Reinforcements and the Airstrikes which are included in my Commander Survival Kit. So maybe it could help you for what you want. But you will probably need to modify the Code for your purposes. GetPlayableArea: This Function checks for the existence of an playable rectangle (area) on the map. If one exists it returns the playable rectangle (area) If not it simple returns the size of the map GetNearestPlayablePoint This Function checks whether the given unit position is outside the playable rechtangle (area).. If the Unit is located outside the Map it returns a new generated Vector inside the Playable Area If Not it doesn't return anything. The included Check for ScenarioInfo.type == 'skirmish' is optional So If you want to use the Code for specific Game Modes only you can use the Check. For example: Campaign, Skirmish or anything else. If you have any additional Questions related to this. I still have Contact with Uveso on Discord to pass them on to him. GetPlayableArea = function() if ScenarioInfo.MapData.PlayableRect then return ScenarioInfo.MapData.PlayableRect end return {0, 0, ScenarioInfo.size[1], ScenarioInfo.size[2]} end, GetNearestPlayablePoint = function(self,position) local px, _, pz = unpack(position) if ScenarioInfo.type == 'skirmish' then local playableArea = self.GetPlayableArea() -- keep track whether the point is actually outside the map local isOutside = false if px < playableArea[1] then isOutside = true px = playableArea[1] + 1 elseif px > playableArea[3] then isOutside = true px = playableArea[3] - 1 end if pz < playableArea[2] then isOutside = true pz = playableArea[2] + 1 elseif pz > playableArea[4] then isOutside = true pz = playableArea[4] - 1 end -- if it really is outside the map then we allocate a new vector if isOutside then return { px, GetTerrainHeight(px, pz), pz } end end end, Best regards CDRMV
  • Latest Patch Cripples Airdrops

    9
    0 Votes
    9 Posts
    749 Views
    R
    Looks like the Transport Bug has been squashed! Thank you very much! I am sure @Thracymachus14 will be pleased the unstoppable Airdrops are back.
  • game freezes

    6
    0 Votes
    6 Posts
    580 Views
    O
    @Jip found it https://replay.faforever.com/23066988 https://replay.faforever.com/22995896 https://replay.faforever.com/22988145 mods: ai wave survival ai-uveso blackops ACUs, EXUnits, Unleashed exp hive paragon for all total mayhem ultra shields Zen T2 &T3 walls
  • Remove black soot

    6
    0 Votes
    6 Posts
    525 Views
    IndexLibrorumI
    @cdrmv Perhaps someone can make a mod for this, as making this change is likely to be beyond what most people can do.
  • Advanced Intel (Work in Progress)

    16
    2 Votes
    16 Posts
    1k Views
    R
    @maudlin27 true... good idea
  • Need a hand with a table

    2
    0 Votes
    2 Posts
    134 Views
    R
    Pulling my head from my arse usually helps. Bad script... for k, v in self.RadarConeEntitiesTable do self:EnableIntel({self.RadarConeEntitiesTable[k]}) end Should be... for k, v in self.RadarConeEntitiesTable do v:EnableIntel('Radar') end
  • Messing around with unit intel and whats possible

    11
    5 Votes
    11 Posts
    647 Views
    R
    @evildrew don't need that many projects as each projectile would have a piece of the intel pie. So for 360 coverage, the cheap and easy way would be to 8 projectiles, each taking a 45 degree swath. (8×45=360) Keep in mind that as the projectiles travel away from the parent unit, you'd see large gaps within the sonar coverage if the intel radius was not being increased as the projectile traveled outwards. I've been using the following formula to spread out the radar entities, to make the nice cone... local angle = math.ceil(counter / 3.14) But for the sonar, it would be more like this... local intRadius = math.ceil(distanceTraveled/ 3.14) The intRadius would then be used to change th projectiles sonar radius. The whole thing would update every couple of game ticks, by first checking the distance traveled from the point of origin, then doing the simple formula above, before updating the sonar range. Easy as 3.14 Resin
  • How to discover the player type

    1
    0 Votes
    1 Posts
    211 Views
    No one has replied
  • Can someone tell me what going wrong here?

    13
    0 Votes
    13 Posts
    642 Views
    R
    @sheikah After hours of tinkering... Success! function GetTruncatedNumber02(num, dp) local pwr = math.pow(10, dp) num = math.floor(num * pwr) WARN(' pwr: ', pwr,' num', num,' num / pwr: ', num / pwr) local result = num / pwr local fmtStr = string.format('%%0.%sf',dp) number = string.format(fmtStr, result) return number end Results Math Truncate: 18.3671875 Decimals given, 1, 2, 3 Decimal: 1 pwr: 10 num 183 num / pwr: 18.299999237061 Output one after string filter: 18.3 Decimal: 2 pwr: 100 num 1836 num / pwr: 18.360000610352 Output two after string filter: 18.36 Decimal: 3 pwr: 1000 num 18367 num / pwr: 18.367000579834 Output three after string filter: 18.367 Ended up combining a few methods to get this result. Not sure how it would behave with negative values but thats for tomorrow. (tired) Resin
  • Predator Camouflage

    11
    4 Votes
    11 Posts
    561 Views
    R
    Made some improvements to the Terrain Camo. It now has a phase out effect before the units takes on the mesh of the nearby trees.
  • Stoping a units movement without altering the command que

    9
    0 Votes
    9 Posts
    428 Views
    R
    Ok correction.... Performing self:GetNavigator():AbortMove() before the Warp, not afterwards is whats required. Not seen it fail yet but I may need to script in a function to remove it from under the ground, should it get stuck.
  • Problem destroying an entity I've created

    4
    0 Votes
    4 Posts
    204 Views
    R
    @jip Originally i was using... self.CloakEntity = self:ForkThread(CreateCloakedEntity) Uploaded V8 and it will include this unit... URA0206 Cybran Vampire
  • Economy problem

    3
    0 Votes
    3 Posts
    226 Views
    JipJ
    @resin_smoker said in Economy problem: Or rather I flaw in the game design that has persisted for years. Such that the game can't handle a unit with two economy draws. You're right - it was known from the start too. Extractors have the same problem, and it is why this code exists even in the Steam distribution.
  • Anti-Missile Systems and veterancy

    1
    0 Votes
    1 Posts
    120 Views
    No one has replied
  • Need a second set of eyes as I'm having a issue resolving a trashbag

    2
    1 Votes
    2 Posts
    161 Views
    R
    Figured it out... Looks like something wasn't liking my use of BeamExhaustEffectsBag to store the emitters used for the afterburner effects. Dropping the Bag for locals, solved the issue completely.
  • Quick AI brain question

    7
    0 Votes
    7 Posts
    330 Views
    maudlin27M
    @resin_smoker The ones I'm aware of for weapons are :GetCurrentTarget() - returns the unit, if there is a unit being targeted :GetCurrentTargetPos() - returns the target, i.e. for ground attack targets (I've not tested to see all the cases in which this triggers, e.g. if it will return a value for a unit target's position) :WeaponHasTarget() - I've not used this one myself but I'd noted it down for reference when I was looking at how to get weapon target information with weapons being cycled through with something like: for iWeapon, oWeapon in oUnit.WeaponInstances do if oWeapon.GetCurrentTarget then local oCurTarget = oWeapon:GetCurrentTarget() if oCurTarget then ‘Have a target for the weapon end end end You can also use the Navigator object to get the current target position of a unit, e.g.: oUnit:GetNavigator():GetCurrentTargetPos() - This isn’t just a move order target – e.g. if the unit is building something, it returns the target of that building I found it unreliable, and made a note when I tested that with attack-move orders although I’ve not tested it extensively to confirm, it appeared that giving an attack-move order to a unit that caused that unit to then stop and attack a target, would result in the navigator position being that unit’s position. There's also a :GetGoalPos() function (which I think is based off the navigator as well) You can also use oUnit:GetFocusUnit() (which works e.g. in the case of a building a unit, I've not checked if it also works in the case of an attack order) Another one is oUnit:GetGuardedUnit() I've not tested this one but presume it works with the guard order. My rough notes on these and other commands are in section 5 of the AI development guide (linked to from the FAF wiki https://wiki.faforever.com/en/Development/AI/AI-Modding) although I don't think they'll add much more than what's here, other than you can look at e.g. unit.lua in the FAF Git as various comments have been added documenting functions available for units (and similarly with other files) which might provide further alternatives. You could also look into oUnit:GetCommandQueue() and analysing this - there might be documentation on this in the FAF repo as from memory some of the devs were able to figure out how to interpret the results of this (but it's not something I needed to look into beyond checking if a unit's command queue was empty as for my AI I track the orders given to each AI unit anyway which I rely on)
  • RangeCategory

    3
    1 Votes
    3 Posts
    206 Views
    R
    @jip Sweet, thank you!
  • Error running OnDamage script in Entity

    14
    0 Votes
    14 Posts
    759 Views
    R
    @rama but that's an assumption unless the log supports it.
  • Blast from the past, Cybran Vulcanizer!

    10
    3 Votes
    10 Posts
    584 Views
    R
    @noble_ice 4DFAF or just look up the mod by author name Resin_Smoker or resin. Choose the mod date thats most recent, 24 June 2024.