Jump to content
Sign in to follow this  
dr_eyeball

Team Status Dialog

Recommended Posts

Version 1.3 of Team Status Dialog is now available.

Features:

  • Group joining
  • Team Leader selection
  • Grid of statistics for team/group/vehicle/opposition

Download:

Screenshots:

th_ArmA_TeamStatusDialog1b.jpgth_ArmA_TeamStatusDialog2.jpgth_ArmA_TeamStatusDialog3.jpgth_ArmA_TeamStatusDialog4.jpg

Basic Usage: (for more details, see extract below or readme.txt file)

Code Sample

[color=#000000]- in stringtable.csv file, add a line with:
 #include "Scripts\TeamStatusDialog\stringtable.csv"
Match "Language" columns (if needed).

- copy the "Scripts\TeamStatusDialog" folder to your mission folder

- in your description.ext file, add a line with:
 #include "Scripts\TeamStatusDialog\TeamStatusDialog.hpp"

- in your init.sqf file, add a line with:
 _Action = player addAction ["Team Status", "Scripts\TeamStatusDialog\TeamStatusDialog.sqf", ["Page", "Team"] ];
[/color]

Extract from Readme file:

[color=#000000][b]Quote[/b] 
--------------------------------------------------------------------------------
[b]PURPOSE[/b]
--------------------------------------------------------------------------------

Team Status Dialog for Armed Assault mission designers.

[b]Group joining:[/b]
- You may join another group
- You may start a new empty group with yourself as TL (team leader)

[b]Team Leader selection:[/b]
- As TL, you may select a replacement TL
- If the current group's TL is an A.I. player, then you may become the new TL

[b]The dialog displays your team's group information in 4 formats:[/b]
- Team: displays all groups in your team
- Group: displays all members of your group
- Vehicle: displays all groups in your occupied vehicle
- Opposition Team: displays a list of all opposition players but no tactical details, (which you can hide if you don't want it)

These 4 formats are accessed via the 4 buttons: "My team", "My group", "My vehicle".

[b]Functionality:[/b]
- The first column has buttons to collapse/expand the group's details.
- The last column has buttons. Group rows allow you to join/leave a group and   player rows allow you to assign new team leaders.
- Some columns have drop down lists for extra detail, marked with a "+" in their title.
- The base line has buttons to 'Collapse All'/'Expand All' rows.

--------------------------------------------------------------------------------
[b]USAGE[/b]
--------------------------------------------------------------------------------

To use the Team Status Dialog in your mission, you can simply access it via the 
Action menu, the Radio menu or any other way. 
To access it via the Action menu, do the following:

- in stringtable.csv file, add a line with:
 #include "Scripts\TeamStatusDialog\stringtable.csv"

- copy the "Scripts\TeamStatusDialog" folder to your mission folder

- in your description.ext file, add a line with:
 #include "Scripts\TeamStatusDialog\TeamStatusDialog.hpp"

- in your init.sqf file, add a line with:
 _Action = player addAction [
   "Team Status", 
   "Scripts\TeamStatusDialog\TeamStatusDialog.sqf", 
   [
     ["Page", "Team"], // Page to show initially (only include 1 of these 4 "Page" options)
     //["Page", "Group"],
     //["Page", "Vehicle"],
     //["Page", "Opposition"],
     "ShowAIGroups", // AI are excluded by default, but can be included with this option.
     "AllowAIRecruitment", // Place-holder code: Allow AI players to be recruited into your group from other AI groups
    "AllowPlayerInvites" // Place-holder code: Invite another real player into your group. Currently only sends a chat message.
     /*
     ['VehicleObject', _vehicle], // usually use this with ["Page", "Vehicle"] option, good for use when in/outside of vehicle
     // you can include 1 or more of these "Hide" options to hide a particular page & button
     "HideTeam", // hide 'team' page & button
     "HideGroup", // hide 'group' page & button
     "HideVehicle", // hide 'vehicle' page & button
     "HideOpposition", // hide 'opposition' page & button
     "HideIcons", // hide icons used for vehicles & weapons lists
     "DeleteRemovedAI", // Upon removing an AI player from your group, delete the AI player
     "AllowAILeaderSelect", // Allow player to select an AI player as new leader, otherwise only real players can be selected
     "CloseOnKeyPress", // Close the dialog upon pressing any key.
     */ 
   ], 
   0, false, true, "" ];

 - The "Page" parameter can be left out or used with "Team", "Group", "Vehicle" or 
   "Opposition" to force the default view to the specified page.

 - The "HideOpposition" parameter will hide the Opposition button to prevent 
   viewing the Opposition page.

Other examples and notes are included in the sample mission and readme file.
[/color]

Future Plans:

- If players not in group with others, show them under "Individuals" banner, rather than squads.

- introduce 2 alternate views/grouping concepts:

- include players in your vicinity (eg 300m radius) as being involved in the same objective

- allow tagging of players not in your group to be listed as being part of your "tagged group" of buddies. This has the benefit of not slowing down clients by having players in one large group being slowed by excessive data synchronising. Eg: 2+ players, 8+ AI, 1+ vehicles (especially with AI drivers or subordinate player drivers)

- perhaps show empty vehicles in a list too

- group & sort vehicle units crew as single sub-group (mark first crewman row as header row, similar to group header row)

- detect multiple turret seats properly. Either calculate with a script or use 1.05 assignedVehicleRole maybe.

- convert all triggers which detect all units to call "vehicles" command instead (note says it doesn't handle infantry though).

- add voting (eg: kick & admin) if possible.

- Handle more/less than 40 rows

- creating groups - allow group naming

- finish or add: group invites, group join requests, group kicking & group locking

- more parameters

- param to change row count & color scheme

- Extra columns (dynamically resized) for general 3rd party use (eg: display rank or player progress, etc)

- make it more interactive to initiate & share common requests or status to all players. (eg: pick-up, AT assistance, repairs, taking-off in 30 seconds, etc)

Missing script commands:

- TK count, other scoring (kill breakdown), ping

- reliable player ID

- show or group by assigned color team

- show a button as an image (eg: up/down arrow image)

- 'getCurrentWaypoint' (to correspond with 'setCurrentWaypoint' )

- 'getTeam' (to correspond with 'assignTeam' )

Credits:

Schwab - for German string table translations

Spinor & other CoC CEX developers - for pos2grid.cpp (modified)

Edited by Dr_Eyeball
reformat

Share this post


Link to post
Share on other sites

Looking good, I will try it. It could help organise my group in games.

Although is this a beta test version? because your quote:

Quote[/b] ]It should be fully functioning at this stage, but will undergo some cosmetic changes soon plus new ideas may be added. (Also, the "Threats" column isn't implemented yet.)

Share this post


Link to post
Share on other sites

Yes, it's a BETA test version of 0.1 at this early stage. All the scripting is client side only, so it should work fine in MP. Everything that is implemented should be fully functioning.

It is missing the "Threats" column data, so that's incomplete. Also the colors are pretty aweful at this stage. It should work at various screen resolutions, but was designed for 1280x1024 LCD and "might" not work at very low resolutions since 40 lines of text will probably be unreadable. I just need some more time to add some more things to it and hopefully get some early feedback. But it should be useable as it is for now. Thanks.

Share this post


Link to post
Share on other sites

Version 1.0 is now available.

It now features:

- Group joining

- Team Leader selection

- Grid of statistics for team/group/vehicle & now opposition team

You need to try out the Group Joining and Team Leader Selection in-game for yourself. It seems to work quite nicely.

I changed the "Threats" column into a "Targets" column. Added an Opposition Team list page. Tidied up color scheme. New parameters.

See the first post for futher details and download links.

Share this post


Link to post
Share on other sites

By the way, thank you for creating this Dr_EyeBall.

I'm not so sure you got enough appreciation sent your way for this.

Thanks!

Share this post


Link to post
Share on other sites

This man is King of the GUI in my book. Dr.Eyeball is responsible for all the menus in evolution. Great stuff.

Share this post


Link to post
Share on other sites

Did Dr.Eyeball made some respawn dialogs too?

If yes, were can i download it, or were can i find an tutorial or some finished scripts?

thx for help,

Kev

Share this post


Link to post
Share on other sites

I like his script allready but i have multiple bugs on TeamStatusDialog.sqf, he says that i have wrong parameters in line 332.

Share this post


Link to post
Share on other sites

Thanks for the support guys, I appreciate it (even if they are all lies. tounge2.gif)

@Kev, Spawn dialog: I'm surprised someone hasn't already released a spawn dialog for the public. I've posted in this other Respawn Dialog thread regarding this, to keep it on topic. I'll upload it soon.

@Kev, call syntax: Send me a PM with your syntax you used. Or open up the sample mission file and have a look at the syntax used there via the action menu.

It was probably a poor decision at the time, but it currently assumes that the dialog will be triggered via an Action menu. This means that it assumes the first 3 parameters will be the standard action parameters. See AddAction for details on these parameters. I might remove those in future, which would then require an additional script to execute it. For now, you can simply add 3 fake parameters to your call (if you're not using an Action Menu.)

Share this post


Link to post
Share on other sites

hi again, i explain what i did.

1. i open up my description.ext and added the following line:

#include "TeamStatusDialog\TeamStatusDialog.hpp"

2. i added the following line to my init.sqf file:

_Action = player addAction ["Manage Squad", "TeamStatusDialog\TeamStatusDialog.sqf", ["Team","Group","Vehicle","HideOpposition"]];

3. i save my mission and make a first testrun.

"Manage Squad" appears and ill check it out.

Error message comes up and tells me, that i have an error on

line 332.

// PROBLEM ZONE

TSD9_GetVehicleSeat =

{

_player = _this select 0;

_seat = "";

if (not ([_player] call TSD9_IsVehicle)) then

{

_vehicle = vehicle _player;

if ([_vehicle] call TSD9_IsVehicle)

then // This is line 332, the error is sitting here ?

{

if (_player == driver _vehicle) then {

if (_vehicle isKindOf "Air")

then { _seat = "Pilot" }

else { _seat = "Driver" };

};

if (_player == gunner _vehicle) then { _seat = "Gunner" };

if (_player == commander _vehicle) then { _seat = "Cmdr" };

if (_seat == "" && _player in crew _vehicle) then { _seat = "Cargo" };

};

};

_seat;

};

// PROBLEM ZONE END

I hope i explained the error correctly.

greetz, kev

Share this post


Link to post
Share on other sites

For some reason it doesn't want to hide the Opposition. In what way does that need to be stated in the code?

Share this post


Link to post
Share on other sites

The param "HideOpposition" is case-sensitive. Hmm, I may have provided the wrong "usage" instructions in the readme parts.

For addAction, it should look a bit like this:

 _Action = player addAction [
   "Team Status", 
   "TeamStatusDialog\TeamStatusDialog.sqf", 
   ["Team", "HideOpposition"], 
   0, false, false, "teamSwitchPrev" ];

If you're not using addAction, you will unfortunately need to add 3 fake param's to match those provided by addAction. Eg:

[color=#000000]
nul=[objNull, objNull, 0, ["Team", "HideOpposition"]] execVM "TeamStatusDialog\TeamStatusDialog.sqf";
[/color]

(P.S. Ver 1.1 is due out very soon. The param usage may change.)

Edited by Dr_Eyeball
reformat

Share this post


Link to post
Share on other sites

The Team Status Dialog has been updated to version 1.1.

Download link is in first post. (New links and site updates will be provided and updated soon.)

Provide feedback or report any problems. (Prefer PM's for usage problems and syntax errors.)

Screenshot

th_ArmA_TeamStatusDialog1b.jpg

Changelog Summary:

==================

- altered file and folder structure plus new file requirements

- localized language support

- combined/deleted columns,

- new stat's: rank, vehicle status and armaments stats,

- new icons,

- altered & new group joining actions,

- new params, especially "VehicleObject" param

- new addAction syntax

- 2 new buttons

Changelog Details:
==================

- localized language support 
 - added stringtable.csv
 - removed hard-coded strings and replaced with class lookup descriptions
- combined columns: Role and Gear (provides more room)
- deleted columns: TL Proximity (provides more room)


- new statistics information:
 - Name column - includes rank as a prefix
 - Vehicle group field shows vehicle class description (eg: Air,Armored,Ship,Car,Men)
 - Vehicle column - list includes: 
   - armor repair level (1.0-damage), 
   - fuel, 
   - ammo (none or some)
   - armaments (weapons)
   - ammunition available (of armaments, not cargo)
 - Seat column - iconized
 - Role/Gear column: (same as before, but combined)
 - Command column now includes first waypoint map grid ref. 
   - If you use more than 1 waypoint, you'll need to track the current waypoint yourself, since there is no GetCurrentWaypoint command in 1.05.


- Actions column buttons now includes:
 - Remove (for AI)
 - Kick (for player)
 - Recruit (for existing AI)
 - Invite (for player) - this currently only displays a chat invite message. It needs to be completed to allow reject/accept response and automatic group joining.
 - Set TL (for AI) now needs a param to enable this option


- New icons for the columns: Vehicle, Seat, Role/Gear, Requires. The icons for columns: Vehicle & Role/Gear can be turned off via params.
- altered colour scheme - background is now clear
- new addAction syntax - highly recommend you use the extended syntax with a priority value of 0 and a shortcut.
- 2 new buttons - expand/collapse all groups
- Passing parameters:
 - parameters can now start at array index 0, or at array index 3 for AddAction calls.


- New parameters:
 - ["Page", <one of: "Team"|"Group"|"Vehicle"|"Opposition">], // Page to show initially (only include 1 of these 4)

// you can include 1 or more of these "Hide" options to hide a particular page & button
 "HideTeam", // hide 'team' page & button
 "HideGroup", // hide 'group' page & button
 "HideVehicle", // hide 'vehicle' page & button
 "HideOpposition", // hide 'opposition' page & button

 "HideIcons", // hide icons used for vehicles & weapons lists
 "DeleteRemovedAI", // Upon removing an AI player from your group, delete the AI player
 "AllowAILeaderSelect", // Allow player to select an AI player as new leader, otherwise only real players can be selected
 "AllowAIRecruitment", // Place-holder code: Allow AI players to be recruited into your group from other AI groups
 "AllowPlayerInvites", // Place-holder code: Invite another real player into your group. Currently only sends a chat message.
 "CloseOnKeyPress", // Close the dialog upon pressing any key.
 ["VehicleObject", _vehicle] // usually use this with ["Page", "Vehicle"] option, good for use when outside of vehicle to see who is inside


- Bug fixes:
 - fix "My Prox" - sometimes shows "e-10" inside vehicles.

Initially I made it dependent on the Dialog Framework project, but decided to remove that dependency to make it easier to incorporate this dialog into other missions which already use their own dialogs and classes and prevent clashes.

Edited by Dr_Eyeball
reformat

Share this post


Link to post
Share on other sites

Great Stuff. notworthy.gif

I have a question, i have 11 Groups at start and i want to lock 1 of them to be removed in all cases. Is there a way to do so (and if yes where to put it in)?

Edith says: Found it, but i am almost sure i will have some more questions later smile_o.gif

Mhh the Stringtable is not working with other languages than english ?

I get a Missing Stringtable STR_TSD9* when i open the Dialog with German setting for example ?

How can that be when the 2nd column is default and filled in correctly with english description ?

Share this post


Link to post
Share on other sites

For some reason the Stringtable did not work properly with any other language than english.

In the Wiki it says 2nd column is default, but this does not seem to work.

I added german language to your stringtable and removed everything else and added all words in german.

stringtable english/german for tsd

Share this post


Link to post
Share on other sites

@Schwab:

Thank-you for providing a German stringtable.csv translation. It will be included in a future update.

I'm not yet sure what the requirements are for using multiple languages, beyond what you have attempted. It will have to be investigated and tested further at some stage.

I'm presume you've solved your "11 groups" problem. If not, send me a PM about that issue.

Share this post


Link to post
Share on other sites

Ah i should tell you i removed the double entries from the stringtable aswell and replaced them in the sqf (not in the attached version). There was about 3 vehicles and something else....

The lock group problem wasn't too difficult. Well written Script and easy to understand.

Btw: I did not attempt anything with the Stringtable cause i play ArmA in english. But a member joined and got the error so i took a look at the stringtable and searched for a solution (so i did not remove or add anything to the table before the problem occured).

Share this post


Link to post
Share on other sites

Hi Dr Eyeball,

I'm currently implementing your Team Status Dialog.

Two questions:

1) It seems to be working fine, but I wonder how can I make the scripts only count for players and not for AI's?

2) Somehow I'm also not able to hide the "hideOpposition". Is my init.sqf code wrong?

My code for init.sqf:<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">

nul=[] execVM "Scripts\CommonFunctions.sqf";

_Action = cmd addAction [

  "Team Status",

  "Scripts\TeamStatusDialog\TeamStatusDialog.sqf",

  [

    ["page","Team","HideOpposition"]

  ],

  0, false, false, "teamSwitchPrev" ];

It should only be used by the commander, named cmd.

I'm using version 1.1.

Best regards,

-Rawhide

Share this post


Link to post
Share on other sites

1) Only Team Status version 1.2 has the optional parameter "ShowAIGroups". In that version, AI are excluded by default and can be enabled with that parameter.

Next release:

Damn, I have been using 1.2 and didn't realise I never released version 1.2 separately here. I will upload the ver 1.2 files soon (1-2 days) or 1.3 if I tweak it to make it addon safe and tidy it.

Existing source:

In the meantime, 1.2 is used by my recent projects (see my signature), so you can extract the same files from Merlin for latest files.

You will need description.ext (header fix & string changes), pos2grid.cpp (fn_GridRefCoords) multi-world (island) support too.

2) "HideOpposition": The call syntax is almost correct. "HideOpposition" becomes a second parameter.

nul=[] execVM "Scripts\CommonFunctions.sqf";

_action = cmd addAction [
"Team Status",
"Scripts\TeamStatusDialog\TeamStatusDialog.sqf",
[
  ["page","Team"],
  "HideOpposition"
],
0, false, true, "teamSwitchPrev" ];

Edited by Dr_Eyeball
reformat

Share this post


Link to post
Share on other sites

Well done!

I'll be working on this tonight. I'll report back the result.

Thanks a lot for your time!

-Rawhide

Share this post


Link to post
Share on other sites

Yes, that worked great.

Found a way to restart the addaction upon respawn, so the commander still has the dialog.

Really good work Dr Eyeball. I've been looking for a dialog like this, and it will be used a lot smile_o.gif

Best regards,

-Rawhide

EDIT: Deleted info about significant drop of server framerate. That was a true PEBCAK from Mr. Rawhide.

Share this post


Link to post
Share on other sites

Team Status Dialog version 1.3 is now available. (Minor release.)

See first post for download links.

Version 1.2 was an 'in-house' version available for use, but never released to public except inside missions, which made it difficult to utilise all of it's fixes.

So it has been simplified even further now and released as version 1.3.

Feature wise for the user, there is nothing significantly different. The changes are mostly script improvements to simplify developer usage and robustness.

Version 1.3 Change Log:

New Features:

v1.2 - new param: "ShowAIGroups"

v1.2 - included German string table (by Schwab)

v1.2 - switched usage from GridRefCoords.sqf to more versitile pos2grid.cpp to support more islands

Other Changes:

v1.2 - #defines used for all constants (instead of variables)

Major New Features:

v1.3 - None - mainly simplified developer usage

Other Changes:

v1.3 - isolated functionality into one single folder

v1.3 - no external function calls (merged required functions directly into script, except pos2grid which is in same folder)

v1.3 - deleted all 'common functions', removed "CommonFunctions.sqf" requirement (and it's unused functions)

v1.3 - tagged all internal functions with prefix (TSD9_/ICE_)

v1.3 - stringtable.csv data changed to simple #include - this alters usage process

v1.3 - fixed some functions to be more robust

v1.3 - readme_TeamStatusDialog.txt updated

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×