engima
-
Content Count
548 -
Joined
-
Last visited
-
Medals
Posts posted by engima
-
-
I’ve had some trouble with the allMines command, since it seems to not find all kinds of mines. It may work for this mine class, but something to bear in mind if you change the mine class...
- 1
-
What about performing a count using the ”fired” event handler?
https://community.bistudio.com/wiki/Arma_3:_Event_Handlers#Fired
-
8 hours ago, bondematt said:Is there anyway to make "filter out for current project" permanent? If I change anything in the script the warnings/errors that were filtered out come back.
Currently it warns me about every function "Public variable 'XYZ' may be used before being assigned a value". I'm using "call compileFinal preprocessFile" on the SQF files, so the error doesn't apply in my situation. It also warns about CBA functions, which I believe are preprocessed the same way.
Other than that this has been fantastic. Using version 1.08.
I’ll look into this. Thanks for the feedback!
-
-
New version.
Version 1.08
-Added bracked highlighting (thanks Josef!)
-Added context menu for undo, redo, cut, copy, paste and replace (thanks GHSid!)
-Support for multiline strings in SQF.
-Fixed: The CPack Manager sometimes added non existing file nodes in the project tree view.
-General fixes and improvements.
-SQX: Support for multiline strings.
-
New version.
Version 1.08
- Check objective methods dependent of each other did not work in both directions on mission end.
- 1
-
New version.
Version 1.07
- Changed method name Mission.AddBriefingInfoForActing to AddBriefingActing (and the same for opposing).
- Improved the insertion behavior.
- Added easy access to all common soldier units (in the soldier dictionary).
- Added easy access to all common vehicle units (in the vehicle dictionary).
- Changed the vehicle alias "MRAP" to "CAR" in the vehicle dictionary.
I also added a link to the GitHub repo.
- 1
-
TvT/PvP Campaign Framework (TvTCF) 1.08
by Engima
Overview
This is a framework that makes is easy for anyone with some scripting experience to create beautiful, story-driven, exciting, light weight and well working multiplayer (TvT/PvP) campaigns in Arma 3. The first campaign built on this framework is Operation Shoe Lace.
Features
- Multiplayer 1-40 players.
- Supports creation of TvT/PvP, COOP and SP campaigns.
- As many missions as you want.
- Missions are 30 minutes long (as maximum)
- Missions can have primary and secondary objectives (and a "return to base objective")
- All missions begin with an insertion into an area of action.
- No revive! Spectate on death.
- Campaigns are dynamic. Missions can affect each other, and order of missions can be altered, during the campaign.
- Score. Successful objectives and players kept alive earns score for their team. The team with the highest total score when the campaign ends wins.
- AI bots can be used on both sides (useful when playing e.g. one vs one).
- Easy to get grip of. Full documentation about mission mechanics in dialogs and briefing.
How it works
A TvTCF campaign is actually one Arma 3 mission that is divided into different episodes (TvTCF missions). The mission "resets" itself between each episode, which makes it possible to create a campaign story in which each mission is independent and executed one by one by the "campaign engine".
How to use
This five parts tutorial covers everything, from a newly installed Arma 3 instance (in Windows) until the campaign is played.
TvTCF Video Tutorial Part 1
List of all the videos
- Part 1 - Intro
- Part 2 - Installing The TypeSqf Editor
- Part 3 - Adding The Files
- Part 4 - Creating The First Mission
- Part 4 - Creating The Second Mission
Useful Links
- TypeSqf Editor
- TvTCF framework files (downloaded using the CPack Console in the TypeSqf Editor).
- TvTCF on GitHub (including the Operation Shoe Lace campaign)
Licence
MIT plus minor addition. (See the file TVTCF_LICENSE.txt.)
Dependencies
Arma 3
Compatibility
Works on hosted and dedicated server, and is JIP compatible.
Version History
Version 1.08
- Check objective methods dependent of each other did not work in both directions on mission end.
Version 1.07
- Changed method name Mission.AddBriefingInfoForActing to AddBriefingActing (and the same for opposing).
- Improved the insertion behavior.
- Added easy access to all common soldier units (in the soldier dictionary).
- Added easy access to all common vehicle units (in the vehicle dictionary).
- Changed the vehicle alias "MRAP" to "CAR" in the vehicle dictionary.
Version 1.06
- First version published.
- 4
- 2
-
New version.
Version 1.07
-It is now possible to rename files and folders in the project tree view.
-Fixed: Addressed some stability issues (thanks Josef!).
-Minor fixes and improvements.
- 1
-
14 hours ago, Rosetux said:Hey @engima,
I'm working on a project using SQX and I was wondering if there's a way to initialize public static properties.
I'd like to use a public static property as a class constant, the issue is that there is no way to initialize property at class scope....
Thanks again for SQX !
I'm having a real good time using it 🙂Hi. I'm really glad to hear that you like it!
To initialize a static property I would create a static initializer - a static "Init" method. And then I would call the Init when the mission starts.
public class EndMissionEventHandler { public static method Init() { EndMissionEventHandler.EVENT_NAME = "END_MISSION"; }; public static property String EVENT_NAME { get; private set; }; };
And in init.sqx (or similar):
call compile preprocessFileLineNumbers "EndMissionEventHandler.sqx"; call EndMissionEventHandler.Init;
-
11 hours ago, Linza said:Hi, Engima!
Have you ever thought of introducing a brackets pairing check (), [], {} into the editor? The context menu (Copy, Paste, etc.) would also be useful.
I have. But it will require more effort than I have found motivation for, at least this far. A context menu would be easier I think, so that would maybe come sooner.
But the project is open source, so what I was hoping for was that others would fix such things. 🙂
- 1
-
New version.
Version 1.05
-Made insertion areas black instead of blue.
-Further improved the insertion behavior.
-Increased base size from 100 to 300 meters.
-Minor fixes and improvements.- 2
-
New version.
Version 1.06
-Added support for all script commands up until Arma 3 version 2.00 (ScriptCommands.xml).
-Fixed: General stability issues in CPack manager.
-Fixed: Settings file not updated with new project when a new project is opened.
-SQX: Updated the SQF/SQX analyzer and compiler to version 1.06.
-SQX: Fixed: Analyze of multiple class inheritence levels sometimes resulted in faulty error messages.
-
New version.
Version 1.06
-SQX: Fixed: Analyze of multiple class inheritence levels sometimes resulted in faulty error messages.
-
Why not create a MP mission with one slot on each side instead? Then you also have the benefit to run it on dedicated server and save notable performance on player’s machine. I mean, is there a reason to avoid the MP lobby?
EDIT: It was only meant as a humble question, since I only do MP scenarios. But I think I figured it out. Of course, if only SP is intended, and if you want to package it nicely, then you may not want the MP lobby suggesting you can play it with more than one player. 🙂
-
On 10/16/2020 at 2:58 PM, LSValmont said:May I ask, do you have a discord channel or a channel were you hang the most?
I’ll send you a PM.
- 1
-
New version.
Version 1.02
-Improved insertion handling by making it simpler and more intuitive.
-Added parameter to randomize missions.
-Fixed: spectate camera did not work well in all situations.
-Fixed: Performing insertion with more than one vehicle could explode the vehicles.
-General fixes and improvements.
- 2
-
3 hours ago, jandrews said:This sounds fun. Stratis is kinda lame map.
One suggestion like someone stated and like another older tvt was having the aoe randomized.
I agree about Stratis. But I thought it was fun as a variaty. And it doesn’t really matter for this game mode. I think I found at least one interesting enough local area per mission.
I’ve heard you about playing randomized missions. It will be in the next release.
- 1
-
Hi @Rosetux
The step would not be huge. The TypeSqf project is already divided into two, where the editor is one part and the SQF and the SQX analyzer/compiler is the other. The interface between them is C# classes inside a DLL.
And the TypeSqf editor is already using intellisense for SQX, so that is possible too.
-
Thanks @LSValmont for letting med know about your experience playing! I love that you like the mission. It gives me inspiration to continue on with the project. It's been a bit intense last weeks, you know polishing before a release and so. All that RL stuff that always is getting in the way.... 🙂
- 1
-
Put the code in a file called "mission_counter.sqf" in the Arma 3 mission root folder. (In this case you can skip the first and the last line - the spawn command).
Then in the trigger activation field, write:
_nil = execVM "mission_counter.sqf";
This means that when the trigger fires, the execVM command is executed. This command starts the file mission_counter.sqf that starts to run in the background. Once in a second, this script displays seconds left as a hint.
- 4
-
New version.
Version 1.01
-General fixes and improvements.
-Added parameter to control the campaign's maximum time.- 1
-
[] spawn {
private _timeLeft = 60; // Mission time in seconds.
while {_timeLeft >= 0} do {
hint str _timeLeft;
sleep 1;
_timeLeft = _timeLeft - 1;
};
};
- 4
-
Hi @LSValmont
Thanks for all of your feedback! I look forward to hear what you think about it after the weekend, when you said you were about to play it with friends.
The truck you saw in Cannonball Run was not the target truck. It was an AAF Truck. A challenge in Cannonball Run is to identify the target, and hitting independent or civilian will cost you "guerilla alliance", which you will otherwise gain out of the mission. The AI enemy units do not do anything other than inserting and waiting for human initiative.
The missions in this particular campaign is always in the same order. However, you will play different roles depending on how you progress. The most obvious is that if you win Capture The Airbase you will always play the "airbase owner" role in the rest of the missions.
30 min for seven missions is 3.5 hours. That is a "worst case" scenario though. If objectives for both sides are fulfilled earlier, or e.g. if all players die, then the current mission will end. More likely you play it somewhere in between 1.5 to 2.5 hours. A parameter for the maximum time is still a great idea, and is now written as a TODO.
I have done some fixes, let's see if I manage to release version 1.01 for you in time for the weekend.
- 1
[RELEASE] TvT/PvP Campaign Framework (TvTCF)
in ARMA 3 - MISSION EDITING & SCRIPTING
Posted
Hi!
Yes, it is even more up to date, since Operation Shoe Lace is using version 1.05 of the framework. So a few general features added in current 1.08.
You can use whatever SQF you want to in tandem with the framework. SQX is its own thing, and everything is compiled to SQF anyway, so no limits there. You can call SQF scripts from SQX code and vice versa.
1) Not sure what you mean? Have you noticed that you can teleport a vehicle by sitting in it during teleportation?
2) You can already define a campaign exactly like that, but you will need to define the random logic yourself. But that is easy. Simply override the GetNextMission method in the campaign class.