Enhanced Configuration Project: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
Line 481: Line 481:


==ECP Mission Editing==
==ECP Mission Editing==
The ECP is designed with mission editing in mind, and all ECP settings can be explicitly defined
The ECP is designed with mission editing in mind, and all ECP settings can be explicitly defined by a mission editor for a specific mission. In order to know which values you should modify in the ECP database, take the ECP_Settings.sqf as reference.
by a mission editor for a specific mission. In order to know which values you should modify in the
ECP database, take the ECP_Settings.sqf as reference.


{|class="wikitable collapsible" style="width:70em"
{|class="wikitable collapsible" style="width:70em"
Line 496: Line 494:
mission's init.sqs file you would have:
mission's init.sqs file you would have:
<code>ECP_public set [ 5 , true ]</code>
<code>ECP_public set [ 5 , true ]</code>
This would replace the user-defined value in ECP_Settings.sqf.
This would replace the user-defined value in ECP_Settings.sqf. There are also a great range of values and functions that you can use within your ECP-compatible mission.
There are also a great range of values and functions that you can use within your ECPcompatible
mission.


Here are some important FAQ entries that you should read if you are mission editing with the
Here are some important FAQ entries that you should read if you are mission editing with the ECP:
ECP:
* Why can't I see ECP effects in my cutscenes?
* Why can't I see ECP effects in my cutscenes?
* How do I make non-compatible addons work with the ECP?
* How do I make non-compatible addons work with the ECP?
Line 512: Line 507:
When making missions specifically for use with the ECP, the following values might be useful:
When making missions specifically for use with the ECP, the following values might be useful:
* ECP_server_id / ECP_Internal select 31 (ECP_is_server) - Integer / Boolean
* ECP_server_id / ECP_Internal select 31 (ECP_is_server) - Integer / Boolean
ECP_server_id will contain an ID representing either the dedicated or designated server in an MP
ECP_server_id will contain an ID representing either the dedicated or designated server in an MP game.  
game. It may be:
It may be:
<br>
<br>
<code>ECP_server_id == -2 // Server not yet chosen</code>
<code>ECP_server_id == -2 // Server not yet chosen</code>
Line 534: Line 529:
|-
|-
|
|
ECP system functions
{|class="wikitable collapsible collapsed" style="width:70em"
! <div style="text-align: left;">ECP system functions</div>
|-
|
* <list of units> call (ECP_resources select 30)
* <list of units> call (ECP_resources select 30)
This function, ECP_addUnits, will add <list of units> to the ECP in a particular mission. It is
This function, ECP_addUnits, will add <list of units> to the ECP in a particular mission. It is designed to be used in a trigger with the following characteristics:
designed to be used in a trigger with the following characteristics:
* Size: 50000 x 50000 (as big as the entire map)
* Size: 50000 x 50000 (as big as the entire map)
* Activation: Anybody (Once) when 'Present'
* Activation: Anybody (Once) when 'Present'
Line 544: Line 541:
From ECP 1.057.
From ECP 1.057.
* <"unit or camera"> call (ECP_resources select 25)
* <"unit or camera"> call (ECP_resources select 25)
This function, ECP_addLODTgt, will add <"unit or camera"> to the ECP for the purpose of LOD
This function, ECP_addLODTgt, will add <"unit or camera"> to the ECP for the purpose of LOD calculations. Note that the name of the unit or camera must be enclosed in inverted commas (").
calculations. Note that the name of the unit or camera must be enclosed in inverted commas (").
<br>
From ECP 1.065.
From ECP 1.065.
|}
{|class="wikitable collapsible collapsed" style="width:70em"
! <div style="text-align: left;">ECP Island related functions</div>
|-
|
* <island array> call (ECP_resources select 37)
ECP_AddIsland adds a new island to the ECP island array. This should be done right at the start of a mission. <island array> is as per that described in ECP_Island_Settings.sqf. If the island name already exists, the new island array will replace the old one. Mission designers can use this function to specify their own island settings (rather than use player-defined ones).
* [<resolution>,<terrain size>,<num indexes>] call (ECP_resources select 37)
A key component of an island definition is the island matrix. This is the 'key' used to determine what island is currently being used. This function, ECP_GetMatrix, will display a dialog that can be used to calculate the island matrix. See ECP_Island_Settings.sqf for more information.
|}
{|class="wikitable collapsible collapsed" style="width:70em"
! <div style="text-align: left;">ECP Height and Distance functions</div>
|-
|
* [<object>,<game logic unit>] call (ECP_resources select 6)
ECP_getASLHgt returns the height above sea level of <object>.
* [<position>,<game logic unit 1>,<game logic unit 2>] call (ECP_resources select 7)
ECP_getASLHgtPos returns the height above sea level of <position>.
* [<position 1>,<position 2>] call (ECP_resources select 8)
ECP_distancePos returns the 2D distance of <position 1> to <position 2>.
* [<position 1>,<position 2>] call (ECP_resources select 9)
ECP_distancePosSqr returns the 2D distance squared of <position 1> to <position 2>. This is faster than ECP_distancePos because it doesn't perform a sqrt.
* [<position 1>,<position 2>,<game logic unit 1>,<game logic unit 2>] call (ECP_resources select 10)
ECP_distancePos3D returns the 3D distance from <position 1> to <position 2>. This is a slow, inefficient function. Positions are expected to be height above ground level.
* [<position 1>,<position 2>] call (ECP_resources select 11)
ECP_distance3D returns the 3D distance from <position 1> to <position 2> using pythagoras theorem. It is expected that the two positions are height above sea level.
* [<position 1>,<position 2>] call (ECP_resources select 12)
ECP_distance3DSqr returns the 3D distance squared from <position 1> to <position 2>. This is faster than ECP_distance3D because it doesn't perform a sqrt.
|}
{|class="wikitable collapsible collapsed" style="width:70em"
! <div style="text-align: left;">ECP Direction functions</div>
|-
|
* [<position 1>,<position 2>] call (ECP_resources select 3)
ECP_getDirPos returns the direction in degrees from <position 1> to <position 2>.
* [<unit>,<position>] call (ECP_resources select 4)
ECP_getDirRelPos returns the relative direction in degrees from <unit> to <position>. 0 degrees is considered to be to the direct front of <unit>, 90 is to the right etc.
* [<position>,<center_angle>,<sector width>,<position in sector>] call (ECP_resources select 5)
ECP_inAng returns true if <position in sector> is within the sector at <center_angle> degrees of an angle <sector width> degrees wide.
|}
{|class="wikitable collapsible collapsed" style="width:70em"
! <div style="text-align: left;">ECP Vector related functions</div>
|-
|
A vector is considered to be an array containing 3 elements: [x,y,z].
* [<vector 1>,<vector 2>] call (ECP_resources select 15)
ECP_vDiff returns a vector which is the difference between <vector 1> and <vector 2>.
* <vector> call (ECP_resources select 16)
ECP_vMag returns a number which is the magnitude of <vector>.
* <vector> call (ECP_resources select 17)
ECP_vDir returns a number which is the direction of <vector>.
* <vector> call (ECP_resources select 18)
ECP_vUnit returns a unit vector from <vector>.
* [<position 1>,<position 2>,<game logic unit 1>,<game logic unit 2>] call (ECP_resources select 19)
ECP_vVelUnit returns a velocity vector from <position 1> to <position 2>. Positions are expected to be height above ground level. The returned velocity vector will be a unit vector.
* [<vector>,<number>] call (ECP_resources select 20)
ECP_vMultiply returns <vector> multiplied by <number>.
* [<vector 1>,<vector 2>] call (ECP_resources select 21)
ECP_vAdd returns <vector 1> added to <vector 2>. From ECP 1.057.
|}
{|class="wikitable collapsible collapsed" style="width:70em"
! <div style="text-align: left;">ECP Misc functions</div>
|-
|
* [<variable>] call (ECP_resources select 0)
ECP_is_Null returns true if <variable> is not defined. Ensure <variable> is not an array or you will CTD.
* [<variable>] call (ECP_resources select 1)
ECP_is_scalar returns true if <variable> is not defined. Meant for use if <variable> is an array.
* [<number1>,<number2>] call (ECP_resources select 2)
ECP_getRandom returns a random value between <number1> and <number2>.
* <array> call (ECP_resources select 23)
ECP_randomElement returns a random element from <array>.
* <array> call (ECP_resources select 24)
ECP_randomIndex returns a random index (number) from <array>.
* <number> call (ECP_resources select 13)
ECP_roundn round <number> to the nearest whole number.
* [<variable>,...] call (ECP_resources select 14)
ECP_echo prints the value of <variable> to the screen. This is the same as doing hint
format["%1",<variable>].
* [<position>,<distance>,<resolution>,<type>] call (ECP_resources select 22)
ECP_nearestObjs returns an array of units of class <type> around <position>, out to a distance of <distance>. <resolution> is the number of meters between nearestObject calls. <position> is a 2D or 3D vector. <distance> and <resolution> are numbers. <type> is a string (object class name). This function is neither fast nor accurate. For experimental use only.
|}
|}
|}
|}
|}

Revision as of 14:46, 1 June 2013


ECP Cover

Enhanced Configuration Project (ECP)

The Enhanced Configuration Project aims to increase the potential of OFP through providing enhanced configuration files and associated scripts that run without any in-mission triggers or code.

ECP installer

The ECP provides:

  • Improved gameplay
  • Big brained AI
  • Additional special effects
  • Improved sound
  • Realism enhancements


ECP is an OFP 'modification' consisting of the following components:

  • ECP Core
  • ECP Dynamic Speaking AI
  • ECP Dynamic Range sounds
  • ECP Radio Chatter

You only need the ECP Core, however it is highly recommended that you download the other plug-ins as well.

In addition to increasing the enjoyment of the game for individuals, we aim to provide an open-source enhanced configuration for use by all mods.


Using the ECP

Core Features

There are many reasons why you should use the ECP mod instead of standard OFP. OFP provides a rich scripting language and configuration system, and we have tried to push the envelope with regards to in-game effects without you requiring a P4 3.0 GHz in order to enjoy it. The ECP does not provide new units or terrain. Our overall goal is to improve the quality of gameplay through configuration modification and effects scripting. We'll leave the addons to those who are skilled in that area, and we offer the ECP as a backbone to whoever is interested. The ECP (core) provides the following features across all OFP missions and campaigns.

General:

ECP Performance:

Simulations:

Effects:

Optional Plugins

ECP Plug-Ins are ECP exclusive addons that resort to the existing structure to provide new features - new experiences. Install, enable and experiment! Download plug-ins from the ECP links at the bottom of the page.

Sounds:

ECP Settings

The ECP has both new effects and simulations. Effects are purely visual changes to enhance your OFP experience. Simulations are 'things that happen' and they may modify gameplay.

There are two ways to configure ECP effect and simulation settings:

  1. Via the settings files in the @ECP folder, or
  2. Via the ECP settings dialog.

Settings:

ECP Multiplayer

The ECP is fully compatible with MP play. It is recommended that all computers play with the ECP mod to prevent 'modified config.bin' error messages. It is important that all computers have the same version of the ECP as well.

You may play on non-ECP servers with the ECP installed, however many effects will not be visible because a number of important eventhandlers are registered on remote computers, not your own.

The ECP will operate in either dedicated or designated server mode.

Multiplayer:

ECP Mission Editing

The ECP is designed with mission editing in mind, and all ECP settings can be explicitly defined by a mission editor for a specific mission. In order to know which values you should modify in the ECP database, take the ECP_Settings.sqf as reference.

Mission Editing:

ECP Promotional Media

Screenshots

Working Lighthouses
Boat explosion stage 1
Boat explosion stage 2
Boat explosion stage 3
Persistent shell casings
Burning vehicle crew
Atmospheric Church lighting 1
Atmospheric Church lighting 2
Camp fire smoke and embers
Atmospheric fountain lighting and particles
Grenade particle effects
Bouncing hand grenades
Helicopter insertion command interface
Vehicle magazine explosion particle effects 1
Vehicle magazine explosion particle effects 2
Enhanced Night Vision
Realistic street lamp illumination 1
Ordnance water impact particle effects
Ordnance impact particle effects
Missile trail Particle effects

Videos

Alt text

Review

Review by Shadow - BIS Forum Admin

External Links

Release Announcement

ECP Homepage DEAD LINK

ECP 1.085e (latest patch) BI forum release thread

ECP 1.085 Official OFPEC forum release thread

Download

ECP 1.085 download at Operation Flashpoint Files (+1.085e Patch)