4DFAF Uploaded
-
@resin_smoker said in 4DFAF Uploaded:
So apart from feedback, what from DMS would folks like to see incorporated?
Maybe a list of what features are inside DMS would help feedback on what to incorporate ?
-
@krapougnak there is litteraly too much to write about, as Domino rescripted the entire game prior to FAF.
I'd recommend playing a vanilla SC-FA with DMS and 4DC. If you think what I've done was good, prepare to be shocked.
-
@blackrobe sad thing is that doing so, would break the UI ban on using SIM data. It's why UI mods are allowed in ranked matches, and why most sim-side mods are not. Being able to bridge that gap would enable rampant cheating and a huge amount of desyncs.
-
A UI mod can not interfere with sim code, except through tailored engine calls and sim callbacks. The user layer is in a separate Lua context. You can import even sim files and make edits - the simulation wouldn't notice because it runs in a separate Lua context.
@resin_smoker said in 4DFAF Uploaded:
Unfortunately this means that it will NOT be possible to have the units ShieldMaxHealth shown on the UI, if the unit received its shields from anything other than a blueprint.
Only possibility is to figure out how to alter the UI from the SIM such when the drone shield is created this gets added somehow. Not sure how this would be possible, as the UI triggers on mouse over, not on the shields creation.We'd probably need to use a unit statistic that is synced from the sim to the UI. And then update the UI code in FAForever to read from that statistic and use the blueprint as a fallback. I'm not entirely sure about the solution because I've not investigated what the exact problem is.
But there's solutions if you really want them, just ask for help of the game team and maybe there's something we can do for you
.
-
@resin_smoker said in 4DFAF Uploaded:
If you think what I've done was good, prepare to be shocked.I am prepared, shoot !
-
@jip I'm down with that... I only need the shields:GetMaxHealth() to be passed to be able to update the UI. Otherwise, the drone custom p-shield, would never be able to display without hijacking the SIM in some game breaking way.
Edit: Just rubbed two neurons together and made coherent thought.
Some smart guy, could during the game startup, use blueprint.lua to go through the units that would be drone shield capable. Then assign, what the max shield value would be as a hard value. This is effect would allow me to pass the MaxShieldHealth into the blueprint to be later used by the UI !
-
Half way there! Here is the Blueprint.lua script to merge the data that i needed...
########################################################################################## ## --Add drone shield max health into unit bp so UI can use it ########################################################################################## function Custom_Drone_MaxHealth_Blueprint(bp) if not bp then return end local id = bp.BlueprintId local bpDefense = original_blueprints.defense[id] -- Check to see if the gUnit has a Cloak, BuildRate or Economy, if so return false if bp.Intel.Cloak or bp.Defense.Shield.ShieldMaxHealth > 0 or bp.Enhancements.Shield or bp.Economy.MaintenanceConsumptionPerSecondEnergy then return false end -- Unit Categories to exclude local excludedCats = { -- Primary unit retrictions, basicly anything that build, upgrades or makes ammo 'COMMAND','SUBCOMMANDER','ENGINEER','OMNI','FACTORY','ECONOMIC','SILO', -- Custom unit restrictions 'DRONE','MINE','PHASING','TRANSFORMABLE', -- Misc unit restrictions 'POD','SATELLITE','UNTARGETABLE','SHIELD','WALL','PROJECTILE','OPERATION','CIVILIAN','INSIGNIFICANTUNIT','UNSELECTABLE','BENIGN','PROP', } local cats = bp.Categories for k, v in excludedCats do if table.find(cats, v) then return false end end -- Calc the drone shield max health based on the unit cat local droneShieldHealth = bp.Defense.MaxHealth if table.find(bp.Categories ,'EXPERIMENTAL') then droneShieldHealth = 10000 elseif table.find(bp.Categories ,'TECH3') then droneShieldHealth = droneShieldHealth * 0.3 elseif table.find(bp.Categories ,'TECH2') then droneShieldHealth = droneShieldHealth * 0.5 else droneShieldHealth = droneShieldHealth * 0.75 end WARN('Custom_Drone_MaxHealth_Blueprint for unit ID: ', bp.General.UnitName or 'no unit name found') local unitBp = table.deepcopy(bp.Defense) if unitBp then unitBp.Merge = true unitBp.DroneShieldMaxHealth = droneShieldHealth bp.Defense = unitBp end end
Repr of a units "self"... Look for the "Defense" and then "DroneShieldMaxHealth"...
WARNING: - Defense: table: 11FB39D8 WARNING: - AirThreatLevel: 0 WARNING: - ArmorType: Normal WARNING: - DroneShieldMaxHealth: 235.5 WARNING: - EconomyThreatLevel: 0 WARNING: - Health: 314 WARNING: - MaxHealth: 314 WARNING: - Merge: true WARNING: - PersonalShieldThreat: 0 WARNING: - RegenRate: 0 WARNING: - Shield: table: 11FB36B8 WARNING: - RegenAssistMult: 1 WARNING: - ShieldSize: 0 WARNING: - SubThreatLevel: 0 WARNING: - SurfaceThreatLevel: 13 WARNING: - UnknownWeaponThreat: 0 WARNING: - Description: Heavy Tank WARNING: - DesiredShooterCap: 3
-
Got the shield info to display, but dam it displays for everything, when it should only display when the drone-shield is active. the problem is becoming a circular one.... I need info from the sim to activate or deactivate an ability but i can't. Not without using a sim.sync.
Notice that the unit is showing a shield stat, without it having a shield on it...
Sure I can pass the data to the units blueprint, but there isn't any way that i can figure to tell the UI that the shield is active or not.
Question: Isn't the shield data already in Sync somewhere ?
-
How's the progress going? Its been a while since you were quite prolific on the forums. Looking forward to your next iteration.
-
Just found this forum. I haven't played in a long time, but I have recently gotten interested again. I was part of the 4thD team and really enjoyed that. I mostly created units with some light script hacking that went along with that. Resin Smoker was the mad coder, always coming up with clever and sometimes far out concepts. Optimus was the game balancer, mod founder, and early unit maker. Some others got involved too.
The reason I came here was, once I started getting interested again, I wondered how the modding situation was on FAF and thought that I would maybe release my unit creations to encourage someone to use them in a mod since last I checked 4thD was dead.
Glad to see Resin is back at it! Good to see you. Thanks for taking this on.
I'd love to see that crazy worm in the ground thing you made and the micro black hole weapon that you were testing out. Those came along too late to be in 4DC, I believe, but they were very cool. People would love those.Units I created:
UEF: Balrog, Caiman, Mine,
Aeon: T1 bot (Artemis?), Tarantula, redesign of Sniper Bot
Seraphim: T3(?) Flying Assault Walker (Kyhkyu Oss)
Probably something else I'm forgetting