GithubHelp home page GithubHelp logo

bourbonwarfare / potato Goto Github PK

View Code? Open in Web Editor NEW
17.0 11.0 26.0 31.91 MB

License: GNU General Public License v2.0

C++ 3.07% SQF 81.45% Scheme 0.18% Python 4.15% Pawn 9.95% HTML 1.20%
potatoes arma3 mission-maker mod potato sqf

potato's People

Contributors

aaco avatar achesheirecat avatar alablm avatar argochris avatar danthomas64 avatar gutsnav avatar juujuu avatar kil0byt3 avatar mikematrix avatar pabstmirror avatar thecandianvendingmachine avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

potato's Issues

Arsenal Export - MAT exports AT instead of MAT

_lines pushBack format ["// MAT"];
_lines pushBack format ['#define MAT "%1"', GVAR(loadout_at)];
_lines pushBack format ['#define MAT_MAG %1', [GVAR(loadout_**at**), GVAR(loadout_**atMags**), -1] call _fnc_getMags];
_lines pushBack format ['#define MAT_MAG2 %1', [GVAR(loadout_**at**), GVAR(loadout_**atMags**), -1] call _fnc_getMags];
_lines pushBack format ['#define MAT_OPTIC %1', [GVAR(loadout_matAttachments)] call _fnc_formatList];

Should be loadout_MAT instead of loadout_AT in #define's

Spectator Improvements and Fixes

Improvements:

  • Separate cam tick into an EachFrame event handler
  • Add logic to allow RCing as a spectator Zeus
  • Disable keyboard search on tree
  • Add readable spectate name
  • Make the spectate unit playable (and add like 5 to the framework?)
  • Make the terrain/object based slowdown toggleable
  • Move the spectator count a little to the left to avoid some of the clipping
  • Remove helipad
  • Add spectate text chat channel
  • Handle advanced grenade throwing
  • Handle STHUD name ghosting
  • Add compass
  • Use ACRE's passthrough
  • Better icons for grenades
  • Add mission clock to timer
  • Look into a full screen map (GPS button to open?)
  • Add briefings into spectate
  • Add a medical readout
  • Update help text for new features

Fixes:

  • Fix mid velocity draw color
  • Fix unit/group removals. (Add a spectator 'side').
  • Normal grenade throw locality?
  • Fix medic star in tree

Not to be done/out of scope:

  • Look into adding some kind of compass to the UI (deferred)
  • Look into some kind of zoom functionality (most likely not possible)
  • Look into transferring all side markers to the spectator side. (doable, but not great for TvT respawns)
  • Make some of the UI elements save/load state in the profile namespace

Zeus HC Improvements

An AI counter for Zeus who is not the current admin so that they have a better idea of AI counts. Overlay or some such?

The ability for Zeus to switch their ACRE to spectator like our respawn menu for non-admins.

Add helper classes for loadouts

Add helper classes that extend base blufor/opfor/indfor units to help out with our assign gear scripting and configuration.

Document code base

Way too many of our functions are undocumented (super guilty of this)

To dos:

  • adminComs
  • adminMenu
  • briefing
  • markers
  • missionModules
  • radios
  • safeStart
  • setVehicleAmmo
  • zeusMonitor

Zeus HC Module updates

  • Move as many vic spawns to CUP vics
  • Remove MSV, just roll it into east
  • Add any non overlap between CUP and RHS.

Zeus Sync/Locality/RC Issue

We have talked about this before, but I wanted to bring it up again because it may be related to issue #60.

Basically there is some time once a POTATO unit is spawned that they truly become sync'd and ready to go. Sometimes this never really happens. This is most obvious when trying to get groups to follow their waypoints. Thankfully, AACO added a couple of modules to address this, but I've had mixed results with them.

The best surefire way I've found to resolve this is to RC into a unit. I will RC into a unit and then I can't move them or do any actions for upwards to 10 seconds. That's rare, but it does happen and generally is 1-5 seconds of sync time. Once I do this I can exit the unit and they will be good to go.

This also could be related to the issue in the 9/25/16 coop where the entire serve locked up after I RC'd a unit for the first time in the mission. Once it was sync'd the server recovered, some 30+ seconds later. Unfortunately the lag caused by this got at least 1 person killed.

So any thoughts for solutions to this issue or is this always going to be a product of having zeus based missions?

Add runtime validation to assignGear

When we're building the loadout array, we need to validate known classes (and log anything that's fucked)

Things we should probably validate:

  • Any empty strings should be dumped
  • Uniform/Vest/Backpack/Headgear should be validated (we only need to validate the random item we pulled)
  • Primary/Launcher/Pistol weapons should be validated (we only need to validate the random item we pulled). Attachments are already validated by the CBA check
  • Magazines should be checked

I don't know how effectively we can validate items as they could be from a couple of configuration roots.

Wait until post-init to run editor placed AI modules

It looks like there's some timing condition to the AI modules, where if the modules run during init, some players may actually be considered non-players (AI), tripping safe spawn and exiting the modules early.

Zeus HC Units

Zerith's ideas for this feature:

  • Fireteam for each side: Opfor, Blufor, Indfor, MSV(?)
  • Single riflemen and rats for the purpose of manning statics, garrison buildings, etc.
  • A few specialist options such as manpads for AAA.
  • Groups of 2 infantryman for smaller patrols or ambushes.
  • Various pre-crewed vehicles should be available.Still missing BMPs and armed offroads.

Will update as I think of other things.

Spectator Improvements/Ramblings

  • Briefly consider using CBA's round tracking setup
  • Refactor the way fired event handlers are attached, to work correctly with vehicles
  • Refactor the way icons are built, to work correctly with vehicles
  • Expand the group icon ranges, maybe add a few smaller steps
  • Post CBA update ensure all languages are applied to spectators
  • Separate hiding tags and hiding UI
  • Clicking on the unit in the list should jump you to the unit, not focus on the unit. (My thought: one click focus, two clicks jumps)
    Look into allowing spectating zeuses to RC units (out of scope for now)

Fix the "dismounts" module

Right now there's a (somewhat) major issue in a dedicated/hc environment where trying to attach the "dismounts" zeus module to a vehicle will just kick back the "no attached vehicle" error. Maybe just search for the nearest vehicle within a certain distance of the placed module?

Add 3DEN module to garrison units

Add module to 3DEN (and maybe zeus?) to garrison with the following options.

  • Spawns units in a load balanced fashion on the HC
  • White list of units to random select for garrisoning (default list overrideable on mission level?)
  • User chooses:
    • Faction (Also white listed?)
    • Radius
    • Minimum soldiers per building
    • Maximum soldier per building
    • Percent of buildings in the radius that should be garrisoned

Lingering questions:

  1. Should this be available to zeus?
  2. Do we need to add a delay per garrisoned building to reduce desync?
  3. Should there be some hard max to avoid accidentally spawning 400 units?

Add runtime tool to assign markers

Due to some rude people crashing/DCing we could really use a tool to set/change markers during run time. I'm not sure where this tool should live as it lives somewhere between the admin menu and the marker component...

Safestart Timer Position

If not already done, can we discuss moving the safestart timer from the center of the screen to the top? Or bottom left/right?

POTATO Garrison

It seems when the combat FSM kicks in the AI do not want to stay put and tend to leave their spots. This leaves buildings empty after a time and dumps the AI out onto streets where they are cut down.

Any idea on what changed for this to start happening?

VCOM refactor

Refactor VCOM AI framework code to move away from continuous FSM execution. FSM execution does not allow for script suspension, so it basically just continuously hammers the conditional blocks. We also have two FSMs running (danger/behavior) which can probably be condensed down to one spawned thread.

Another big issue is FSM locality, there seems to be issues with transferring groups between clients, and having the FSM stuck executing on a different machine, using the spawned thread method, we can do a quick unit locality check, and spawn a new thread where it's needed.

This will be a pretty major refactor, but should:

  1. Be easier to pace (x loops/second)
  2. Be easier to ensure locality
  3. Should be able to reduce some other spawns in the application (if we need to wait for a unit to move to a position for example).
  4. Should be easier to read through/maintain (don't need a separate FSM application to edit/manage it).
  5. Will be able to use Potato/ACE/CBA macros in the decision trees.
  6. Also add better vehicle targeting/engagements

Zeus Factory tweaks

So some notes from a few sessions using Zeus Factory

  • Sometimes AI would dismount before their waypoint and get suck in a loop of dismounting/remounting
  • Factories wouldn't really "load balance" it would only use the closest factory. Possible solution: set a CBA_missionTime variable on the factory, and just use the most stale factory withing a given radius?
  • @zerithsmash doesn't like the current option layout: make it more like the spawn a vic menu?

"usePotato = 1" applied on next 3DEN load

I'm not sure why, but it in the 3DEN editor environment, the usePotato value is used from the last mission loaded, not the current mission. Since it's only an editor level issue it's pretty low priority, just seems odd.

Change VCOM to use pseudo-states

Change VCOM to use pseudo states to track combat, and disable auto-combat. We're seeing issues where units are placed into combat mode and are either: not moving/responding or getting stuck in dismount loops.

Also look into having a thread per group, instead of a thread per unit.

Safestart timer display issues

The safestart timer does not display properly under the following conditions:

  • The mission time changes post init
  • The mission time changes day (i.e. starting at 23:59, the display will break when the timer wraps around to 00:00

Add mass paradrop as a reinforcement type

Adopt the script I wrote for the "Hold What?" an implement it with a UI element that would allow a Zeus to select a side, a drop vehicle (Mi-8,CH-47,C-130), a drop type (troop,light IFV/APC,light tank destroyer), and finally an ARES LZ and RP.

Questions:
Should we?
Since this could spawn up to 25 units/drop is this something we want readily available?

Toolbox

Don't know how difficult this would be to implement, but maybe consider adding a basic toolbox we can use for fixing things like gear, radios, etc. That way code does not need to be run from debug.

For example:

Re-init everyone's gear/radios to fix mass nakedness/babel.
Able to select individuals to do the same. Either fix radio or gear or both.

Add tool to test/validate gear in 3Den

Add tool to test/validate gear in 3Den.

Should throw warnings if a unit:
Doesn't have a gun
Doesn't have ammo (or has less than four mags for said gun)
Doesn't have medical supplies
Any items not added to a unit due to space issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.