Jump to content
Sign in to follow this  
conroy

[Release] Additional Features For User-Placed Markers

Recommended Posts

Additional Features For User-Placed Markers



(intercept marker placement and execute code depending on their text)


Description:

This script will check for certain character prefixes in the text of markers and run the specified code, if a match is found.

The functionality included in this release ranges from being able to easily change a markers appearance, to displaying them in 3D in the game world, as well as global "admin-markers", that can not be deleted by non-admin players.

In theory you could execute any kind of script, that might be useful in a mission, once you assign it to a pre-defined markertext prefix.

The script was initially used in an organized PvP environment, where it was necessary to quickly place markers, that contain a lot of information.

It might be less suited for public missions, where players have little chance to get familiar with the scripts functions beforehand.

(Especially since it all works off a markers text and not via an additional interface.)


Basic-Features:

Changing a markers appearance:

The primary functionality of this script is to change a markers appearance.

Certain 2 to 3 letter prefixes at the start of the markers text will influence its icon-type, size, color, text-modification, etc.

(For example use the "ei" prefix to mark enemy infantry, which creates a red dot marker with an additional timestamp at the end)

3D Markers:

Certain prefixes will not only change a markers appearance, but also make them visible in the 3d game world, without the need to open the map.

You can specify the duration a marker will be visible, the 3D icon type and which class it should be visible to. (Anyone could mark LZs, that are then visible for allied pilots in 3D for example)

3D markers will become more transparent, when looking directly at them.

Admin only markers:

Kind of inspired by a recent discussion in the Script Makers Skype-Group.

Admin are able to place markers, that can only be removed by themselves or anyone who logs in as admin after them.

This can come in handy, if you want to display Teamspeak-Information, mission waypoints, etc., that other non-admin players should be unable to remove.

(Default prefix for this is a double colon, "::" (has no effect if a non-admin player uses it).

Serverside marker handling:

Whenever a marker is created, the information is passed on to the server. (markername, who created the marker, position, text)

You can then also run code there. For example logging the creation of a marker to the rpt among other things.


Usage:

Players:

When you first open the map, the game will prompt you to double click anywhere.

This will place an automatic marker to determine your inGame DirectPlay ID and initialize the clientside functionality.

Afterwards you can place markers as normal, optionally utilizing the predefined prefixes in your markers text.

Mission-Makers:

Copy the module_markerIntercept folder into your mission and include the cfgFunctions.hpp in your description.ext with any new function tag (ideally use pvpfw).

description.ext example:

class CfgFunctions
{
class pvpfw
{
	#include "module_markerIntercept\cfgFunctions.hpp"
};
};

Alternatively you can also just execVM the folders init.sqf, though the cfgFunctions method is recommended.

Script customization:

See "module_markerIntercept\client\change.sqf" for changes, that are applied to markers depending on their text and

"module_markerIntercept\server\init.sqf" for code, that is run serverside whenever a marker is created.


Known Issues:

A player has to completely reconnect, when he wants to change slots in the mission.

Changing a slot while staying connected will prevent the script from getting the correct marker. (If the user already placed previous ones)

See these 2 related feedback tickets:

http://feedback.arma3.com/view.php?id=19879

http://feedback.arma3.com/view.php?id=17103


Download:

Version 1.1 (updated for the latest A3 version, new functionality)

Edited by Conroy
v1.1, changed title, added features

Share this post


Link to post
Share on other sites

Looks intresting - if you can get this working on dedi with JIP then could be a great script - better than just seeing the usual x markers

Share this post


Link to post
Share on other sites

It "is" working on dedicated servers with JIP ;)

The only limitation right now is that a player needs to remember to reconnect, when he wants to go back to the lobby and change to a different slot.

The script wont error out in that case, but it would simply not be able to tell his old and new markers apart from each other.

Reason for this is, that a players ID will stay the same since he stays connected, but his internal counter for custom markers will start from 0 again.

It's usually not a problem if a player only placed 1 or 2 markers so far. In that case a reconnect wouldn't even be necessary.

Just create 2 empty markers and the script will be able to change them again once the 3rd one is created.

Edited by Conroy

Share this post


Link to post
Share on other sites

Release frontpaged on the Armaholic homepage.

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

You are not registered on Armaholic, or at least not that we are aware of. In the future we offer the possibility to authors to maintain their own pages.

If you wish to be able to do this as well please register on Armaholic and let me know about it.

This is not mandatory at all! Only if you wish to control your own content you are welcome to join, otherwise we will continue to follow your work like we have always done ;)

When you have any questions already feel free to PM or email me!

Share this post


Link to post
Share on other sites

thanks for this nice addon!

can you make the commands config based?

that we can change the commands at will to match our language

Share this post


Link to post
Share on other sites

The easiest solution would probably be to just edit the current english abbreviations in the "change.sqf to fit another language.

Adding a lot of additional shortcuts for various languages would not be too good for the scripts performance and might end up in a lot of accidental marker-changes I would imagine.

Share this post


Link to post
Share on other sites

I get the error that pvpfw_lacm_DPIDFloat isn't defined in the getDPID.sqf.

Share this post


Link to post
Share on other sites

Was doing some test and can think of 2 reasons why that might happen.

Either it wasn't a dedicated server, but a player-hosted one or the script wasn't executed quickly enough or had some kind of other delay.

It's probably something I forgot to mention. The script has to be executed on the server before the mission actually begins.

This means, that there can be no delay (waitUntil, sleep, etc. before it), as the server needs to have the "onPlayerConnected" eventhandler ready when the mission starts. (otherwise it cant give players a proper response)

I tried to make the script compatible with non-dedicated servers: v1.02 (not well tested though)

If you were on a dedicated one, try adding the script to the very top of the init.sqf or put the code to run it in a game-logic in the editor instead.

edit:

found out, that it might have already been non-dedi compatible as publicVariableServer and publicVariableClient seem to be able to trigger eventhandlers on the same machine? :confused:

Edited by Conroy

Share this post


Link to post
Share on other sites

It's probably something I forgot to mention. The script has to be executed on the server before the mission actually begins.

This means, that there can be no delay (waitUntil, sleep, etc. before it), as the server needs to have the "onPlayerConnected" eventhandler ready when the mission starts. (otherwise it cant give players a proper response)

That's a possibility, I called it after complete player initialization - with a hosted server. I'll give it a try with an earlier placement and come back as soon as I know more.

#edit: Now I know more. It did not work, although I called it in the first line of my init.sqf. The version you provided in your last post did not give me the DPID error anymore, but it didn't change the markers anyways...

Edited by Pergor

Share this post


Link to post
Share on other sites

Nice to see you release this Conroy. I remember being impressed with this in the PvP scene - looking forward to trying it out.

Share this post


Link to post
Share on other sites

Neat idea. I really like how you realized it. :ok:

Yet another proof that almost anything can be done in ArmA with some good scripting.

Share this post


Link to post
Share on other sites

Hey Conroy! I would like to report that the latest Arma3 patch seems to have broken your useful script.

Share this post


Link to post
Share on other sites

Uploaded v1.04, which should work again with the 1.16 patch.


Also included a new experimental feature, that will display certain markers in the normal 3D view.

By default only markers starting with "lz", "ei" and "e ", will be displayed this way.

"LZ" markers are not shown to everyone, but rather only to certain classes, that are defined in the new config.sqf. (["B_Helipilot_F","O_helipilot_F"] by default)

"EI" and "E " markers are only displayed for a few seconds and are rather meant as a hint to others, that a new hostile contact has been marked.


It should also now be possible to place markers during the briefing screen, without breaking anything.

A full reconnect is still required though, when someone wants to change to a different slot.

There are quite a few debug messages active right now, though they are only shown once during the creation of the very first marker.

Just search for the various "systemChat" commands, if you want to remove them.

Share this post


Link to post
Share on other sites

Updated the script again to work with the latest A3 version and added some new functionality.

Reworked the OP and added "Admin-Markers" to the script. (global markers, that can not be deleted by non-admin players)

Also generally added more comments in several of the files and included an example mission.

Practical usage on public servers is probably still limited, as players likely won't know how to use the marker prefixes.

Maybe there are some who might find it useful for their organized sessions though.

Also would be nice if a moderator could possibly change the thread title to "[Release] Additional Features For User-Placed Markers". ;)

Share this post


Link to post
Share on other sites

You can request a name change to your thread via RTM (Report to Moderator) according to the sticky thread located, well, at the top of this forum, it's entitled: Proper Use of the Report to Moderator System. :)

Share this post


Link to post
Share on other sites

You sir are a genius. I love innovative ideas like this, especially when they are so simple yet cunning.

Share this post


Link to post
Share on other sites

ah thanks JShock, did that now.

Wasn't aware, that it can be used for that.

Share this post


Link to post
Share on other sites

No problem, I just came across it myself a few weeks ago when I was bored and browsing about.

Nice script btw :).

Share this post


Link to post
Share on other sites

Release frontpaged on the Armaholic homepage.

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

You are not registered on Armaholic, or at least not that we are aware of. In the future we offer the possibility to authors to maintain their own pages.

If you wish to be able to do this as well please register on Armaholic and let me know about it.

This is not mandatory at all! Only if you wish to control your own content you are welcome to join, otherwise we will continue to follow your work like we have always done ;)

When you have any questions already feel free to PM or email me!

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  

×