This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
arma2:scripting [2009-05-31 16:58] snakeman created scripting initial page. |
arma2:scripting [2015-06-08 02:24] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Scripting ====== | ||
- | **initJIPcompatible.sqf** is automatically started at unknown time, best guess would be when JIP player joins? | ||
- | |||
- | |||
- | ====== Scripting Commands ====== | ||
- | |||
- | There's a lot of cool scripts (functions) available in Modules.pbo - especially under "Functions" and even an multiplayer Framework in "MP". | ||
- | |||
- | Since ArmA 2 you must first initialize a variable before you reference it in your scripts. In ArmA, it was not a problem, at least for conditions. | ||
- | <code cpp> | ||
- | // this will error if myBoolean was not previously defined. | ||
- | if (myBoolean) then { hint "test" }; | ||
- | </code> | ||
- | Usage of isNil is still valid. | ||
- | |||
- | |||
- | ===== BIS fnc locations ===== | ||
- | |||
- | BIS fnc locations | ||
- | |||
- | Description: Creates or registers location logics (used in various modules, like [[arma2:editor_modules:alice|Ambient Civilians]], [[arma2:editor_modules:silvie|Ambient Civilian Vehicles]] or Warfare 2). | ||
- | |||
- | Upon registering, function will set following variables into location logic's variable space: | ||
- | |||
- | * "class" - unique class of location (either BIS_loc_<configname> or BIS_loc_custom_<ID>) | ||
- | * "name" - name of location from config or setName command. If none is defined, class is used | ||
- | * "type" - config type | ||
- | * "neighbors" - config defined neighbor locations | ||
- | |||
- | If you're registering currently existing object and some of variables above is already stored in it, it won't be replaced. | ||
- | |||
- | Syntax | ||
- | |||
- | Syntax: [type(s),area,debug] call BIS_fnc_locations | ||
- | |||
- | Parameters: type(s): String or Array of strings\\ | ||
- | area: Array in format [center,distance]\\ | ||
- | debug: (Optional): Boolean | ||
- | |||
- | Return Value: Array - List of registered locations | ||
- | |||
- | Alternative Syntax | ||
- | |||
- | Syntax: [objects] call BIS_fnc_locations | ||
- | |||
- | Parameters: objects: Array of Objects or Locations - list of specific locations to be registered | ||
- | |||
- | Return Value: Array - List of registered locations | ||
- | |||
- | Examples | ||
- | |||
- | Example 1: | ||
- | <code cpp> | ||
- | ["CityCenter",[position player,1000]] call bis_fnc_locations; | ||
- | </code> | ||
- | |||
- | Example 2: | ||
- | <code cpp> | ||
- | [["acityc_dolina"]] call bis_fnc_locations; | ||
- | </code> | ||
- | |||
- | Example 3: | ||
- | <code cpp> | ||
- | [[myLocation1,myLocation2],[],true] call bis_fnc_locations; | ||
- | </code> | ||
- | |||
- | See also: | ||
- | |||
- | Functions Library (above hehe) | ||
- | |||
- | ===== allowDamage ===== | ||
- | |||
- | Description: Allow an object to be damaged (or injured, or killed). | ||
- | |||
- | Syntax: object allowDamage allow | ||
- | |||
- | Parameters: object: Object - allow: Boolean - | ||
- | |||
- | Example 1: | ||
- | <code cpp> | ||
- | player allowDamage false | ||
- | </code> | ||
- | |||
- | |||
- | ===== setVariable ===== | ||
- | |||
- | setVariable now has a 3rd parameter: Global. | ||
- | |||
- | If you set the 3rd parameter to true, the variable will broadcast its value to every machine. | ||
- | <code cpp> | ||
- | _myObject setVariable ["myVariable", 1, true]; | ||
- | </code> | ||
- | |||
- | setVariable is now usable on any object, like groups for instance. This was not the case in ArmA. | ||
- | |||
- | |||
- | ===== uiNameSpace ===== | ||
- | |||
- | Working with UI related scripting commands, is not accepted in global or private variable space, and needs to be done inside uiNameSpace by using setVariable. | ||
- | |||
- | example: | ||
- | <code cpp> | ||
- | // set it | ||
- | uiNameSpace setVariable ["myVariable", ctrl...]; | ||
- | // use it | ||
- | ctrl.... (uiNameSpace getVariable "myVariable"); | ||
- | </code> | ||
- | |||
- | |||
- | ===== createDiaryRecord ===== | ||
- | |||
- | createDiaryRecord | ||
- | |||
- | <code cpp> | ||
- | _diary = player createDiaryRecord ["Diary", ["Technische Details", "Keine"]]; | ||
- | </code> | ||
- | |||
- | |||
- | ===== createSimpleTask ===== | ||
- | |||
- | createSimpleTask | ||
- | |||
- | <code cpp> | ||
- | task1 = player createSimpleTask ["obj1"]; | ||
- | </code> | ||
- | |||
- | |||
- | ===== setSimpleTaskDescription ===== | ||
- | |||
- | setSimpleTaskDescription | ||
- | |||
- | <code cpp> | ||
- | task1 setSimpleTaskDescription ["Description <marker name=""Start"">Start</marker> posit.","more text","more text"]; | ||
- | </code> | ||
- | |||
- | |||
- | ===== setSimpleTaskDestination ===== | ||
- | |||
- | setSimpleTaskDestination | ||
- | |||
- | <code cpp> | ||
- | task1 setSimpleTaskDestination markerPos "Start"; | ||
- | </code> | ||
- | |||
- | |||
- | ===== setTaskState ===== | ||
- | |||
- | setTaskState | ||
- | |||
- | <code cpp> | ||
- | task1 setTaskState "Created"; | ||
- | </code> | ||
- | |||
- | |||
- | ===== setCurrentTask ===== | ||
- | |||
- | setCurrentTask | ||
- | |||
- | <code cpp> | ||
- | player setCurrentTask task1; | ||
- | </code> | ||
- | |||
- | |||
- | ===== attachTo ===== | ||
- | |||
- | attachTo, see also detach. | ||
- | |||
- | <code cpp> | ||
- | // Make player float exactly 2m above center of car, automatically changing vectordir + relative position as car moves. | ||
- | player attachTo [car, [0,0,2]]; | ||
- | detach player; | ||
- | </code> |