

terox
-
Content Count
2417 -
Joined
-
Last visited
-
Medals
Posts posted by terox
-
-
I have no idea why i received a notification for this thread today, which was from way back last year but I did
Shameful thread replies from some of you.
I didn't read all of it so might not have grasped the full story.
From what I can gather from your question.
Basically anything #included from the description.ext or any config file in any addon is run before anything else so it doesn't make any difference to performance of the mission other than load time of the mission which unless its thousands and thousands of lines of config will be insignificant.
All this code is run before even 'preinit' code. Well before the mission starts, before the mission.sqm, before any preinit code.
You can actually #include anything.*** .hpp .h or.someweirdextensionname so its not the extension you use but where it is called from that defines how it is run
.sqf speed depends on the quality of the code and whether is is precompiled once and saved into memory as a function before it is called or whether is is run say from the init.sqf tree where is is compiled and run every time it is called.
Is there a difference between spawning a precompiled function (Useful if that function has a sleep command) or calling? (I dont know)
EDIT. I just realised i replied earlier in this thread on page 2
-
Not within the engine itself
You could write a powershell script that is run as part of your start up procedure. It could search for an entry in your server.rpt file for a diag_log entry which defines the mission name or some token string that you could use to work from.
For example, the first entry in a pre init function
diag_log text "!!**!!"; diag_log text format["|========================= %1. %2 =========================|", missionName, worldName]; // stamp mission name to .rpt diag_log text "";
So reading from the end of the file backwards until it finds the token searchable string eg "!!**!!" and then read the line after to compare with a list you have or something like a label "MISSION_A" which you can then replace the old config file with a newly created one with the correct cycle list you need
and then start the server.
You would have to take into consideration things like dealing with older rpt files, mission filename changes etc
Code something like a switch
string = switch(Tokenname) { "MISSION_A": { "class Missions { class Mission01 { template = Mymission1.Altis; difficulty = "veteran"; class Params {}; }; class Mission02 { template = Mymission2.Altis; difficulty = "veteran"; class Params {}; }; };" } "MISSION_B": { "class Missions { class Mission02 { template = Mymission2.Altis; difficulty = "veteran"; class Params {}; }; class Mission01 { template = Mymission1.Altis; difficulty = "veteran"; class Params {}; }; };" } }; New-Item D:\somepath\server.cfg
or have a set of configs already written but with .txt extension and rename the extension or copy and rename the required .txt file as the new server.cfg
-
On 11/17/2020 at 6:12 AM, n0sferatoo said:Hi,
How can I disable Lambs Danger on specific unit/vehicle in 3D editor?
On 11/17/2020 at 9:48 AM, [VW]Wrath said:There is an option in the units attributes to disable lambs I believe. I don't think it's there in a vehicles atteibutes but it should be under lambs settings in an infantry units.
So in a scenario where this is run as a serverside mod only, is there a setvariable commands available for example ' Group this setvariable ["LDFSM",FALSE]; 'that a mission developer could place in the groups init field to stop the group from running the fsm for specific groups. (Would also help during dynamic group creation as well)
Apart from that, this is a pretty good improvement to the standard BIS FSM. So thank you for that.
-
1
-
-
the order of placement in the description.ext does not make a difference
Having the incorrectly defined class header at most throws up an error in the rpt file
You can completely delete that header class with no effect on the mission
NOTE: Header class can also be defined in the mission editor under the "Attributes/Multiplayer" tab
If your server is having issues loading so that you cannot connect based on player slots, first thing I would do is remove all of the custom missions from your mpmissions folder on the server to some temporary folder (NOT A SUB FOLDER OF MPMISSIONS)
Then try loading a BIS mission
If that fixes it add a selection of missions at a time un til you narrow the issue down to a batch/single mission/
If you cannot connect with no custom missions loaded, then its a server configuration issue.
-
there are 2 places that define how many players can join the server/mission. The description.ext is not one of them.
The class header in the description.ext is afaik only used to display information on the server browser.
So the actual number of players allowed to join the server/mission is defined in:
- The mission.sqm (Mission editor) and is based on the number of playable units you have defined in each unit you placed on the map
- In your server config defined by "MaxPlayers"
The description.ext should be placed in the root of the mission folder, same location as the mission.sqm
-
can be done easily in the debug console Vehiclevar setpos getpos vehiclevar or if you want to add the capability of an engineer addaction using cursorobject
-
Its called warping, basically the client and server aren't syncing quickly enough, update packets are being lost. This is likely to be down to a network issue, slow serverside cps(FPS), poor bandwidth
-
you mean create a virtual link to a different none root file structure, if so
https://ss64.com/nt/mklink.html
if you mean define the mods the server will run then -mod= just like on the client, or -servermod= for serverside only mods
afaik, and I dont do this, you can have the server subscribe to steam mod collections. I would imagine this auto updates then
I prefer manually controlling content on the server, or rather via a complex set of updating scripts based on a master mod install
-
-
you will need to learn about locality, which is basically where code needs to be run relative to the objects it is referencing
The command ref defines where code should be run, eg locally to the object only or on any machine, server only etc
You will also need to learn about the various switches that can be used to filter where the code is run, such as
Isdedicated
IsServer
HasInterface
This is a steep learning curve until you grasp the concept and start understanding locality issues
-
1
-
-
@Tankbuster
there is a comref specifically for youtube mate if that is all you want to do..
https://community.bistudio.com/wiki/openYoutubeVideo
You could add an "execute expression" line direct into your briefing
I haven't tried a youtube url link in this system but from what I am seeing, anything that can be opened via a url link will work with this.
-
V.02 (Date: 24/5/2020)
Removed the requirement to #include "Txu_Info\CfgBaseDefines.hpp"
This file has been completely removed.
The default Gui class bases are no longer inherited from, this makes it much easier to import this into existing missions that define their own GUI Base classes
and should not conflict with any existing Gui definitions
__________________________________________
-
1
-
-
This is your answer.... Inspired by larrows post
All kudos and credit goes to him. I just improved on his original concept
-
So in your root Arma3 root server install, where all the arma3**.exe's are, you should have a folder called userconfig
In that folder should be a file called cba_settings.sqf.
so path would be arma3\userconfig\cba_settings.sqf
This is the content in ours..
Your home local server will have this file, just copy it over to the server
-
Have i seen scripting errors in rpt files ? Yes.
Have i seen that error? No
Where is it, ? Don't know do a mass search for a string in the mission file. _OldCompat.
Addon scripts are failing because i presume you are calling them incorrectly, syntax errors, missing ";" at end of lines etc
also
0 spawn compile preprocessFileLin
Looking at the rpt am assuming somewhere you are trying to add an Eachframe missioneventHandler
-
1
-
-
rpt lines 1255 to 1295 shows error in code
difference between local host and dedi server are
1) use of code such as
if(HasInterface) ...... and not assuming possibility of IsServer
IsDedicated
and then of course the localised setup compared to the dedi environment
-
1
-
-
I have a neat little system that opens external links from your mission briefings page.
Most important use I can think of and is working.
Teamspeak AutoJoinServer
- Click on link to join teamspeak.
- Starts up their teamspeak app if it is not already running
- Auto joins them to your teamspeak server
- Adds a bookmark to their TS client
Can also be used to
- link to your addons or community page
- Direct link to a download such as a clientside pack
Only drawback it has to be inserted into a mission, there is no way to auto inject the code as it uses config classes defined in the description.ext
ENJOY !!
-
What is this.
Example MP mission that has 4 working configurable clickable buttons in the briefing.
Purely VANILLA, no addons
These buttons can be configured to
- Open an external web page in your default browser
- Start and connect a client to your Teamspeak server ( If they have Teamspeak installed )
- Download a file
- And most likely also allow you to link to your discord channel (not tested)
No issues found while running with an anti virus and doesn't interrupt Arma
(Tested in full screen mode with multiple monitors)
DOWNLOAD LATEST VERSION
Download Example mission and source code
Following download has a working packed (pbo) mission file
and the source files
(see changelog)
The example mission will (If you click the links)
(Please don't spam them)
Allow you to
- Join my teamspeak server
- Open up the teamspeak client download page
- Open up our website front page
- Download our clientside addon pack
INSERTING INTO MISSION
1) Copy the TXU_Info folder into the root of your unpacked mission folder
2) Add the following lines to your Description.EXT
#include "Txu_Info\CfgControls.hpp" class cfgFunctions { #include "Txu_Info\cfgfunctions.hpp" };
If your CfgFunctions class already exists then just copy the "#include" line as seen above
3) Open the TXU_info\CfgControls.hpp
Edit the txt= and url= entries for the 4 button classes in there
and your done.
Also if your mission doesn't have a briefing like for example OPEX, you can comment out the
TXU_INFO_FrameEHId = addMissionEventHandler ["EachFrame",{[] call TXU_INFO_fbriefingEH}];
e.g.
//TXU_INFO_FrameEHId = addMissionEventHandler ["EachFrame",{[] call TXU_INFO_fbriefingEH}];
so that it doesnt attempt to display in the initial briefing screen
ADVANCED EDITING
You can ad parameters to your Teamspeak URL
For example, automatically add a bookmark to the players Teamspeak Client as well as passwords, default channels etc
Complete format:
- ts3server://ts9.teamspeak.cc?port=9987
- &nickname=UserNickname
- &password=serverPassword
- &channel=MyDefaultChannel
- &channelpassword=defaultChannelPassword
- &token=TokenKey
- &addbookmark=SomeBookmarkText
Parameters are optional. In most cases, specifying the host and port should be sufficient. Nicknames usually should not be specified, leave this to be configured by the users in the client. So a common URL would look like this: ts3server://ts9.teamspeak.cc?port=9987
Or simplified if only the port is given: ts3server://ts9.teamspeak.cc:9987
CREDITS
The orginal concept and a working example was by Larrow
His original post
https://forums.bohemia.net/forums/topic/169501-link-to-website-in-briefing/?do=findComment&comment=3277456
He is the one that deserves the credit for this.His original version only had 1 button and wasn't available in the initial briefing screen.
My version has 4 buttons (I cant see you needing more than 3 really)
LIMITATIONS
The system uses classes to create buttons that are defined in the Description.ext environment.
This is the only way I can see to pass an external URL link.
For that reason it cannot be injected into the client using a serverside addon.
So the only way to get this to work is as part of the mission file.
That's a lot of editing for server admins and their mission devs
FUTURE DEVELOPMENT
If someone better at coding than me wants to rip this and optimise it more, feel free, I'll happily update the example mission and re update it.
ENJOY !
CHANGELOG
V.01 (Date: 18/5/2020)
File: TXU_info\f\fmapEH.sqf Line 20
Changed from
if(TXU_INFO_ButtonAdded)exitwith{};
to
if(TXU_INFO_ButtonAdded1)exitwith{};
__________________________________________
V.02 (Date: 24/5/2020)
Removed the requirement to #include "Txu_Info\CfgBaseDefines.hpp"
This file has been completely removed.
The default Gui class bases are no longer inherited from, this makes it much easier to import this into existing missions that define their own GUI Base classes
and should not conflict with any existing Gui definitions
__________________________________________
(Date: 22/3/2022) Updated link was http now https
-
4
-
3
-
Great Find, thank you Larrow.
If you use missioneventhandler oneachframe, this will allow the link to work in the initial briefing, not after the mission has started
Am dabbling with this and have success passing an auto start teamspeak and link to my teamspeak button
Need to remove the oneachframe EH after succesfully adding the button and some more tweaking
EDIT.
Now have a working example for easy integration into your missions..
-
1 hour ago, usamarine6600 said:a3_exile_occupation\scripts\occupationLog.sqf..., line 10
so at either line 9 or 10 in that script a value is being expected for a variable that has not yet been defined
so something like
_a = _b;
and _b has not been defined so _a has no value
You may be better asking the question in the scripting forums or on the exile mission thread
-
1
-
-
There isn't much of a pvp scene anymore, at least not in the sense of anything like the old cft, c&h leagues that used to be run during OFP times.
You will be able to find the odd king of the hill style server but afaik I have none to recommend that I think are run well
Even the milsim side of things isn't as strong as it used to be, there is a lot more casual game styles like Altis life and other stuff i never even look at.
If you want good coop there are still a lot of decent communities around and the game engine itself is way better that OFP with the exception of the AI not following orders to the letter like they used too.
The latest island Livonia that BIS released is by far their best yet, and the previous jungle one Tanoa is also very very good, so I would recommend the DLC's just for that.
Teamspeak is still the most popular comms system for milsim, with some communities trying to do it on Discord.
Hope that gives you an idea what to expect
-
BI official servers tend not to be policed that well. You need to find a community server run by hardened fans with a good reputation.
One with good admin cover
Like any game out there in the publicly easily accessible environment, this type of behaviour is typical
-
Bug report v1.9
File: Units\UnitClasses.sqf
Line: 475
Var name should be a3e_arr_ComCenDefence_lightArmorClasses
not
a3e_arr_ComCenDefence_heavyArmorClasses
This is the var for the next DLC if then statement
so getting undefined var error and no marshalls spawning etc
a3e_arr_ComCenDefence_heavyArmorClasses = [ "B_MRAP_01_gmg_F" ,"B_MRAP_01_hmg_F" ,"B_APC_Wheeled_01_cannon_F" ,"B_APC_Tracked_01_AA_F"]; if(Param_UseDLCTanks==1) then { a3e_arr_ComCenDefence_lightArmorClasses pushback "B_AFV_Wheeled_01_cannon_F"; };
-
@FacialFuzz
This is not a server issue this is a mission scripting issue .
Addon requirements for a mission are listed in the mission.sqm. Placing the units in the map in the 3d editor will add these addons to the relative section of the mission.sqm automatically.
You may want to ask this question in the scripting, mission making forums
Txu_InfoLinks (Briefing with external working links)
in ARMA 3 - USER MISSIONS
Posted
Apologies for bad link, now updated ands working, see first post fore dl link