Brunk

How to start making scripts?

4 posts in this topic

Hello.

Im interested in making advanced scripts for exile mod.

AS my first project i want to try and make vehicle capacity overrides.

Please dont say its impossible.

Only thing im asking for is, which Language are scripts made in (like dms missions for example)? Is it c++?

I want to make script that will limit capacity of vehicles. My idea is when reaching specified ammount of capacity in vehicle Player will get notified: Capacity limit has been reached. Item dropped on the ground!

And then game will drop item on ground.

I want to do script myself because i didnt find anything like this.

Im sceptic about expanding capacity (maybe if script will create virtual expansion of existing capacity?)

If i will succed with 1st one then i will try with second one.

Any help is appreciated, cheers.

Share this post


Link to post
Share on other sites

Lets dissect this.

1 hour ago, Brunk said:

Only thing im asking for is, which Language are scripts made in (like dms missions for example)? Is it c++

No, It's not C++.

SQF is a "scripting language" mashup of many other languages. 

SQF = Status Quo Function

For details on the syntax view (Also check out the "See Also" section at the bottom): https://community.bistudio.com/wiki/SQF_syntax

1 hour ago, Brunk said:

AS my first project i want to try and make vehicle capacity overrides.

Please dont say its impossible.

I want to make script that will limit capacity of vehicles. My idea is when reaching specified ammount of capacity in vehicle Player will get notified: Capacity limit has been reached. Item dropped on the ground!

And then game will drop item on ground.

To increase / decrease the capacity of a vehicle it requires a mod. But it is possible (ish) to make it so when the vehicle reaches a capacity to put the items in the secondary container (that's created when opening the gear of a vehicle)

Best place to start would be: https://community.bistudio.com/wiki/Arma_3:_Event_Handlers#Put

 

Here is a list of wiki's that will become your best friend, so bookmark them:

https://community.bistudio.com/wiki/All_Arma_Commands_Pages

https://community.bistudio.com/wiki/Category:Arma_3:_Functions

https://community.bistudio.com/wiki/Category:Scripting_Commands_Arma_3

https://community.bistudio.com/wiki/Arma_3:_Event_Handlers

https://community.bistudio.com/wiki/User_Interface_Event_Handlers

https://community.bistudio.com/wiki/DIK_KeyCodes

  • Like 3

Share this post


Link to post
Share on other sites
Advertisement

While reading the above links, examine other people's scripts.  When I started, this was all that existed.  Also, open up the editor and PRACTICE.  You can put your script in the mission's folder and set a radio trigger to activate it.  If it fails, tab out to Windows, correct the script, then come back into ARMA and activate the trigger again.  Of course, you will not be able to do this (trigger) with every script though...

You WILL make mistakes, though this is part of LEARNING how to script.  Do not get frustrated!  ;)

 

If you have any experience in any type of formal programming, it will serve you well in ARMA's scripting.  Do note though, ARMA's scripting is 'weird' to say the least and you will know this when you look at the syntax of the commands.  It is not consistent.

Also, there are three 'languages' for ARMA

#1 - ??? (I have no idea the original name for this one.  This was with OFP and used the SQS extension)

#2 - SQS (Also with OFP)

#3 - SQF

(There are actually more.  Three more if memory serves me well.  Two are SQM and FSM files.)

#1 makes use of some weird commands that are just characters and can be combined with #2.  Commands such as #, ~, and ?.

You could write a complete script in just #1 called 'Test.SQS':

#Start

~3

?Hello

GOTO Start

When run, it waits for 3 seconds then prints to the chat box 'Hello' and restarts.

You can equate ?.SQS and ?.SQF files to ?.Com and ?.Exe files in a 'bad' way.

 

#1 can be used in #2.  I THINK it can be used in #3.  Do note too, #2 and #3 have different syntax.  See below.

Examples:

#2 - _vehic = _this select 0

#3 - _vehic = _this select 0;  <-- Semi-colon is added at end of the line, but not in #2 at the end of the line

 

#2 - Comments use the " ; " (semi-colon) at the start of the line - ; This is a comment line

#3 - Comments use the " // " (forward slash *2) at the start of the line - // This is a comment line

 

#2 - GOTO command exists

#3 - GOTO command does not exist

 

A SQS can 'call' (sub-routine) a SQF.  I personally never have tried having a SQF file call a SQS, though I think you can.  So you can use a 'mixture' of each.  Also note, there is a time difference between a SQS and a SQF run times for the same action(s), if memory serves me well, along with PC memory usage too.  I also think a SQS file is run sequentially and a SQF is run in a 'parallel' fashion (multitasking) or something like this.  This part I am not to knowledgeable in.

 

--->  SQF is the 'modern/mature' scripting language of ARMA  <---

 

Good tool(s) is to use:

NotePad++

Notepad++ SQF Syntax Highlighting and Auto Completion - (Add-on For NotePad++ For ARMA Scripts)

 

 

Best Learning Website:

KillZone Kid

If you know how to download a site, I would HIGHLY recommend his site as his site is soon to close.  Not only is this guy a super sharp ARMA scripter, he actually worked (or does) for Bohemia doing the scripting for ARMA.

 

Again, best bet is to examine other people's code, read the above links from the post above mine, get the tools I recommend, and read KillZone Kid's website.

 

Good luck!

:)

 

  • Like 2

Share this post


Link to post
Share on other sites
Advertisement

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.