Fandom

武装突袭 Wiki

Script (File)

简体 | 繁體

4,827个页面创建
于此维基上
添加新页面
评论0 分享

您使用了广告屏蔽软件!


Wikia通过广告运营为用户提供免费的服务。我们对用户通过嵌入广告屏蔽软件访问网站进行了使用调整。

如果您使用了广告屏蔽软件,将无法使用我们的服务。请您移除广告屏蔽软件,以确保页面正常加载。


A script is a chunk of code grouped together in a seperate textfile. This code does a specific task handled by the game engine. The common extensions for scripts are .sqs and .sqf, depending on the used syntax (see below). You can use any text editor like Notepad to edit scripts.

A special kind of a script is a function.

Usage 编辑

Scripts are mainly used for any game processes where timing is important. They are unlike functions where the result or calculation is important.

Thus scripts can be used for cutscenes, dialogs, radio scripting and much more.

Syntax 编辑

In Operation Flashpoint, scripts are limited to SQS syntax.

In Armed Assault, the already existing SQF syntax was introduced for scripts. SQS syntax is still usable, but is considered deprecated in Armed Assault.

Execution 编辑

File:Script Execution.png

Scripts can be executed from several points in the game:


The commands to execute scripts are:

exec
exec starts a thread for a script in SQS syntax.
execVM (Armed Assault only)
execVM compiles a script in SQF syntax and starts a thread for it.
spawn (Armed Assault only)
spawn starts a thread for compiled Code and returns a script handle.


Note: The following statements do not apply for functions.

Scripts run alongside (parallels) the executing instance in their own threads. That means that the executing instance (i.e. script or function) doesn't wait for the script to end. This means scripts should not be used for code that should return a value used in the calling script. This is done by functions.

Since Armed Assault, scripts return a script handle which you can use to verify whether a script is still running.

Special Variables 编辑

_time in both syntax ?

Special Commands 编辑

Due to the fact, that calling instances aren't waiting for the scripts to end, scripts can be halted for a custom period of time. There are different methods to do this in SQF syntax (Armed Assault only) and SQS syntax (deprecated since Armed Assault).

SQF syntax 编辑

Delay
You can set the script to sleep for a number of seconds using the command sleep.
STATEMENT 1;

// wait 10 seconds
sleep 10;

STATEMENT 2;
Waiting for a condition
You can set the script to sleep until a specific condition is met using the command waitUntil.
BOOL = false;

// wait until BOOL gets true
waitUntil BOOL;

STATEMENT;

SQS syntax 编辑

Delay
You can set the script to sleep for a number of seconds by introducing a line with ~, followed by the number of seconds.
STATEMENT 1

; wait 10 seconds
~10

STATEMENT 2
Waiting for a condition
You can set the script to sleep until a condition is met by introducing a line with @, followed by the condition.
BOOL = false

; wait until BOOL gets true
@BOOL

STATEMENT
Waiting for a time
You can set the script to sleep until a time (number of seconds since the beginning of the script) is met by introducing a line with &, followed by the time.
&100

; is equivalent to 

@_time >= 100

See also 编辑

更多维基

随机维基