Compare commits

...

35 Commits

Author SHA1 Message Date
rarantes 0bea545612 feat(BRAF NAVAL TURRETS)
Deploy DEV Workshop / deploy-dev-workshop (push) Failing after 3m5s
2026-08-08 22:36:33 -03:00
rarantes 9bd92bd492 fix(braf_air): env_land_co.paa path fixed in damage rvmats
Deploy DEV Workshop / deploy-dev-workshop (push) Failing after 4m32s
2026-08-07 19:12:02 -03:00
valmojr 353b1f215c Merge branch 'main' of https://git.valmo.dev/projectbraf/braf
Deploy DEV Workshop / deploy-dev-workshop (push) Successful in 57s
2026-08-06 19:36:52 -03:00
valmojr a5e660eccd fixed semicolon error on guarani model.cfg 2026-08-06 19:36:50 -03:00
rarantes 533fdcc899 fix(rvmats) several (145) rvmat files calling env_land_co.paa with wrong paths on Stage 7
Deploy DEV Workshop / deploy-dev-workshop (push) Failing after 12m24s
2026-08-03 21:28:34 -03:00
rarantes 01e339c46f docs(braf): record class and path normalization
Deploy DEV Workshop / deploy-dev-workshop (push) Successful in 1m0s
2026-08-03 16:20:30 -03:00
rarantes 92dbbac555 docs(braf): atualiza changelog do guia de desenvolvimento
Deploy DEV Workshop / deploy-dev-workshop (push) Successful in 1m5s
2026-08-03 16:06:12 -03:00
rarantes 713d9cfd7f fix(braf_insignia)
Deploy DEV Workshop / deploy-dev-workshop (push) Failing after 5m11s
Wrong path to a3\data_f\env_co.paa in all FAB rvmat rank files
Missing 2bavex.paas
2026-08-03 16:01:12 -03:00
rarantes e86ae2628f fix(braf) Naming convention for all classes and paths to use lowercase letters.
Deploy DEV Workshop / deploy-dev-workshop (push) Failing after 3m50s
2026-08-03 15:49:07 -03:00
rarantes 542242111d Merge branch 'main' of https://git.valmo.dev/projectbraf/braf
Deploy DEV Workshop / deploy-dev-workshop (push) Failing after 16m11s
2026-08-03 15:19:33 -03:00
rarantes 3b99904aa7 fix(braf_air2) Naming clonvention for all classes and paths to use lowercase letters. 2026-08-03 15:19:22 -03:00
rarantes 3af8760da3 fix(braf_air) Naming convention for all classes and paths to use lowercase letters. 2026-08-03 15:15:58 -03:00
rarantes 554e0fa28d Atualizar README.md
Deploy DEV Workshop / deploy-dev-workshop (push) Successful in 49s
2026-08-03 01:23:48 +00:00
rarantes 6324a368de docs(repo): expand Arma 3 development guide
Deploy DEV Workshop / deploy-dev-workshop (push) Successful in 47s
2026-08-02 18:23:50 -03:00
rarantes 3d2edb64c4 docs(repo): expand Arma 3 development guide
Deploy DEV Workshop / deploy-dev-workshop (push) Successful in 44s
2026-08-02 20:59:06 +00:00
rarantes 418bd3fe75 docs(repo): expand Arma 3 development guide
Deploy DEV Workshop / deploy-dev-workshop (push) Successful in 46s
2026-08-02 17:58:02 -03:00
rarantes 07e7f053ad docs(repo): expand Arma 3 development guide
Deploy DEV Workshop / deploy-dev-workshop (push) Successful in 50s
2026-08-02 17:48:30 -03:00
rarantes 6d001e42fe feat(ships): update A-140 configuration
Deploy DEV Workshop / deploy-dev-workshop (push) Failing after 4m21s
2026-08-02 17:31:05 -03:00
rarantes 0791b25e57 feat(naval-weapons): Update the naval weapons changelog. 2026-07-31 22:17:09 -03:00
rarantes 4512f2c67e feat(naval-weapons): improve ASM missile exhaust effects
- Use the vanilla CruiseMissile smoke effect.
- Position the emitter using the fire_beg and fire_end memory points.
- Generalize the function for future ASM missiles.
2026-07-31 21:52:36 -03:00
rarantes 722699d73e fix(am39): Missile proxy repositioned in Caracal p3d and proxy model changed in CfgMagazines
Deploy DEV Workshop / deploy-dev-workshop (push) Failing after 2m6s
2026-07-30 21:24:41 -03:00
rarantes 9f893a21dd fix(AM39): named property forcenotalph=1 adde to geometry lod
Deploy DEV Workshop / deploy-dev-workshop (push) Failing after 2m2s
2026-07-29 22:21:29 -03:00
rarantes e787e1f070 Merge branch 'main' of https://git.valmo.dev/projectbraf/braf
Deploy DEV Workshop / deploy-dev-workshop (push) Failing after 2m33s
2026-07-29 21:49:08 -03:00
rarantes a0236cc0ad fix(AM39):
1- Proxy changed from braf_am39_fly to pylonpod_3x_missile_agm_02_f on both sides
2- Named Property autocenter=0 added to AM39 P3Ds geometry lods.
2026-07-29 21:47:27 -03:00
Valmo Trindade f492aacf78 fix(ci): run workshop builds with local Mikero
Deploy DEV Workshop / deploy-dev-workshop (push) Failing after 15m35s
2026-07-30 00:43:00 +00:00
Valmo Trindade 39352a0d76 fix(ci): forbid raw PBO workshop uploads
Deploy DEV Workshop / deploy-dev-workshop (push) Failing after 34s
2026-07-30 00:01:39 +00:00
Valmo Trindade 4526cbb33a fix(ci): seed missing dev workshop PBOs
Deploy DEV Workshop / deploy-dev-workshop (push) Successful in 29m19s
2026-07-29 22:42:48 +00:00
Valmo Trindade 4539d3d230 fix(ci): run workshop build container as root
Deploy DEV Workshop / deploy-dev-workshop (push) Failing after 1m57s
2026-07-29 22:37:29 +00:00
Valmo Trindade 6b50cfbc27 fix(ci): use runner host paths for dev workshop
Deploy DEV Workshop / deploy-dev-workshop (push) Failing after 5s
2026-07-29 22:33:18 +00:00
rarantes 166c027686 feat(AM39 Exocet):
Deploy DEV Workshop / deploy-dev-workshop (push) Failing after 41m32s
1- Created braf_weapons_naval for asw and asw naval
2- Added AM39 Exocet anti ship missile
2026-07-28 21:33:35 -03:00
rarantes 31d12bbc0b fix(a140): changes at proxies position 2026-07-28 14:31:19 -03:00
rarantes 7d68aa4296 fix(caracal): removed duplicated proxy for MANSup operator and fixed compartment division for air crew; removed efs p3d placeholder
Deploy DEV Workshop / deploy-dev-workshop (push) Failing after 1m57s
2026-07-26 13:37:00 -03:00
rarantes 9bd9aae32d feat(A140): Implemented A140 as static object 2026-07-26 13:35:14 -03:00
rarantes 020aa20916 fix(caracal): transport soldiers count fixed for SAR and Heavy Cargo versions 2026-07-25 21:54:48 -03:00
rarantes e87648d063 feat(caracal): Started phase 1 of MANSUP integration on AH-15B Super Cougar:
- new p3d for Braf_Caracal main model;
- new p3d Braf_Caracal_ah15b with radar and missile hangers;
- new camo6 paas, for navy;
- Added BRAF_Caracal_10 class with MANSUP operator station turret with proxy index 3.
2026-07-25 20:45:25 -03:00
1156 changed files with 20230 additions and 18345 deletions
+38 -19
View File
@@ -7,8 +7,8 @@ on:
env: env:
STEAM_APP_ID: "107410" STEAM_APP_ID: "107410"
HOST_REPO: /home/valmo/braf HOST_REPO: /data/valmo/braf
HOST_CACHE: /home/valmo/braf-ci-cache/dev-workshop HOST_CACHE: /data/valmo/braf-ci-cache/dev-workshop
BRAF_CI_STAGE_DIR: dist/dev/@braf_dev BRAF_CI_STAGE_DIR: dist/dev/@braf_dev
jobs: jobs:
@@ -29,9 +29,9 @@ jobs:
run: | run: |
set -euo pipefail set -euo pipefail
mkdir -p "$HOST_CACHE"
docker run --rm -i \ docker run --rm -i \
--user root \
-e BRAF_CI_STAGE_DIR \ -e BRAF_CI_STAGE_DIR \
-e GIT_BEFORE \ -e GIT_BEFORE \
-e GIT_SHA \ -e GIT_SHA \
@@ -46,7 +46,7 @@ jobs:
-v "$HOST_REPO:/repo" \ -v "$HOST_REPO:/repo" \
-v "$HOST_CACHE:/cache" \ -v "$HOST_CACHE:/cache" \
-v /var/run/docker.sock:/var/run/docker.sock \ -v /var/run/docker.sock:/var/run/docker.sock \
docker.gitea.com/runner-images:ubuntu-latest \ valmo/braf-mikero:3.23.8.60 \
bash -s <<'BRAF_CI' bash -s <<'BRAF_CI'
set -euo pipefail set -euo pipefail
@@ -65,22 +65,25 @@ jobs:
} }
install_mikero() { install_mikero() {
if [[ ! -x /cache/mikero-tools/bin/makepbo ]]; then export WINEPREFIX=/cache/mikero-wine
rm -rf /tmp/mikero-tools-action /cache/mikero-tools export WINEARCH=win64
mkdir -p /tmp/mikero-tools-action /cache/mikero-tools export WINEDEBUG=-all
curl -fsSL \
https://github.com/arma-actions/mikero-tools/archive/refs/heads/master.tar.gz \ if ! command -v pboProject >/dev/null; then
-o /tmp/mikero-tools-action.tar.gz echo "pboProject is missing from valmo/braf-mikero image." >&2
tar -zxf /tmp/mikero-tools-action.tar.gz \ return 1
--strip-components=1 \
-C /tmp/mikero-tools-action
tar -xf /tmp/mikero-tools-action/linux/*.tar \
--strip-components=1 \
-C /cache/mikero-tools
fi fi
export PATH="/cache/mikero-tools/bin:$PATH" if ! command -v winetricks >/dev/null; then
export LD_LIBRARY_PATH="${LD_LIBRARY_PATH:-}:/cache/mikero-tools/lib" apt-get install -y winetricks
fi
if [[ ! -f "$WINEPREFIX/drive_c/windows/system32/mfc140u.dll" ]]; then
echo "Initializing the persistent Mikero Wine runtime."
xvfb-run -a winetricks -q vcrun2015
fi
sed -i "s#exec /usr/lib/wine/wine64#exec xvfb-run -a /usr/bin/wine#" /usr/local/bin/pboProject
} }
is_zero_sha() { is_zero_sha() {
@@ -179,7 +182,23 @@ jobs:
git_auth lfs fetch origin "$GIT_SHA" --include="$include" --exclude="*" git_auth lfs fetch origin "$GIT_SHA" --include="$include" --exclude="*"
git lfs checkout "${changed_addons[@]}" git lfs checkout "${changed_addons[@]}"
else else
echo "Only workshop metadata changed; using cached PBOs." echo "Only workshop metadata changed; seeding any missing PBO cache entries."
mapfile -t changed_addons < <(
git ls-tree -d --name-only "$GIT_SHA" |
awk "/^braf_/ {print}" |
while read -r addon; do
if git cat-file -e "$GIT_SHA:$addon/config.cpp" 2>/dev/null; then
printf "%s\n" "$addon"
fi
done
)
include=""
for addon in "${changed_addons[@]}"; do
include+="${include:+,}${addon}/**"
done
echo "Fetching LFS for cache seed: $include"
git_auth lfs fetch origin "$GIT_SHA" --include="$include" --exclude="*"
git lfs checkout "${changed_addons[@]}"
fi fi
build_args=( build_args=(
+8
View File
@@ -13,3 +13,11 @@ docs/superpowers/plans/2026-07-18-generic-hoist-function-plan.md
docs/superpowers/plans/2026-07-19-caracal-mb-efs.md docs/superpowers/plans/2026-07-19-caracal-mb-efs.md
tests/test_caracal_mb_efs.ps1 tests/test_caracal_mb_efs.ps1
lfsconfig lfsconfig
docs/superpowers/plans/2026-07-26-a140-geometry-roadway-modularization.md
.agents/skills/arma3-mod-development/SKILL.md
AGENTS.md
.agents/
libs/
docs/superpowers/specs/2026-08-08-sea-snake-30mm-design.md
docs/superpowers/plans/2026-08-08-seasnake-static-ciws.md
braf_weapons_naval/weapons.md
+40
View File
@@ -1,5 +1,45 @@
# Changelog # Changelog
## 2026-08-03
### Normalização de classes e caminhos
- Padronizados nomes de classes e referências de caminhos para a convenção BRAF com identificadores em letras minúsculas nos commits `3af8760`, `3b99904` e `e86ae26`.
- Escopo acumulado: **1.079 arquivos alterados**, com **18.104 linhas adicionadas** e **18.002 linhas removidas**, totalizando **36.106 linhas modificadas**.
- Distribuição por commit: `3af8760` alterou 72 arquivos (+1.558/-1.578), `3b99904` alterou 1.007 arquivos (+16.549/-16.423) e `e86ae26` alterou 2 arquivos (+10/-14).
- A auditoria posterior ainda encontrou 156 declarações e 574 referências com letras maiúsculas após o prefixo `braf_`; a normalização completa permanece pendente.
### Documentação
- Atualizado o README como guia humano de desenvolvimento, com organização do repositório, boas práticas de Arma 3, fluxo de contribuição e checklist de revisão.
- Removidas do README as referências internas de automação, mantendo o documento direcionado exclusivamente ao time de desenvolvedores.
## 2026-07-31
### Armamentos navais
- A fumaça de exaustão dos mísseis ASM passou a utilizar o efeito visual vanilla CruiseMissile, mantendo sua textura, cores e dimensões características.
- O emissor de fumaça agora usa o ponto de memória fire_beg como origem e o vetor fire_beg → fire_end como direção da emissão, evitando a geração no centro ou abaixo do míssil.
- As funções de efeitos ASM foram reorganizadas na pasta braf_functions, com a função renomeada para fn_ASMEngineSmoke.sqf.
- O efeito braf_asm_engineeffects e o emissor de fumaça foram movidos para as classes-base ASM, permitindo reutilização por futuros mísseis antinavio.
## 2026-07-30
### Armamentos navais
- O AM39 Exocet foi integrado ao pacote de armamentos navais usando a base de míssil de cruzeiro, com modelo de voo próprio, ignição retardada de 1,5 segundo e animações de estágio de lançamento, cruzeiro e estabilizadores.
- Criadas as definições de munição, magazine, hardpoint e arma do AM39 para emprego aerotransportado.
- Configurada a ejeção do míssil sem velocidade inicial (`initSpeed=0` e `ejectSpeed[]={0,0,0}`), permitindo a queda gravitacional antes da ignição do motor.
- Ajustado o ciclo de efeitos do AM39 para usar o atraso de ignição vanilla: queda gravitacional sem partículas, labareda e emissor contínuo de fumaça branca juntos na ignição por 2 segundos e voo posterior sem efeitos.
### Aeronaves
- O AH-15B Super Cougar (Caracal) recebeu dois pylons dinâmicos para o AM39, um em cada bordo, com presets `Empty` e `AM39 Exocet 2x`.
- O pylon direito foi configurado como posição espelhada do pylon esquerdo e o armamento foi vinculado à estação do Weapons Officer.
- Adicionada a estação `BRAF_AM39_Gunner_Turret`, herdada da Crew Chief Turret, sem função de copiloto ou partida do motor, mantendo o emprego do sensor FLIR/laser designator.
- Os proxies dinâmicos do Caracal foram ajustados para o sistema de pylons.
- O modelo do store do AM39 passou a usar `PylonMissile_1x_Bomb_02_F.p3d`, fazendo o proxy desaparecer corretamente do helicóptero após o disparo.
## 2026-07-19 ## 2026-07-19
### Aeronaves ### Aeronaves
+467 -109
View File
@@ -1,159 +1,517 @@
# **Brazilian Armed Forces (BRAF) Mod** # Brazilian Armed Forces (BRAF) Mod
![BRAF Mod](https://i.imgur.com/Fe7obui.png "BRAF Mod") ![BRAF Mod](https://i.imgur.com/Fe7obui.png "BRAF Mod")
Aqui consta o repositório do BRAF Mod, modificação para a plataforma Arma 3 inspiranda nas Forças Armadas Brasileiras, a ser utilizado por seus desenvolvedores procurando seguir boas práticas de programação. o versionamento do repositório é feito através do GIT utilizando o seguinte repositório: Repositório de desenvolvimento do **Brazilian Armed Forces (BRAF) Mod**, uma modificação para **Arma 3** inspirada nas Forças Armadas Brasileiras.
> <http://dev.brafmod.com.br/projectbraf/braf>
## Checklist de Asset por LODs - Jogo-alvo: Arma 3
- Engine: Real Virtuality 4
- Plataforma de código: SQF, `config.cpp`, `.hpp`, `.ext`, `.fsm` e `model.cfg`
- Autor de mods e addons BRAF: `BRAF TEAM`
- Repositório: [git.valmo.dev/projectbraf/braf](https://git.valmo.dev/projectbraf/braf)
- Licença e regras de distribuição: [LICENSE.md](LICENSE.md) e [LICENSE_PT-BR.md](LICENSE_PT-BR.md)
### LODs de distância Este é um repositório de **fonte**. O checkout contém configurações, scripts, modelos, texturas, materiais, sons, animações, documentação, ferramentas e referências usadas para desenvolver os addons. O jogo carrega addons por meio de PBOs, mas a validação do código-fonte e dos assets deve ser feita antes de qualquer processo de release.
- LOD 1..n Este README é o guia de trabalho do time de desenvolvimento. Use-o para entender a organização do projeto, tomar decisões compatíveis com Arma 3 e revisar alterações antes de integrá-las. Em caso de conflito, preserve primeiro o comportamento público existente e confirme a decisão com os responsáveis pelo addon afetado.
QUALQUER ASSET DEVE TER LODs DE DISTÂNCIA
- Usar modificador decimate (Blender) em 0.5 como fator entre um LOD e outro além de retirar partes pequenas de acordo com cada LOD de distância
- Utilizar somente um mapa UV, checar no Blender E no Object Builder o nº de mapas UV.
- Deve possuir as seguintes *Named Properties:* (Object Builder):
- *lodnoshadow = 1*;
Caso o modelo não possua LOD de sombra, seu valor deve ser 0 e devemos usar a seguinte named property no Geometry LOD:
- *sbsource = visualex*
- Utilizável somente em props e prédios em geral, nada que tenha View Pilot.
### View Pilot ## Dependências e compatibilidade
- O que é visto por piloto/motorista quando se trata de veículos ### CBA
- O que é visto em primeira pessoa quando se trata de uniformes, peças de vestuário ou armas.
### View Gunner O BRAF requer o [Community Base Addons (CBA)](https://github.com/CBATeam/CBA_A3) como dependência de projeto. O código existente usa padrões e APIs do CBA, incluindo:
- O que é visto por atirador em veículos ou lançadores estáticos. - macros comuns e `script_xeh.hpp`;
- `CBA_fnc_compileFunction`;
- CBA Extended Event Handlers;
- `CBA_weaponEvents`;
- eventos e sistemas de armas compartilhados.
### View Commander Não remova CBA de `requiredAddons[]`, macros ou eventos como uma otimização. Antes de criar um novo evento, verifique se o addon já usa um Event Handler nativo ou um CBA Extended Event Handler.
- O que é visto por comandante em veículos. ### ACE
### View Cargo O [ACE3](https://github.com/acemod/ACE3) é tratado normalmente como **compatibilidade opcional**, não como dependência obrigatória de todos os addons BRAF. O repositório possui propriedades e integrações ACE em áreas como balística, aquecimento de armas, audição, cargo, reabastecimento e sobrepressão.
- O que é visto por tripulação que não seja FFV (Firing from Vehicles), esta última vira ViewGunner. Ao adicionar compatibilidade ACE:
### Geometry - preserve a separação entre conteúdo BRAF e compatibilidade;
- não adicione ACE a `requiredAddons[]` sem evidência do addon afetado;
- não invente funções, propriedades ou classes ACE;
- confirme se a integração já existe em outro addon BRAF;
- preserve a possibilidade de carregar o conteúdo sem ACE quando a integração for opcional.
- É usado para ter colisão na engine do arma entre personagens e veículos contra objetos estáticos como árvore, casa e outras props de cenário. ## Organização do repositório
- O modelo deve ser fechado, com geometria convexa, triangulado e com sharp edges.
- Uma vez importado para o Object Builder, selecione o objeto todo, vá em Structures -> Topology -> Find Components, em seguida adicione uma massa em kilogramas, condizente com o objeto real e no mínimo de 10kg.
- O nº de componentes criado no passo anterior não deve ultrapassar 400 componentes, e cada componente não pode ter mais de 255 triângulos.
- Não pode ter um segundo mapa UV.
- Pressupondo que o objeto esta no centro da cena, deve ter no máximo 200x200 metros, mais do que isso ele não calcula colisão, não existe limite para altura.
- Deve possuir as seguintes *Named Properties:*, todas em letras mínuscula (Object Builder):
- *autocenter = 1*;
- Caso você queira centralizar o objeto na cena.
- *reversed = 1*;
- Caso você queira mudar a orientação do objeto.
- *map = ????*;
- [Variados valores disponíveis aqui](https://community.bistudio.com/wiki/Arma_3:_Named_Properties#map), essa propriedade só é relevante para assets que irão em um mapa, permite que sejam mostrados os ícones no mapa 2D do jogo.
- *buoyancy = 1*;
- 1 -> objeto boiará.
- 0 -> objeto não boiará.
- *aicovers = 1*;
- 1 -> IA vai usar o objeto como cobertura;
- 0 -> Não vai usar;
- *canbeoccluded = 1*;
- 1 -> O objeto não será renderizado quando estiver atrás de objetosmaiores;
- 0 -> Será renderizado;
- *canocclude = 1*
- 1 -> O objeto irá impedir o que estiver atrás de ser renderizado,conforme propriedade acima;
- 0 -> Não impedirá;
- *damage/dammage = ???*
- engine -> O objeto explode quando destruído.
- building -> O objeto irá afundar no solo e ser substituído por ummodelo em ruínas.
- wreck -> O objeto será substituído por um modelo destruído,referenciado no LOD wreck.
- tree -> O objeto irá tombar numa direção aleatória.
- tent -> O objeto irá colapsar, chapado no chão.
- wall -> O objeto irá tombar na direção do choque.
- *sbsource = shadowvolume*
- shadowvolume -> O objeto irá gerar sombra utilizando o LOD ShadowVolume.
- visualex -> O objeto irá gerar sombra utilizando os LOD visuais, muito mais pesados, portanto utilizado somente em objetos estáticos.
### Fire Geometry O BRAF é dividido por responsabilidade e por tipo de conteúdo. Cada diretório de addon deve ser tratado como uma unidade de configuração e carregamento, sem presumir que todos os diretórios tenham a mesma estrutura interna.
- Utilizado para detectar colisão e efeitos de colisão entre projetis e qualquer tipo de objeto. | Área | Exemplos no repositório | Responsabilidade |
- Segue as mesmas regras gerais do LOD de Geometry, com a exceção de que não precisa ter massa e precisa ter o material de penetração (RVMAT) localizado em /a3/data_f/penetration/ aplicado a fim de calcular a balística intermediária do objeto quando atingido. |---|---|---|
- precisam ter os proxies dos ocupantes do veículo, do contrário, não irão sofrer dano. | Base e sistemas compartilhados | `braf_main`, `braf_weapons_core`, `braf_damage`, `braf_hurt` | Facções, funções comuns, munições, dano e estados relacionados |
| Aviação de asa rotativa | `braf_air`, `braf_sar`, `braf_optics_air` | Helicópteros, variantes de transporte, armadas e SAR, EFS, guincho e sistemas associados |
| Aviação de asa fixa | `braf_air2` | Aeronaves de asa fixa, incluindo A-29, Gripen e seus armamentos, magazines e sistemas de cabine |
| Blindados sobre lagartas | `source/braf_tracked` | Fonte do addon `braf_tracked`, incluindo M113, M41 e armamentos, munições e ópticas de veículos rastreados |
| Blindados sobre rodas | `braf_armored` | Viaturas blindadas sobre rodas e suas variantes, configurações, armamentos e integrações |
| Embarcações pequenas e médias | `braf_boat` | Barcos e embarcações de pequeno e médio porte, com comprimento de até 15 m segundo a divisão interna do BRAF |
| Navios e submarinos | `braf_ships` | Navios de maior porte e submarinos; o addon compartilhado de armas navais é `braf_weapons_naval` |
| Veículos, estruturas e armas estáticas | `braf_soft`, `braf_static`, `braf_structures`, `braf_structures_land`, `braf_structures_ammoboxes` | Veículos não blindados, armas estáticas, estruturas, superfícies e caixas |
| Personagens e equipamentos | `braf_characters_*`, `braf_insignia` | Unidades, uniformes, coletes, mochilas, capacetes, óculos, aviação e insígnias |
| Armamentos | `braf_weapons_*` | Fuzis, metralhadoras, pistolas, submetralhadoras, lançadores, miras, muzzle attachments e sons |
| Código de origem | `source` | Áreas de origem, componentes e staging que devem ser entendidos antes de qualquer integração |
| Referências externas | `libs` | Material técnico de terceiros; é somente leitura e não é uma dependência automática |
| Ferramentas | `make` | Ferramentas auxiliares de desenvolvimento e release; devem ser inspecionadas antes de serem executadas |
| Testes | `tests` | Testes focados e validações estruturais do repositório |
| Documentação | `README.md`, `CHANGELOG.md`, `LICENSE.md` | Regras de desenvolvimento, histórico de mudanças e licenças do projeto |
### View Geometry `libs` contém, entre outros materiais, referências de CBA, ACE e outros projetos. Com exceção do CBA, nenhum material presente em `libs` deve ser tratado por presunção como dependência obrigatória, compatibilidade opcional, referência técnica, biblioteca reutilizável com licença compatível ou material desconhecido. Essa classificação só deve ser feita no contexto de uma reutilização planejada, depois de verificar origem, licença, versão, finalidade, dependências e compatibilidade com o BRAF. Até essa análise, o material é apenas referência protegida e não pode ser copiado para produção.
- Utilizado para cálculo de oclusão (a engine não renderizará o que estiver atrás do objeto), além disso é utilizado para fazer com que a IA do jogo enxergue ou não outras entidades em jogo. ## Estrutura de um addon
- precisam ter os proxies dos ocupantes do veículo, do contrário, não serão atacados pela IA.
- Precisa ter menos de 3500 vértices em cada objeto.
### Geometry PhysX Um addon BRAF normalmente possui um `config.cpp` na raiz e pode incluir arquivos de configuração, funções, modelos e assets:
- Tipo de geometria especial utilizado para detecção e cálculo de colisão entre veículos em geral. ```text
- Também seguem as regras gerais do Geometry, porém devem ser o mais simples possível, e com o menor nº de componentes possível (max 3 em geral) e sem massa. braf_example/
├── config.cpp
├── *.hpp
├── functions/
│ └── fn_example.sqf
├── data/
│ ├── *.paa
│ └── *.rvmat
├── model.cfg
└── *.p3d
```
### Geometry Buoyancy Nem todos os addons possuem todos esses itens. A estrutura real do diretório, os includes e os caminhos configurados têm prioridade sobre este exemplo.
- Tipo de geometria especial utilizada para cálculo de volume de deslocamento em veículos aquáticos ou objetos que boiam na água. O `config.cpp` é o ponto de entrada de configuração do addon. A documentação oficial de criação de addons explica que o jogo usa esse arquivo para processar veículos, armas, sons, funções e os demais dados do addon: [Creating an Addon](https://community.bohemia.net/wiki/Arma_3%3A_Creating_an_Addon).
- Também segue as regras gerais do Geometry e caso tenha mais de um componente, os mesmos não devem se intersectar.
- É relacionado com a massa definida no Geometry (e que também pode ser alterada via script).
### Roadway ### `CfgPatches`
- É um tipo de superfície que permite que unidades caminhem sobre os objetos, sejam estáticos ou não. Todo addon deve possuir uma classe `CfgPatches` coerente com o conteúdo que fornece. Ela informa, entre outras coisas:
- É representado por planos sobrepostos ao LOD de Geometry do objeto e utiliza uma textura localizada em /a3/data_f/surfaces/ para o efeito visual e sonoro ao caminhar sobre o objeto.
- Pressupondo que o objeto esta no centro da cena, pode ter no máximo 72x72 metros.
### Memory - nome da classe de patch;
- `requiredVersion`;
- `requiredAddons[]`;
- `units[]`;
- `weapons[]`;
- metadados como autor e URL.
- Define pontos de luz, direção de armas de fogo, direção de faróis, direção de escapamento, direção de efeitos de fumaça, pivôs de rotação, eixos de translação, e demais pontos de controle em geral. `requiredAddons[]` é informação de **dependência e ordem de carregamento**, não uma lista de todos os mods instalados. Declare somente dependências necessárias e confirme o nome real da classe `CfgPatches` fornecida por cada addon.
### Shadow Volume Exemplo de padrão para conteúdo novo BRAF:
- Modelo 3D utilizado para o cast de sombra caso o sbsource do LOD Geometry seja diferente de visualex, e também possui n LODs de distância. ```cpp
- O modelo deve ser fechado e triangulado, e deve ter sharp edges. class CfgPatches
{
class braf_example
{
author = "BRAF TEAM";
requiredVersion = 0.1;
requiredAddons[] = {"A3_Weapons_F", "braf_main"};
units[] = {};
weapons[] = {};
};
};
```
### Hitpoints O repositório possui nomes históricos com capitalização diferente. Para classes existentes, preserve a capitalização e as interfaces públicas. Para classes novas, use o padrão BRAF correspondente ao addon e evite criar aliases ou nomes concorrentes sem necessidade de compatibilidade.
- Define onde certas partes destrutíveis do objeto estão, como rodas, vidros, motor, etc. ### Herança de classes
- Referência: [Arma 3 - Hitpoints](https://community.bistudio.com/wiki/Arma_3:_Hitpoints)
### Wreck Arma 3 usa herança de configuração. Antes de derivar uma classe, confirme:
- Modelo 3D utilizado para representar o objeto destruído quando o LOD Geometry possui a named property damage = wreck. 1. o nome exato da classe pai;
2. o addon que fornece a classe pai;
3. o `requiredAddons[]` necessário;
4. quais propriedades são herdadas e quais precisam ser redefinidas;
5. se `scope`, `displayName`, `model`, `magazines`, `weapons`, torres e Event Handlers continuam coerentes.
### Path Use o Config Viewer, os arquivos locais de referência e a documentação oficial de [Class Inheritance](https://community.bohemia.net/wiki/Class_Inheritance). Não copie uma classe pai apenas por semelhança textual.
- LOD importante para a IA definir o caminho em seu interior (prédios), não requerido em objetos que a IA não precise desviar de obstáculos. ### Cadeia de conteúdo de armas
- Vértices onde a IA pode parar precisam ser definidos por uma named selection do tipo "posXX" (XX é um número de 00 a 99).
- Os paths funcionam melhor quando posicionados 10 cm acima da superfície do Roadway.
### Display Picture Ao alterar armamentos, verifique toda a cadeia:
- Imagem com fundo transparente e tamanho em potência de 2 (como qualquer arquivo .paa, Ex: 128x128px ou 64x128px) que será utilizada para representar o objeto na lista do editor de missões. ```text
- Veículos também devem produzir uma displaypicture em tamanho 1x2 (128x256px por exemplo) para ser utilizado no arsenal ou na ORBAT. CfgWeapons
└── magazines[] / pylonWeapon
└── CfgMagazines
└── ammo
└── CfgAmmo
```
## Config de Assets Também confira muzzles, modos de fogo, sons, efeitos, hardpoints, pylon stores, velocidades, alcance, `hit`, `indirectHit`, penetração, rastreadores e compatibilidade com plataformas existentes.
Os Mods no Arma 3 são um conjunto de PBO's (Public Bank of Files), que são nada mais do que pastas compactadas, que contém os arquivos de configuração e os assets do mod centralizadas no arquivo config.cpp na raíz da pasta em questão, todos os PBOs do BRAF comelam com o prefixo "braf_" para facilitar a identificação. Veículos podem consumir várias armas, magazines e munições de addons diferentes. Uma configuração estruturalmente válida ainda pode falhar no jogo se o parent, o pylon, o memory point, o modelo ou o caminho de asset não existir.
## Padronização de Nomenclaturas ## Funções SQF e `CfgFunctions`
Todas as classes do mod e nomes de arquivos deverão ser precedidas pelo prefixo "braf" e seguir o padrão [snake_case](https://en.wikipedia.org/wiki/Snake_case), onde todas as letras são em minúsculo e as palavras, não poderão haver carateres especiais como "ç" ou acentos como "í", mantendo de preferência em inglês, separadas por subtraços (" _ "), o motivo é que a engine/mikero por si só já transforma todas as classnames para este padrão, os nomes dos pbos também seguirão este padrão. Funções públicas devem ser registradas em `CfgFunctions` e ter um arquivo real no caminho declarado. No BRAF existem exemplos como:
**Exemplo:**
> "braf_uniform_rolledup_gloves"
- Classname da farda com manga dobrada e luvas - funções comuns de uniforme e identidade em `braf_main`;
- `BRAF_fnc_efs` e `BRAF_fnc_hoist` em `braf_sar`;
- `BRAF_fnc_ASMEngineSmoke` em `braf_weapons_naval`.
> "braf_static" Ao criar ou alterar uma função:
- Classname do PBO de armamentos estáticos - use `params` para validar argumentos;
- declare variáveis locais com `private`;
- documente retorno, máquina de execução e localidade;
- diferencie ambiente agendado de não agendado;
- não use `sleep` em código não agendado;
- preserve o nome público e a capitalização usados pelos consumidores;
- confirme inicialização, JIP, idempotência e comportamento em erro;
- prefira uma função registrada a `call` ou `spawn` remoto arbitrário.
## Fechando o PBO O caminho em `CfgFunctions` e o nome do arquivo precisam corresponder exatamente ao checkout. Uma ocorrência textual do nome da função não prova que ela está registrada ou que o arquivo existe.
- Existem 2 maneiras de compactar uma pasta em um arquivo PBO, a primeira é pelo Addon Builder, disponível pelo Arma 3 Tools, que cumpre a missão de gerar um PBO a partir de uma pasta, porém testa o código muito grosseiramente. A segunda é pelo PBOProject ([Mikero's Tools](https://mikero.bytex.digital/)), que além de compactar a pasta em um PBO, também testa o código e o obfusca, garantindo mais segurança e testagem ao mod, o BRAF utiliza o Mikero e sempre que possível, obfusca o PBO. ## Multiplayer, localidade e JIP
- Um maior número de PBOs facilita a correção de bugs porém pode tornar o modo confuso, portanto tenta-se manter uma organização quanto ao tipo e juntar os assets que se relacionam em um mesmo PBO. Arma 3 é uma engine cliente-servidor. Código que funciona em Singleplayer pode falhar em servidor dedicado, Hosted Server, Headless Client ou para um jogador que entra no meio da missão.
- ### Obfuscado x Não Obfuscado Antes de implementar código de rede, identifique:
- A obfuscação do PBOProject (Mikero), garante mais uma camada de segurança e de testagem ao mod, porém implica limitações, nenhum arquivo poderá conter acentos ou caracteres especiais em seu nome e todas as texturas que forem chamadas após a criação do asset, como via script ou texturas de dado, deverão ficar em um pbo a parte. Mesmo quando não obfuscado, é recomendando usar o Mikero pois ele testa o código e aponta erros de sintaxe queo Addon Builder deixa passar, o que facilita a correção de bugs. **Todos os PBOs do BRAF são binarizados, independente de serem ou não obfuscados**. - máquina autoritativa;
- dono atual do objeto (`local`);
- diferença entre efeito local e global;
- comportamento de servidor dedicado e servidor hospedado;
- comportamento de cliente, Headless Client e JIP;
- possibilidade de migração de localidade;
- inicialização pré-init, post-init, object init e mission init;
- duplicação de Event Handlers e mensagens;
- necessidade de persistência JIP;
- permissões e validação de argumentos.
Use `isServer`, `isDedicated`, `hasInterface`, `isMultiplayer`, `didJIP` e `local` de acordo com a operação real. `isServer` também retorna verdadeiro em Singleplayer, portanto não deve ser usado isoladamente quando a distinção entre Singleplayer e servidor dedicado for importante.
### `remoteExec` e `CfgRemoteExec`
`remoteExec` e `remoteExecCall` devem ser usados somente após verificar a localidade e a configuração de segurança. O fluxo recomendado é:
1. criar uma função registrada com argumentos explícitos;
2. validar os argumentos na máquina que recebe a chamada;
3. configurar `CfgRemoteExec` quando o modo de whitelist exigir;
4. escolher alvos e JIP conscientemente;
5. testar servidor dedicado, Hosted Server e JIP.
Não execute `call` ou `spawn` arbitrariamente por rede. A documentação oficial cobre o [Remote Execution](https://community.bohemia.net/wiki/Arma_3%3A_Remote_Execution), os controles de [CfgRemoteExec](https://community.bohemia.net/wiki/CfgRemoteExec) e os efeitos de localidade em [Multiplayer Scripting](https://community.bohemia.net/wiki/Multiplayer_Scripting).
## CBA Extended Event Handlers e Event Handlers
Event Handlers nativos são executados na máquina onde foram adicionados, salvo as propriedades específicas de cada evento. Isso deve ser considerado antes de registrar dano, disparo, entrada em veículo, animação, localidade ou inicialização.
No BRAF:
- preserve os padrões CBA existentes;
- não sobrescreva um Event Handler de outro addon;
- use Extended Event Handlers quando a arquitetura do addon já depender deles;
- evite registrar o mesmo comportamento várias vezes em JIP;
- mantenha as condições, ações e transições públicas dos veículos quando uma implementação for refatorada.
Consulte a referência oficial de [Event Handlers](https://community.bohemia.net/wiki/Arma_3%3A_Event_Handlers) e compare o comportamento com as macros CBA existentes em `braf_weapons_core`.
## Modelos, LODs e Object Builder
O BRAF usa modelos `.p3d`, materiais `.rvmat`, texturas `.paa` e animações `.rtm`. Um modelo não é apenas a malha visível: os LODs determinam renderização, visão, colisão, penetração, PhysX, flutuação, navegação, sombras e pontos de integração com a configuração. Uma malha que parece correta pode continuar sem colisão, deixar a IA enxergar através dela, tornar a tripulação invulnerável ou falhar na água.
O [Object Builder](https://community.bohemia.net/wiki/Object_Builder) é parte do Arma 3 Tools, sucessor do Oxygen 2, e cria, edita e grava P3D **não binarizado (MLOD)**. Ele não é uma ferramenta para editar um P3D binarizado de release. No BRAF, modelos, texturas, materiais e animações existentes continuam protegidos: esta documentação explica o fluxo, mas não autoriza substituir, recriar ou sobrescrever um binário sem escopo explícito.
### Contrato entre P3D, `model.cfg` e `config.cpp`
| Camada | Define | Deve coincidir com |
|---|---|---|
| `.p3d` | LODs, seleções nomeadas, eixos, proxies, materiais, pontos do Memory LOD e geometria | nomes usados por `model.cfg`, `hiddenSelections[]`, `memoryPoint*`, torres, hitpoints e efeitos |
| `model.cfg` | `CfgSkeletons`, `CfgModels`, seções, ossos e animações do modelo | nome do P3D sem extensão, seleções, eixos e controladores reais |
| `config.cpp` / `.hpp` | `model =`, classe de veículo, `AnimationSources`, `hiddenSelections[]`, posições de entrada, turrets, hitpoints, efeitos e User Actions | caminhos, seleção, ponto de memória e fonte de animação existentes no modelo |
| `.rvmat` / `.paa` | material e aparência visual; material de dano no Fire Geometry | faces e seleções do LOD correto, além de caminhos com capitalização real |
`CfgModels` é a interface entre o P3D e a engine: a classe deve usar o nome do arquivo do modelo sem `.p3d`, declarar suas `sections[]`, associar o `skeletonName` e conter as `Animations`. `CfgSkeletons` descreve cada osso e sua relação pai/filho. Já `AnimationSources` pertence à classe do objeto em `config.cpp`: ela fornece controladores nativos ou fontes `user` para as animações declaradas no `model.cfg`. A referência oficial de [Model Config](https://community.bohemia.net/wiki/CfgModels) detalha essa separação entre trabalho de arte e configuração.
O repositório aplica esse contrato em várias famílias — `braf_air`, `braf_air2`, `braf_armored`, `braf_boat`, `braf_ships` e `source/braf_tracked` têm `model.cfg`. Um exemplo pequeno e útil é `braf_boat\BRAF_VLPV`: o `model.cfg` define esqueleto, `propeller`, `rudder`, `drivewheel` e `hatch`; `VLPV_base.hpp` declara a fonte `openhatch`, as seleções de textura e os pontos de água, motor, carga e entrada. Use-o para entender o vínculo entre os arquivos, não para copiar nomes ou propriedades para outro veículo.
### Fluxo seguro no Object Builder
1. Confirme que abriu a fonte MLOD correta e identifique o addon proprietário, o `model.cfg`, a classe de veículo e todos os consumidores antes de alterar qualquer seleção.
2. Trabalhe por LOD. Não use a Resolution LOD como substituta automática para Geometry, Fire Geometry, View Geometry, PhysX, Buoyancy ou Roadway.
3. Crie e mantenha seleções nomeadas para partes móveis, retexturáveis, hitpoints, proxies e eixos. Trate o nome como contrato: preserve grafia e capitalização já usadas pelo modelo e pela configuração.
4. Em LODs físicos, valide topologia antes de adicionar proxies: `Structure > Topology > Find Non-Closed`, `Close`, `Structure > Convexities > Find Non-Convexities` e `Component Convex Hull`; depois use `Structure > Check Faces` para localizar faces ou texturas inválidas. A referência de [Validating Geometries](https://community.bohemia.net/wiki/Validating_Geometries) descreve essas verificações.
5. Revise massa e distribuição de massa no Geometry LOD; em objetos PhysX elas afetam inércia, contato e estabilidade.
6. Use Buldozer como prévia visual de LODs, materiais, proxies e animações. Ele é configurado pelo Arma 3 Tools/P drive; a documentação oficial registra que iniciar o Object Builder diretamente pela Steam pode impedir a conexão com Buldozer.
7. Teste no jogo cada comportamento físico e de gameplay. Um P3D abrir no Object Builder ou renderizar no Buldozer não prova colisão, dano, PhysX, flutuação, Roadway, IA ou multiplayer.
O Object Builder aceita P3D MLOD e outros formatos de importação, mas sua saída é P3D não binarizado. Não use isso como atalho para editar um asset de runtime, nem use packing ou binarização como teste de comportamento neste projeto.
### LODs de visualização e interior
O valor numérico de uma Resolution LOD não escolhe uma distância fixa no Arma 3. A engine seleciona LODs conforme distância, qualidade gráfica, carga e outras condições. Portanto, forneça níveis com complexidade realmente decrescente; cópias idênticas aumentam tamanho, memória e carregamento sem ganho. Proxies precisam existir em cada Resolution LOD onde devam aparecer, e uma seleção vazia usada por animação ou pela engine pode causar falha quando o LOD se torna ativo. Consulte [LOD](https://community.bohemia.net/wiki/LOD) para o comportamento de seleção.
| LOD | Responsabilidade | Verificação obrigatória |
|---|---|---|
| Resolution | Modelo externo visível; a Resolution LOD de maior detalhe deve preservar silhueta, materiais, seleções e proxies necessários | detalhe cai progressivamente, não há cópias idênticas, UV/material e proxies permanecem válidos |
| View Pilot | Interior visto por piloto/motorista | painel, visibilidade, mãos/controles, portas e partes ocultas não invadem a câmera |
| View Gunner | Interior e partes vistas pelo atirador | torre, arma, óptica, miras e eixos acompanham a posição do gunner |
| View Commander | Interior da posição do comandante | escotilhas, ópticas e instrumentos respeitam a câmera e a animação |
| View Cargo | Interior visto por passageiros | proxies de carga, posições, abertura de portas e visibilidade por assento |
| View Pilot/Gunner/Commander/Cargo Geometry e Fire Geometry | Geometria específica das posições internas quando a proteção, oclusão ou dano diferir por ocupante | teste primeiro pessoa, dano recebido e linha de visão em cada assento afetado |
| Shadow Volume / Shadow Buffer | Sombra dedicada nas resoluções próprias | não duplique LODs de mesma resolução, mantenha a forma simples e revise artefatos em luz forte |
| Wreck | representação após destruição, quando a classe/configuração a usar | modelo, material, hitpoints e transição de dano correspondem ao comportamento configurado |
`LodNoShadow = 1` é a propriedade documentada para Resolution LODs. Para transparências que recebam sombras ambientais de modo incorreto, a BIKI indica `Forcenotalpha = 1` no Geometry LOD — nunca como correção automática para qualquer material alfa. Use a grafia da propriedade documentada ou já empregada pelo asset; não normalize propriedades por estética.
### LODs físicos, dano e visibilidade
| LOD | Responsabilidade | Regras práticas e riscos |
|---|---|---|
| Geometry | Colisão quando pelo menos um objeto não é PhysX; por exemplo, contato soldado-veículo | use `ComponentXX` consecutivos, componentes fechados e convexos, massa válida e espessura física suficiente; a engine usa massa e distribuição para inércia |
| Geometry PhysX | Malha de simulação física do veículo | mantenha muito simples, triangulada e coerente com o centro de massa; não a trate como cópia de alta fidelidade do visual |
| Geometry Buoyancy | Volume de deslocamento para embarcações e anfíbios | poucos componentes convexos, fechados, triangulados e sem interseções; volume e posição alteram a flutuação |
| Fire Geometry | Impacto de balas, foguetes e penetração | componentes fechados/convexos, material de dano/penetração aplicado, complexidade baixa; se ausente, a engine recorre a View Geometry e depois Geometry |
| View Geometry | Oclusão visual e linha de visão da IA | deve representar volumes que realmente bloqueiam visão; se ausente, Geometry é usada como fallback |
| Hit-points | vértices nomeados não conectados que localizam partes destruíveis | nomes, posição e espaçamento devem corresponder a `HitPoints` da classe e ao Fire Geometry |
| LandContact | vértices únicos de contato com solo | cada ponto precisa apoiar o veículo conforme sua simulação; não confunda com flutuação naval |
Para Geometry e Fire Geometry, a validação de convexidade não é opcional. O Object Builder pode gerar `ComponentXX` por `Structure > Topology > Find Components`; valide antes de inserir proxies. A BIKI também recomenda manter o Geometry LOD dentro do limite de tamanho: a referência histórica aponta instabilidade em torno de 5060 m a partir da origem para a geometria, com variação por contexto. Não use esse número como limite garantido; trate-o como gatilho para testar e, quando necessário, dividir a composição.
Fire Geometry requer atenção adicional:
- inclua proxies de motorista e passageiros nesse LOD quando a tripulação deve receber dano; sem eles, ocupantes podem se tornar invulneráveis;
- aplique material físico de dano/penetração, não apenas o `.rvmat` visual;
- mantenha faces e componentes simples; a referência BIKI cita menos de 3.500 pontos como orientação;
- evite placas de Fire Geometry quase sobrepostas: o passo de simulação do projétil pode ignorar a segunda camada.
View Geometry não é decoração. Ela impede jogador e IA de enxergarem através do objeto. `canocclude` e `canbeoccluded` são propriedades de Geometry/View Geometry para casos específicos de oclusão; use-as somente quando a forma de oclusão não representar a forma visível, como vegetação perfurada. A página de [Named Properties](https://community.bohemia.net/wiki/Arma_3%3A_Named_Properties) deve prevalecer sobre valores copiados de outro modelo.
### Memory, Roadway, Paths e proxies
| LOD/elemento | Uso | Contrato de integração |
|---|---|---|
| Memory | pontos de arma, escapamento, fumaça, luz, efeito de água, entrada/saída, carga, câmera, PIP, eixo e ação | o texto em `memoryPoint*`, `memoryPoints*`, posição de User Action, torre ou efeito deve ser o nome da seleção do Memory LOD |
| Eixo no Memory | dois vértices com uma seleção nomeada formam eixo de rotação/translação | `axis =` de `model.cfg` deve apontar para essa seleção quando `memory = 1`; com `memory = 0`, o eixo pertence ao LOD do modelo |
| Roadway | superfície onde unidades ficam em pé e caminham | não pode sobrepor Geometry, ou o personagem oscila; é necessário abaixo de pontos de escada; textura da superfície também influencia o efeito sonoro de passos |
| Paths | rede de navegação de IA em interiores/estruturas | malha conectada, `posXX` para paradas e `inXX` para entradas; deixe folga de paredes e mantenha os caminhos cerca de 10 cm acima da superfície caminhável |
| Proxy | referência a outro P3D, ocupante, arma ou acessório | inclua-o nos LODs visuais em que deve aparecer e nos LODs físicos que realmente exigem sua presença; proxy visual não garante colisão, Roadway, dano ou PhysX |
O Roadway torna uma superfície caminhável para unidades. Não deixe Roadway e Geometry ocuparem o mesmo volume; isso causa oscilação. A BIKI relata instabilidade para componentes do Roadway a aproximadamente 36 m da origem, variando com mapa/célula, e limite menor quando o Roadway contém elementos animados. Para plataformas, pontes e navios extensos, teste cada segmento e prefira uma composição de P3Ds menores quando a superfície exceder esse comportamento estável.
Memory LOD é também a origem de muitas falhas aparentemente "de configuração". No BRAF, a classe de VLPV, por exemplo, aponta para pontos de efeito de água e motor, carga sling e entrada de piloto/carga. Um nome ausente ou em outra grafia resulta em efeito, entrada ou interação ausente. Partículas e certos pontos de arma podem ignorar deslocamento animado e usar a posição padrão do Memory LOD; confirme no jogo, não apenas no Buldozer.
### `model.cfg`, esqueleto e animações
| Elemento | Papel |
|---|---|
| `CfgSkeletons` | declara ossos e hierarquia pai/filho em `skeletonBones[]`; o filho acompanha a transformação do pai |
| `CfgModels` | associa o modelo ao `skeletonName`, declara `sections[]`/`sectionsInherit` e contém `class Animations` |
| `selection` | parte móvel ou osso/seleção existente no P3D |
| `axis`, `begin` e `end` | eixo local ou pontos que definem direção da animação; normalmente um eixo de dois pontos no Memory LOD |
| `source` | controlador nativo ou fonte declarada em `AnimationSources` no `config.cpp` |
| `memory` | informa se o eixo está no Memory LOD; o padrão documentado é verdadeiro |
| `minValue`, `maxValue`, `angle0`, `angle1` | mapeiam entrada do controlador para fase, rotação ou deslocamento |
| `sourceAddress` | define como entrada fora do intervalo é tratada, como loop, clamp ou espelhamento |
Os tipos usuais são `rotation`, `rotationX/Y/Z`, `translation`, `translationX/Y/Z`, `hide` e `direct`. Para uma porta, torre, leme, hélice ou trem de pouso, confirme na sequência: seleção existe no LOD visível; a seleção física acompanha a animação quando necessário; eixo está no lugar e orientação corretos; `model.cfg` aponta para ambos; a fonte existe em `AnimationSources` ou é um controlador nativo; a ação, script ou sistema do veículo altera a mesma fonte.
Se uma animação muda colisão ou proteção, copie a seleção para os LODs físicos atingidos, especialmente Geometry e Fire Geometry. Para animações de personagem, não trate `model.cfg` como substituto de `.rtm`, `CfgMoves` e `CfgGestures`: a referência de [Animations Arma 3](https://community.bohemia.net/wiki/Arma_3%3A_Animations) separa animações simples de modelo das animações de estado de personagens.
### Propriedades nomeadas
Named Properties pertencem ao LOD, não à classe de veículo. Adicione somente uma propriedade com comportamento conhecido e aplicável ao tipo de asset.
| Propriedade | LOD usual | Uso correto |
|---|---|---|
| `LodNoShadow = 1` | Resolution | controla contribuição de sombra da Resolution LOD; não pertence a Shadow Volume |
| `Forcenotalpha = 1` | Geometry | correção específica para artefato de sombra ambiente através de material alfa |
| `canocclude` / `canbeoccluded` | Geometry e View Geometry | ajusta participação na oclusão; útil apenas para formas cuja oclusão não representa o objeto visível |
| `buoyancy = 1` | **Geometry**, não Geometry Buoyancy | habilita o uso de Geometry Buoyancy para barcos e anfíbios |
| `autocenter` | Geometry, quando o tipo de modelo exigir | altera referência/origem física; nunca defina `0` ou `1` por cópia, nem use como solução genérica de flutuação |
| `aicovers`, `sbsource`, `reversed` e outras | somente no LOD e caso documentados para o asset | mantenha a semântica existente e confirme na BIKI/vanilla antes de introduzir |
Não existe conjunto universal de properties para todos os modelos. Em especial, propriedades de origem e massa podem ter efeitos opostos entre acessórios, veículos terrestres, aeronaves, barcos e estruturas. Uma alteração de `autocenter`, `buoyancy`, material físico ou componentes de Geometry exige inspeção do P3D real e teste no jogo.
### Embarcações, anfíbios e navios
Para `braf_boat`, `braf_ships` e qualquer veículo anfíbio:
- coloque `buoyancy = 1` no **Geometry LOD**, não no Geometry Buoyancy;
- modele Geometry Buoyancy com poucas faces, componentes convexos e fechados, triangulação válida e sem volumes internos, interseções ou contatos desnecessários entre componentes submersos;
- faça a forma e o volume do LOD de buoyancy se aproximarem do casco que desloca água; massa e centro de massa do Geometry precisam ser coerentes com esse deslocamento;
- mantenha Geometry PhysX separado da geometria visual e teste massa, estabilidade, contato, inclinação e dano em água;
- mantenha efeitos de motor abaixo da linha d'água quando a configuração do veículo assim exigir; pontos de água, propulsão e esteira também são Memory points que precisam coincidir com a configuração;
- não use LandContact como evidência de que o navio flutua: o comportamento na água depende de Geometry, PhysX e Buoyancy;
- trate cada seção de uma embarcação modular como unidade física própria. Proxies podem resolver a aparência, mas não substituem Geometry, Fire Geometry, View Geometry ou Roadway válidos em cada área onde esses comportamentos são necessários.
A documentação de [Ships Config Guidelines](https://community.bohemia.net/wiki/Arma_3%3A_Ships_Config_Guidelines) alerta que navios grandes pressionam limites de tamanho, vértices, luzes, PhysX e Roadway. Como orientação, uma embarcação acima de aproximadamente 100 m pode exigir divisão em P3Ds/componentes menores. Isso não é uma licença para fragmentar qualquer modelo: primeiro defina a responsabilidade de cada seção, suas origens, LODs físicos e critérios de teste. Nunca conclua que uma composição funciona apenas porque o visual aparece.
### Diagnóstico por sintoma
| Sintoma | Camada a investigar primeiro |
|---|---|
| modelo aparece, mas pessoa atravessa ou colide de forma errada | Geometry, componentes convexos, massa, Geometry PhysX e tamanho/origem |
| bala atravessa blindagem ou ocupante não recebe dano | Fire Geometry, material de penetração, proxies de ocupante, Hit-points e configuração de dano |
| jogador ou IA enxerga através do objeto | View Geometry, `canocclude`/`canbeoccluded` e LOD de visão da posição afetada |
| personagem cai, vibra ou não caminha no convés | Roadway, sobreposição com Geometry, distância da origem, escadas e Paths |
| porta, torre, leme ou hélice não anima corretamente | seleção, eixo, `memory`, `CfgSkeletons`, `CfgModels`, `AnimationSources` e fonte usada pela classe |
| luz, fumaça, entrada, arma ou efeito de água está ausente | seleção no Memory LOD e string exata da propriedade `memoryPoint*`/`memoryPoints*` |
| barco afunda, inclina ou muda comportamento após dano | `buoyancy = 1`, Geometry Buoyancy, massa/distribuição, Geometry PhysX, volumes intersectados e configuração naval |
| textura variante não troca | seleção no P3D, `sections[]` do `model.cfg`, `hiddenSelections[]`, material e caminho real do asset |
### Validação mínima antes de considerar um modelo pronto
1. **Mapa de contratos:** confirme caminho do P3D, classe `CfgModels`, `skeletonName`, seções, seleções, eixos, proxies, `AnimationSources`, `memoryPoint*`, hitpoints e materiais.
2. **Object Builder:** revise LOD por LOD, named properties, massa, componentes, faces e topologia. Valide Geometry e Fire Geometry antes de inserir proxies.
3. **Buldozer:** percorra Resolution, todas as câmeras internas, sombras, materiais, proxies e cada fase de animação.
4. **Jogo:** teste colisão soldado/veículo, impacto e dano da tripulação, linha de visão da IA, assentos, torres, portas, efeitos, hitpoints, Roadway, Paths e, quando aplicável, PhysX, água e flutuação.
5. **Relato honesto:** diferencie checagem textual, validação estrutural no Object Builder, prévia no Buldozer e evidência no jogo. Binarização, packing ou geração de PBO não provam nenhum desses comportamentos — e não são executados como validação neste repositório.
Referências oficiais: [Object Builder](https://community.bohemia.net/wiki/Object_Builder), [LOD](https://community.bohemia.net/wiki/LOD), [LOD resolutions](https://community.bohemia.net/wiki/LOD_resolutions), [Model Config](https://community.bohemia.net/wiki/CfgModels), [Animations Arma 3](https://community.bohemia.net/wiki/Arma_3%3A_Animations), [Named Properties Arma 3](https://community.bohemia.net/wiki/Arma_3%3A_Named_Properties), [Validating Geometries](https://community.bohemia.net/wiki/Validating_Geometries) e [Ships Config Guidelines](https://community.bohemia.net/wiki/Arma_3%3A_Ships_Config_Guidelines).
## Texturas, materiais, sons e caminhos
Ao referenciar assets:
- use caminhos coerentes com o prefixo real do addon;
- confirme a existência e a capitalização do caminho;
- confirme a relação entre `.paa`, `.rvmat`, seleções e `hiddenSelectionsTextures[]`;
- não substitua P3D, PAA, RVMAT, RTM ou sons por arquivos vazios;
- preserve licenças e atribuição de material de terceiros;
- mantenha nomes de arquivos sem acentos ou caracteres especiais quando a ferramenta de release ou o pipeline exigirem isso;
- valide caminhos relativos no checkout e no contexto em que o PBO será montado.
Falha de textura, material, som ou animação é frequentemente um problema de caminho, case, prefixo do addon ou dependência, não apenas de configuração da classe.
## Convenções de nomes e metadados
Para conteúdo novo:
- prefira nomes em inglês, minúsculos e em `snake_case` para arquivos e diretórios;
- use o prefixo `braf_` em nomes públicos quando a convenção do addon permitir;
- preserve classes públicas existentes, mesmo quando a capitalização histórica não seguir o padrão novo;
- use `braf_fnc_` ou a interface pública BRAF já estabelecida;
- não crie `braf_ship_weapons`; o nome correto do addon naval compartilhado é `braf_weapons_naval`;
- use exatamente `author = "BRAF TEAM"` em metadados de mods e addons pertencentes ao BRAF;
- não altere atribuição de conteúdo externo dentro de `libs`.
Nomes de classe e nomes de arquivo são contratos de compatibilidade. Renomear um recurso pode quebrar missões, scripts, dependências ou referências de modelo mesmo quando o novo nome parece mais correto.
## Validação e fluxo de desenvolvimento
### Antes de editar
1. Confirme a raiz do checkout e leia este README, a tarefa e o histórico relevante em `CHANGELOG.md`.
2. Identifique o addon proprietário do recurso e o limite exato da alteração.
3. Localize a declaração, a classe pai, os includes, os consumidores e os caminhos de asset.
4. Inspecione addons relacionados e `requiredAddons[]`.
5. Verifique se a mudança envolve localidade, JIP, CBA, ACE, P3D ou binário protegido.
6. Consulte a documentação oficial de Arma 3 quando uma propriedade, classe ou comportamento não estiver comprovado no código existente.
### Depois de editar
1. Faça validação textual e estrutural não destrutiva.
2. Execute os testes focados e os validadores estáticos mantidos no repositório.
3. Revise o diff completo e execute `git diff --check`.
4. Confirme que nenhum asset protegido foi deletado, movido, renomeado ou sobrescrito.
5. Confirme que `libs` e `P:\a3` não foram modificados.
6. Separe evidência de fonte, Config Viewer, runtime, modelo, multiplayer e release.
Validação estática pode encontrar includes ausentes, caminhos inválidos, classes duplicadas, referências de função inexistentes e inconsistências de `CfgPatches`. Ela não prova que o addon carregou, que uma aeronave voa, que um navio flutua, que um míssil funciona no pylon, que um LOD está correto ou que uma função funciona em multiplayer.
### Teste mínimo recomendado
Para uma mudança de configuração ou asset, teste de acordo com o risco:
- Config Viewer: classe, herança, propriedades e dependências;
- Eden Editor: criação, preview, display picture e facção;
- Singleplayer: inicialização e ações básicas;
- Hosted Server: sincronização básica e localidade;
- Servidor dedicado: ausência de dependências acidentais de interface;
- JIP: inicialização tardia e persistência de estado;
- Headless Client: comportamento de IA quando aplicável;
- Object Builder/Buldozer: LODs, named selections, materiais, proxies e animações;
- água e colisão: Geometry, PhysX, Buoyancy, Roadway e Memory LODs separadamente;
- armas: relação weapon-magazine-ammo, muzzle, pylon, sons, modos e efeitos.
## PBO e release
Um PBO é o pacote que o Arma 3 carrega como addon. A criação do PBO, binarização, assinatura, obfuscação e publicação são operações de release e não substituem a inspeção da fonte.
As regras operacionais deste repositório são:
- não usar PBO como validação automática;
- não executar `pboProject`, Addon Builder, Binarize, MakePbo, HEMTT de build/release/dev, ferramentas de assinatura ou scripts de publicação nesta rotina de desenvolvimento;
- não afirmar que um addon foi empacotado, binarizado, assinado ou testado no jogo sem essa evidência real;
- quando um mantenedor autorizado realizar o release, registrar separadamente a ferramenta, o resultado, os logs e os testes executados.
O diretório `make` contém ferramentas que podem incluir etapas de empacotamento ou Workshop. Inspecione-as apenas para entender o pipeline; não as execute automaticamente durante uma alteração de fonte.
## Diagnóstico rápido
### O addon não aparece
Verifique a existência do `config.cpp`, a classe `CfgPatches`, o `requiredAddons[]`, `scope`, `units[]`, `weapons[]`, o caminho do PBO e a capitalização de todos os caminhos.
### A função está indefinida
Confirme a classe `CfgFunctions`, o caminho `file`, o nome gerado (`PREFIX_fnc_function`), a dependência do addon e se o arquivo `.sqf` existe no checkout.
### O veículo existe, mas o armamento não funciona
Trace a cadeia `CfgVehicles``CfgWeapons``CfgMagazines``CfgAmmo`. Verifique muzzle, magazine, pylon, hardpoint, parent class, `requiredAddons[]`, memória do modelo e modos de fogo.
### O ocupante não recebe dano
Inspecione Fire Geometry, materiais de penetração e proxies. Depois confirme a relação entre hitpoints, configuração do veículo e teste de impacto real.
### O objeto colide, flutua ou permite caminhar de forma errada
Separe o diagnóstico de Geometry, Geometry PhysX, Geometry Buoyancy, Roadway, LandContact, Memory e configuração. Um packing bem-sucedido não prova nenhum desses comportamentos.
### A função funciona localmente, mas falha no multiplayer
Revise máquina autoritativa, `local`, `isServer`, `hasInterface`, JIP, Event Handlers, `remoteExec`, `CfgRemoteExec`, argumentos e ownership migration.
### A textura ou o material não aparece
Confirme o caminho do asset, case, prefixo do addon, extensão, `hiddenSelections[]`, `hiddenSelectionsTextures[]`, `hiddenSelectionsMaterials[]` e dependências do RVMAT.
## Referências oficiais de Arma 3
- [Creating an Addon](https://community.bohemia.net/wiki/Arma_3%3A_Creating_an_Addon)
- [CfgFunctions](https://community.bohemia.net/wiki/Arma_3_CfgFunctions)
- [Functions Library](https://community.bohemia.net/wiki/Arma_3%3A_Functions_Library)
- [Class Inheritance](https://community.bohemia.net/wiki/Class_Inheritance)
- [LOD](https://community.bohemia.net/wiki/LOD)
- [Arma 3 Named Properties](https://community.bohemia.net/wiki/Arma_3%3A_Named_Properties)
- [Ships Config Guidelines](https://community.bohemia.net/wiki/Arma_3%3A_Ships_Config_Guidelines)
- [Object Builder](https://community.bohemia.net/wiki/Object_Builder)
- [Event Handlers](https://community.bohemia.net/wiki/Arma_3%3A_Event_Handlers)
- [Multiplayer Scripting](https://community.bohemia.net/wiki/Multiplayer_Scripting)
- [Remote Execution](https://community.bohemia.net/wiki/Arma_3%3A_Remote_Execution)
- [CfgRemoteExec](https://community.bohemia.net/wiki/CfgRemoteExec)
- [Addon Builder](https://community.bohemia.net/wiki/Addon_Builder) — referência da ferramenta de release; não substitui a validação da fonte
- [CBA_A3](https://github.com/CBATeam/CBA_A3)
- [ACE3](https://github.com/acemod/ACE3)
## Projeto e contribuição
### Fluxo recomendado
1. Crie uma branch com escopo claro e mantenha cada alteração relacionada em commits pequenos.
2. Antes de editar, registre o addon afetado, o comportamento esperado, as dependências e os riscos conhecidos.
3. Preserve arquivos e assets fora do escopo. Não inclua PBOs, arquivos gerados, cópias de trabalho ou alterações de terceiros no commit.
4. Faça a validação estática e os testes adequados ao risco da mudança antes de solicitar revisão.
5. Escreva uma mensagem de commit objetiva, com ação e escopo claros; por exemplo: `fix(braf_air): corrige pontos de memória do helicóptero`.
6. Na revisão, descreva o que mudou, por que mudou, quais arquivos foram afetados, quais testes foram executados e o que permanece sem evidência.
7. Registre no [CHANGELOG.md](CHANGELOG.md) as alterações de comportamento relevantes quando o fluxo da tarefa exigir.
### Checklist de revisão
- O addon proprietário e o `CfgPatches` estão corretos?
- As classes, funções, includes, caminhos e nomes de assets seguem as convenções do projeto?
- `requiredAddons[]` contém somente dependências reais e suficientes?
- CBA continua tratado como dependência obrigatória e ACE permanece opcional quando aplicável?
- Foram preservados comportamento público, localidade, JIP, ações, Event Handlers e interfaces existentes?
- A alteração foi validada no nível adequado: fonte, Config Viewer, Object Builder, Buldozer, singleplayer ou multiplayer?
- Nenhum asset protegido, referência externa ou arquivo fora do escopo foi alterado?
- A documentação, o changelog e as licenças foram atualizados quando necessário?
Para alterações de código, informe o caminho, dependências, validação realizada, limitações e o teste de Arma 3 recomendado.
+7 -7
View File
@@ -1,16 +1,16 @@
class BRAF_PylonPod_50_cal: 100Rnd_127x99_mag_Tracer_Red class braf_pylonpod_50_cal: 100Rnd_127x99_mag_Tracer_Red
{ {
displayName="FN M3M .50 cal"; displayName="FN M3M .50 cal";
model="\braf\braf_air\braf_air_weap\braf_gunpod.p3d"; model="\braf\braf_air\braf_air_weap\braf_gunpod.p3d";
ammo="Braf_B_127x99_Ball_Red_Tracer_Splash"; ammo="braf_b_127x99_ball_red_tracer_splash";
tracersEvery=1; tracersEvery=1;
count=400; count=400;
hardpoints[]={"BRAF_50cal_PYLON"}; hardpoints[]={"BRAF_50cal_PYLON"};
pylonWeapon="BRAF_50Cal_weapon"; pylonWeapon="braf_50cal_weapon";
muzzlePos="muzzlepos"; muzzlePos="muzzlepos";
muzzleEnd="muzzleend"; muzzleEnd="muzzleend";
}; };
class BRAF_PylonPod_rocket_ap: PylonRack_7Rnd_Rocket_04_AP_F class braf_pylonpod_rocket_ap: PylonRack_7Rnd_Rocket_04_AP_F
{ {
displayName="SBAT 70 Rocket AP"; displayName="SBAT 70 Rocket AP";
model="\braf\braf_air\braf_air_weap\braf_rocket.p3d"; model="\braf\braf_air\braf_air_weap\braf_rocket.p3d";
@@ -19,12 +19,12 @@ class BRAF_PylonPod_rocket_ap: PylonRack_7Rnd_Rocket_04_AP_F
{ {
"BRAF_rocket_ap_PYLON" "BRAF_rocket_ap_PYLON"
}; };
pylonWeapon="BRAF_rocket_ap_weapon"; pylonWeapon="braf_rocket_ap_weapon";
count=7; count=7;
mass=88.300003; mass=88.300003;
}; };
class BRAF_PylonPod_rocket_he: PylonRack_7Rnd_Rocket_04_HE_F class braf_pylonpod_rocket_he: PylonRack_7Rnd_Rocket_04_HE_F
{ {
displayName="SBAT 70 Rocket HE"; displayName="SBAT 70 Rocket HE";
count=7; count=7;
@@ -34,6 +34,6 @@ class BRAF_PylonPod_rocket_he: PylonRack_7Rnd_Rocket_04_HE_F
{ {
"BRAF_rocket_he_PYLON" "BRAF_rocket_he_PYLON"
}; };
pylonWeapon="BRAF_rocket_he_weapon"; pylonWeapon="braf_rocket_he_weapon";
mass=88.300003; mass=88.300003;
}; };
+16 -16
View File
@@ -1,8 +1,8 @@
class BRAF_50Cal_weapon: HMG_127 class braf_50cal_weapon: HMG_127
{ {
magazines[]= magazines[]=
{ {
"BRAF_PylonPod_50_cal" "braf_pylonpod_50_cal"
}; };
scope=1; scope=1;
displayName="FN M3M .50 cal"; displayName="FN M3M .50 cal";
@@ -29,21 +29,21 @@ class BRAF_50Cal_weapon: HMG_127
{ {
begin1[]= begin1[]=
{ {
"braf\braf_air\Braf_Air_Weap\data\M2", "braf\braf_air\braf_air_weap\data\m2",
1.5848932, 1.5848932,
1, 1,
2100 2100
}; };
begin2[]= begin2[]=
{ {
"braf\braf_air\Braf_Air_Weap\data\m2_single_1", "braf\braf_air\braf_air_weap\data\m2_single_1",
1.5848932, 1.5848932,
1, 1,
2100 2100
}; };
begin3[]= begin3[]=
{ {
"braf\braf_air\Braf_Air_Weap\data\m2_single_2", "braf\braf_air\braf_air_weap\data\m2_single_2",
1.5848932, 1.5848932,
1, 1,
2100 2100
@@ -59,14 +59,14 @@ class BRAF_50Cal_weapon: HMG_127
}; };
closure1[]= closure1[]=
{ {
"A3\Sounds_F\weapons\Closure\sfx10", "a3\sounds_f\weapons\closure\sfx10",
0.63095737, 0.63095737,
1, 1,
20 20
}; };
closure2[]= closure2[]=
{ {
"A3\sounds_f\weapons\closure\sfx11", "a3\sounds_f\weapons\closure\sfx11",
0.63095737, 0.63095737,
1.2, 1.2,
20 20
@@ -156,15 +156,15 @@ class BRAF_50Cal_weapon: HMG_127
}; };
reloadMagazineSound[]= reloadMagazineSound[]=
{ {
"braf\braf_air\Braf_Air_Weap\data\reload-belt-1", "braf\braf_air\braf_air_weap\data\reload-belt-1",
10, 10,
1, 1,
20 20
}; };
}; };
class BRAF_rocket_ap_weapon: missiles_DAR class braf_rocket_ap_weapon: missiles_DAR
{ {
magazines[]={"BRAF_PylonPod_rocket_ap"}; magazines[]={"braf_pylonpod_rocket_ap"};
displayName="SBAT 70 Rocket AP"; displayName="SBAT 70 Rocket AP";
modes[]= modes[]=
{ {
@@ -189,7 +189,7 @@ class BRAF_rocket_ap_weapon: missiles_DAR
{ {
begin1[]= begin1[]=
{ {
"A3\Sounds_F\weapons\Rockets\new_rocket_8", "a3\sounds_f\weapons\rockets\new_rocket_8",
1.7782794, 1.7782794,
1.2, 1.2,
1600 1600
@@ -257,7 +257,7 @@ class BRAF_rocket_ap_weapon: missiles_DAR
{ {
begin1[]= begin1[]=
{ {
"A3\Sounds_F\weapons\Rockets\new_rocket_8", "a3\sounds_f\weapons\rockets\new_rocket_8",
1.7782794, 1.7782794,
1.2, 1.2,
1600 1600
@@ -271,9 +271,9 @@ class BRAF_rocket_ap_weapon: missiles_DAR
textureType="fullAuto"; textureType="fullAuto";
}; };
}; };
class BRAF_rocket_he_weapon: missiles_DAR class braf_rocket_he_weapon: missiles_DAR
{ {
magazines[]={"BRAF_PylonPod_rocket_he"}; magazines[]={"braf_pylonpod_rocket_he"};
displayName="SBAT 70 Rocket HE"; displayName="SBAT 70 Rocket HE";
modes[]= modes[]=
{ {
@@ -298,7 +298,7 @@ class BRAF_rocket_he_weapon: missiles_DAR
{ {
begin1[]= begin1[]=
{ {
"A3\Sounds_F\weapons\Rockets\new_rocket_8", "a3\sounds_f\weapons\rockets\new_rocket_8",
1.7782794, 1.7782794,
1.2, 1.2,
1600 1600
@@ -366,7 +366,7 @@ class BRAF_rocket_he_weapon: missiles_DAR
{ {
begin1[]= begin1[]=
{ {
"A3\Sounds_F\weapons\Rockets\new_rocket_8", "a3\sounds_f\weapons\rockets\new_rocket_8",
1.7782794, 1.7782794,
1.2, 1.2,
1600 1600
+9 -30
View File
@@ -1,7 +1,7 @@
class BRAF_Rocket_04_HE_F: Rocket_04_HE_F class braf_rocket_04_he_f: Rocket_04_HE_F
{ {
model="\braf\braf_air\braf_air_weap\BRAF_SBAT_70.p3d"; model="\braf\braf_air\braf_air_weap\braf_sbat_70.p3d";
proxyShape="\braf\braf_air\braf_air_weap\BRAF_SBAT_70.p3d"; proxyShape="\braf\braf_air\braf_air_weap\braf_sbat_70.p3d";
maverickWeaponIndexOffset=12; maverickWeaponIndexOffset=12;
maverickweapon=1; maverickweapon=1;
cost=100; cost=100;
@@ -32,7 +32,7 @@ class BRAF_Rocket_04_HE_F: Rocket_04_HE_F
muzzleEffect=""; muzzleEffect="";
soundFly[]= soundFly[]=
{ {
"A3\Sounds_F\weapons\Rockets\rocket_fly_1", "a3\sounds_f\weapons\rockets\rocket_fly_1",
0.63095737, 0.63095737,
1.2, 1.2,
1700 1700
@@ -67,10 +67,10 @@ class BRAF_Rocket_04_HE_F: Rocket_04_HE_F
distance=1; distance=1;
}; };
}; };
class BRAF_Rocket_04_AP_F: Rocket_04_AP_F class braf_rocket_04_ap_f: Rocket_04_AP_F
{ {
model="\braf\braf_air\braf_air_weap\BRAF_SBAT_70.p3d"; model="\braf\braf_air\braf_air_weap\braf_sbat_70.p3d";
proxyShape="\braf\braf_air\braf_air_weap\BRAF_SBAT_70.p3d"; proxyShape="\braf\braf_air\braf_air_weap\braf_sbat_70.p3d";
maverickWeaponIndexOffset=19; maverickWeaponIndexOffset=19;
submunitionAmmo="ammo_Penetrator_Rocket_04_AP"; submunitionAmmo="ammo_Penetrator_Rocket_04_AP";
submunitionDirectionType="SubmunitionModelDirection"; submunitionDirectionType="SubmunitionModelDirection";
@@ -85,29 +85,8 @@ class BRAF_Rocket_04_AP_F: Rocket_04_AP_F
warheadName="HE"; warheadName="HE";
aiAmmoUsageFlags=128; aiAmmoUsageFlags=128;
}; };
class Braf_B_127x99_Ball_Red_Tracer: B_127x99_Ball class braf_b_127x99_ball_red_tracer;
{ class braf_b_127x99_ball_red_tracer_splash: braf_b_127x99_ball_red_tracer
model="\A3\Weapons_f\Data\bullettracer\tracer_red";
lightcolor[] = {0.25,0.25,0.5};
effectflare = "FlareShell";
effectfly = "Braf_tracer_red";
flaresize = 5;
tracerScale=1.2;
tracerStartTime=0.075000003;
airFriction=-0.00057502999;
tracerEndTime=2.3;
ACE_caliber=12.954;
ACE_bulletLength=58.674;
ACE_bulletMass=41.925598;
ACE_ammoTempMuzzleVelocityShifts[]={-26.549999,-25.469999,-22.85,-20.120001,-16.98,-12.8,-7.6399999,-1.53,5.96,15.17,26.190001};
ACE_ballisticCoefficients[]={0.67000002};
ACE_velocityBoundaries[]={};
ACE_standardAtmosphere="ASM";
ACE_dragModel=1;
ACE_muzzleVelocities[]={853};
ACE_barrelLengths[]={736.59998};
};
class Braf_B_127x99_Ball_Red_Tracer_Splash: Braf_B_127x99_Ball_Red_Tracer
{ {
hit=32; hit=32;
indirectHit=1.5; indirectHit=1.5;
+4 -4
View File
@@ -1,6 +1,6 @@
class CfgSkeletons class CfgSkeletons
{ {
class Braf_Pods class braf_pods
{ {
isDiscrete=0; isDiscrete=0;
skeletonInherit=""; skeletonInherit="";
@@ -20,7 +20,7 @@ class CfgModels
mfMax=100; mfMax=100;
mFact=0; mFact=0;
tBody=0; tBody=0;
skeletonName="Braf_Pods"; skeletonName="braf_pods";
sectionsInherit=""; sectionsInherit="";
sections[]={}; sections[]={};
class Animations class Animations
@@ -41,7 +41,7 @@ class CfgModels
}; };
}; };
}; };
class BRAF_SBAT_70 class braf_sbat_70
{ {
htMin=0; htMin=0;
htMax=0; htMax=0;
@@ -49,7 +49,7 @@ class CfgModels
mfMax=0; mfMax=0;
mFact=0; mFact=0;
tBody=0; tBody=0;
skeletonName="Braf_Pods"; skeletonName="braf_pods";
sectionsInherit=""; sectionsInherit="";
sections[]={}; sections[]={};
class Animations class Animations
Binary file not shown.
File diff suppressed because it is too large Load Diff
@@ -1,6 +1,6 @@
class MFD class MFD
{ {
class BRAF_HRZ1 class braf_hrz1
{ {
topLeft="MFD1_TL"; topLeft="MFD1_TL";
topRight="MFD1_TR"; topRight="MFD1_TR";
@@ -5826,7 +5826,7 @@ class MFD
{ {
type="text"; type="text";
source="static"; source="static";
text="M/S"; text="m/s";
sourceScale=1; sourceScale=1;
align="center"; align="center";
scale=1; scale=1;
@@ -6907,13 +6907,13 @@ class MFD
}; };
}; };
}; };
class BRAF_HRZ2: BRAF_HRZ1 class braf_hrz2: braf_hrz1
{ {
topLeft="MFD4_TL"; topLeft="MFD4_TL";
topRight="MFD4_TR"; topRight="MFD4_TR";
bottomLeft="MFD4_BL"; bottomLeft="MFD4_BL";
}; };
class BRAF_HRZ3 class braf_hrz3
{ {
topLeft="HRZ_TL"; topLeft="HRZ_TL";
topRight="HRZ_TR"; topRight="HRZ_TR";
@@ -12305,7 +12305,7 @@ class MFD
}; };
}; };
}; };
class BRAF_DIR1 class braf_dir1
{ {
topLeft="MFD2_TL"; topLeft="MFD2_TL";
topRight="MFD2_TR"; topRight="MFD2_TR";
@@ -13374,13 +13374,13 @@ class MFD
}; };
}; };
}; };
class BRAF_DIR2: BRAF_DIR1 class braf_dir2: braf_dir1
{ {
topLeft="MFD3_TL"; topLeft="MFD3_TL";
topRight="MFD3_TR"; topRight="MFD3_TR";
bottomLeft="MFD3_BL"; bottomLeft="MFD3_BL";
}; };
class BRAF_ENG1 class braf_eng1
{ {
topLeft="ENG1_TL"; topLeft="ENG1_TL";
topRight="ENG1_TR"; topRight="ENG1_TR";
@@ -13454,7 +13454,7 @@ class MFD
class Top class Top
{ {
type="polygon"; type="polygon";
texture="braf\braf_air\Braf_Helicopters\Braf_Pantera\data\engine2_ca.paa"; texture="braf\braf_air\braf_helicopters\braf_pantera\data\engine2_ca.paa";
points[]= points[]=
{ {
{ {
@@ -13517,7 +13517,7 @@ class MFD
}; };
}; };
}; };
class BRAF_ENG2 class braf_eng2
{ {
topLeft="ENG2_TL"; topLeft="ENG2_TL";
topRight="ENG2_TR"; topRight="ENG2_TR";
@@ -13580,7 +13580,7 @@ class MFD
class Bottom class Bottom
{ {
type="polygon"; type="polygon";
texture="braf\braf_air\Braf_Helicopters\Braf_Pantera\data\engine1_ca.paa"; texture="braf\braf_air\braf_helicopters\braf_pantera\data\engine1_ca.paa";
points[]= points[]=
{ {
{ {
@@ -13610,7 +13610,7 @@ class MFD
}; };
}; };
}; };
class BRAF_COM1 class braf_com1
{ {
topLeft="COM1_TL"; topLeft="COM1_TL";
topRight="COM1_TR"; topRight="COM1_TR";
@@ -13703,7 +13703,7 @@ class MFD
}; };
}; };
}; };
class BRAF_COM2: BRAF_COM1 class braf_com2: braf_com1
{ {
topLeft="COM2_TL"; topLeft="COM2_TL";
topRight="COM2_TR"; topRight="COM2_TR";
@@ -2,246 +2,246 @@ occludeSoundsWhenIn=0.562341;
obstructSoundsWhenIn=0.316228; obstructSoundsWhenIn=0.316228;
attenuationEffectType="HeliAttenuation"; attenuationEffectType="HeliAttenuation";
emptySound[]={"",0,1}; emptySound[]={"",0,1};
soundGeneralCollision1[]={"A3\Sounds_F\vehicles\crashes\helis\Heli_coll_default_int_1",1.0,1,100}; soundGeneralCollision1[]={"a3\sounds_f\vehicles\crashes\helis\heli_coll_default_int_1",1.0,1,100};
soundGeneralCollision2[]={"A3\Sounds_F\vehicles\crashes\helis\Heli_coll_default_int_2",1.0,1,100}; soundGeneralCollision2[]={"a3\sounds_f\vehicles\crashes\helis\heli_coll_default_int_2",1.0,1,100};
soundGeneralCollision3[]={"A3\Sounds_F\vehicles\crashes\helis\Heli_coll_default_int_3",1.0,1,100}; soundGeneralCollision3[]={"a3\sounds_f\vehicles\crashes\helis\heli_coll_default_int_3",1.0,1,100};
soundCrashes[]={"soundGeneralCollision1",0.33,"soundGeneralCollision2",0.33,"soundGeneralCollision3",0.33}; soundCrashes[]={"soundGeneralCollision1",0.33,"soundGeneralCollision2",0.33,"soundGeneralCollision3",0.33};
soundLandCrashes[]={"emptySound",0}; soundLandCrashes[]={"emptySound",0};
soundBuildingCrash[]={"soundGeneralCollision1",1,"soundGeneralCollision2",1,"soundGeneralCollision3",1}; soundBuildingCrash[]={"soundGeneralCollision1",1,"soundGeneralCollision2",1,"soundGeneralCollision3",1};
soundArmorCrash[]={"soundGeneralCollision1",1,"soundGeneralCollision2",1,"soundGeneralCollision3",1}; soundArmorCrash[]={"soundGeneralCollision1",1,"soundGeneralCollision2",1,"soundGeneralCollision3",1};
soundWoodCrash[]={"soundGeneralCollision1",1,"soundGeneralCollision2",1,"soundGeneralCollision3",1}; soundWoodCrash[]={"soundGeneralCollision1",1,"soundGeneralCollision2",1,"soundGeneralCollision3",1};
soundBushCollision1[]={"A3\Sounds_F\vehicles\crashes\helis\Heli_coll_bush_int_1",1.0,1,100}; soundBushCollision1[]={"a3\sounds_f\vehicles\crashes\helis\heli_coll_bush_int_1",1.0,1,100};
soundBushCollision2[]={"A3\Sounds_F\vehicles\crashes\helis\Heli_coll_bush_int_2",1.0,1,100}; soundBushCollision2[]={"a3\sounds_f\vehicles\crashes\helis\heli_coll_bush_int_2",1.0,1,100};
soundBushCollision3[]={"A3\Sounds_F\vehicles\crashes\helis\Heli_coll_bush_int_3",1.0,1,100}; soundBushCollision3[]={"a3\sounds_f\vehicles\crashes\helis\heli_coll_bush_int_3",1.0,1,100};
soundBushCrash[]={"soundBushCollision1",0.33,"soundBushCollision2",0.33,"soundBushCollision3",0.33}; soundBushCrash[]={"soundBushCollision1",0.33,"soundBushCollision2",0.33,"soundBushCollision3",0.33};
soundWaterCollision1[]={"A3\Sounds_F\vehicles\crashes\planes\plane_crash_water_1",1.4125376,1,500}; soundWaterCollision1[]={"a3\sounds_f\vehicles\crashes\planes\plane_crash_water_1",1.4125376,1,500};
soundWaterCollision2[]={"A3\Sounds_F\vehicles\crashes\planes\plane_crash_water_2",1.4125376,1,500}; soundWaterCollision2[]={"a3\sounds_f\vehicles\crashes\planes\plane_crash_water_2",1.4125376,1,500};
soundWaterCrashes[]={"soundWaterCollision1",0.5,"soundWaterCollision2",0.5}; soundWaterCrashes[]={"soundWaterCollision1",0.5,"soundWaterCollision2",0.5};
soundDammage[]={"A3\Sounds_F\vehicles\crashes\helis\Heli_crash_default_ext_1",3.1622777,1}; soundDammage[]={"a3\sounds_f\vehicles\crashes\helis\heli_crash_default_ext_1",3.1622777,1};
soundGetIn[]={"A3\Sounds_F\vehicles\air\noises\heli_get_in2",0.56234133,1}; soundGetIn[]={"a3\sounds_f\vehicles\air\noises\heli_get_in2",0.56234133,1};
soundGetOut[]={"A3\Sounds_F\vehicles\air\noises\heli_get_out2",0.7943282,1,20}; soundGetOut[]={"a3\sounds_f\vehicles\air\noises\heli_get_out2",0.7943282,1,20};
soundEngineOnInt[]={"braf\braf_air\Braf_Helicopters\BRAF_Sounds\caracal\caracal_int_start.ogg",0.31622776,1.0}; soundEngineOnInt[]={"braf\braf_air\braf_helicopters\braf_sounds\caracal\caracal_int_start.ogg",0.31622776,1.0};
soundEngineOnExt[]={"braf\braf_air\Braf_Helicopters\BRAF_Sounds\caracal\caracal_ext_start.ogg",0.7943282,1.0,600}; soundEngineOnExt[]={"braf\braf_air\braf_helicopters\braf_sounds\caracal\caracal_ext_start.ogg",0.7943282,1.0,600};
soundEngineOffInt[]={"braf\braf_air\Braf_Helicopters\BRAF_Sounds\caracal\caracal_int_shut.ogg",0.31622776,1.0}; soundEngineOffInt[]={"braf\braf_air\braf_helicopters\braf_sounds\caracal\caracal_int_shut.ogg",0.31622776,1.0};
soundEngineOffExt[]={"braf\braf_air\Braf_Helicopters\BRAF_Sounds\caracal\caracal_ext_shut.ogg",0.7943282,1.0,600}; soundEngineOffExt[]={"braf\braf_air\braf_helicopters\braf_sounds\caracal\caracal_ext_shut.ogg",0.7943282,1.0,600};
soundLocked[]={"\A3\Sounds_F\weapons\Rockets\opfor_lock_1",1.0,1}; soundLocked[]={"\a3\sounds_f\weapons\rockets\opfor_lock_1",1.0,1};
soundIncommingMissile[]={"\A3\Sounds_F\vehicles\air\noises\alarm_locked_by_missile_1",0.31622776,1.0}; soundIncommingMissile[]={"\a3\sounds_f\vehicles\air\noises\alarm_locked_by_missile_1",0.31622776,1.0};
rotorDamageInt[]={"A3\Sounds_F\vehicles\air\noises\heli_damage_rotor_int_open_1",1.0,1.0}; rotorDamageInt[]={"a3\sounds_f\vehicles\air\noises\heli_damage_rotor_int_open_1",1.0,1.0};
rotorDamageOut[]={"A3\Sounds_F\vehicles\air\noises\heli_damage_rotor_ext_1",2.5118864,1.0,150}; rotorDamageOut[]={"a3\sounds_f\vehicles\air\noises\heli_damage_rotor_ext_1",2.5118864,1.0,150};
rotorDamage[]={"rotorDamageInt","rotorDamageOut"}; rotorDamage[]={"rotorDamageInt","rotorDamageOut"};
tailDamageInt[]={"A3\Sounds_F\vehicles\air\noises\heli_damage_tail",1.0,1.0}; tailDamageInt[]={"a3\sounds_f\vehicles\air\noises\heli_damage_tail",1.0,1.0};
tailDamageOut[]={"A3\Sounds_F\vehicles\air\noises\heli_damage_tail",1.0,1.0,300}; tailDamageOut[]={"a3\sounds_f\vehicles\air\noises\heli_damage_tail",1.0,1.0,300};
tailDamage[]={"tailDamageInt","tailDamageOut"}; tailDamage[]={"tailDamageInt","tailDamageOut"};
landingSoundInt0[]={"A3\Sounds_F\vehicles\air\noises\landing_skids_int1_open",1.0,1.0,100}; landingSoundInt0[]={"a3\sounds_f\vehicles\air\noises\landing_skids_int1_open",1.0,1.0,100};
landingSoundInt1[]={"A3\Sounds_F\vehicles\air\noises\landing_skids_int1_open",1.0,1.0,100}; landingSoundInt1[]={"a3\sounds_f\vehicles\air\noises\landing_skids_int1_open",1.0,1.0,100};
landingSoundInt[]={"landingSoundInt0",0.5,"landingSoundInt1",0.5}; landingSoundInt[]={"landingSoundInt0",0.5,"landingSoundInt1",0.5};
landingSoundOut0[]={"A3\Sounds_F\vehicles\air\noises\landing_skids_ext1",1.7782794,1.0,100}; landingSoundOut0[]={"a3\sounds_f\vehicles\air\noises\landing_skids_ext1",1.7782794,1.0,100};
landingSoundOut1[]={"A3\Sounds_F\vehicles\air\noises\landing_skids_ext1",1.7782794,1.0,100}; landingSoundOut1[]={"a3\sounds_f\vehicles\air\noises\landing_skids_ext1",1.7782794,1.0,100};
landingSoundOut[]={"landingSoundOut0",0.5,"landingSoundOut1",0.5}; landingSoundOut[]={"landingSoundOut0",0.5,"landingSoundOut1",0.5};
slingCargoAttach0[]={"A3\Sounds_F\vehicles\air\noises\SL_engineDownEndINT",1.0,1.0}; slingCargoAttach0[]={"a3\sounds_f\vehicles\air\noises\sl_enginedownendint",1.0,1.0};
slingCargoAttach1[]={"A3\Sounds_F\vehicles\air\noises\SL_1hookLock",1.7782794,1.0,200}; slingCargoAttach1[]={"a3\sounds_f\vehicles\air\noises\sl_1hooklock",1.7782794,1.0,200};
slingCargoAttach[]={"slingCargoAttach0","slingCargoAttach1"}; slingCargoAttach[]={"slingCargoAttach0","slingCargoAttach1"};
slingCargoDetach0[]={"A3\Sounds_F\vehicles\air\noises\SL_engineUpEndINT",1.0,1.0}; slingCargoDetach0[]={"a3\sounds_f\vehicles\air\noises\sl_engineupendint",1.0,1.0};
slingCargoDetach1[]={"A3\Sounds_F\vehicles\air\noises\SL_1hookUnlock",1.7782794,1.0,200}; slingCargoDetach1[]={"a3\sounds_f\vehicles\air\noises\sl_1hookunlock",1.7782794,1.0,200};
slingCargoDetach[]={"slingCargoDetach0","slingCargoDetach1"}; slingCargoDetach[]={"slingCargoDetach0","slingCargoDetach1"};
slingCargoDetachAir0[]={"A3\Sounds_F\vehicles\air\noises\SL_unhook_air_int",1.0,1.0}; slingCargoDetachAir0[]={"a3\sounds_f\vehicles\air\noises\sl_unhook_air_int",1.0,1.0};
slingCargoDetachAir1[]={"A3\Sounds_F\vehicles\air\noises\SL_unhook_air_ext",1.0,1.0,300}; slingCargoDetachAir1[]={"a3\sounds_f\vehicles\air\noises\sl_unhook_air_ext",1.0,1.0,300};
slingCargoDetachAir[]={"slingCargoDetach0","slingCargoDetach1"}; slingCargoDetachAir[]={"slingCargoDetach0","slingCargoDetach1"};
slingCargoRopeBreak0[]={"A3\Sounds_F\vehicles\air\noises\SL_rope_break_int",1.0,1.0}; slingCargoRopeBreak0[]={"a3\sounds_f\vehicles\air\noises\sl_rope_break_int",1.0,1.0};
slingCargoRopeBreak1[]={"A3\Sounds_F\vehicles\air\noises\SL_rope_break_ext",1.0,1.0,200}; slingCargoRopeBreak1[]={"a3\sounds_f\vehicles\air\noises\sl_rope_break_ext",1.0,1.0,200};
slingCargoRopeBreak[]={"slingCargoDetach0","slingCargoDetach1"}; slingCargoRopeBreak[]={"slingCargoDetach0","slingCargoDetach1"};
gearUpExt[]={"A3\Sounds_F\vehicles\air\Heli_Attack_01\blackfoot_gear_up_ext",1,1,1000}; gearUpExt[]={"a3\sounds_f\vehicles\air\heli_attack_01\blackfoot_gear_up_ext",1,1,1000};
gearUpInt[]={"A3\Sounds_F\vehicles\air\Heli_Attack_01\blackfoot_gear_up_int",1,1,100}; gearUpInt[]={"a3\sounds_f\vehicles\air\heli_attack_01\blackfoot_gear_up_int",1,1,100};
gearUp[]={"gearUpInt","gearUpExt"}; gearUp[]={"gearUpInt","gearUpExt"};
gearDownInt[]={"A3\Sounds_F\vehicles\air\Heli_Attack_01\blackfoot_gear_down_int",1,1,100}; gearDownInt[]={"a3\sounds_f\vehicles\air\heli_attack_01\blackfoot_gear_down_int",1,1,100};
gearDownExt[]={"A3\Sounds_F\vehicles\air\Heli_Attack_01\blackfoot_gear_down_ext",1,1,1000}; gearDownExt[]={"a3\sounds_f\vehicles\air\heli_attack_01\blackfoot_gear_down_ext",1,1,1000};
gearDown[]={"gearDownInt","gearDownExt"}; gearDown[]={"gearDownInt","gearDownExt"};
class Sounds class Sounds
{ {
class EngineExt class EngineExt
{ {
sound[]={"braf\braf_air\Braf_Helicopters\BRAF_Sounds\caracal\caracal_ext_eng.ogg",0.75,1.0,400}; sound[]={"braf\braf_air\braf_helicopters\braf_sounds\caracal\caracal_ext_eng.ogg",0.75,1.0,400};
frequency="rotorSpeed"; frequency="rotorSpeed";
volume="4 * camPos * (0 max (rotorSpeed-0.4))"; volume="4 * camPos * (0 max (rotorSpeed-0.4))";
}; };
class RotorExt class RotorExt
{ {
sound[]={"braf\braf_air\Braf_Helicopters\BRAF_Sounds\caracal\caracal_ext_rotor.ogg",1.5,1.0,1500}; sound[]={"braf\braf_air\braf_helicopters\braf_sounds\caracal\caracal_ext_rotor.ogg",1.5,1.0,1500};
frequency="(rotorSpeed factor [0.3, 0.7]) * (rotorSpeed factor [0.3, 1]) * (1 - rotorThrust/4)"; frequency="(rotorspeed factor [0.3, 0.7]) * (rotorspeed factor [0.3, 1]) * (1 - rotorthrust/4)";
volume="camPos * (rotorSpeed factor [0.3, 1]) * (1 + rotorThrust)"; volume="camPos * (rotorSpeed factor [0.3, 1]) * (1 + rotorThrust)";
}; };
class RotorSwist class RotorSwist
{ {
sound[]={"braf\braf_air\Braf_Helicopters\BRAF_Sounds\caracal\rotor_swist",0.70794576,1.0,200}; sound[]={"braf\braf_air\braf_helicopters\braf_sounds\caracal\rotor_swist",0.70794576,1.0,200};
frequency=1; frequency=1;
volume="camPos * (rotorThrust factor [0.7, 0.9])"; volume="camPos * (rotorThrust factor [0.7, 0.9])";
}; };
class EngineInt class EngineInt
{ {
sound[]={"braf\braf_air\Braf_Helicopters\BRAF_Sounds\caracal\caracal_int_eng.ogg",0.7943282,1.0}; sound[]={"braf\braf_air\braf_helicopters\braf_sounds\caracal\caracal_int_eng.ogg",0.7943282,1.0};
frequency="rotorSpeed"; frequency="rotorSpeed";
volume="(1-camPos)*2*(0 max (rotorSpeed-0.4))"; volume="(1-camPos)*2*(0 max (rotorSpeed-0.4))";
}; };
class RotorInt class RotorInt
{ {
sound[]={"braf\braf_air\Braf_Helicopters\BRAF_Sounds\caracal\caracal_int_rotor.ogg",0.63095737,1.0}; sound[]={"braf\braf_air\braf_helicopters\braf_sounds\caracal\caracal_int_rotor.ogg",0.63095737,1.0};
frequency="(rotorSpeed factor [0.3, 0.7]) * (rotorSpeed factor [0.3, 1]) * (1 - rotorThrust/4)"; frequency="(rotorspeed factor [0.3, 0.7]) * (rotorspeed factor [0.3, 1]) * (1 - rotorthrust/4)";
volume="(1 - camPos) * (rotorSpeed factor [0.3, 0.7]) * (1 + rotorThrust) * 0.7"; volume="(1 - camPos) * (rotorSpeed factor [0.3, 0.7]) * (1 + rotorThrust) * 0.7";
}; };
class RotorBench class RotorBench
{ {
sound[]={"braf\braf_air\Braf_Helicopters\BRAF_Sounds\caracal\caracal_int_rotor_bench.ogg",0.5011872,1.0,1000}; sound[]={"braf\braf_air\braf_helicopters\braf_sounds\caracal\caracal_int_rotor_bench.ogg",0.5011872,1.0,1000};
frequency="(rotorSpeed factor [0.3, 0.7]) * (rotorSpeed factor [0.3, 1]) * (1 - rotorThrust/4)"; frequency="(rotorspeed factor [0.3, 0.7]) * (rotorspeed factor [0.3, 1]) * (1 - rotorthrust/4)";
volume="(playerPos factor [3.9, 4]) * (1 - camPos) * (rotorSpeed factor [0.3, 1]) * (1 + rotorThrust) * 0.4"; volume="(playerPos factor [3.9, 4]) * (1 - camPos) * (rotorSpeed factor [0.3, 1]) * (1 + rotorThrust) * 0.4";
cone[]={1.6,3.14,1.6,0.95}; cone[]={1.6,3.14,1.6,0.95};
}; };
class EngineBench class EngineBench
{ {
sound[]={"braf\braf_air\Braf_Helicopters\BRAF_Sounds\caracal\caracal_int_eng_bench.ogg",0.3548134,1.0,400}; sound[]={"braf\braf_air\braf_helicopters\braf_sounds\caracal\caracal_int_eng_bench.ogg",0.3548134,1.0,400};
frequency="rotorSpeed"; frequency="rotorSpeed";
volume="(playerPos factor [3.9, 4]) * (1 - camPos) * (0 max (rotorSpeed-0.4))"; volume="(playerPos factor [3.9, 4]) * (1 - camPos) * (0 max (rotorSpeed-0.4))";
}; };
class WindBench class WindBench
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\wind_open_out",0.56234133,1.0,50}; sound[]={"a3\sounds_f\vehicles\air\noises\wind_open_out",0.56234133,1.0,50};
frequency=1; frequency=1;
volume="4 * (playerPos factor [3.9, 4]) * (1 - camPos) * ((speed factor[0, 30]) + (speed factor[0, -30]))"; volume="4 * (playerPos factor [3.9, 4]) * (1 - camPos) * ((speed factor[0, 30]) + (speed factor[0, -30]))";
}; };
class TransmissionDamageExt_phase1 class TransmissionDamageExt_phase1
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\heli_damage_transmission_ext_1",1.0,1.0,150}; sound[]={"a3\sounds_f\vehicles\air\noises\heli_damage_transmission_ext_1",1.0,1.0,150};
frequency="0.66 + rotorSpeed / 3"; frequency="0.66 + rotorspeed / 3";
volume="camPos * (transmissionDamage factor [0.3, 0.35]) * (transmissionDamage factor [0.5, 0.45]) * (rotorSpeed factor [0.2, 0.5])"; volume="camPos * (transmissionDamage factor [0.3, 0.35]) * (transmissionDamage factor [0.5, 0.45]) * (rotorSpeed factor [0.2, 0.5])";
}; };
class TransmissionDamageExt_phase2 class TransmissionDamageExt_phase2
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\heli_damage_transmission_ext_2",1.0,1.0,150}; sound[]={"a3\sounds_f\vehicles\air\noises\heli_damage_transmission_ext_2",1.0,1.0,150};
frequency="0.66 + rotorSpeed / 3"; frequency="0.66 + rotorspeed / 3";
volume="camPos * (transmissionDamage factor [0.45, 0.5]) * (rotorSpeed factor [0.2, 0.5])"; volume="camPos * (transmissionDamage factor [0.45, 0.5]) * (rotorSpeed factor [0.2, 0.5])";
}; };
class TransmissionDamageInt_phase1 class TransmissionDamageInt_phase1
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\heli_damage_transmission_int_1",1.0,1.0,150}; sound[]={"a3\sounds_f\vehicles\air\noises\heli_damage_transmission_int_1",1.0,1.0,150};
frequency="0.66 + rotorSpeed / 3"; frequency="0.66 + rotorspeed / 3";
volume="(1 - camPos) * (transmissionDamage factor [0.3, 0.35]) * (transmissionDamage factor [0.5, 0.45]) * (rotorSpeed factor [0.2, 0.5])"; volume="(1 - camPos) * (transmissionDamage factor [0.3, 0.35]) * (transmissionDamage factor [0.5, 0.45]) * (rotorSpeed factor [0.2, 0.5])";
}; };
class TransmissionDamageInt_phase2 class TransmissionDamageInt_phase2
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\heli_damage_transmission_int_2",1.0,1.0,150}; sound[]={"a3\sounds_f\vehicles\air\noises\heli_damage_transmission_int_2",1.0,1.0,150};
frequency="0.66 + rotorSpeed / 3"; frequency="0.66 + rotorspeed / 3";
volume="(1 - camPos) * (transmissionDamage factor [0.45, 0.5]) * (rotorSpeed factor [0.2, 0.5])"; volume="(1 - camPos) * (transmissionDamage factor [0.45, 0.5]) * (rotorSpeed factor [0.2, 0.5])";
}; };
class damageAlarmInt class damageAlarmInt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\heli_alarm_bluefor",0.31622776,1.0}; sound[]={"a3\sounds_f\vehicles\air\noises\heli_alarm_bluefor",0.31622776,1.0};
frequency=1; frequency=1;
volume="engineOn * (1 - camPos) * ( 1 - ((transmissionDamage factor [0.61, 0.60]) * (motorDamage factor [0.61, 0.60]) * (rotorDamage factor [0.51, 0.50]))) * (rotorSpeed factor [0.0, 0.001])"; volume="engineOn * (1 - camPos) * ( 1 - ((transmissionDamage factor [0.61, 0.60]) * (motorDamage factor [0.61, 0.60]) * (rotorDamage factor [0.51, 0.50]))) * (rotorSpeed factor [0.0, 0.001])";
}; };
class damageAlarmExt class damageAlarmExt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\heli_alarm_bluefor",0.22387211,1.0,20}; sound[]={"a3\sounds_f\vehicles\air\noises\heli_alarm_bluefor",0.22387211,1.0,20};
frequency=1; frequency=1;
volume="engineOn * camPos * ( 1 - ((transmissionDamage factor [0.61, 0.60]) * (motorDamage factor [0.61, 0.60]) * (rotorDamage factor [0.51, 0.50]))) * (rotorSpeed factor [0, 0.001])"; volume="engineOn * camPos * ( 1 - ((transmissionDamage factor [0.61, 0.60]) * (motorDamage factor [0.61, 0.60]) * (rotorDamage factor [0.51, 0.50]))) * (rotorSpeed factor [0, 0.001])";
}; };
class rotorLowAlarmInt class rotorLowAlarmInt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\heli_alarm_rotor_low",0.31622776,1.0}; sound[]={"a3\sounds_f\vehicles\air\noises\heli_alarm_rotor_low",0.31622776,1.0};
frequency=1; frequency=1;
volume="engineOn * (1 - camPos) * (rotorSpeed factor [0.9, 0.8999]) * (rotorSpeed factor [-0.5, 1]) * (speed factor [3, 3.01])"; volume="engineOn * (1 - camPos) * (rotorSpeed factor [0.9, 0.8999]) * (rotorSpeed factor [-0.5, 1]) * (speed factor [3, 3.01])";
}; };
class rotorLowAlarmExt class rotorLowAlarmExt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\heli_alarm_rotor_low",0.22387211,1.0,20}; sound[]={"a3\sounds_f\vehicles\air\noises\heli_alarm_rotor_low",0.22387211,1.0,20};
frequency=1; frequency=1;
volume="engineOn * camPos * (rotorSpeed factor [0.9, 0.8999]) * (rotorSpeed factor [-0.5, 1]) * (speed factor [3, 3.01])"; volume="engineOn * camPos * (rotorSpeed factor [0.9, 0.8999]) * (rotorSpeed factor [-0.5, 1]) * (speed factor [3, 3.01])";
}; };
class scrubLandInt class scrubLandInt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\scrubLandInt_open",1.0,1.0,100}; sound[]={"a3\sounds_f\vehicles\air\noises\scrublandint_open",1.0,1.0,100};
frequency=1; frequency=1;
volume="2 * (1-camPos) * (scrubLand factor[0.02, 0.05])"; volume="2 * (1-camPos) * (scrubLand factor[0.02, 0.05])";
}; };
class scrubLandExt class scrubLandExt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\scrubLandExt",1.0,1.0,100}; sound[]={"a3\sounds_f\vehicles\air\noises\scrublandext",1.0,1.0,100};
frequency=1; frequency=1;
volume="camPos * (scrubLand factor[0.02, 0.05])"; volume="camPos * (scrubLand factor[0.02, 0.05])";
}; };
class scrubBuildingInt class scrubBuildingInt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\scrubBuildingInt",1.0,1.0,100}; sound[]={"a3\sounds_f\vehicles\air\noises\scrubbuildingint",1.0,1.0,100};
frequency=1; frequency=1;
volume="2 * (1 - camPos) * (scrubBuilding factor[0.02, 0.05])"; volume="2 * (1 - camPos) * (scrubBuilding factor[0.02, 0.05])";
}; };
class scrubBuildingExt class scrubBuildingExt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\scrubBuildingExt",1.0,1.0,100}; sound[]={"a3\sounds_f\vehicles\air\noises\scrubbuildingext",1.0,1.0,100};
frequency=1; frequency=1;
volume="camPos * (scrubBuilding factor[0.02, 0.05])"; volume="camPos * (scrubBuilding factor[0.02, 0.05])";
}; };
class scrubTreeInt class scrubTreeInt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\scrubTreeExt",1.0,1.0,100}; sound[]={"a3\sounds_f\vehicles\air\noises\scrubtreeext",1.0,1.0,100};
frequency=1; frequency=1;
volume="(1 - camPos) * ((scrubTree) factor [0, 0.01])"; volume="(1 - camPos) * ((scrubTree) factor [0, 0.01])";
}; };
class scrubTreeExt class scrubTreeExt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\scrubTreeExt",1.0,1.0,100}; sound[]={"a3\sounds_f\vehicles\air\noises\scrubtreeext",1.0,1.0,100};
frequency=1; frequency=1;
volume="camPos * ((scrubTree) factor [0, 0.01])"; volume="camPos * ((scrubTree) factor [0, 0.01])";
}; };
class RainExt class RainExt
{ {
sound[]={"A3\Sounds_F\vehicles\noises\rain1_ext",1.0,1.0,100}; sound[]={"a3\sounds_f\vehicles\noises\rain1_ext",1.0,1.0,100};
frequency=1; frequency=1;
volume="camPos * (rain - rotorSpeed/2) * 2"; volume="campos * (rain - rotorspeed/2) * 2";
}; };
class RainInt class RainInt
{ {
sound[]={"A3\Sounds_F\vehicles\noises\rain1_int_open",1.0,1.0,100}; sound[]={"a3\sounds_f\vehicles\noises\rain1_int_open",1.0,1.0,100};
frequency=1; frequency=1;
volume="(1-camPos)*(rain - rotorSpeed/2)*2"; volume="(1-campos)*(rain - rotorspeed/2)*2";
}; };
class SlingLoadDownExt class SlingLoadDownExt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\SL_engineDownEXT",1.2589254,1.0,500}; sound[]={"a3\sounds_f\vehicles\air\noises\sl_enginedownext",1.2589254,1.0,500};
frequency=1; frequency=1;
volume="camPos*(slingLoadActive factor [0,-1])"; volume="camPos*(slingLoadActive factor [0,-1])";
}; };
class SlingLoadUpExt class SlingLoadUpExt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\SL_engineUpEXT",1.2589254,1.0,500}; sound[]={"a3\sounds_f\vehicles\air\noises\sl_engineupext",1.2589254,1.0,500};
frequency=1; frequency=1;
volume="camPos*(slingLoadActive factor [0,1])"; volume="camPos*(slingLoadActive factor [0,1])";
}; };
class SlingLoadDownInt class SlingLoadDownInt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\SL_engineDownINT",1.0,1.0,700}; sound[]={"a3\sounds_f\vehicles\air\noises\sl_enginedownint",1.0,1.0,700};
frequency=1; frequency=1;
volume="(1-camPos)*(slingLoadActive factor [0,-1])"; volume="(1-camPos)*(slingLoadActive factor [0,-1])";
}; };
class SlingLoadUpInt class SlingLoadUpInt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\SL_engineUpINT",1.0,1.0,700}; sound[]={"a3\sounds_f\vehicles\air\noises\sl_engineupint",1.0,1.0,700};
frequency=1; frequency=1;
volume="(1-camPos)*(slingLoadActive factor [0,1])"; volume="(1-camPos)*(slingLoadActive factor [0,1])";
}; };
class WindInt class WindInt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\wind_open_int",1.1220185,1.0,50}; sound[]={"a3\sounds_f\vehicles\air\noises\wind_open_int",1.1220185,1.0,50};
frequency=1; frequency=1;
volume="(1-camPos)*(speed factor[5, 50])*(speed factor[5, 50])"; volume="(1-camPos)*(speed factor[5, 50])*(speed factor[5, 50])";
}; };
class WindLateralMovementInt class WindLateralMovementInt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\wind_lateral_open_int",1.9952624,1.0,50}; sound[]={"a3\sounds_f\vehicles\air\noises\wind_lateral_open_int",1.9952624,1.0,50};
frequency=1; frequency=1;
volume="(1-camPos)*lateralMovement*((speed factor [5,40]) + (speed factor [-5,-40]))"; volume="(1-camPos)*lateralMovement*((speed factor [5,40]) + (speed factor [-5,-40]))";
}; };
class GStress class GStress
{ {
sound[]={"A3\Sounds_F\vehicles\noises\vehicle_stress2b",0.31622776,1.0,50}; sound[]={"a3\sounds_f\vehicles\noises\vehicle_stress2b",0.31622776,1.0,50};
frequency=1; frequency=1;
volume="engineOn * (1-camPos) * ((gmeterZ factor[1.5, 2.5]) + (gmeterZ factor[0.5, -0.5]))"; volume="engineOn * (1-camPos) * ((gmeterZ factor[1.5, 2.5]) + (gmeterZ factor[0.5, -0.5]))";
}; };
@@ -253,201 +253,201 @@ class SoundsExt
{ {
class EngineExt class EngineExt
{ {
sound[]={"braf\braf_air\Braf_Helicopters\BRAF_Sounds\caracal\caracal_ext_eng.ogg",0.75,1.0,400}; sound[]={"braf\braf_air\braf_helicopters\braf_sounds\caracal\caracal_ext_eng.ogg",0.75,1.0,400};
frequency="rotorSpeed"; frequency="rotorSpeed";
volume="4 * camPos * (0 max (rotorSpeed-0.4))"; volume="4 * camPos * (0 max (rotorSpeed-0.4))";
}; };
class RotorExt class RotorExt
{ {
sound[]={"braf\braf_air\Braf_Helicopters\BRAF_Sounds\caracal\caracal_ext_rotor.ogg",1.5,1.0,1500}; sound[]={"braf\braf_air\braf_helicopters\braf_sounds\caracal\caracal_ext_rotor.ogg",1.5,1.0,1500};
frequency="(rotorSpeed factor [0.3, 0.7]) * (rotorSpeed factor [0.3, 1]) * (1 - rotorThrust/4)"; frequency="(rotorspeed factor [0.3, 0.7]) * (rotorspeed factor [0.3, 1]) * (1 - rotorthrust/4)";
volume="camPos * (rotorSpeed factor [0.3, 1]) * (1 + rotorThrust)"; volume="camPos * (rotorSpeed factor [0.3, 1]) * (1 + rotorThrust)";
}; };
class RotorSwist class RotorSwist
{ {
sound[]={"braf\braf_air\Braf_Helicopters\BRAF_Sounds\caracal\rotor_swist",0.70794576,1.0,200}; sound[]={"braf\braf_air\braf_helicopters\braf_sounds\caracal\rotor_swist",0.70794576,1.0,200};
frequency=1; frequency=1;
volume="camPos * (rotorThrust factor [0.7, 0.9])"; volume="camPos * (rotorThrust factor [0.7, 0.9])";
}; };
class EngineInt class EngineInt
{ {
sound[]={"braf\braf_air\Braf_Helicopters\BRAF_Sounds\caracal\caracal_int_eng.ogg",0.7943282,1.0}; sound[]={"braf\braf_air\braf_helicopters\braf_sounds\caracal\caracal_int_eng.ogg",0.7943282,1.0};
frequency="rotorSpeed"; frequency="rotorSpeed";
volume="(1-camPos)*2*(0 max (rotorSpeed-0.4))"; volume="(1-camPos)*2*(0 max (rotorSpeed-0.4))";
}; };
class RotorInt class RotorInt
{ {
sound[]={"braf\braf_air\Braf_Helicopters\BRAF_Sounds\caracal\caracal_int_rotor.ogg",0.63095737,1.0}; sound[]={"braf\braf_air\braf_helicopters\braf_sounds\caracal\caracal_int_rotor.ogg",0.63095737,1.0};
frequency="(rotorSpeed factor [0.3, 0.7]) * (rotorSpeed factor [0.3, 1]) * (1 - rotorThrust/4)"; frequency="(rotorspeed factor [0.3, 0.7]) * (rotorspeed factor [0.3, 1]) * (1 - rotorthrust/4)";
volume="(1 - camPos) * (rotorSpeed factor [0.3, 0.7]) * (1 + rotorThrust) * 0.7"; volume="(1 - camPos) * (rotorSpeed factor [0.3, 0.7]) * (1 + rotorThrust) * 0.7";
}; };
class RotorBench class RotorBench
{ {
sound[]={"braf\braf_air\Braf_Helicopters\BRAF_Sounds\caracal\caracal_int_rotor_bench.ogg",0.5011872,1.0,1000}; sound[]={"braf\braf_air\braf_helicopters\braf_sounds\caracal\caracal_int_rotor_bench.ogg",0.5011872,1.0,1000};
frequency="(rotorSpeed factor [0.3, 0.7]) * (rotorSpeed factor [0.3, 1]) * (1 - rotorThrust/4)"; frequency="(rotorspeed factor [0.3, 0.7]) * (rotorspeed factor [0.3, 1]) * (1 - rotorthrust/4)";
volume="(playerPos factor [3.9, 4]) * (1 - camPos) * (rotorSpeed factor [0.3, 1]) * (1 + rotorThrust) * 0.4"; volume="(playerPos factor [3.9, 4]) * (1 - camPos) * (rotorSpeed factor [0.3, 1]) * (1 + rotorThrust) * 0.4";
cone[]={1.6,3.14,1.6,0.95}; cone[]={1.6,3.14,1.6,0.95};
}; };
class EngineBench class EngineBench
{ {
sound[]={"braf\braf_air\Braf_Helicopters\BRAF_Sounds\caracal\caracal_int_eng_bench.ogg",0.3548134,1.0,400}; sound[]={"braf\braf_air\braf_helicopters\braf_sounds\caracal\caracal_int_eng_bench.ogg",0.3548134,1.0,400};
frequency="rotorSpeed"; frequency="rotorSpeed";
volume="(playerPos factor [3.9, 4]) * (1 - camPos) * (0 max (rotorSpeed-0.4))"; volume="(playerPos factor [3.9, 4]) * (1 - camPos) * (0 max (rotorSpeed-0.4))";
}; };
class WindBench class WindBench
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\wind_open_out",0.56234133,1.0,50}; sound[]={"a3\sounds_f\vehicles\air\noises\wind_open_out",0.56234133,1.0,50};
frequency=1; frequency=1;
volume="4 * (playerPos factor [3.9, 4]) * (1 - camPos) * ((speed factor[0, 30]) + (speed factor[0, -30]))"; volume="4 * (playerPos factor [3.9, 4]) * (1 - camPos) * ((speed factor[0, 30]) + (speed factor[0, -30]))";
}; };
class TransmissionDamageExt_phase1 class TransmissionDamageExt_phase1
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\heli_damage_transmission_ext_1",1.0,1.0,150}; sound[]={"a3\sounds_f\vehicles\air\noises\heli_damage_transmission_ext_1",1.0,1.0,150};
frequency="0.66 + rotorSpeed / 3"; frequency="0.66 + rotorspeed / 3";
volume="camPos * (transmissionDamage factor [0.3, 0.35]) * (transmissionDamage factor [0.5, 0.45]) * (rotorSpeed factor [0.2, 0.5])"; volume="camPos * (transmissionDamage factor [0.3, 0.35]) * (transmissionDamage factor [0.5, 0.45]) * (rotorSpeed factor [0.2, 0.5])";
}; };
class TransmissionDamageExt_phase2 class TransmissionDamageExt_phase2
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\heli_damage_transmission_ext_2",1.0,1.0,150}; sound[]={"a3\sounds_f\vehicles\air\noises\heli_damage_transmission_ext_2",1.0,1.0,150};
frequency="0.66 + rotorSpeed / 3"; frequency="0.66 + rotorspeed / 3";
volume="camPos * (transmissionDamage factor [0.45, 0.5]) * (rotorSpeed factor [0.2, 0.5])"; volume="camPos * (transmissionDamage factor [0.45, 0.5]) * (rotorSpeed factor [0.2, 0.5])";
}; };
class TransmissionDamageInt_phase1 class TransmissionDamageInt_phase1
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\heli_damage_transmission_int_1",1.0,1.0,150}; sound[]={"a3\sounds_f\vehicles\air\noises\heli_damage_transmission_int_1",1.0,1.0,150};
frequency="0.66 + rotorSpeed / 3"; frequency="0.66 + rotorspeed / 3";
volume="(1 - camPos) * (transmissionDamage factor [0.3, 0.35]) * (transmissionDamage factor [0.5, 0.45]) * (rotorSpeed factor [0.2, 0.5])"; volume="(1 - camPos) * (transmissionDamage factor [0.3, 0.35]) * (transmissionDamage factor [0.5, 0.45]) * (rotorSpeed factor [0.2, 0.5])";
}; };
class TransmissionDamageInt_phase2 class TransmissionDamageInt_phase2
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\heli_damage_transmission_int_2",1.0,1.0,150}; sound[]={"a3\sounds_f\vehicles\air\noises\heli_damage_transmission_int_2",1.0,1.0,150};
frequency="0.66 + rotorSpeed / 3"; frequency="0.66 + rotorspeed / 3";
volume="(1 - camPos) * (transmissionDamage factor [0.45, 0.5]) * (rotorSpeed factor [0.2, 0.5])"; volume="(1 - camPos) * (transmissionDamage factor [0.45, 0.5]) * (rotorSpeed factor [0.2, 0.5])";
}; };
class damageAlarmInt class damageAlarmInt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\heli_alarm_bluefor",0.31622776,1.0}; sound[]={"a3\sounds_f\vehicles\air\noises\heli_alarm_bluefor",0.31622776,1.0};
frequency=1; frequency=1;
volume="engineOn * (1 - camPos) * ( 1 - ((transmissionDamage factor [0.61, 0.60]) * (motorDamage factor [0.61, 0.60]) * (rotorDamage factor [0.51, 0.50]))) * (rotorSpeed factor [0.0, 0.001])"; volume="engineOn * (1 - camPos) * ( 1 - ((transmissionDamage factor [0.61, 0.60]) * (motorDamage factor [0.61, 0.60]) * (rotorDamage factor [0.51, 0.50]))) * (rotorSpeed factor [0.0, 0.001])";
}; };
class damageAlarmExt class damageAlarmExt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\heli_alarm_bluefor",0.22387211,1.0,20}; sound[]={"a3\sounds_f\vehicles\air\noises\heli_alarm_bluefor",0.22387211,1.0,20};
frequency=1; frequency=1;
volume="engineOn * camPos * ( 1 - ((transmissionDamage factor [0.61, 0.60]) * (motorDamage factor [0.61, 0.60]) * (rotorDamage factor [0.51, 0.50]))) * (rotorSpeed factor [0, 0.001])"; volume="engineOn * camPos * ( 1 - ((transmissionDamage factor [0.61, 0.60]) * (motorDamage factor [0.61, 0.60]) * (rotorDamage factor [0.51, 0.50]))) * (rotorSpeed factor [0, 0.001])";
}; };
class rotorLowAlarmInt class rotorLowAlarmInt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\heli_alarm_rotor_low",0.31622776,1.0}; sound[]={"a3\sounds_f\vehicles\air\noises\heli_alarm_rotor_low",0.31622776,1.0};
frequency=1; frequency=1;
volume="engineOn * (1 - camPos) * (rotorSpeed factor [0.9, 0.8999]) * (rotorSpeed factor [-0.5, 1]) * (speed factor [3, 3.01])"; volume="engineOn * (1 - camPos) * (rotorSpeed factor [0.9, 0.8999]) * (rotorSpeed factor [-0.5, 1]) * (speed factor [3, 3.01])";
}; };
class rotorLowAlarmExt class rotorLowAlarmExt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\heli_alarm_rotor_low",0.22387211,1.0,20}; sound[]={"a3\sounds_f\vehicles\air\noises\heli_alarm_rotor_low",0.22387211,1.0,20};
frequency=1; frequency=1;
volume="engineOn * camPos * (rotorSpeed factor [0.9, 0.8999]) * (rotorSpeed factor [-0.5, 1]) * (speed factor [3, 3.01])"; volume="engineOn * camPos * (rotorSpeed factor [0.9, 0.8999]) * (rotorSpeed factor [-0.5, 1]) * (speed factor [3, 3.01])";
}; };
class scrubLandInt class scrubLandInt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\scrubLandInt_open",1.0,1.0,100}; sound[]={"a3\sounds_f\vehicles\air\noises\scrublandint_open",1.0,1.0,100};
frequency=1; frequency=1;
volume="2 * (1-camPos) * (scrubLand factor[0.02, 0.05])"; volume="2 * (1-camPos) * (scrubLand factor[0.02, 0.05])";
}; };
class scrubLandExt class scrubLandExt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\scrubLandExt",1.0,1.0,100}; sound[]={"a3\sounds_f\vehicles\air\noises\scrublandext",1.0,1.0,100};
frequency=1; frequency=1;
volume="camPos * (scrubLand factor[0.02, 0.05])"; volume="camPos * (scrubLand factor[0.02, 0.05])";
}; };
class scrubBuildingInt class scrubBuildingInt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\scrubBuildingInt",1.0,1.0,100}; sound[]={"a3\sounds_f\vehicles\air\noises\scrubbuildingint",1.0,1.0,100};
frequency=1; frequency=1;
volume="2 * (1 - camPos) * (scrubBuilding factor[0.02, 0.05])"; volume="2 * (1 - camPos) * (scrubBuilding factor[0.02, 0.05])";
}; };
class scrubBuildingExt class scrubBuildingExt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\scrubBuildingExt",1.0,1.0,100}; sound[]={"a3\sounds_f\vehicles\air\noises\scrubbuildingext",1.0,1.0,100};
frequency=1; frequency=1;
volume="camPos * (scrubBuilding factor[0.02, 0.05])"; volume="camPos * (scrubBuilding factor[0.02, 0.05])";
}; };
class scrubTreeInt class scrubTreeInt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\scrubTreeExt",1.0,1.0,100}; sound[]={"a3\sounds_f\vehicles\air\noises\scrubtreeext",1.0,1.0,100};
frequency=1; frequency=1;
volume="(1 - camPos) * ((scrubTree) factor [0, 0.01])"; volume="(1 - camPos) * ((scrubTree) factor [0, 0.01])";
}; };
class scrubTreeExt class scrubTreeExt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\scrubTreeExt",1.0,1.0,100}; sound[]={"a3\sounds_f\vehicles\air\noises\scrubtreeext",1.0,1.0,100};
frequency=1; frequency=1;
volume="camPos * ((scrubTree) factor [0, 0.01])"; volume="camPos * ((scrubTree) factor [0, 0.01])";
}; };
class RainExt class RainExt
{ {
sound[]={"A3\Sounds_F\vehicles\noises\rain1_ext",1.0,1.0,100}; sound[]={"a3\sounds_f\vehicles\noises\rain1_ext",1.0,1.0,100};
frequency=1; frequency=1;
volume="camPos * (rain - rotorSpeed/2) * 2"; volume="campos * (rain - rotorspeed/2) * 2";
}; };
class RainInt class RainInt
{ {
sound[]={"A3\Sounds_F\vehicles\noises\rain1_int_open",1.0,1.0,100}; sound[]={"a3\sounds_f\vehicles\noises\rain1_int_open",1.0,1.0,100};
frequency=1; frequency=1;
volume="(1-camPos)*(rain - rotorSpeed/2)*2"; volume="(1-campos)*(rain - rotorspeed/2)*2";
}; };
class SlingLoadDownExt class SlingLoadDownExt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\SL_engineDownEXT",1.0,1.0,500}; sound[]={"a3\sounds_f\vehicles\air\noises\sl_enginedownext",1.0,1.0,500};
frequency=1; frequency=1;
volume="camPos*(slingLoadActive factor [0,-1])"; volume="camPos*(slingLoadActive factor [0,-1])";
}; };
class SlingLoadUpExt class SlingLoadUpExt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\SL_engineUpEXT",1.0,1.0,500}; sound[]={"a3\sounds_f\vehicles\air\noises\sl_engineupext",1.0,1.0,500};
frequency=1; frequency=1;
volume="camPos*(slingLoadActive factor [0,1])"; volume="camPos*(slingLoadActive factor [0,1])";
}; };
class SlingLoadDownInt class SlingLoadDownInt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\SL_engineDownINT",1.0,1.0,500}; sound[]={"a3\sounds_f\vehicles\air\noises\sl_enginedownint",1.0,1.0,500};
frequency=1; frequency=1;
volume="(1-camPos)*(slingLoadActive factor [0,-1])"; volume="(1-camPos)*(slingLoadActive factor [0,-1])";
}; };
class SlingLoadUpInt class SlingLoadUpInt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\SL_engineUpINT",1.0,1.0,500}; sound[]={"a3\sounds_f\vehicles\air\noises\sl_engineupint",1.0,1.0,500};
frequency=1; frequency=1;
volume="(1-camPos)*(slingLoadActive factor [0,1])"; volume="(1-camPos)*(slingLoadActive factor [0,1])";
}; };
class WindInt class WindInt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\wind_open_int",1.1220185,1.0,50}; sound[]={"a3\sounds_f\vehicles\air\noises\wind_open_int",1.1220185,1.0,50};
frequency=1; frequency=1;
volume="(1-camPos)*(speed factor[5, 50])*(speed factor[5, 50])"; volume="(1-camPos)*(speed factor[5, 50])*(speed factor[5, 50])";
}; };
class WindLateralMovementInt class WindLateralMovementInt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\wind_lateral_open_int",1.9952624,1.0,50}; sound[]={"a3\sounds_f\vehicles\air\noises\wind_lateral_open_int",1.9952624,1.0,50};
frequency=1; frequency=1;
volume="(1-camPos)*lateralMovement*((speed factor [5,40]) + (speed factor [-5,-40]))"; volume="(1-camPos)*lateralMovement*((speed factor [5,40]) + (speed factor [-5,-40]))";
}; };
class GStress class GStress
{ {
sound[]={"A3\Sounds_F\vehicles\noises\vehicle_stress2b",0.31622776,1.0,50}; sound[]={"a3\sounds_f\vehicles\noises\vehicle_stress2b",0.31622776,1.0,50};
frequency=1; frequency=1;
volume="engineOn * (1-camPos) * ((gmeterZ factor[1.5, 2.5]) + (gmeterZ factor[0.5, -0.5]))"; volume="engineOn * (1-camPos) * ((gmeterZ factor[1.5, 2.5]) + (gmeterZ factor[0.5, -0.5]))";
}; };
}; };
class Waternoise_ext class Waternoise_ext
{ {
sound[]={"A3\Sounds_F\vehicles\noises\air_driving_in_water",0.70794576,1,300}; sound[]={"a3\sounds_f\vehicles\noises\air_driving_in_water",0.70794576,1,300};
frequency="1"; frequency="1";
volume="(speed factor[0, 5]) * water * camPos + (speed factor[-0.1, -5]) * water * camPos"; volume="(speed factor[0, 5]) * water * camPos + (speed factor[-0.1, -5]) * water * camPos";
}; };
class Waternoise_int class Waternoise_int
{ {
sound[]={"A3\Sounds_F\vehicles\noises\soft_driving_in_water_int",0.56234133,1,100}; sound[]={"a3\sounds_f\vehicles\noises\soft_driving_in_water_int",0.56234133,1,100};
frequency="1"; frequency="1";
volume="(speed factor[0, 5]) * water * (1-camPos) + (speed factor[-0.1, -5]) * water * (1-camPos)"; volume="(speed factor[0, 5]) * water * (1-camPos) + (speed factor[-0.1, -5]) * water * (1-camPos)";
}; };
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,6 +1,6 @@
//class StageTI //class StageTI
//{ //{
// texture="braf\braf_air\Braf_Helicopters\Braf_Caracal\data\camo1_ti_ca.paa"; // texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo1_ti_ca.paa";
//}; //};
ambient[]={0.75,0.75,0.75,1.0}; ambient[]={0.75,0.75,0.75,1.0};
diffuse[]={0.75,0.75,0.75,1.0}; diffuse[]={0.75,0.75,0.75,1.0};
@@ -12,7 +12,7 @@ PixelShaderID="Super";
VertexShaderID="Super"; VertexShaderID="Super";
class Stage1 class Stage1
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Caracal\data\camo1_nohq.paa"; texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo1_nohq.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage2 class Stage2
@@ -34,12 +34,12 @@ class Stage3
}; };
class Stage4 class Stage4
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Caracal\data\camo1_as.paa"; texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo1_as.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage5 class Stage5
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Caracal\data\camo1_smdi.paa"; texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo1_smdi.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage6 class Stage6
@@ -8,7 +8,7 @@ PixelShaderID="Super";
VertexShaderID="Super"; VertexShaderID="Super";
class Stage1 class Stage1
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Caracal\data\camo1_nohq.paa"; texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo1_nohq.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage2 class Stage2
@@ -30,12 +30,12 @@ class Stage3
}; };
class Stage4 class Stage4
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Caracal\data\camo1_as.paa"; texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo1_as.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage5 class Stage5
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Caracal\data\camo1_smdi.paa"; texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo1_smdi.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage6 class Stage6
@@ -51,5 +51,5 @@ class Stage7
}; };
//class StageTI //class StageTI
//{ //{
// texture="braf\braf_air\Braf_Helicopters\Braf_Caracal\data\camo1_ti_ca.paa"; // texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo1_ti_ca.paa";
//}; //};
@@ -1,6 +1,6 @@
//class StageTI //class StageTI
//{ //{
// texture="braf\braf_air\Braf_Helicopters\Braf_Caracal\data\camo2_ti_ca.paa"; // texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo2_ti_ca.paa";
//}; //};
ambient[]={0.75,0.75,0.75,1.0}; ambient[]={0.75,0.75,0.75,1.0};
diffuse[]={0.75,0.75,0.75,1.0}; diffuse[]={0.75,0.75,0.75,1.0};
@@ -12,7 +12,7 @@ PixelShaderID="Super";
VertexShaderID="Super"; VertexShaderID="Super";
class Stage1 class Stage1
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Caracal\data\camo2_nohq.paa"; texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo2_nohq.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage2 class Stage2
@@ -34,12 +34,12 @@ class Stage3
}; };
class Stage4 class Stage4
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Caracal\data\camo2_as.paa"; texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo2_as.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage5 class Stage5
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Caracal\data\camo2_smdi.paa"; texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo2_smdi.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage6 class Stage6
@@ -8,7 +8,7 @@ PixelShaderID="Super";
VertexShaderID="Super"; VertexShaderID="Super";
class Stage1 class Stage1
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Caracal\data\camo2_nohq.paa"; texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo2_nohq.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage2 class Stage2
@@ -30,12 +30,12 @@ class Stage3
}; };
class Stage4 class Stage4
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Caracal\data\camo2_as.paa"; texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo2_as.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage5 class Stage5
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Caracal\data\camo2_smdi.paa"; texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo2_smdi.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage6 class Stage6
@@ -51,5 +51,5 @@ class Stage7
}; };
//class StageTI //class StageTI
//{ //{
// texture="braf\braf_air\Braf_Helicopters\Braf_Caracal\data\camo2_ti_ca.paa"; // texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo2_ti_ca.paa";
//}; //};
@@ -1,6 +1,6 @@
//class StageTI //class StageTI
//{ //{
// texture="braf\braf_air\Braf_Helicopters\Braf_Caracal\data\camo3_ti_ca.paa"; // texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo3_ti_ca.paa";
//}; //};
ambient[]={0.75,0.75,0.75,1.0}; ambient[]={0.75,0.75,0.75,1.0};
diffuse[]={0.75,0.75,0.75,1.0}; diffuse[]={0.75,0.75,0.75,1.0};
@@ -12,7 +12,7 @@ PixelShaderID="Super";
VertexShaderID="Super"; VertexShaderID="Super";
class Stage1 class Stage1
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Caracal\data\camo3_nohq.paa"; texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo3_nohq.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage2 class Stage2
@@ -34,12 +34,12 @@ class Stage3
}; };
class Stage4 class Stage4
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Caracal\data\camo3_as.paa"; texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo3_as.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage5 class Stage5
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Caracal\data\camo3_smdi.paa"; texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo3_smdi.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage6 class Stage6
@@ -8,7 +8,7 @@ PixelShaderID="Super";
VertexShaderID="Super"; VertexShaderID="Super";
class Stage1 class Stage1
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Caracal\data\camo3_nohq.paa"; texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo3_nohq.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage2 class Stage2
@@ -30,12 +30,12 @@ class Stage3
}; };
class Stage4 class Stage4
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Caracal\data\camo3_as.paa"; texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo3_as.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage5 class Stage5
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Caracal\data\camo3_smdi.paa"; texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo3_smdi.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage6 class Stage6
@@ -51,5 +51,5 @@ class Stage7
}; };
//class StageTI //class StageTI
//{ //{
// texture="braf\braf_air\Braf_Helicopters\Braf_Caracal\data\camo3_ti_ca.paa"; // texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo3_ti_ca.paa";
//}; //};
@@ -1,6 +1,6 @@
//class StageTI //class StageTI
//{ //{
// texture="braf\braf_air\Braf_Helicopters\Braf_Caracal\data\camo4_ti_ca.paa"; // texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo4_ti_ca.paa";
//}; //};
ambient[]={0.75,0.75,0.75,1.0}; ambient[]={0.75,0.75,0.75,1.0};
diffuse[]={0.75,0.75,0.75,1.0}; diffuse[]={0.75,0.75,0.75,1.0};
@@ -12,7 +12,7 @@ PixelShaderID="Super";
VertexShaderID="Super"; VertexShaderID="Super";
class Stage1 class Stage1
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Caracal\data\camo4_nohq.paa"; texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo4_nohq.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage2 class Stage2
@@ -34,12 +34,12 @@ class Stage3
}; };
class Stage4 class Stage4
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Caracal\data\camo4_as.paa"; texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo4_as.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage5 class Stage5
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Caracal\data\camo4_smdi.paa"; texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo4_smdi.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage6 class Stage6
@@ -8,7 +8,7 @@ PixelShaderID="Super";
VertexShaderID="Super"; VertexShaderID="Super";
class Stage1 class Stage1
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Caracal\data\camo4_nohq.paa"; texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo4_nohq.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage2 class Stage2
@@ -30,12 +30,12 @@ class Stage3
}; };
class Stage4 class Stage4
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Caracal\data\camo4_as.paa"; texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo4_as.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage5 class Stage5
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Caracal\data\camo4_smdi.paa"; texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo4_smdi.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage6 class Stage6
@@ -51,5 +51,5 @@ class Stage7
}; };
//class StageTI //class StageTI
//{ //{
// texture="braf\braf_air\Braf_Helicopters\Braf_Caracal\data\camo4_ti_ca.paa"; // texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo4_ti_ca.paa";
//}; //};
@@ -1,6 +1,6 @@
//class StageTI //class StageTI
//{ //{
// texture="braf\braf_air\Braf_Helicopters\Braf_Caracal\data\camo5_ti_ca.paa"; // texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo5_ti_ca.paa";
//}; //};
ambient[]={0.75,0.75,0.75,1.0}; ambient[]={0.75,0.75,0.75,1.0};
diffuse[]={0.75,0.75,0.75,1.0}; diffuse[]={0.75,0.75,0.75,1.0};
@@ -12,7 +12,7 @@ PixelShaderID="Super";
VertexShaderID="Super"; VertexShaderID="Super";
class Stage1 class Stage1
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Caracal\data\camo5_nohq.paa"; texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo5_nohq.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage2 class Stage2
@@ -34,12 +34,12 @@ class Stage3
}; };
class Stage4 class Stage4
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Caracal\data\camo5_as.paa"; texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo5_as.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage5 class Stage5
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Caracal\data\camo5_smdi.paa"; texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo5_smdi.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage6 class Stage6
@@ -8,7 +8,7 @@ PixelShaderID="Super";
VertexShaderID="Super"; VertexShaderID="Super";
class Stage1 class Stage1
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Caracal\data\camo5_nohq.paa"; texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo5_nohq.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage2 class Stage2
@@ -30,12 +30,12 @@ class Stage3
}; };
class Stage4 class Stage4
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Caracal\data\camo5_as.paa"; texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo5_as.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage5 class Stage5
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Caracal\data\camo5_smdi.paa"; texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo5_smdi.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage6 class Stage6
@@ -51,5 +51,5 @@ class Stage7
}; };
//class StageTI //class StageTI
//{ //{
// texture="braf\braf_air\Braf_Helicopters\Braf_Caracal\data\camo5_ti_ca.paa"; // texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo5_ti_ca.paa";
//}; //};
@@ -1,6 +1,6 @@
//class StageTI //class StageTI
//{ //{
// texture="braf\braf_air\Braf_Helicopters\Braf_Caracal\data\camo6_ti_ca.paa"; // texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo6_ti_ca.paa";
//}; //};
ambient[]={0.75,0.75,0.75,1.0}; ambient[]={0.75,0.75,0.75,1.0};
diffuse[]={0.75,0.75,0.75,1.0}; diffuse[]={0.75,0.75,0.75,1.0};
@@ -12,7 +12,7 @@ PixelShaderID="Super";
VertexShaderID="Super"; VertexShaderID="Super";
class Stage1 class Stage1
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Caracal\data\camo6_nohq.paa"; texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo6_nohq.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage2 class Stage2
@@ -34,12 +34,12 @@ class Stage3
}; };
class Stage4 class Stage4
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Caracal\data\camo6_as.paa"; texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo6_as.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage5 class Stage5
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Caracal\data\camo6_smdi.paa"; texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo6_smdi.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage6 class Stage6
@@ -8,7 +8,7 @@ PixelShaderID="Super";
VertexShaderID="Super"; VertexShaderID="Super";
class Stage1 class Stage1
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Caracal\data\camo6_nohq.paa"; texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo6_nohq.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage2 class Stage2
@@ -30,12 +30,12 @@ class Stage3
}; };
class Stage4 class Stage4
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Caracal\data\camo6_as.paa"; texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo6_as.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage5 class Stage5
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Caracal\data\camo6_smdi.paa"; texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo6_smdi.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage6 class Stage6
@@ -51,5 +51,5 @@ class Stage7
}; };
//class StageTI //class StageTI
//{ //{
// texture="braf\braf_air\Braf_Helicopters\Braf_Caracal\data\camo6_ti_ca.paa"; // texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo6_ti_ca.paa";
//}; //};
@@ -1,6 +1,6 @@
//class StageTI //class StageTI
//{ //{
// texture="braf\braf_air\Braf_Helicopters\Braf_Caracal\data\camo1_ti_ca.paa"; // texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo1_ti_ca.paa";
//}; //};
ambient[]={1,1,1,1}; ambient[]={1,1,1,1};
diffuse[]={0.75,0.75,0.75,1}; diffuse[]={0.75,0.75,0.75,1};
@@ -12,7 +12,7 @@ PixelShaderID="Super";
VertexShaderID="Super"; VertexShaderID="Super";
class Stage1 class Stage1
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Caracal\data\camo1_nohq.paa"; texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo1_nohq.paa";
uvSource="tex"; uvSource="tex";
class uvTransform class uvTransform
{ {
@@ -48,7 +48,7 @@ class Stage3
}; };
class Stage4 class Stage4
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Caracal\data\camo1_as.paa"; texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo1_as.paa";
uvSource="tex"; uvSource="tex";
class uvTransform class uvTransform
{ {
@@ -60,7 +60,7 @@ class Stage4
}; };
class Stage5 class Stage5
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Caracal\data\camo1_smdi.paa"; texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo1_smdi.paa";
uvSource="tex"; uvSource="tex";
class uvTransform class uvTransform
{ {
@@ -1,6 +1,6 @@
//class StageTI //class StageTI
//{ //{
// texture="braf\braf_air\Braf_Helicopters\Braf_Caracal\data\camo2_ti_ca.paa"; // texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo2_ti_ca.paa";
//}; //};
ambient[]={1,1,1,1}; ambient[]={1,1,1,1};
diffuse[]={0.75,0.75,0.75,1}; diffuse[]={0.75,0.75,0.75,1};
@@ -12,7 +12,7 @@ PixelShaderID="Super";
VertexShaderID="Super"; VertexShaderID="Super";
class Stage1 class Stage1
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Caracal\data\camo2_nohq.paa"; texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo2_nohq.paa";
uvSource="tex"; uvSource="tex";
class uvTransform class uvTransform
{ {
@@ -48,7 +48,7 @@ class Stage3
}; };
class Stage4 class Stage4
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Caracal\data\camo2_as.paa"; texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo2_as.paa";
uvSource="tex"; uvSource="tex";
class uvTransform class uvTransform
{ {
@@ -60,7 +60,7 @@ class Stage4
}; };
class Stage5 class Stage5
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Caracal\data\camo2_smdi.paa"; texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo2_smdi.paa";
uvSource="tex"; uvSource="tex";
class uvTransform class uvTransform
{ {
@@ -1,6 +1,6 @@
//class StageTI //class StageTI
//{ //{
// texture="braf\braf_air\Braf_Helicopters\Braf_Caracal\data\camo3_ti_ca.paa"; // texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo3_ti_ca.paa";
//}; //};
ambient[]={1,1,1,1}; ambient[]={1,1,1,1};
diffuse[]={0.75,0.75,0.75,1}; diffuse[]={0.75,0.75,0.75,1};
@@ -12,7 +12,7 @@ PixelShaderID="Super";
VertexShaderID="Super"; VertexShaderID="Super";
class Stage1 class Stage1
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Caracal\data\camo3_nohq.paa"; texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo3_nohq.paa";
uvSource="tex"; uvSource="tex";
class uvTransform class uvTransform
{ {
@@ -48,7 +48,7 @@ class Stage3
}; };
class Stage4 class Stage4
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Caracal\data\camo3_as.paa"; texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo3_as.paa";
uvSource="tex"; uvSource="tex";
class uvTransform class uvTransform
{ {
@@ -60,7 +60,7 @@ class Stage4
}; };
class Stage5 class Stage5
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Caracal\data\camo3_smdi.paa"; texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo3_smdi.paa";
uvSource="tex"; uvSource="tex";
class uvTransform class uvTransform
{ {
@@ -1,6 +1,6 @@
//class StageTI //class StageTI
//{ //{
// texture="braf\braf_air\Braf_Helicopters\Braf_Caracal\data\camo6_ti_ca.paa"; // texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo6_ti_ca.paa";
//}; //};
ambient[]={1,1,1,1}; ambient[]={1,1,1,1};
diffuse[]={0.75,0.75,0.75,1}; diffuse[]={0.75,0.75,0.75,1};
@@ -12,7 +12,7 @@ PixelShaderID="Super";
VertexShaderID="Super"; VertexShaderID="Super";
class Stage1 class Stage1
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Caracal\data\camo6_nohq.paa"; texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo6_nohq.paa";
uvSource="tex"; uvSource="tex";
class uvTransform class uvTransform
{ {
@@ -48,7 +48,7 @@ class Stage3
}; };
class Stage4 class Stage4
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Caracal\data\camo6_as.paa"; texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo6_as.paa";
uvSource="tex"; uvSource="tex";
class uvTransform class uvTransform
{ {
@@ -60,7 +60,7 @@ class Stage4
}; };
class Stage5 class Stage5
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Caracal\data\camo6_smdi.paa"; texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo6_smdi.paa";
uvSource="tex"; uvSource="tex";
class uvTransform class uvTransform
{ {
@@ -8,7 +8,7 @@ PixelShaderID="Super";
VertexShaderID="Super"; VertexShaderID="Super";
class Stage1 class Stage1
{ {
texture="braf\braf_air\BRAF_Helicopters\BRAF_Caracal\data\camo1_nohq.paa"; texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo1_nohq.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage2 class Stage2
@@ -30,12 +30,12 @@ class Stage3
}; };
class Stage4 class Stage4
{ {
texture="braf\braf_air\BRAF_Helicopters\BRAF_Caracal\data\camo1_as.paa"; texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo1_as.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage5 class Stage5
{ {
texture="braf\braf_air\BRAF_Helicopters\BRAF_Caracal\data\camo1_smdi.paa"; texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo1_smdi.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage6 class Stage6
@@ -51,5 +51,5 @@ class Stage7
}; };
//class StageTI //class StageTI
//{ //{
// texture="braf\braf_air\BRAF_Helicopters\BRAF_Caracal\data\camo1_ti_ca.paa"; // texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo1_ti_ca.paa";
//}; //};
@@ -8,7 +8,7 @@ PixelShaderID="Super";
VertexShaderID="Super"; VertexShaderID="Super";
class Stage1 class Stage1
{ {
texture="braf\braf_air\BRAF_Helicopters\BRAF_Caracal\data\camo2_nohq.paa"; texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo2_nohq.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage2 class Stage2
@@ -30,12 +30,12 @@ class Stage3
}; };
class Stage4 class Stage4
{ {
texture="braf\braf_air\BRAF_Helicopters\BRAF_Caracal\data\camo2_as.paa"; texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo2_as.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage5 class Stage5
{ {
texture="braf\braf_air\BRAF_Helicopters\BRAF_Caracal\data\camo2_smdi.paa"; texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo2_smdi.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage6 class Stage6
@@ -51,5 +51,5 @@ class Stage7
}; };
//class StageTI //class StageTI
//{ //{
// texture="braf\braf_air\BRAF_Helicopters\BRAF_Caracal\data\camo2_ti_ca.paa"; // texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo2_ti_ca.paa";
//}; //};
@@ -8,7 +8,7 @@ PixelShaderID="Super";
VertexShaderID="Super"; VertexShaderID="Super";
class Stage1 class Stage1
{ {
texture="braf\braf_air\BRAF_Helicopters\BRAF_Caracal\data\camo3_nohq.paa"; texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo3_nohq.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage2 class Stage2
@@ -30,12 +30,12 @@ class Stage3
}; };
class Stage4 class Stage4
{ {
texture="braf\braf_air\BRAF_Helicopters\BRAF_Caracal\data\camo3_as.paa"; texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo3_as.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage5 class Stage5
{ {
texture="braf\braf_air\BRAF_Helicopters\BRAF_Caracal\data\camo3_smdi.paa"; texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo3_smdi.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage6 class Stage6
@@ -51,5 +51,5 @@ class Stage7
}; };
//class StageTI //class StageTI
//{ //{
// texture="braf\braf_air\BRAF_Helicopters\BRAF_Caracal\data\camo3_ti_ca.paa"; // texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo3_ti_ca.paa";
//}; //};
@@ -8,7 +8,7 @@ PixelShaderID="Super";
VertexShaderID="Super"; VertexShaderID="Super";
class Stage1 class Stage1
{ {
texture="braf\braf_air\BRAF_Helicopters\BRAF_Caracal\data\camo4_nohq.paa"; texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo4_nohq.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage2 class Stage2
@@ -30,12 +30,12 @@ class Stage3
}; };
class Stage4 class Stage4
{ {
texture="braf\braf_air\BRAF_Helicopters\BRAF_Caracal\data\camo4_as.paa"; texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo4_as.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage5 class Stage5
{ {
texture="braf\braf_air\BRAF_Helicopters\BRAF_Caracal\data\camo4_smdi.paa"; texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo4_smdi.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage6 class Stage6
@@ -51,5 +51,5 @@ class Stage7
}; };
//class StageTI //class StageTI
//{ //{
// texture="braf\braf_air\BRAF_Helicopters\BRAF_Caracal\data\camo4_ti_ca.paa"; // texture="braf\braf_air\braf_helicopters\braf_caracal\data\camo4_ti_ca.paa";
//}; //};
@@ -81,6 +81,9 @@ class CfgSkeletons
"EFS_cover","", "EFS_cover","",
"EFS","EFS_cover", "EFS","EFS_cover",
"UH15","",
"AH15","",
"SAR","damagehide", "SAR","damagehide",
"hoist_hook","SAR", "hoist_hook","SAR",
@@ -95,7 +98,7 @@ class CfgSkeletons
}; };
class CfgModels class CfgModels
{ {
class BRAF_Caracal class braf_caracal
{ {
htMin=60; htMin=60;
htMax=1800; htMax=1800;
@@ -900,6 +903,32 @@ class CfgModels
memory=0; memory=0;
hideValue=1; hideValue=1;
}; };
class UH15_Hide
{
source="UH15_Hide";
selection="uh15";
type="hide";
sourceAddress="clamp";
minPhase=0;
maxPhase=1;
minValue=0;
maxValue=1;
memory=0;
hideValue=1;
};
class AH15_Hide
{
source="AH15_Hide";
selection="ah15";
type="hide";
sourceAddress="clamp";
minPhase=0;
maxPhase=1;
minValue=0;
maxValue=1;
memory=0;
hideValue=1;
};
class mainTurret class mainTurret
{ {
type="rotationy"; type="rotationy";
@@ -455,12 +455,12 @@ empty weight mass="6070"
<CSComponent type="GenericControlSystem"> <CSComponent type="GenericControlSystem">
<Variables> <Variables>
<Variable name="CSComponent_1/ControlOutput/pitchRollControl" member="roll" alias="latCyclic" /> <Variable name="cscomponent_1/controloutput/pitchrollcontrol" member="roll" alias="latCyclic" />
<Variable name="CSComponent_1/ControlOutput/pitchRollControl" member="pitch" alias="lonCyclic" /> <Variable name="cscomponent_1/controloutput/pitchrollcontrol" member="pitch" alias="lonCyclic" />
<Variable name="CSComponent_1/ControlOutput/pedals" alias="pedals" /> <Variable name="cscomponent_1/controloutput/pedals" alias="pedals" />
<Variable name="CSComponent_1/ControlOutput/collective" alias="collective" /> <Variable name="cscomponent_1/controloutput/collective" alias="collective" />
<Variable alias="rotorBrake" name="CSComponent_1/ControlOutput/rotorBrake" /> <Variable alias="rotorBrake" name="cscomponent_1/controloutput/rotorbrake" />
<Variable name="angularVelocityBCS" member="X" alias="pitchRateRad" /> <Variable name="angularVelocityBCS" member="X" alias="pitchRateRad" />
<Variable name="angularVelocityBCS" member="Y" alias="rollRateRad" /> <Variable name="angularVelocityBCS" member="Y" alias="rollRateRad" />
@@ -469,16 +469,16 @@ empty weight mass="6070"
<Variable name="attitudeHPR" member="P" alias="p" /> <Variable name="attitudeHPR" member="P" alias="p" />
<Variable name="attitudeHPR" member="R" alias="r" /> <Variable name="attitudeHPR" member="R" alias="r" />
<Variable name="MainRotor/A1" alias="A1m" /> <Variable name="mainrotor/a1" alias="A1m" />
<Variable name="MainRotor/B1" alias="B1m" /> <Variable name="mainrotor/b1" alias="B1m" />
<Variable name="MainRotor/theta0" alias="Th0m" /> <Variable name="mainrotor/theta0" alias="Th0m" />
<Variable alias="mainRotorBrake" name="MainRotor/rotorBrakeInput" /> <Variable alias="mainRotorBrake" name="mainrotor/rotorbrakeinput" />
<Variable name="TailRotor/A1" alias="A1t" /> <Variable name="tailrotor/a1" alias="A1t" />
<Variable name="TailRotor/B1" alias="B1t" /> <Variable name="tailrotor/b1" alias="B1t" />
<Variable name="TailRotor/theta0" alias="Th0t" /> <Variable name="tailrotor/theta0" alias="Th0t" />
<Variable name="VerticalStabilizer/controlSurfaceDeflection" alias="directional" /> <Variable name="verticalstabilizer/controlsurfacedeflection" alias="directional" />
</Variables> </Variables>
<!-- <!--
A1m = latCyclic * 10.5 - collective * 0 - clamp(r * 0.02 , -0.5,0.5 ) + pedals * 2 - 2 , A1m = latCyclic * 10.5 - collective * 0 - clamp(r * 0.02 , -0.5,0.5 ) + pedals * 2 - 2 ,
@@ -1,14 +1,14 @@
class BRAF_Fennec_Base: Helicopter_Base_H class braf_fennec_base: Helicopter_Base_H
{ {
author="BRAF TEAM"; author = "BRAF TEAM";
scope=0; scope=0;
faction="BRAF_ARMY"; faction="braf_army";
displayName="AS-550A2 Fennec"; displayName="AS-550A2 Fennec";
cost=1000000; cost=1000000;
_generalMacro="BRAF_Fennec_Base"; _generalMacro="braf_fennec_base";
model="\braf\braf_air\Braf_Helicopters\Braf_Fennec\BRAF_Fennec.p3d"; model="\braf\braf_air\braf_helicopters\braf_fennec\braf_fennec.p3d";
icon="\braf\braf_air\Braf_Helicopters\Braf_Fennec\data\ui\Map_fennec_ca.paa"; icon="\braf\braf_air\braf_helicopters\braf_fennec\data\ui\map_fennec_ca.paa";
picture="\braf\braf_air\Braf_Helicopters\Braf_Fennec\data\UI\Icon_fennec_ca.paa"; picture="\braf\braf_air\braf_helicopters\braf_fennec\data\ui\icon_fennec_ca.paa";
editorSubcategory="EdSubcat_Helicopters"; editorSubcategory="EdSubcat_Helicopters";
memoryPointTaskMarker="TaskMarker_1_pos"; memoryPointTaskMarker="TaskMarker_1_pos";
driverAction="braf_fennec_pilot"; driverAction="braf_fennec_pilot";
@@ -106,7 +106,7 @@ class BRAF_Fennec_Base: Helicopter_Base_H
bodyFrictionCoef=0.2; bodyFrictionCoef=0.2;
class RotorLibHelicopterProperties class RotorLibHelicopterProperties
{ {
RTDconfig="braf\braf_air\Braf_Helicopters\Braf_Fennec\rtd_fennec.xml"; RTDconfig="braf\braf_air\braf_helicopters\braf_fennec\rtd_fennec.xml";
autoHoverCorrection[]={0.28,2.8800001,0}; autoHoverCorrection[]={0.28,2.8800001,0};
defaultCollective=0.63499999; defaultCollective=0.63499999;
maxTorque=900; maxTorque=900;
@@ -417,7 +417,7 @@ class BRAF_Fennec_Base: Helicopter_Base_H
}; };
class Arm_EFS class Arm_EFS
{ {
displayname="<t color='#ffaa00'> Arm EFS </t>"; displayname="<t color='#ffaa00'> arm efs </t>";
position="cabin"; position="cabin";
showWindow=1; showWindow=1;
radius=10; radius=10;
@@ -428,13 +428,13 @@ class BRAF_Fennec_Base: Helicopter_Base_H
}; };
class Disarm_EFS: Arm_EFS class Disarm_EFS: Arm_EFS
{ {
displayname="<t color='#ffaa00'> Disarm EFS </t>"; displayname="<t color='#ffaa00'> disarm efs </t>";
condition="getNumber (configOf this >> 'canFloat') == 1 AND this animationphase 'EFS_Cover_Hide' > 0.9 AND (player in crew this) AND ((this getVariable ['braf_efs_state','SAFE']) == 'ARMED')"; condition="getNumber (configOf this >> 'canFloat') == 1 AND this animationphase 'EFS_Cover_Hide' > 0.9 AND (player in crew this) AND ((this getVariable ['braf_efs_state','SAFE']) == 'ARMED')";
statement="[this, ""disarm""] call BRAF_fnc_efs"; statement="[this, ""disarm""] call BRAF_fnc_efs";
}; };
class Deploy_Floats: Arm_EFS class Deploy_Floats: Arm_EFS
{ {
displayname="<t color='#b31d00'> Deploy Floats </t>"; displayname="<t color='#b31d00'> deploy floats </t>";
condition="getNumber (configOf this >> 'canFloat') == 1 AND this animationphase 'EFS_Cover_Hide' > 0.9 AND (player in crew this) AND ((this getVariable ['braf_efs_state','SAFE']) == 'ARMED')"; condition="getNumber (configOf this >> 'canFloat') == 1 AND this animationphase 'EFS_Cover_Hide' > 0.9 AND (player in crew this) AND ((this getVariable ['braf_efs_state','SAFE']) == 'ARMED')";
statement="[this, ""deployfloats""] call BRAF_fnc_efs"; statement="[this, ""deployfloats""] call BRAF_fnc_efs";
}; };
@@ -551,12 +551,12 @@ class BRAF_Fennec_Base: Helicopter_Base_H
}; };
hiddenSelectionsTextures[]= hiddenSelectionsTextures[]=
{ {
"braf\braf_air\braf_helicopters\braf_fennec\data\1BAvEx_co.paa", "braf\braf_air\braf_helicopters\braf_fennec\data\1bavex_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Camo2_co.paa", "braf\braf_air\braf_helicopters\braf_fennec\data\camo2_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Camo3_co.paa", "braf\braf_air\braf_helicopters\braf_fennec\data\camo3_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Camo4_co.paa", "braf\braf_air\braf_helicopters\braf_fennec\data\camo4_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Camo5_co.paa", "braf\braf_air\braf_helicopters\braf_fennec\data\camo5_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Glass_ca.paa" "braf\braf_air\braf_helicopters\braf_fennec\data\glass_ca.paa"
}; };
class Damage class Damage
{ {
@@ -690,7 +690,7 @@ class BRAF_Fennec_Base: Helicopter_Base_H
"NVG" "NVG"
}; };
thermalMode[]={0,1}; thermalMode[]={0,1};
gunnerOpticsModel="A3\drones_f\Weapons_F_Gamma\Reticle\UAV_Optics_Gunner_wide_F.p3d"; gunnerOpticsModel="a3\drones_f\weapons_f_gamma\reticle\uav_optics_gunner_wide_f.p3d";
}; };
showMiniMapInOptics=0; showMiniMapInOptics=0;
showUAVViewpInOptics=0; showUAVViewpInOptics=0;
@@ -715,7 +715,7 @@ class BRAF_Fennec_Base: Helicopter_Base_H
class CargoTurret; class CargoTurret;
class Turrets: Turrets class Turrets: Turrets
{ {
class BRAF_CopilotTurret: CopilotTurret class braf_copilotturret: CopilotTurret
{ {
gunnerAction="braf_fennec_copilot"; gunnerAction="braf_fennec_copilot";
gunnerInAction="copilot_Heli_Light_02"; gunnerInAction="copilot_Heli_Light_02";
@@ -791,7 +791,7 @@ class BRAF_Fennec_Base: Helicopter_Base_H
}; };
}; };
}; };
class BRAF_Cargo_Heli_Right: CargoTurret class braf_cargo_heli_right: CargoTurret
{ {
gunnerAction="passenger_inside_2"; gunnerAction="passenger_inside_2";
gunnerName="Right Shooter"; gunnerName="Right Shooter";
@@ -809,7 +809,7 @@ class BRAF_Fennec_Base: Helicopter_Base_H
minElev=-50; minElev=-50;
maxElev=28; maxElev=28;
}; };
class BRAF_Cargo_Heli_Left: BRAF_Cargo_Heli_Right class braf_cargo_heli_left: braf_cargo_heli_right
{ {
gunnerName="Left Shooter"; gunnerName="Left Shooter";
memoryPointsGetInGunner="pos_gunner_L"; memoryPointsGetInGunner="pos_gunner_L";
@@ -830,165 +830,165 @@ class BRAF_Fennec_Base: Helicopter_Base_H
{ {
class 1BAvEx class 1BAvEx
{ {
author="BRAF Team"; author = "BRAF TEAM";
displayName="Brazilian Army 1st BAvEx"; displayName="Brazilian Army 1st BAvEx";
textures[]= textures[]=
{ {
"braf\braf_air\braf_helicopters\braf_fennec\data\1BAvEx_co.paa", "braf\braf_air\braf_helicopters\braf_fennec\data\1bavex_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Camo2_co.paa", "braf\braf_air\braf_helicopters\braf_fennec\data\camo2_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Camo3_co.paa", "braf\braf_air\braf_helicopters\braf_fennec\data\camo3_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Camo4_co.paa", "braf\braf_air\braf_helicopters\braf_fennec\data\camo4_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Camo5_co.paa", "braf\braf_air\braf_helicopters\braf_fennec\data\camo5_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Glass_ca.paa" "braf\braf_air\braf_helicopters\braf_fennec\data\glass_ca.paa"
}; };
factions[]= factions[]=
{ {
"BRAF_ARMY" "braf_army"
}; };
}; };
class 3BAvEx class 3BAvEx
{ {
author="BRAF Team"; author = "BRAF TEAM";
displayName="Brazilian Army 3rd BAvEx"; displayName="Brazilian Army 3rd BAvEx";
textures[]= textures[]=
{ {
"braf\braf_air\braf_helicopters\braf_fennec\data\3BAvEx_co.paa", "braf\braf_air\braf_helicopters\braf_fennec\data\3bavex_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Camo2_co.paa", "braf\braf_air\braf_helicopters\braf_fennec\data\camo2_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Camo3_co.paa", "braf\braf_air\braf_helicopters\braf_fennec\data\camo3_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Camo4_co.paa", "braf\braf_air\braf_helicopters\braf_fennec\data\camo4_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Camo5_co.paa", "braf\braf_air\braf_helicopters\braf_fennec\data\camo5_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Glass_ca.paa" "braf\braf_air\braf_helicopters\braf_fennec\data\glass_ca.paa"
}; };
factions[]= factions[]=
{ {
"BRAF_ARMY" "braf_army"
}; };
}; };
class 80s class 80s
{ {
author="BRAF Team"; author = "BRAF TEAM";
displayName="Brazilian Army 80s"; displayName="Brazilian Army 80s";
textures[]= textures[]=
{ {
"braf\braf_air\braf_helicopters\braf_fennec\data\80s_co.paa", "braf\braf_air\braf_helicopters\braf_fennec\data\80s_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Camo2_co.paa", "braf\braf_air\braf_helicopters\braf_fennec\data\camo2_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Camo3_co.paa", "braf\braf_air\braf_helicopters\braf_fennec\data\camo3_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Camo4_co.paa", "braf\braf_air\braf_helicopters\braf_fennec\data\camo4_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Camo5_co.paa", "braf\braf_air\braf_helicopters\braf_fennec\data\camo5_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Glass_ca.paa" "braf\braf_air\braf_helicopters\braf_fennec\data\glass_ca.paa"
}; };
factions[]= factions[]=
{ {
"BRAF_ARMY" "braf_army"
}; };
}; };
class Resort class Resort
{ {
author="BRAF Team"; author = "BRAF TEAM";
side=3; side=3;
displayName="Civilian Resort"; displayName="Civilian Resort";
textures[]= textures[]=
{ {
"braf\braf_air\braf_helicopters\braf_fennec\data\resort_1_co.paa", "braf\braf_air\braf_helicopters\braf_fennec\data\resort_1_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Camo2_co.paa", "braf\braf_air\braf_helicopters\braf_fennec\data\camo2_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Camo3_co.paa", "braf\braf_air\braf_helicopters\braf_fennec\data\camo3_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Camo4_co.paa", "braf\braf_air\braf_helicopters\braf_fennec\data\camo4_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\resort_5_co.paa", "braf\braf_air\braf_helicopters\braf_fennec\data\resort_5_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Glass_ca.paa" "braf\braf_air\braf_helicopters\braf_fennec\data\glass_ca.paa"
}; };
factions[]= factions[]=
{ {
"BRAF_CIV" "braf_civ"
}; };
}; };
class FAB class FAB
{ {
author="BRAF Team"; author = "BRAF TEAM";
displayName="Brazilian Air Force"; displayName="Brazilian Air Force";
textures[]= textures[]=
{ {
"braf\braf_air\braf_helicopters\braf_fennec\data\FAB\Camo1_co.paa", "braf\braf_air\braf_helicopters\braf_fennec\data\fab\camo1_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Camo2_co.paa", "braf\braf_air\braf_helicopters\braf_fennec\data\camo2_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Camo3_co.paa", "braf\braf_air\braf_helicopters\braf_fennec\data\camo3_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\FAB\Camo4_co.paa", "braf\braf_air\braf_helicopters\braf_fennec\data\fab\camo4_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\FAB\Camo5_co.paa", "braf\braf_air\braf_helicopters\braf_fennec\data\fab\camo5_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Glass_ca.paa" "braf\braf_air\braf_helicopters\braf_fennec\data\glass_ca.paa"
}; };
factions[]= factions[]=
{ {
"BRAF_FAB" "braf_fab"
}; };
}; };
class HU1 class HU1
{ {
author="BRAF Team"; author = "BRAF TEAM";
displayName="Brazilian Navy Águia Squadron"; displayName="Brazilian Navy Águia Squadron";
textures[]= textures[]=
{ {
"braf\braf_air\braf_helicopters\braf_fennec\data\MB\HU1_co.paa", "braf\braf_air\braf_helicopters\braf_fennec\data\mb\hu1_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Camo2_co.paa", "braf\braf_air\braf_helicopters\braf_fennec\data\camo2_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Camo3_co.paa", "braf\braf_air\braf_helicopters\braf_fennec\data\camo3_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\MB\Camo4_co.paa", "braf\braf_air\braf_helicopters\braf_fennec\data\mb\camo4_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\MB\Camo5_co.paa", "braf\braf_air\braf_helicopters\braf_fennec\data\mb\camo5_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Glass_ca.paa" "braf\braf_air\braf_helicopters\braf_fennec\data\glass_ca.paa"
}; };
factions[]= factions[]=
{ {
"BRAF_NAVY" "braf_navy"
}; };
}; };
class HU51 class HU51
{ {
author="BRAF Team"; author = "BRAF TEAM";
displayName="Brazilian Navy Albatroz Squadron"; displayName="Brazilian Navy Albatroz Squadron";
textures[]= textures[]=
{ {
"braf\braf_air\braf_helicopters\braf_fennec\data\MB\HU51_co.paa", "braf\braf_air\braf_helicopters\braf_fennec\data\mb\hu51_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Camo2_co.paa", "braf\braf_air\braf_helicopters\braf_fennec\data\camo2_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Camo3_co.paa", "braf\braf_air\braf_helicopters\braf_fennec\data\camo3_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\MB\Camo4_co.paa", "braf\braf_air\braf_helicopters\braf_fennec\data\mb\camo4_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\MB\Camo5_co.paa", "braf\braf_air\braf_helicopters\braf_fennec\data\mb\camo5_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Glass_ca.paa" "braf\braf_air\braf_helicopters\braf_fennec\data\glass_ca.paa"
}; };
factions[]= factions[]=
{ {
"BRAF_NAVY" "braf_navy"
}; };
}; };
class HU61 class HU61
{ {
author="BRAF Team"; author = "BRAF TEAM";
displayName="Brazilian Navy Gavião Squadron"; displayName="Brazilian Navy Gavião Squadron";
textures[]= textures[]=
{ {
"braf\braf_air\braf_helicopters\braf_fennec\data\MB\HU61_co.paa", "braf\braf_air\braf_helicopters\braf_fennec\data\mb\hu61_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Camo2_co.paa", "braf\braf_air\braf_helicopters\braf_fennec\data\camo2_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Camo3_co.paa", "braf\braf_air\braf_helicopters\braf_fennec\data\camo3_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\MB\Camo4_co.paa", "braf\braf_air\braf_helicopters\braf_fennec\data\mb\camo4_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\MB\Camo5_co.paa", "braf\braf_air\braf_helicopters\braf_fennec\data\mb\camo5_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Glass_ca.paa" "braf\braf_air\braf_helicopters\braf_fennec\data\glass_ca.paa"
}; };
factions[]= factions[]=
{ {
"BRAF_NAVY" "braf_navy"
}; };
}; };
class HU91 class HU91
{ {
author="BRAF Team"; author = "BRAF TEAM";
displayName="Brazilian Navy Tucano Squadron"; displayName="Brazilian Navy Tucano Squadron";
textures[]= textures[]=
{ {
"braf\braf_air\braf_helicopters\braf_fennec\data\MB\HU91_co.paa", "braf\braf_air\braf_helicopters\braf_fennec\data\mb\hu91_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Camo2_co.paa", "braf\braf_air\braf_helicopters\braf_fennec\data\camo2_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Camo3_co.paa", "braf\braf_air\braf_helicopters\braf_fennec\data\camo3_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\MB\Camo4_co.paa", "braf\braf_air\braf_helicopters\braf_fennec\data\mb\camo4_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\MB\Camo5_co.paa", "braf\braf_air\braf_helicopters\braf_fennec\data\mb\camo5_co.paa",
"braf\braf_air\braf_helicopters\braf_fennec\data\Glass_ca.paa" "braf\braf_air\braf_helicopters\braf_fennec\data\glass_ca.paa"
}; };
factions[]= factions[]=
{ {
"BRAF_NAVY" "braf_navy"
}; };
}; };
}; };
@@ -998,7 +998,7 @@ class BRAF_Fennec_Base: Helicopter_Base_H
1 1
}; };
}; };
class BRAF_Fennec_dynamicLoadout_base: BRAF_Fennec_Base class braf_fennec_dynamicloadout_base: braf_fennec_base
{ {
cost=3000000; cost=3000000;
threat[]={0.9,0.75,0.5}; threat[]={0.9,0.75,0.5};
@@ -1031,12 +1031,12 @@ class BRAF_Fennec_dynamicLoadout_base: BRAF_Fennec_Base
{ {
class TransportPylonsComponent class TransportPylonsComponent
{ {
uiPicture="\braf\braf_air\Braf_Helicopters\Braf_Fennec\data\ui\fennec_loadout_ca.paa"; uiPicture="\braf\braf_air\braf_helicopters\braf_fennec\data\ui\fennec_loadout_ca.paa";
class Pylons class Pylons
{ {
class PylonLeft1 class PylonLeft1
{ {
attachment="BRAF_PylonPod_50_cal"; attachment="braf_pylonpod_50_cal";
priority=5; priority=5;
hardpoints[]= hardpoints[]=
{ {
@@ -1048,7 +1048,7 @@ class BRAF_Fennec_dynamicLoadout_base: BRAF_Fennec_Base
}; };
class PylonRight1: PylonLeft1 class PylonRight1: PylonLeft1
{ {
attachment="BRAF_PylonPod_rocket_ap"; attachment="braf_pylonpod_rocket_ap";
mirroredMissilePos=1; mirroredMissilePos=1;
hardpoints[]= hardpoints[]=
{ {
@@ -1071,8 +1071,8 @@ class BRAF_Fennec_dynamicLoadout_base: BRAF_Fennec_Base
displayName="$STR_vehicle_default"; displayName="$STR_vehicle_default";
attachment[]= attachment[]=
{ {
"BRAF_PylonPod_50_cal", "braf_pylonpod_50_cal",
"BRAF_PylonPod_rocket_he" "braf_pylonpod_rocket_he"
}; };
}; };
class AT class AT
@@ -1080,8 +1080,8 @@ class BRAF_Fennec_dynamicLoadout_base: BRAF_Fennec_Base
displayName="$STR_A3_cfgmagazines_titan_at_dns"; displayName="$STR_A3_cfgmagazines_titan_at_dns";
attachment[]= attachment[]=
{ {
"BRAF_PylonPod_rocket_ap", "braf_pylonpod_rocket_ap",
"BRAF_PylonPod_rocket_ap" "braf_pylonpod_rocket_ap"
}; };
}; };
}; };
@@ -1166,7 +1166,7 @@ class BRAF_Fennec_dynamicLoadout_base: BRAF_Fennec_Base
}; };
class Turrets: Turrets class Turrets: Turrets
{ {
class BRAF_CopilotTurret: MainTurret class braf_copilotturret: MainTurret
{ {
proxyIndex=1; proxyIndex=1;
proxyType="CPGunner"; proxyType="CPGunner";
@@ -1189,7 +1189,7 @@ class BRAF_Fennec_dynamicLoadout_base: BRAF_Fennec_Base
initTurn=0; initTurn=0;
gunnerName="$STR_A3_COPILOT"; gunnerName="$STR_A3_COPILOT";
isCopilot=1; isCopilot=1;
turretInfoType="BRAF_RscOptics_Air_FLIR"; turretInfoType="braf_rscoptics_air_flir";
weapons[]= weapons[]=
{ {
"Laserdesignator_mounted" "Laserdesignator_mounted"
@@ -1252,7 +1252,7 @@ class BRAF_Fennec_dynamicLoadout_base: BRAF_Fennec_Base
0, //static, 0, //static,
0.95 //blurCoef 0.95 //blurCoef
}; };
gunnerOpticsModel="\braf\braf_optics_air\StarSaphire\braf_StarSaphire_w.p3d"; gunnerOpticsModel="\braf\braf_optics_air\starsaphire\braf_starsaphire_w.p3d";
gunnerOpticsEffect[]={}; gunnerOpticsEffect[]={};
directionStabilized=1; directionStabilized=1;
}; };
@@ -1262,12 +1262,12 @@ class BRAF_Fennec_dynamicLoadout_base: BRAF_Fennec_Base
initFov=0.0593; initFov=0.0593;
minFov=0.0593; minFov=0.0593;
maxFov=0.0593; maxFov=0.0593;
gunnerOpticsModel="\braf\braf_optics_air\StarSaphire\braf_StarSaphire_m.p3d"; gunnerOpticsModel="\braf\braf_optics_air\starsaphire\braf_starsaphire_m.p3d";
}; };
class Narrow: Wide class Narrow: Wide
{ {
opticsDisplayName="NFOV"; opticsDisplayName="NFOV";
gunnerOpticsModel="\braf\braf_optics_air\StarSaphire\braf_StarSaphire_n.p3d"; gunnerOpticsModel="\braf\braf_optics_air\starsaphire\braf_starsaphire_n.p3d";
initFov=0.0140; initFov=0.0140;
minFov=0.0140; minFov=0.0140;
maxFov=0.0140; maxFov=0.0140;
@@ -1422,7 +1422,7 @@ class BRAF_Fennec_dynamicLoadout_base: BRAF_Fennec_Base
}; };
class Arm_EFS class Arm_EFS
{ {
displayname="<t color='#ffaa00'> Arm EFS </t>"; displayname="<t color='#ffaa00'> arm efs </t>";
position="cabin"; position="cabin";
showWindow=1; showWindow=1;
radius=10; radius=10;
@@ -1433,19 +1433,19 @@ class BRAF_Fennec_dynamicLoadout_base: BRAF_Fennec_Base
}; };
class Disarm_EFS: Arm_EFS class Disarm_EFS: Arm_EFS
{ {
displayname="<t color='#ffaa00'> Disarm EFS </t>"; displayname="<t color='#ffaa00'> disarm efs </t>";
condition="getNumber (configOf this >> 'canFloat') == 1 AND this animationphase 'EFS_Cover_Hide' > 0.9 AND (player in crew this) AND ((this getVariable ['braf_efs_state','SAFE']) == 'ARMED')"; condition="getNumber (configOf this >> 'canFloat') == 1 AND this animationphase 'EFS_Cover_Hide' > 0.9 AND (player in crew this) AND ((this getVariable ['braf_efs_state','SAFE']) == 'ARMED')";
statement="[this, ""disarm""] call BRAF_fnc_efs"; statement="[this, ""disarm""] call BRAF_fnc_efs";
}; };
class Deploy_Floats: Arm_EFS class Deploy_Floats: Arm_EFS
{ {
displayname="<t color='#b31d00'> Deploy Floats </t>"; displayname="<t color='#b31d00'> deploy floats </t>";
condition="getNumber (configOf this >> 'canFloat') == 1 AND this animationphase 'EFS_Cover_Hide' > 0.9 AND (player in crew this) AND ((this getVariable ['braf_efs_state','SAFE']) == 'ARMED')"; condition="getNumber (configOf this >> 'canFloat') == 1 AND this animationphase 'EFS_Cover_Hide' > 0.9 AND (player in crew this) AND ((this getVariable ['braf_efs_state','SAFE']) == 'ARMED')";
statement="[this, ""deployfloats""] call BRAF_fnc_efs"; statement="[this, ""deployfloats""] call BRAF_fnc_efs";
}; };
}; };
}; };
class BRAF_Fennec_SAR_base: BRAF_Fennec_Base class braf_fennec_sar_base: braf_fennec_base
{ {
cost=750000; cost=750000;
threat[]={0.1,0,0}; threat[]={0.1,0,0};
@@ -1537,7 +1537,7 @@ class BRAF_Fennec_SAR_base: BRAF_Fennec_Base
}; };
class Turrets: Turrets class Turrets: Turrets
{ {
class BRAF_CopilotTurret: MainTurret class braf_copilotturret: MainTurret
{ {
body="mainTurret"; body="mainTurret";
gun="mainGun"; gun="mainGun";
@@ -1558,7 +1558,7 @@ class BRAF_Fennec_SAR_base: BRAF_Fennec_Base
initTurn=0; initTurn=0;
gunnerName="$STR_A3_COPILOT"; gunnerName="$STR_A3_COPILOT";
isCopilot=1; isCopilot=1;
turretInfoType="BRAF_RscOptics_Air_FLIR"; turretInfoType="braf_rscoptics_air_flir";
weapons[]= weapons[]=
{ {
"Laserdesignator_mounted" "Laserdesignator_mounted"
@@ -1620,7 +1620,7 @@ class BRAF_Fennec_SAR_base: BRAF_Fennec_Base
0, 0,
0.95 0.95
}; };
gunnerOpticsModel="\braf\braf_optics_air\StarSaphire\braf_StarSaphire_w.p3d"; gunnerOpticsModel="\braf\braf_optics_air\starsaphire\braf_starsaphire_w.p3d";
gunnerOpticsEffect[]={}; gunnerOpticsEffect[]={};
directionStabilized=1; directionStabilized=1;
}; };
@@ -1630,12 +1630,12 @@ class BRAF_Fennec_SAR_base: BRAF_Fennec_Base
initFov=0.0593; initFov=0.0593;
minFov=0.0593; minFov=0.0593;
maxFov=0.0593; maxFov=0.0593;
gunnerOpticsModel="\braf\braf_optics_air\StarSaphire\braf_StarSaphire_m.p3d"; gunnerOpticsModel="\braf\braf_optics_air\starsaphire\braf_starsaphire_m.p3d";
}; };
class Narrow: Wide class Narrow: Wide
{ {
opticsDisplayName="NFOV"; opticsDisplayName="NFOV";
gunnerOpticsModel="\braf\braf_optics_air\StarSaphire\braf_StarSaphire_n.p3d"; gunnerOpticsModel="\braf\braf_optics_air\starsaphire\braf_starsaphire_n.p3d";
initFov=0.0140; initFov=0.0140;
minFov=0.0140; minFov=0.0140;
maxFov=0.0140; maxFov=0.0140;
@@ -1753,44 +1753,44 @@ class BRAF_Fennec_SAR_base: BRAF_Fennec_Base
}; };
}; };
}; };
class BRAF_Cargo_Heli_Left: BRAF_Cargo_Heli_Left class braf_cargo_heli_left: braf_cargo_heli_left
{}; {};
}; };
class UserActions class UserActions
{ {
class Deploy_Rescue_Seat class Deploy_Rescue_Seat
{ {
displayname="<t color='#ffaa00'> Deploy Rescue Seat </t>"; displayname="<t color='#ffaa00'> deploy rescue seat </t>";
position="hoist_hook_pos"; position="hoist_hook_pos";
showWindow=1; showWindow=1;
radius=20; radius=20;
priority=1; priority=1;
onlyForPlayer=0; onlyForPlayer=0;
condition="this animationphase 'Hoist_Hide' > 0.9 AND (player in crew this) AND this animationphase 'door_L_2' > 0.9 AND !(""BRAF_Rescue_Seat"" in (this getVariable ['braf_hoist_spent_payloads', []]))"; condition="this animationphase 'Hoist_Hide' > 0.9 AND (player in crew this) AND this animationphase 'door_L_2' > 0.9 AND !(""braf_rescue_seat"" in (this getVariable ['braf_hoist_spent_payloads', []]))";
statement="this animate ['Winch_Rot',1]; [this, ""deploy"", ""BRAF_Rescue_Seat""] call BRAF_fnc_hoist; this animate ['Hoist_Hide',-0.5]"; statement="this animate ['Winch_Rot',1]; [this, ""deploy"", ""braf_rescue_seat""] call BRAF_fnc_hoist; this animate ['Hoist_Hide',-0.5]";
}; };
class Hoist_Down: Deploy_Rescue_Seat class Hoist_Down: Deploy_Rescue_Seat
{ {
displayname="<t color='#ffaa00'> Extend Cable Hook </t>"; displayname="<t color='#ffaa00'> extend cable hook </t>";
condition="this animationphase 'Hoist_Hide' < -0.4 AND this animationphase 'Hoist_Hide' > -0.6 AND (player in crew this) AND this animationphase 'door_L_2' > 0.9"; condition="this animationphase 'Hoist_Hide' < -0.4 AND this animationphase 'Hoist_Hide' > -0.6 AND (player in crew this) AND this animationphase 'door_L_2' > 0.9";
statement="[this, ""down""] call BRAF_fnc_hoist; this animate ['Hoist_Hide',-1]; this say3d ""Winch"""; statement="[this, ""down""] call BRAF_fnc_hoist; this animate ['Hoist_Hide',-1]; this say3d ""Winch""";
}; };
class Hoist_Up: Deploy_Rescue_Seat class Hoist_Up: Deploy_Rescue_Seat
{ {
displayname="<t color='#ffaa00'> Recover Hoist Hook </t>"; displayname="<t color='#ffaa00'> recover hoist hook </t>";
condition="this animationphase 'Hoist_Hide' < -0.9 AND (player in crew this) AND this animationphase 'door_L_2' > 0.9"; condition="this animationphase 'Hoist_Hide' < -0.9 AND (player in crew this) AND this animationphase 'door_L_2' > 0.9";
statement="[this, ""up""] call BRAF_fnc_hoist; this animate ['Hoist_Hide',-0.5]; this say3d ""Winch"""; statement="[this, ""up""] call BRAF_fnc_hoist; this animate ['Hoist_Hide',-0.5]; this say3d ""Winch""";
}; };
class Recover_Rescue_Seat: Deploy_Rescue_Seat class Recover_Rescue_Seat: Deploy_Rescue_Seat
{ {
displayname="<t color='#ffaa00'> Retrieve Rescue Payload </t>"; displayname="<t color='#ffaa00'> retrieve rescue payload </t>";
condition="(player in crew this) AND this animationphase 'door_L_2' > 0.9 AND this animationphase 'Hoist_Hide' < -0.4 AND this animationphase 'Hoist_Hide' > -0.6"; condition="(player in crew this) AND this animationphase 'door_L_2' > 0.9 AND this animationphase 'Hoist_Hide' < -0.4 AND this animationphase 'Hoist_Hide' > -0.6";
statement="[this, ""recover""] call BRAF_fnc_hoist; this animate ['Winch_Rot',0]; this animate ['Hoist_Hide',1]"; statement="[this, ""recover""] call BRAF_fnc_hoist; this animate ['Winch_Rot',0]; this animate ['Hoist_Hide',1]";
}; };
class Hoist_Cut: Deploy_Rescue_Seat class Hoist_Cut: Deploy_Rescue_Seat
{ {
displayname="<t color='#b31d00'> Cut Hoist Hook Cable </t>"; displayname="<t color='#b31d00'> cut hoist hook cable </t>";
condition="(player in crew this) AND this animationphase 'Hoist_Hide' < 0 AND this animationphase 'door_L_2' > 0.9"; condition="(player in crew this) AND this animationphase 'Hoist_Hide' < 0 AND this animationphase 'door_L_2' > 0.9";
statement="[this, ""cut""] call BRAF_fnc_hoist; this animate ['Winch_Rot',0]; this animate ['Hoist_Hide',1]"; statement="[this, ""cut""] call BRAF_fnc_hoist; this animate ['Winch_Rot',0]; this animate ['Hoist_Hide',1]";
}; };
@@ -1813,7 +1813,7 @@ class BRAF_Fennec_SAR_base: BRAF_Fennec_Base
}; };
class Arm_EFS class Arm_EFS
{ {
displayname="<t color='#ffaa00'> Arm EFS </t>"; displayname="<t color='#ffaa00'> arm efs </t>";
position="cabin"; position="cabin";
showWindow=1; showWindow=1;
radius=10; radius=10;
@@ -1824,13 +1824,13 @@ class BRAF_Fennec_SAR_base: BRAF_Fennec_Base
}; };
class Disarm_EFS: Arm_EFS class Disarm_EFS: Arm_EFS
{ {
displayname="<t color='#ffaa00'> Disarm EFS </t>"; displayname="<t color='#ffaa00'> disarm efs </t>";
condition="getNumber (configOf this >> 'canFloat') == 1 AND this animationphase 'EFS_Cover_Hide' > 0.9 AND (player in crew this) AND ((this getVariable ['braf_efs_state','SAFE']) == 'ARMED')"; condition="getNumber (configOf this >> 'canFloat') == 1 AND this animationphase 'EFS_Cover_Hide' > 0.9 AND (player in crew this) AND ((this getVariable ['braf_efs_state','SAFE']) == 'ARMED')";
statement="[this, ""disarm""] call BRAF_fnc_efs"; statement="[this, ""disarm""] call BRAF_fnc_efs";
}; };
class Deploy_Floats: Arm_EFS class Deploy_Floats: Arm_EFS
{ {
displayname="<t color='#b31d00'> Deploy Floats </t>"; displayname="<t color='#b31d00'> deploy floats </t>";
condition="getNumber (configOf this >> 'canFloat') == 1 AND this animationphase 'EFS_Cover_Hide' > 0.9 AND (player in crew this) AND ((this getVariable ['braf_efs_state','SAFE']) == 'ARMED')"; condition="getNumber (configOf this >> 'canFloat') == 1 AND this animationphase 'EFS_Cover_Hide' > 0.9 AND (player in crew this) AND ((this getVariable ['braf_efs_state','SAFE']) == 'ARMED')";
statement="[this, ""deployfloats""] call BRAF_fnc_efs"; statement="[this, ""deployfloats""] call BRAF_fnc_efs";
}; };
@@ -1853,7 +1853,7 @@ class BRAF_Fennec_SAR_base: BRAF_Fennec_Base
}; };
}; };
}; };
class BRAF_Fennec_unarmed_base: BRAF_Fennec_Base class braf_fennec_unarmed_base: braf_fennec_base
{ {
availableForSupportTypes[]= availableForSupportTypes[]=
{ {
@@ -1863,11 +1863,11 @@ class BRAF_Fennec_unarmed_base: BRAF_Fennec_Base
slingLoadMaxCargoMass=10; slingLoadMaxCargoMass=10;
class Turrets: Turrets class Turrets: Turrets
{ {
class BRAF_CopilotTurret: BRAF_CopilotTurret class braf_copilotturret: braf_copilotturret
{}; {};
class BRAF_Cargo_Heli_Right: BRAF_Cargo_Heli_Right class braf_cargo_heli_right: braf_cargo_heli_right
{}; {};
class BRAF_Cargo_Heli_Left: BRAF_Cargo_Heli_Left class braf_cargo_heli_left: braf_cargo_heli_left
{}; {};
}; };
class AnimationSources: AnimationSources class AnimationSources: AnimationSources
@@ -1938,7 +1938,7 @@ class BRAF_Fennec_unarmed_base: BRAF_Fennec_Base
}; };
class Arm_EFS class Arm_EFS
{ {
displayname="<t color='#ffaa00'> Arm EFS </t>"; displayname="<t color='#ffaa00'> arm efs </t>";
position="cabin"; position="cabin";
showWindow=1; showWindow=1;
radius=10; radius=10;
@@ -1949,19 +1949,19 @@ class BRAF_Fennec_unarmed_base: BRAF_Fennec_Base
}; };
class Disarm_EFS: Arm_EFS class Disarm_EFS: Arm_EFS
{ {
displayname="<t color='#ffaa00'> Disarm EFS </t>"; displayname="<t color='#ffaa00'> disarm efs </t>";
condition="getNumber (configOf this >> 'canFloat') == 1 AND this animationphase 'EFS_Cover_Hide' > 0.9 AND (player in crew this) AND ((this getVariable ['braf_efs_state','SAFE']) == 'ARMED')"; condition="getNumber (configOf this >> 'canFloat') == 1 AND this animationphase 'EFS_Cover_Hide' > 0.9 AND (player in crew this) AND ((this getVariable ['braf_efs_state','SAFE']) == 'ARMED')";
statement="[this, ""disarm""] call BRAF_fnc_efs"; statement="[this, ""disarm""] call BRAF_fnc_efs";
}; };
class Deploy_Floats: Arm_EFS class Deploy_Floats: Arm_EFS
{ {
displayname="<t color='#b31d00'> Deploy Floats </t>"; displayname="<t color='#b31d00'> deploy floats </t>";
condition="getNumber (configOf this >> 'canFloat') == 1 AND this animationphase 'EFS_Cover_Hide' > 0.9 AND (player in crew this) AND ((this getVariable ['braf_efs_state','SAFE']) == 'ARMED')"; condition="getNumber (configOf this >> 'canFloat') == 1 AND this animationphase 'EFS_Cover_Hide' > 0.9 AND (player in crew this) AND ((this getVariable ['braf_efs_state','SAFE']) == 'ARMED')";
statement="[this, ""deployfloats""] call BRAF_fnc_efs"; statement="[this, ""deployfloats""] call BRAF_fnc_efs";
}; };
}; };
}; };
class BRAF_Fennec_cargo_base: BRAF_Fennec_Base class braf_fennec_cargo_base: braf_fennec_base
{ {
availableForSupportTypes[]= availableForSupportTypes[]=
{ {
@@ -1972,7 +1972,7 @@ class BRAF_Fennec_cargo_base: BRAF_Fennec_Base
transportSoldier=4; transportSoldier=4;
class Turrets: Turrets class Turrets: Turrets
{ {
class BRAF_CopilotTurret: BRAF_CopilotTurret class braf_copilotturret: braf_copilotturret
{}; {};
}; };
class AnimationSources: AnimationSources class AnimationSources: AnimationSources
@@ -2017,11 +2017,11 @@ class BRAF_Fennec_cargo_base: BRAF_Fennec_Base
}; };
}; };
}; };
class BRAF_Fennec_Unarmed: BRAF_Fennec_unarmed_base class braf_fennec_unarmed: braf_fennec_unarmed_base
{ {
author="BRAF TEAM"; author = "BRAF TEAM";
_generalMacro="BRAF_Fennec_Unarmed"; _generalMacro="braf_fennec_unarmed";
editorPreview="\braf\braf_insignia\editorpreview\Air\BRAF_Fennec_Unarmed.jpg"; editorPreview="\braf\braf_insignia\editorpreview\air\braf_fennec_unarmed.jpg";
scope=2; scope=2;
side=2; side=2;
scopeCurator=2; scopeCurator=2;
@@ -2034,11 +2034,11 @@ class BRAF_Fennec_Unarmed: BRAF_Fennec_unarmed_base
"3BAvEx",0.5 "3BAvEx",0.5
}; };
}; };
class BRAF_Fennec_Unarmed_MB: BRAF_Fennec_unarmed_base class braf_fennec_unarmed_mb: braf_fennec_unarmed_base
{ {
author="BRAF TEAM"; author = "BRAF TEAM";
_generalMacro="BRAF_Fennec_Unarmed_MB"; _generalMacro="braf_fennec_unarmed_mb";
faction="BRAF_NAVY"; faction="braf_navy";
canFloat=1; canFloat=1;
waterAngularDampingCoef=0; waterAngularDampingCoef=0;
waterDamageEngine=0.2; waterDamageEngine=0.2;
@@ -2050,7 +2050,7 @@ class BRAF_Fennec_Unarmed_MB: BRAF_Fennec_unarmed_base
waterResistance=1; waterResistance=1;
waterResistanceCoef=0.5; waterResistanceCoef=0.5;
crew="braf_characters_aviation_navy_pilot"; crew="braf_characters_aviation_navy_pilot";
editorPreview="\braf\braf_insignia\editorpreview\air\BRAF_Fennec_Unarmed_MB.jpg"; editorPreview="\braf\braf_insignia\editorpreview\air\braf_fennec_unarmed_mb.jpg";
scope=2; scope=2;
side=2; side=2;
scopeCurator=2; scopeCurator=2;
@@ -2074,12 +2074,12 @@ class BRAF_Fennec_Unarmed_MB: BRAF_Fennec_unarmed_base
"EFS_Hide",0 "EFS_Hide",0
}; };
}; };
class BRAF_Fennec_Unarmed_FAB: BRAF_Fennec_unarmed_base class braf_fennec_unarmed_fab: braf_fennec_unarmed_base
{ {
author="BRAF TEAM"; author = "BRAF TEAM";
_generalMacro="BRAF_Fennec_Unarmed_FAB"; _generalMacro="braf_fennec_unarmed_fab";
faction="BRAF_FAB"; faction="braf_fab";
editorPreview="\braf\braf_insignia\editorpreview\air\BRAF_Fennec_Unarmed_FAB.jpg"; editorPreview="\braf\braf_insignia\editorpreview\air\braf_fennec_unarmed_fab.jpg";
scope=2; scope=2;
side=2; side=2;
forceInGarage=1; forceInGarage=1;
@@ -2096,13 +2096,13 @@ class BRAF_Fennec_Unarmed_FAB: BRAF_Fennec_unarmed_base
"FAB",1 "FAB",1
}; };
}; };
class BRAF_Fennec_Resort: BRAF_Fennec_cargo_base class braf_fennec_resort: braf_fennec_cargo_base
{ {
author="BRAF TEAM"; author = "BRAF TEAM";
_generalMacro="BRAF_Fennec_Resort"; _generalMacro="braf_fennec_resort";
editorPreview="\braf\braf_insignia\editorpreview\brazilian_civ\Air\BRAF_Fennec_Resort.jpg"; editorPreview="\braf\braf_insignia\editorpreview\brazilian_civ\air\braf_fennec_resort.jpg";
scope=2; scope=2;
faction="BRAF_CIV"; faction="braf_civ";
canFloat=1; canFloat=1;
waterAngularDampingCoef=0; waterAngularDampingCoef=0;
waterDamageEngine=0.2; waterDamageEngine=0.2;
@@ -2133,11 +2133,11 @@ class BRAF_Fennec_Resort: BRAF_Fennec_cargo_base
"EFS_Hide",0 "EFS_Hide",0
}; };
}; };
class BRAF_Fennec_80s: BRAF_Fennec_unarmed_base class braf_fennec_80s: braf_fennec_unarmed_base
{ {
author="BRAF TEAM"; author = "BRAF TEAM";
_generalMacro="BRAF_Fennec_80s"; _generalMacro="braf_fennec_80s";
editorPreview="\braf\braf_insignia\editorpreview\Air\BRAF_Fennec_80s.jpg"; editorPreview="\braf\braf_insignia\editorpreview\air\braf_fennec_80s.jpg";
scope=2; scope=2;
side=2; side=2;
scopeCurator=2; scopeCurator=2;
@@ -2148,11 +2148,11 @@ class BRAF_Fennec_80s: BRAF_Fennec_unarmed_base
"80s",1 "80s",1
}; };
}; };
class BRAF_Fennec_Armed: BRAF_Fennec_dynamicLoadout_base class braf_fennec_armed: braf_fennec_dynamicloadout_base
{ {
author="BRAF TEAM"; author = "BRAF TEAM";
_generalMacro="BRAF_Fennec_Armed"; _generalMacro="braf_fennec_armed";
editorPreview="\braf\braf_insignia\editorpreview\Air\BRAF_Fennec_Armed.jpg"; editorPreview="\braf\braf_insignia\editorpreview\air\braf_fennec_armed.jpg";
scope=2; scope=2;
side=2; side=2;
scopeCurator=2; scopeCurator=2;
@@ -2164,11 +2164,11 @@ class BRAF_Fennec_Armed: BRAF_Fennec_dynamicLoadout_base
"3BAvEx",0.5 "3BAvEx",0.5
}; };
}; };
class BRAF_Fennec_Armed_MB: BRAF_Fennec_dynamicLoadout_base class braf_fennec_armed_mb: braf_fennec_dynamicloadout_base
{ {
author="BRAF TEAM"; author = "BRAF TEAM";
_generalMacro="BRAF_Fennec_Armed_MB"; _generalMacro="braf_fennec_armed_mb";
faction="BRAF_NAVY"; faction="braf_navy";
canFloat=1; canFloat=1;
waterAngularDampingCoef=0; waterAngularDampingCoef=0;
waterDamageEngine=0.2; waterDamageEngine=0.2;
@@ -2180,7 +2180,7 @@ class BRAF_Fennec_Armed_MB: BRAF_Fennec_dynamicLoadout_base
waterResistance=1; waterResistance=1;
waterResistanceCoef=0.5; waterResistanceCoef=0.5;
crew="braf_characters_aviation_navy_pilot"; crew="braf_characters_aviation_navy_pilot";
editorPreview="\braf\braf_insignia\editorpreview\air\BRAF_Fennec_Armed_MB.jpg"; editorPreview="\braf\braf_insignia\editorpreview\air\braf_fennec_armed_mb.jpg";
scope=2; scope=2;
side=2; side=2;
scopeCurator=2; scopeCurator=2;
@@ -2203,13 +2203,13 @@ class BRAF_Fennec_Armed_MB: BRAF_Fennec_dynamicLoadout_base
"EFS_Hide",0 "EFS_Hide",0
}; };
}; };
class BRAF_Fennec_Armed_FAB: BRAF_Fennec_dynamicLoadout_base class braf_fennec_armed_fab: braf_fennec_dynamicloadout_base
{ {
author="BRAF TEAM"; author = "BRAF TEAM";
_generalMacro="BRAF_Fennec_Armed_FAB"; _generalMacro="braf_fennec_armed_fab";
faction="BRAF_FAB"; faction="braf_fab";
crew="braf_characters_aviation_air_force_pilot"; crew="braf_characters_aviation_air_force_pilot";
editorPreview="\braf\braf_insignia\editorpreview\air\BRAF_Fennec_Armed_FAB.jpg"; editorPreview="\braf\braf_insignia\editorpreview\air\braf_fennec_armed_fab.jpg";
scope=2; scope=2;
side=2; side=2;
scopeCurator=2; scopeCurator=2;
@@ -2224,11 +2224,11 @@ class BRAF_Fennec_Armed_FAB: BRAF_Fennec_dynamicLoadout_base
"FAB",1 "FAB",1
}; };
}; };
class BRAF_Fennec_Cargo: BRAF_Fennec_cargo_base class braf_fennec_cargo: braf_fennec_cargo_base
{ {
author="BRAF TEAM"; author = "BRAF TEAM";
_generalMacro="BRAF_Fennec_Cargo"; _generalMacro="braf_fennec_cargo";
editorPreview="\braf\braf_insignia\editorpreview\Air\BRAF_Fennec_Cargo.jpg"; editorPreview="\braf\braf_insignia\editorpreview\air\braf_fennec_cargo.jpg";
scope=2; scope=2;
side=2; side=2;
scopeCurator=2; scopeCurator=2;
@@ -2240,11 +2240,11 @@ class BRAF_Fennec_Cargo: BRAF_Fennec_cargo_base
"3BAvEx",0.5 "3BAvEx",0.5
}; };
}; };
class BRAF_Fennec_Cargo_MB: BRAF_Fennec_cargo_base class braf_fennec_cargo_mb: braf_fennec_cargo_base
{ {
author="BRAF TEAM"; author = "BRAF TEAM";
_generalMacro="BRAF_Fennec_Cargo_MB"; _generalMacro="braf_fennec_cargo_mb";
faction="BRAF_NAVY"; faction="braf_navy";
canFloat=1; canFloat=1;
waterAngularDampingCoef=0; waterAngularDampingCoef=0;
waterDamageEngine=0.2; waterDamageEngine=0.2;
@@ -2256,7 +2256,7 @@ class BRAF_Fennec_Cargo_MB: BRAF_Fennec_cargo_base
waterResistance=1; waterResistance=1;
waterResistanceCoef=0.5; waterResistanceCoef=0.5;
crew="braf_characters_aviation_navy_pilot"; crew="braf_characters_aviation_navy_pilot";
editorPreview="\braf\braf_insignia\editorpreview\air\BRAF_Fennec_Cargo_MB.jpg"; editorPreview="\braf\braf_insignia\editorpreview\air\braf_fennec_cargo_mb.jpg";
scope=2; scope=2;
side=2; side=2;
scopeCurator=2; scopeCurator=2;
@@ -2279,13 +2279,13 @@ class BRAF_Fennec_Cargo_MB: BRAF_Fennec_cargo_base
"EFS_Hide",0 "EFS_Hide",0
}; };
}; };
class BRAF_Fennec_Cargo_FAB: BRAF_Fennec_cargo_base class braf_fennec_cargo_fab: braf_fennec_cargo_base
{ {
author="BRAF TEAM"; author = "BRAF TEAM";
_generalMacro="BRAF_Fennec_Cargo_FAB"; _generalMacro="braf_fennec_cargo_fab";
faction="BRAF_FAB"; faction="braf_fab";
crew="braf_characters_aviation_air_force_pilot"; crew="braf_characters_aviation_air_force_pilot";
editorPreview="\braf\braf_insignia\editorpreview\air\BRAF_Fennec_Cargo_FAB.jpg"; editorPreview="\braf\braf_insignia\editorpreview\air\braf_fennec_cargo_fab.jpg";
scope=2; scope=2;
side=2; side=2;
scopeCurator=2; scopeCurator=2;
@@ -2300,11 +2300,11 @@ class BRAF_Fennec_Cargo_FAB: BRAF_Fennec_cargo_base
"FAB",1 "FAB",1
}; };
}; };
class BRAF_Fennec_SAR: BRAF_Fennec_SAR_base class braf_fennec_sar: braf_fennec_sar_base
{ {
author="BRAF TEAM"; author = "BRAF TEAM";
_generalMacro="BRAF_Fennec_SAR"; _generalMacro="braf_fennec_sar";
editorPreview="\braf\braf_insignia\editorpreview\Air\BRAF_Fennec_SAR.jpg"; editorPreview="\braf\braf_insignia\editorpreview\air\braf_fennec_sar.jpg";
scope=2; scope=2;
side=2; side=2;
scopeCurator=2; scopeCurator=2;
@@ -2316,13 +2316,13 @@ class BRAF_Fennec_SAR: BRAF_Fennec_SAR_base
"3BAvEx",0.5 "3BAvEx",0.5
}; };
}; };
class BRAF_Fennec_SAR_MB: BRAF_Fennec_SAR_base class braf_fennec_sar_mb: braf_fennec_sar_base
{ {
author="BRAF TEAM"; author = "BRAF TEAM";
_generalMacro="BRAF_Fennec_SAR_MB"; _generalMacro="braf_fennec_sar_mb";
editorPreview="\braf\braf_insignia\editorpreview\air\BRAF_Fennec_SAR_MB.jpg"; editorPreview="\braf\braf_insignia\editorpreview\air\braf_fennec_sar_mb.jpg";
crew="braf_characters_aviation_navy_pilot"; crew="braf_characters_aviation_navy_pilot";
faction="BRAF_NAVY"; faction="braf_navy";
canFloat=1; canFloat=1;
waterAngularDampingCoef=0; waterAngularDampingCoef=0;
waterDamageEngine=0.2; waterDamageEngine=0.2;
@@ -2355,13 +2355,13 @@ class BRAF_Fennec_SAR_MB: BRAF_Fennec_SAR_base
"EFS_Hide",0 "EFS_Hide",0
}; };
}; };
class BRAF_Fennec_SAR_FAB: BRAF_Fennec_SAR_base class braf_fennec_sar_fab: braf_fennec_sar_base
{ {
author="BRAF TEAM"; author = "BRAF TEAM";
_generalMacro="BRAF_Fennec_SAR_FAB"; _generalMacro="braf_fennec_sar_fab";
editorPreview="\braf\braf_insignia\editorpreview\air\BRAF_Fennec_SAR_FAB.jpg"; editorPreview="\braf\braf_insignia\editorpreview\air\braf_fennec_sar_fab.jpg";
crew="braf_characters_aviation_air_force_pilot"; crew="braf_characters_aviation_air_force_pilot";
faction="BRAF_FAB"; faction="braf_fab";
scope=2; scope=2;
side=2; side=2;
scopeCurator=2; scopeCurator=2;
@@ -1,6 +1,6 @@
class MFD class MFD
{ {
class BRAF_HRZ_LEFT class braf_hrz_left
{ {
topLeft="MFD_L_TL"; topLeft="MFD_L_TL";
topRight="MFD_L_TR"; topRight="MFD_L_TR";
@@ -5826,7 +5826,7 @@ class MFD
{ {
type="text"; type="text";
source="static"; source="static";
text="M/S"; text="m/s";
sourceScale=1; sourceScale=1;
align="center"; align="center";
scale=1; scale=1;
@@ -6907,13 +6907,13 @@ class MFD
}; };
}; };
}; };
class BRAF_HRZ_RIGHT: BRAF_HRZ_LEFT class braf_hrz_right: braf_hrz_left
{ {
topLeft="MFD_R_TL"; topLeft="MFD_R_TL";
topRight="MFD_R_TR"; topRight="MFD_R_TR";
bottomLeft="MFD_R_ML"; bottomLeft="MFD_R_ML";
}; };
class BRAF_HRZ_CENTER class braf_hrz_center
{ {
topLeft="HRZ_TL"; topLeft="HRZ_TL";
topRight="HRZ_TR"; topRight="HRZ_TR";
@@ -12305,7 +12305,7 @@ class MFD
}; };
}; };
}; };
class BRAF_DIR_LEFT class braf_dir_left
{ {
topLeft="MFD_L_ML"; topLeft="MFD_L_ML";
topRight="MFD_L_MR"; topRight="MFD_L_MR";
@@ -13374,13 +13374,13 @@ class MFD
}; };
}; };
}; };
class BRAF_DIR_RIGHT: BRAF_DIR_LEFT class braf_dir_right: braf_dir_left
{ {
topLeft="MFD_R_ML"; topLeft="MFD_R_ML";
topRight="MFD_R_MR"; topRight="MFD_R_MR";
bottomLeft="MFD_R_BL"; bottomLeft="MFD_R_BL";
}; };
class BRAF_ENG_TOP class braf_eng_top
{ {
topLeft="MFD_M_TL"; topLeft="MFD_M_TL";
topRight="MFD_M_TR"; topRight="MFD_M_TR";
@@ -13454,7 +13454,7 @@ class MFD
class Top class Top
{ {
type="polygon"; type="polygon";
texture="braf\braf_air\Braf_Helicopters\Braf_Pantera\data\engine2_ca.paa"; texture="braf\braf_air\braf_helicopters\braf_pantera\data\engine2_ca.paa";
points[]= points[]=
{ {
{ {
@@ -13517,7 +13517,7 @@ class MFD
}; };
}; };
}; };
class BRAF_ENG_BOTTOM class braf_eng_bottom
{ {
topLeft="MFD_M_ML"; topLeft="MFD_M_ML";
topRight="MFD_M_MR"; topRight="MFD_M_MR";
@@ -13580,7 +13580,7 @@ class MFD
class Bottom class Bottom
{ {
type="polygon"; type="polygon";
texture="braf\braf_air\Braf_Helicopters\Braf_Pantera\data\engine1_ca.paa"; texture="braf\braf_air\braf_helicopters\braf_pantera\data\engine1_ca.paa";
points[]= points[]=
{ {
{ {
@@ -13610,7 +13610,7 @@ class MFD
}; };
}; };
}; };
class BRAF_CLK_LEFT class braf_clk_left
{ {
topLeft="CLK_L_TL"; topLeft="CLK_L_TL";
topRight="CLK_L_TR"; topRight="CLK_L_TR";
@@ -13743,13 +13743,13 @@ class MFD
}; };
}; };
}; };
class BRAF_CLK_RIGHT: BRAF_CLK_LEFT class braf_clk_right: braf_clk_left
{ {
topLeft="CLK_R_TL"; topLeft="CLK_R_TL";
topRight="CLK_R_TR"; topRight="CLK_R_TR";
bottomLeft="CLK_R_BL"; bottomLeft="CLK_R_BL";
}; };
class BRAF_GPS_LEFT class braf_gps_left
{ {
topLeft="GPS_TL"; topLeft="GPS_TL";
topRight="GPS_TR"; topRight="GPS_TR";
@@ -13779,7 +13779,7 @@ class MFD
class GPS class GPS
{ {
type="polygon"; type="polygon";
texture="braf\braf_air\braf_helicopters\braf_fennec\data\GPS_175_co.paa"; texture="braf\braf_air\braf_helicopters\braf_fennec\data\gps_175_co.paa";
points[]= points[]=
{ {
{ {
@@ -13806,7 +13806,7 @@ class MFD
}; };
}; };
}; };
class BRAF_GUN_LEFT class braf_gun_left
{ {
topLeft="GUN_TL"; topLeft="GUN_TL";
topRight="GUN_TR"; topRight="GUN_TR";
@@ -13917,7 +13917,7 @@ class MFD
}; };
}; };
}; };
class BRAF_COM class braf_com
{ {
topLeft="COM_TL"; topLeft="COM_TL";
topRight="COM_TR"; topRight="COM_TR";
@@ -14011,7 +14011,7 @@ class MFD
}; };
}; };
///* ///*
class BRAF_HUD class braf_hud
{ {
topLeft="HUD_TL"; topLeft="HUD_TL";
topRight="HUD_TR"; topRight="HUD_TR";
@@ -2,252 +2,252 @@ occludeSoundsWhenIn=0.562341;
obstructSoundsWhenIn=0.316228; obstructSoundsWhenIn=0.316228;
attenuationEffectType="HeliAttenuation"; attenuationEffectType="HeliAttenuation";
emptySound[]={"",0,1}; emptySound[]={"",0,1};
soundGeneralCollision1[]={"A3\Sounds_F\vehicles\crashes\helis\Heli_coll_default_int_1",1.0,1,100}; soundGeneralCollision1[]={"a3\sounds_f\vehicles\crashes\helis\heli_coll_default_int_1",1.0,1,100};
soundGeneralCollision2[]={"A3\Sounds_F\vehicles\crashes\helis\Heli_coll_default_int_2",1.0,1,100}; soundGeneralCollision2[]={"a3\sounds_f\vehicles\crashes\helis\heli_coll_default_int_2",1.0,1,100};
soundGeneralCollision3[]={"A3\Sounds_F\vehicles\crashes\helis\Heli_coll_default_int_3",1.0,1,100}; soundGeneralCollision3[]={"a3\sounds_f\vehicles\crashes\helis\heli_coll_default_int_3",1.0,1,100};
soundCrashes[]={"soundGeneralCollision1",0.33,"soundGeneralCollision2",0.33,"soundGeneralCollision3",0.33}; soundCrashes[]={"soundGeneralCollision1",0.33,"soundGeneralCollision2",0.33,"soundGeneralCollision3",0.33};
soundLandCrashes[]={"emptySound",0}; soundLandCrashes[]={"emptySound",0};
soundBuildingCrash[]={"soundGeneralCollision1",1,"soundGeneralCollision2",1,"soundGeneralCollision3",1}; soundBuildingCrash[]={"soundGeneralCollision1",1,"soundGeneralCollision2",1,"soundGeneralCollision3",1};
soundArmorCrash[]={"soundGeneralCollision1",1,"soundGeneralCollision2",1,"soundGeneralCollision3",1}; soundArmorCrash[]={"soundGeneralCollision1",1,"soundGeneralCollision2",1,"soundGeneralCollision3",1};
soundWoodCrash[]={"soundGeneralCollision1",1,"soundGeneralCollision2",1,"soundGeneralCollision3",1}; soundWoodCrash[]={"soundGeneralCollision1",1,"soundGeneralCollision2",1,"soundGeneralCollision3",1};
soundBushCollision1[]={"A3\Sounds_F\vehicles\crashes\helis\Heli_coll_bush_int_1",1.0,1,100}; soundBushCollision1[]={"a3\sounds_f\vehicles\crashes\helis\heli_coll_bush_int_1",1.0,1,100};
soundBushCollision2[]={"A3\Sounds_F\vehicles\crashes\helis\Heli_coll_bush_int_2",1.0,1,100}; soundBushCollision2[]={"a3\sounds_f\vehicles\crashes\helis\heli_coll_bush_int_2",1.0,1,100};
soundBushCollision3[]={"A3\Sounds_F\vehicles\crashes\helis\Heli_coll_bush_int_3",1.0,1,100}; soundBushCollision3[]={"a3\sounds_f\vehicles\crashes\helis\heli_coll_bush_int_3",1.0,1,100};
soundBushCrash[]={"soundBushCollision1",0.33,"soundBushCollision2",0.33,"soundBushCollision3",0.33}; soundBushCrash[]={"soundBushCollision1",0.33,"soundBushCollision2",0.33,"soundBushCollision3",0.33};
soundWaterCollision1[]={"A3\Sounds_F\vehicles\crashes\planes\plane_crash_water_1",1.4125376,1,500}; soundWaterCollision1[]={"a3\sounds_f\vehicles\crashes\planes\plane_crash_water_1",1.4125376,1,500};
soundWaterCollision2[]={"A3\Sounds_F\vehicles\crashes\planes\plane_crash_water_2",1.4125376,1,500}; soundWaterCollision2[]={"a3\sounds_f\vehicles\crashes\planes\plane_crash_water_2",1.4125376,1,500};
soundWaterCrashes[]={"soundWaterCollision1",0.5,"soundWaterCollision2",0.5}; soundWaterCrashes[]={"soundWaterCollision1",0.5,"soundWaterCollision2",0.5};
soundDammage[]={"A3\Sounds_F\vehicles\crashes\helis\Heli_crash_default_ext_1",3.1622777,1}; soundDammage[]={"a3\sounds_f\vehicles\crashes\helis\heli_crash_default_ext_1",3.1622777,1};
soundGetIn[]={"A3\Sounds_F\vehicles\air\noises\heli_get_in2",0.56234133,1}; soundGetIn[]={"a3\sounds_f\vehicles\air\noises\heli_get_in2",0.56234133,1};
soundGetOut[]={"A3\Sounds_F\vehicles\air\noises\heli_get_out2",0.7943282,1,20}; soundGetOut[]={"a3\sounds_f\vehicles\air\noises\heli_get_out2",0.7943282,1,20};
soundEngineOnInt[]={"braf\braf_air\Braf_Helicopters\BRAF_Sounds\fennec\fennec_int_start.ogg",0.31622776,1.0}; soundEngineOnInt[]={"braf\braf_air\braf_helicopters\braf_sounds\fennec\fennec_int_start.ogg",0.31622776,1.0};
soundEngineOnExt[]={"braf\braf_air\Braf_Helicopters\BRAF_Sounds\fennec\fennec_ext_start.ogg",0.7943282,1.0,600}; soundEngineOnExt[]={"braf\braf_air\braf_helicopters\braf_sounds\fennec\fennec_ext_start.ogg",0.7943282,1.0,600};
soundEngineOffInt[]={"braf\braf_air\Braf_Helicopters\BRAF_Sounds\fennec\fennec_int_shut.ogg",0.31622776,1.0}; soundEngineOffInt[]={"braf\braf_air\braf_helicopters\braf_sounds\fennec\fennec_int_shut.ogg",0.31622776,1.0};
soundEngineOffExt[]={"braf\braf_air\Braf_Helicopters\BRAF_Sounds\fennec\fennec_ext_shut.ogg",0.7943282,1.0,600}; soundEngineOffExt[]={"braf\braf_air\braf_helicopters\braf_sounds\fennec\fennec_ext_shut.ogg",0.7943282,1.0,600};
soundLocked[]={"\A3\Sounds_F\weapons\Rockets\opfor_lock_1",1.0,1}; soundLocked[]={"\a3\sounds_f\weapons\rockets\opfor_lock_1",1.0,1};
soundIncommingMissile[]={"\A3\Sounds_F\vehicles\air\noises\alarm_locked_by_missile_1",0.31622776,1.0}; soundIncommingMissile[]={"\a3\sounds_f\vehicles\air\noises\alarm_locked_by_missile_1",0.31622776,1.0};
rotorDamageInt[]={"A3\Sounds_F\vehicles\air\noises\heli_damage_rotor_int_open_1",1.0,1.0}; rotorDamageInt[]={"a3\sounds_f\vehicles\air\noises\heli_damage_rotor_int_open_1",1.0,1.0};
rotorDamageOut[]={"A3\Sounds_F\vehicles\air\noises\heli_damage_rotor_ext_1",2.5118864,1.0,150}; rotorDamageOut[]={"a3\sounds_f\vehicles\air\noises\heli_damage_rotor_ext_1",2.5118864,1.0,150};
rotorDamage[]={"rotorDamageInt","rotorDamageOut"}; rotorDamage[]={"rotorDamageInt","rotorDamageOut"};
tailDamageInt[]={"A3\Sounds_F\vehicles\air\noises\heli_damage_tail",1.0,1.0}; tailDamageInt[]={"a3\sounds_f\vehicles\air\noises\heli_damage_tail",1.0,1.0};
tailDamageOut[]={"A3\Sounds_F\vehicles\air\noises\heli_damage_tail",1.0,1.0,300}; tailDamageOut[]={"a3\sounds_f\vehicles\air\noises\heli_damage_tail",1.0,1.0,300};
tailDamage[]={"tailDamageInt","tailDamageOut"}; tailDamage[]={"tailDamageInt","tailDamageOut"};
landingSoundInt0[]={"A3\Sounds_F\vehicles\air\noises\landing_skids_int1_open",1.0,1.0,100}; landingSoundInt0[]={"a3\sounds_f\vehicles\air\noises\landing_skids_int1_open",1.0,1.0,100};
landingSoundInt1[]={"A3\Sounds_F\vehicles\air\noises\landing_skids_int1_open",1.0,1.0,100}; landingSoundInt1[]={"a3\sounds_f\vehicles\air\noises\landing_skids_int1_open",1.0,1.0,100};
landingSoundInt[]={"landingSoundInt0",0.5,"landingSoundInt1",0.5}; landingSoundInt[]={"landingSoundInt0",0.5,"landingSoundInt1",0.5};
landingSoundOut0[]={"A3\Sounds_F\vehicles\air\noises\landing_skids_ext1",1.7782794,1.0,100}; landingSoundOut0[]={"a3\sounds_f\vehicles\air\noises\landing_skids_ext1",1.7782794,1.0,100};
landingSoundOut1[]={"A3\Sounds_F\vehicles\air\noises\landing_skids_ext1",1.7782794,1.0,100}; landingSoundOut1[]={"a3\sounds_f\vehicles\air\noises\landing_skids_ext1",1.7782794,1.0,100};
landingSoundOut[]={"landingSoundOut0",0.5,"landingSoundOut1",0.5}; landingSoundOut[]={"landingSoundOut0",0.5,"landingSoundOut1",0.5};
slingCargoAttach0[]={"A3\Sounds_F\vehicles\air\noises\SL_engineDownEndINT",1.0,1.0}; slingCargoAttach0[]={"a3\sounds_f\vehicles\air\noises\sl_enginedownendint",1.0,1.0};
slingCargoAttach1[]={"A3\Sounds_F\vehicles\air\noises\SL_1hookLock",1.7782794,1.0,200}; slingCargoAttach1[]={"a3\sounds_f\vehicles\air\noises\sl_1hooklock",1.7782794,1.0,200};
slingCargoAttach[]={"slingCargoAttach0","slingCargoAttach1"}; slingCargoAttach[]={"slingCargoAttach0","slingCargoAttach1"};
slingCargoDetach0[]={"A3\Sounds_F\vehicles\air\noises\SL_engineUpEndINT",1.0,1.0}; slingCargoDetach0[]={"a3\sounds_f\vehicles\air\noises\sl_engineupendint",1.0,1.0};
slingCargoDetach1[]={"A3\Sounds_F\vehicles\air\noises\SL_1hookUnlock",1.7782794,1.0,200}; slingCargoDetach1[]={"a3\sounds_f\vehicles\air\noises\sl_1hookunlock",1.7782794,1.0,200};
slingCargoDetach[]={"slingCargoDetach0","slingCargoDetach1"}; slingCargoDetach[]={"slingCargoDetach0","slingCargoDetach1"};
slingCargoDetachAir0[]={"A3\Sounds_F\vehicles\air\noises\SL_unhook_air_int",1.0,1.0}; slingCargoDetachAir0[]={"a3\sounds_f\vehicles\air\noises\sl_unhook_air_int",1.0,1.0};
slingCargoDetachAir1[]={"A3\Sounds_F\vehicles\air\noises\SL_unhook_air_ext",1.0,1.0,300}; slingCargoDetachAir1[]={"a3\sounds_f\vehicles\air\noises\sl_unhook_air_ext",1.0,1.0,300};
slingCargoDetachAir[]={"slingCargoDetach0","slingCargoDetach1"}; slingCargoDetachAir[]={"slingCargoDetach0","slingCargoDetach1"};
slingCargoRopeBreak0[]={"A3\Sounds_F\vehicles\air\noises\SL_rope_break_int",1.0,1.0}; slingCargoRopeBreak0[]={"a3\sounds_f\vehicles\air\noises\sl_rope_break_int",1.0,1.0};
slingCargoRopeBreak1[]={"A3\Sounds_F\vehicles\air\noises\SL_rope_break_ext",1.0,1.0,200}; slingCargoRopeBreak1[]={"a3\sounds_f\vehicles\air\noises\sl_rope_break_ext",1.0,1.0,200};
slingCargoRopeBreak[]={"slingCargoDetach0","slingCargoDetach1"}; slingCargoRopeBreak[]={"slingCargoDetach0","slingCargoDetach1"};
gearUpExt[]={"A3\Sounds_F\vehicles\air\Heli_Attack_01\blackfoot_gear_up_ext",1,1,1000}; gearUpExt[]={"a3\sounds_f\vehicles\air\heli_attack_01\blackfoot_gear_up_ext",1,1,1000};
gearUpInt[]={"A3\Sounds_F\vehicles\air\Heli_Attack_01\blackfoot_gear_up_int",1,1,100}; gearUpInt[]={"a3\sounds_f\vehicles\air\heli_attack_01\blackfoot_gear_up_int",1,1,100};
gearUp[]={"gearUpInt","gearUpExt"}; gearUp[]={"gearUpInt","gearUpExt"};
gearDownInt[]={"A3\Sounds_F\vehicles\air\Heli_Attack_01\blackfoot_gear_down_int",1,1,100}; gearDownInt[]={"a3\sounds_f\vehicles\air\heli_attack_01\blackfoot_gear_down_int",1,1,100};
gearDownExt[]={"A3\Sounds_F\vehicles\air\Heli_Attack_01\blackfoot_gear_down_ext",1,1,1000}; gearDownExt[]={"a3\sounds_f\vehicles\air\heli_attack_01\blackfoot_gear_down_ext",1,1,1000};
gearDown[]={"gearDownInt","gearDownExt"}; gearDown[]={"gearDownInt","gearDownExt"};
class Sounds class Sounds
{ {
class EngineExt class EngineExt
{ {
sound[]={"braf\braf_air\Braf_Helicopters\BRAF_Sounds\fennec\fennec_ext_eng.ogg",0.75,1.0,400}; sound[]={"braf\braf_air\braf_helicopters\braf_sounds\fennec\fennec_ext_eng.ogg",0.75,1.0,400};
frequency="rotorSpeed"; frequency="rotorSpeed";
volume="4 * camPos * (0 max (rotorSpeed-0.4))"; volume="4 * camPos * (0 max (rotorSpeed-0.4))";
}; };
class RotorExt class RotorExt
{ {
sound[]={"braf\braf_air\Braf_Helicopters\BRAF_Sounds\fennec\fennec_ext_rotor.ogg",1.5,1.0,1500}; sound[]={"braf\braf_air\braf_helicopters\braf_sounds\fennec\fennec_ext_rotor.ogg",1.5,1.0,1500};
frequency="(rotorSpeed factor [0.3, 0.7]) * (rotorSpeed factor [0.3, 1]) * (1 - rotorThrust/4)"; frequency="(rotorspeed factor [0.3, 0.7]) * (rotorspeed factor [0.3, 1]) * (1 - rotorthrust/4)";
volume="camPos * (rotorSpeed factor [0.3, 1]) * (1 + rotorThrust)"; volume="camPos * (rotorSpeed factor [0.3, 1]) * (1 + rotorThrust)";
}; };
class RotorSwist class RotorSwist
{ {
sound[]={"braf\braf_air\Braf_Helicopters\BRAF_Sounds\fennec\fennec_rotor_swist.ogg",0.70794576,1.0,200}; sound[]={"braf\braf_air\braf_helicopters\braf_sounds\fennec\fennec_rotor_swist.ogg",0.70794576,1.0,200};
frequency=1; frequency=1;
volume="camPos * (rotorThrust factor [0.7, 0.9])"; volume="camPos * (rotorThrust factor [0.7, 0.9])";
}; };
class EngineInt class EngineInt
{ {
sound[]={"braf\braf_air\Braf_Helicopters\BRAF_Sounds\fennec\fennec_int_eng.ogg",0.7943282,1.0}; sound[]={"braf\braf_air\braf_helicopters\braf_sounds\fennec\fennec_int_eng.ogg",0.7943282,1.0};
frequency="rotorSpeed"; frequency="rotorSpeed";
volume="(1-camPos)*2*(0 max (rotorSpeed-0.4))"; volume="(1-camPos)*2*(0 max (rotorSpeed-0.4))";
}; };
class RotorInt class RotorInt
{ {
sound[]={"braf\braf_air\Braf_Helicopters\BRAF_Sounds\fennec\fennec_int_rotor.ogg",0.63095737,1.0}; sound[]={"braf\braf_air\braf_helicopters\braf_sounds\fennec\fennec_int_rotor.ogg",0.63095737,1.0};
frequency="(rotorSpeed factor [0.3, 0.7]) * (rotorSpeed factor [0.3, 1]) * (1 - rotorThrust/4)"; frequency="(rotorspeed factor [0.3, 0.7]) * (rotorspeed factor [0.3, 1]) * (1 - rotorthrust/4)";
volume="(1 - camPos) * (rotorSpeed factor [0.3, 0.7]) * (1 + rotorThrust) * 0.7"; volume="(1 - camPos) * (rotorSpeed factor [0.3, 0.7]) * (1 + rotorThrust) * 0.7";
}; };
class RotorBench class RotorBench
{ {
sound[]={"braf\braf_air\Braf_Helicopters\BRAF_Sounds\fennec\fennec_int_rotor_bench.ogg",0.5011872,1.0,1000}; sound[]={"braf\braf_air\braf_helicopters\braf_sounds\fennec\fennec_int_rotor_bench.ogg",0.5011872,1.0,1000};
frequency="(rotorSpeed factor [0.3, 0.7]) * (rotorSpeed factor [0.3, 1]) * (1 - rotorThrust/4)"; frequency="(rotorspeed factor [0.3, 0.7]) * (rotorspeed factor [0.3, 1]) * (1 - rotorthrust/4)";
volume="(playerPos factor [3.9, 4]) * (1 - camPos) * (rotorSpeed factor [0.3, 1]) * (1 + rotorThrust) * 0.4"; volume="(playerPos factor [3.9, 4]) * (1 - camPos) * (rotorSpeed factor [0.3, 1]) * (1 + rotorThrust) * 0.4";
cone[]={1.6,3.14,1.6,0.95}; cone[]={1.6,3.14,1.6,0.95};
}; };
class EngineBench class EngineBench
{ {
sound[]={"braf\braf_air\Braf_Helicopters\BRAF_Sounds\fennec\fennec_int_eng_bench.ogg",0.3548134,1.0,400}; sound[]={"braf\braf_air\braf_helicopters\braf_sounds\fennec\fennec_int_eng_bench.ogg",0.3548134,1.0,400};
frequency="rotorSpeed"; frequency="rotorSpeed";
volume="(playerPos factor [3.9, 4]) * (1 - camPos) * (0 max (rotorSpeed-0.4))"; volume="(playerPos factor [3.9, 4]) * (1 - camPos) * (0 max (rotorSpeed-0.4))";
}; };
class WindBench class WindBench
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\wind_open_out",0.56234133,1.0,50}; sound[]={"a3\sounds_f\vehicles\air\noises\wind_open_out",0.56234133,1.0,50};
frequency=1; frequency=1;
volume="4 * (playerPos factor [3.9, 4]) * (1 - camPos) * ((speed factor[0, 30]) + (speed factor[0, -30]))"; volume="4 * (playerPos factor [3.9, 4]) * (1 - camPos) * ((speed factor[0, 30]) + (speed factor[0, -30]))";
}; };
class TransmissionDamageExt_phase1 class TransmissionDamageExt_phase1
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\heli_damage_transmission_ext_1",1.0,1.0,150}; sound[]={"a3\sounds_f\vehicles\air\noises\heli_damage_transmission_ext_1",1.0,1.0,150};
frequency="0.66 + rotorSpeed / 3"; frequency="0.66 + rotorspeed / 3";
volume="camPos * (transmissionDamage factor [0.3, 0.35]) * (transmissionDamage factor [0.5, 0.45]) * (rotorSpeed factor [0.2, 0.5])"; volume="camPos * (transmissionDamage factor [0.3, 0.35]) * (transmissionDamage factor [0.5, 0.45]) * (rotorSpeed factor [0.2, 0.5])";
}; };
class TransmissionDamageExt_phase2 class TransmissionDamageExt_phase2
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\heli_damage_transmission_ext_2",1.0,1.0,150}; sound[]={"a3\sounds_f\vehicles\air\noises\heli_damage_transmission_ext_2",1.0,1.0,150};
frequency="0.66 + rotorSpeed / 3"; frequency="0.66 + rotorspeed / 3";
volume="camPos * (transmissionDamage factor [0.45, 0.5]) * (rotorSpeed factor [0.2, 0.5])"; volume="camPos * (transmissionDamage factor [0.45, 0.5]) * (rotorSpeed factor [0.2, 0.5])";
}; };
class TransmissionDamageInt_phase1 class TransmissionDamageInt_phase1
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\heli_damage_transmission_int_1",1.0,1.0,150}; sound[]={"a3\sounds_f\vehicles\air\noises\heli_damage_transmission_int_1",1.0,1.0,150};
frequency="0.66 + rotorSpeed / 3"; frequency="0.66 + rotorspeed / 3";
volume="(1 - camPos) * (transmissionDamage factor [0.3, 0.35]) * (transmissionDamage factor [0.5, 0.45]) * (rotorSpeed factor [0.2, 0.5])"; volume="(1 - camPos) * (transmissionDamage factor [0.3, 0.35]) * (transmissionDamage factor [0.5, 0.45]) * (rotorSpeed factor [0.2, 0.5])";
}; };
class TransmissionDamageInt_phase2 class TransmissionDamageInt_phase2
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\heli_damage_transmission_int_2",1.0,1.0,150}; sound[]={"a3\sounds_f\vehicles\air\noises\heli_damage_transmission_int_2",1.0,1.0,150};
frequency="0.66 + rotorSpeed / 3"; frequency="0.66 + rotorspeed / 3";
volume="(1 - camPos) * (transmissionDamage factor [0.45, 0.5]) * (rotorSpeed factor [0.2, 0.5])"; volume="(1 - camPos) * (transmissionDamage factor [0.45, 0.5]) * (rotorSpeed factor [0.2, 0.5])";
}; };
class damageAlarmInt class damageAlarmInt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\heli_alarm_bluefor",0.31622776,1.0}; sound[]={"a3\sounds_f\vehicles\air\noises\heli_alarm_bluefor",0.31622776,1.0};
frequency=1; frequency=1;
volume="engineOn * (1 - camPos) * ( 1 - ((transmissionDamage factor [0.61, 0.60]) * (motorDamage factor [0.61, 0.60]) * (rotorDamage factor [0.51, 0.50]))) * (rotorSpeed factor [0.0, 0.001])"; volume="engineOn * (1 - camPos) * ( 1 - ((transmissionDamage factor [0.61, 0.60]) * (motorDamage factor [0.61, 0.60]) * (rotorDamage factor [0.51, 0.50]))) * (rotorSpeed factor [0.0, 0.001])";
}; };
class damageAlarmExt class damageAlarmExt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\heli_alarm_bluefor",0.22387211,1.0,20}; sound[]={"a3\sounds_f\vehicles\air\noises\heli_alarm_bluefor",0.22387211,1.0,20};
frequency=1; frequency=1;
volume="engineOn * camPos * ( 1 - ((transmissionDamage factor [0.61, 0.60]) * (motorDamage factor [0.61, 0.60]) * (rotorDamage factor [0.51, 0.50]))) * (rotorSpeed factor [0, 0.001])"; volume="engineOn * camPos * ( 1 - ((transmissionDamage factor [0.61, 0.60]) * (motorDamage factor [0.61, 0.60]) * (rotorDamage factor [0.51, 0.50]))) * (rotorSpeed factor [0, 0.001])";
}; };
class rotorLowAlarmInt class rotorLowAlarmInt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\heli_alarm_rotor_low",0.31622776,1.0}; sound[]={"a3\sounds_f\vehicles\air\noises\heli_alarm_rotor_low",0.31622776,1.0};
frequency=1; frequency=1;
volume="engineOn * (1 - camPos) * (rotorSpeed factor [0.9, 0.8999]) * (rotorSpeed factor [-0.5, 1]) * (speed factor [3, 3.01])"; volume="engineOn * (1 - camPos) * (rotorSpeed factor [0.9, 0.8999]) * (rotorSpeed factor [-0.5, 1]) * (speed factor [3, 3.01])";
}; };
class rotorLowAlarmExt class rotorLowAlarmExt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\heli_alarm_rotor_low",0.22387211,1.0,20}; sound[]={"a3\sounds_f\vehicles\air\noises\heli_alarm_rotor_low",0.22387211,1.0,20};
frequency=1; frequency=1;
volume="engineOn * camPos * (rotorSpeed factor [0.9, 0.8999]) * (rotorSpeed factor [-0.5, 1]) * (speed factor [3, 3.01])"; volume="engineOn * camPos * (rotorSpeed factor [0.9, 0.8999]) * (rotorSpeed factor [-0.5, 1]) * (speed factor [3, 3.01])";
}; };
class scrubLandInt class scrubLandInt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\scrubLandInt_open",1.0,1.0,100}; sound[]={"a3\sounds_f\vehicles\air\noises\scrublandint_open",1.0,1.0,100};
frequency=1; frequency=1;
volume="2 * (1-camPos) * (scrubLand factor[0.02, 0.05])"; volume="2 * (1-camPos) * (scrubLand factor[0.02, 0.05])";
}; };
class scrubLandExt class scrubLandExt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\scrubLandExt",1.0,1.0,100}; sound[]={"a3\sounds_f\vehicles\air\noises\scrublandext",1.0,1.0,100};
frequency=1; frequency=1;
volume="camPos * (scrubLand factor[0.02, 0.05])"; volume="camPos * (scrubLand factor[0.02, 0.05])";
}; };
class scrubBuildingInt class scrubBuildingInt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\scrubBuildingInt",1.0,1.0,100}; sound[]={"a3\sounds_f\vehicles\air\noises\scrubbuildingint",1.0,1.0,100};
frequency=1; frequency=1;
volume="2 * (1 - camPos) * (scrubBuilding factor[0.02, 0.05])"; volume="2 * (1 - camPos) * (scrubBuilding factor[0.02, 0.05])";
}; };
class scrubBuildingExt class scrubBuildingExt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\scrubBuildingExt",1.0,1.0,100}; sound[]={"a3\sounds_f\vehicles\air\noises\scrubbuildingext",1.0,1.0,100};
frequency=1; frequency=1;
volume="camPos * (scrubBuilding factor[0.02, 0.05])"; volume="camPos * (scrubBuilding factor[0.02, 0.05])";
}; };
class scrubTreeInt class scrubTreeInt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\scrubTreeExt",1.0,1.0,100}; sound[]={"a3\sounds_f\vehicles\air\noises\scrubtreeext",1.0,1.0,100};
frequency=1; frequency=1;
volume="(1 - camPos) * ((scrubTree) factor [0, 0.01])"; volume="(1 - camPos) * ((scrubTree) factor [0, 0.01])";
}; };
class scrubTreeExt class scrubTreeExt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\scrubTreeExt",1.0,1.0,100}; sound[]={"a3\sounds_f\vehicles\air\noises\scrubtreeext",1.0,1.0,100};
frequency=1; frequency=1;
volume="camPos * ((scrubTree) factor [0, 0.01])"; volume="camPos * ((scrubTree) factor [0, 0.01])";
}; };
class RainExt class RainExt
{ {
sound[]={"A3\Sounds_F\vehicles\noises\rain1_ext",1.0,1.0,100}; sound[]={"a3\sounds_f\vehicles\noises\rain1_ext",1.0,1.0,100};
frequency=1; frequency=1;
volume="camPos * (rain - rotorSpeed/2) * 2"; volume="campos * (rain - rotorspeed/2) * 2";
}; };
class RainInt class RainInt
{ {
sound[]={"A3\Sounds_F\vehicles\noises\rain1_int_open",1.0,1.0,100}; sound[]={"a3\sounds_f\vehicles\noises\rain1_int_open",1.0,1.0,100};
frequency=1; frequency=1;
volume="(1-camPos)*(rain - rotorSpeed/2)*2"; volume="(1-campos)*(rain - rotorspeed/2)*2";
}; };
class SlingLoadDownExt class SlingLoadDownExt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\SL_engineDownEXT",1.2589254,1.0,500}; sound[]={"a3\sounds_f\vehicles\air\noises\sl_enginedownext",1.2589254,1.0,500};
frequency=1; frequency=1;
volume="camPos*(slingLoadActive factor [0,-1])"; volume="camPos*(slingLoadActive factor [0,-1])";
}; };
class SlingLoadUpExt class SlingLoadUpExt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\SL_engineUpEXT",1.2589254,1.0,500}; sound[]={"a3\sounds_f\vehicles\air\noises\sl_engineupext",1.2589254,1.0,500};
frequency=1; frequency=1;
volume="camPos*(slingLoadActive factor [0,1])"; volume="camPos*(slingLoadActive factor [0,1])";
}; };
class SlingLoadDownInt class SlingLoadDownInt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\SL_engineDownINT",1.0,1.0,700}; sound[]={"a3\sounds_f\vehicles\air\noises\sl_enginedownint",1.0,1.0,700};
frequency=1; frequency=1;
volume="(1-camPos)*(slingLoadActive factor [0,-1])"; volume="(1-camPos)*(slingLoadActive factor [0,-1])";
}; };
class SlingLoadUpInt class SlingLoadUpInt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\SL_engineUpINT",1.0,1.0,700}; sound[]={"a3\sounds_f\vehicles\air\noises\sl_engineupint",1.0,1.0,700};
frequency=1; frequency=1;
volume="(1-camPos)*(slingLoadActive factor [0,1])"; volume="(1-camPos)*(slingLoadActive factor [0,1])";
}; };
class WindInt class WindInt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\wind_open_int",1.1220185,1.0,50}; sound[]={"a3\sounds_f\vehicles\air\noises\wind_open_int",1.1220185,1.0,50};
frequency=1; frequency=1;
volume="(1-camPos)*(speed factor[5, 50])*(speed factor[5, 50])"; volume="(1-camPos)*(speed factor[5, 50])*(speed factor[5, 50])";
}; };
class WindLateralMovementInt class WindLateralMovementInt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\wind_lateral_open_int",1.9952624,1.0,50}; sound[]={"a3\sounds_f\vehicles\air\noises\wind_lateral_open_int",1.9952624,1.0,50};
frequency=1; frequency=1;
volume="(1-camPos)*lateralMovement*((speed factor [5,40]) + (speed factor [-5,-40]))"; volume="(1-camPos)*lateralMovement*((speed factor [5,40]) + (speed factor [-5,-40]))";
}; };
class GStress class GStress
{ {
sound[]={"A3\Sounds_F\vehicles\noises\vehicle_stress2b",0.31622776,1.0,50}; sound[]={"a3\sounds_f\vehicles\noises\vehicle_stress2b",0.31622776,1.0,50};
frequency=1; frequency=1;
volume="engineOn * (1-camPos) * ((gmeterZ factor[1.5, 2.5]) + (gmeterZ factor[0.5, -0.5]))"; volume="engineOn * (1-camPos) * ((gmeterZ factor[1.5, 2.5]) + (gmeterZ factor[0.5, -0.5]))";
}; };
@@ -259,201 +259,201 @@ class SoundsExt
{ {
class EngineExt class EngineExt
{ {
sound[]={"braf\braf_air\Braf_Helicopters\BRAF_Sounds\fennec\fennec_ext_eng.ogg",0.75,1.0,400}; sound[]={"braf\braf_air\braf_helicopters\braf_sounds\fennec\fennec_ext_eng.ogg",0.75,1.0,400};
frequency="rotorSpeed"; frequency="rotorSpeed";
volume="4 * camPos * (0 max (rotorSpeed-0.4))"; volume="4 * camPos * (0 max (rotorSpeed-0.4))";
}; };
class RotorExt class RotorExt
{ {
sound[]={"braf\braf_air\Braf_Helicopters\BRAF_Sounds\fennec\fennec_ext_rotor.ogg",1.5,1.0,1500}; sound[]={"braf\braf_air\braf_helicopters\braf_sounds\fennec\fennec_ext_rotor.ogg",1.5,1.0,1500};
frequency="(rotorSpeed factor [0.3, 0.7]) * (rotorSpeed factor [0.3, 1]) * (1 - rotorThrust/4)"; frequency="(rotorspeed factor [0.3, 0.7]) * (rotorspeed factor [0.3, 1]) * (1 - rotorthrust/4)";
volume="camPos * (rotorSpeed factor [0.3, 1]) * (1 + rotorThrust)"; volume="camPos * (rotorSpeed factor [0.3, 1]) * (1 + rotorThrust)";
}; };
class RotorSwist class RotorSwist
{ {
sound[]={"braf\braf_air\Braf_Helicopters\BRAF_Sounds\fennec\fennec_rotor_swist.ogg",0.70794576,1.0,200}; sound[]={"braf\braf_air\braf_helicopters\braf_sounds\fennec\fennec_rotor_swist.ogg",0.70794576,1.0,200};
frequency=1; frequency=1;
volume="camPos * (rotorThrust factor [0.7, 0.9])"; volume="camPos * (rotorThrust factor [0.7, 0.9])";
}; };
class EngineInt class EngineInt
{ {
sound[]={"braf\braf_air\Braf_Helicopters\BRAF_Sounds\fennec\fennec_int_eng.ogg",0.7943282,1.0}; sound[]={"braf\braf_air\braf_helicopters\braf_sounds\fennec\fennec_int_eng.ogg",0.7943282,1.0};
frequency="rotorSpeed"; frequency="rotorSpeed";
volume="(1-camPos)*2*(0 max (rotorSpeed-0.4))"; volume="(1-camPos)*2*(0 max (rotorSpeed-0.4))";
}; };
class RotorInt class RotorInt
{ {
sound[]={"braf\braf_air\Braf_Helicopters\BRAF_Sounds\fennec\fennec_int_rotor.ogg",0.63095737,1.0}; sound[]={"braf\braf_air\braf_helicopters\braf_sounds\fennec\fennec_int_rotor.ogg",0.63095737,1.0};
frequency="(rotorSpeed factor [0.3, 0.7]) * (rotorSpeed factor [0.3, 1]) * (1 - rotorThrust/4)"; frequency="(rotorspeed factor [0.3, 0.7]) * (rotorspeed factor [0.3, 1]) * (1 - rotorthrust/4)";
volume="(1 - camPos) * (rotorSpeed factor [0.3, 0.7]) * (1 + rotorThrust) * 0.7"; volume="(1 - camPos) * (rotorSpeed factor [0.3, 0.7]) * (1 + rotorThrust) * 0.7";
}; };
class RotorBench class RotorBench
{ {
sound[]={"braf\braf_air\Braf_Helicopters\BRAF_Sounds\fennec\fennec_int_rotor_bench.ogg",0.5011872,1.0,1000}; sound[]={"braf\braf_air\braf_helicopters\braf_sounds\fennec\fennec_int_rotor_bench.ogg",0.5011872,1.0,1000};
frequency="(rotorSpeed factor [0.3, 0.7]) * (rotorSpeed factor [0.3, 1]) * (1 - rotorThrust/4)"; frequency="(rotorspeed factor [0.3, 0.7]) * (rotorspeed factor [0.3, 1]) * (1 - rotorthrust/4)";
volume="(playerPos factor [3.9, 4]) * (1 - camPos) * (rotorSpeed factor [0.3, 1]) * (1 + rotorThrust) * 0.4"; volume="(playerPos factor [3.9, 4]) * (1 - camPos) * (rotorSpeed factor [0.3, 1]) * (1 + rotorThrust) * 0.4";
cone[]={1.6,3.14,1.6,0.95}; cone[]={1.6,3.14,1.6,0.95};
}; };
class EngineBench class EngineBench
{ {
sound[]={"braf\braf_air\Braf_Helicopters\BRAF_Sounds\fennec\fennec_int_eng_bench.ogg",0.3548134,1.0,400}; sound[]={"braf\braf_air\braf_helicopters\braf_sounds\fennec\fennec_int_eng_bench.ogg",0.3548134,1.0,400};
frequency="rotorSpeed"; frequency="rotorSpeed";
volume="(playerPos factor [3.9, 4]) * (1 - camPos) * (0 max (rotorSpeed-0.4))"; volume="(playerPos factor [3.9, 4]) * (1 - camPos) * (0 max (rotorSpeed-0.4))";
}; };
class WindBench class WindBench
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\wind_open_out",0.56234133,1.0,50}; sound[]={"a3\sounds_f\vehicles\air\noises\wind_open_out",0.56234133,1.0,50};
frequency=1; frequency=1;
volume="4 * (playerPos factor [3.9, 4]) * (1 - camPos) * ((speed factor[0, 30]) + (speed factor[0, -30]))"; volume="4 * (playerPos factor [3.9, 4]) * (1 - camPos) * ((speed factor[0, 30]) + (speed factor[0, -30]))";
}; };
class TransmissionDamageExt_phase1 class TransmissionDamageExt_phase1
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\heli_damage_transmission_ext_1",1.0,1.0,150}; sound[]={"a3\sounds_f\vehicles\air\noises\heli_damage_transmission_ext_1",1.0,1.0,150};
frequency="0.66 + rotorSpeed / 3"; frequency="0.66 + rotorspeed / 3";
volume="camPos * (transmissionDamage factor [0.3, 0.35]) * (transmissionDamage factor [0.5, 0.45]) * (rotorSpeed factor [0.2, 0.5])"; volume="camPos * (transmissionDamage factor [0.3, 0.35]) * (transmissionDamage factor [0.5, 0.45]) * (rotorSpeed factor [0.2, 0.5])";
}; };
class TransmissionDamageExt_phase2 class TransmissionDamageExt_phase2
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\heli_damage_transmission_ext_2",1.0,1.0,150}; sound[]={"a3\sounds_f\vehicles\air\noises\heli_damage_transmission_ext_2",1.0,1.0,150};
frequency="0.66 + rotorSpeed / 3"; frequency="0.66 + rotorspeed / 3";
volume="camPos * (transmissionDamage factor [0.45, 0.5]) * (rotorSpeed factor [0.2, 0.5])"; volume="camPos * (transmissionDamage factor [0.45, 0.5]) * (rotorSpeed factor [0.2, 0.5])";
}; };
class TransmissionDamageInt_phase1 class TransmissionDamageInt_phase1
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\heli_damage_transmission_int_1",1.0,1.0,150}; sound[]={"a3\sounds_f\vehicles\air\noises\heli_damage_transmission_int_1",1.0,1.0,150};
frequency="0.66 + rotorSpeed / 3"; frequency="0.66 + rotorspeed / 3";
volume="(1 - camPos) * (transmissionDamage factor [0.3, 0.35]) * (transmissionDamage factor [0.5, 0.45]) * (rotorSpeed factor [0.2, 0.5])"; volume="(1 - camPos) * (transmissionDamage factor [0.3, 0.35]) * (transmissionDamage factor [0.5, 0.45]) * (rotorSpeed factor [0.2, 0.5])";
}; };
class TransmissionDamageInt_phase2 class TransmissionDamageInt_phase2
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\heli_damage_transmission_int_2",1.0,1.0,150}; sound[]={"a3\sounds_f\vehicles\air\noises\heli_damage_transmission_int_2",1.0,1.0,150};
frequency="0.66 + rotorSpeed / 3"; frequency="0.66 + rotorspeed / 3";
volume="(1 - camPos) * (transmissionDamage factor [0.45, 0.5]) * (rotorSpeed factor [0.2, 0.5])"; volume="(1 - camPos) * (transmissionDamage factor [0.45, 0.5]) * (rotorSpeed factor [0.2, 0.5])";
}; };
class damageAlarmInt class damageAlarmInt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\heli_alarm_bluefor",0.31622776,1.0}; sound[]={"a3\sounds_f\vehicles\air\noises\heli_alarm_bluefor",0.31622776,1.0};
frequency=1; frequency=1;
volume="engineOn * (1 - camPos) * ( 1 - ((transmissionDamage factor [0.61, 0.60]) * (motorDamage factor [0.61, 0.60]) * (rotorDamage factor [0.51, 0.50]))) * (rotorSpeed factor [0.0, 0.001])"; volume="engineOn * (1 - camPos) * ( 1 - ((transmissionDamage factor [0.61, 0.60]) * (motorDamage factor [0.61, 0.60]) * (rotorDamage factor [0.51, 0.50]))) * (rotorSpeed factor [0.0, 0.001])";
}; };
class damageAlarmExt class damageAlarmExt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\heli_alarm_bluefor",0.22387211,1.0,20}; sound[]={"a3\sounds_f\vehicles\air\noises\heli_alarm_bluefor",0.22387211,1.0,20};
frequency=1; frequency=1;
volume="engineOn * camPos * ( 1 - ((transmissionDamage factor [0.61, 0.60]) * (motorDamage factor [0.61, 0.60]) * (rotorDamage factor [0.51, 0.50]))) * (rotorSpeed factor [0, 0.001])"; volume="engineOn * camPos * ( 1 - ((transmissionDamage factor [0.61, 0.60]) * (motorDamage factor [0.61, 0.60]) * (rotorDamage factor [0.51, 0.50]))) * (rotorSpeed factor [0, 0.001])";
}; };
class rotorLowAlarmInt class rotorLowAlarmInt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\heli_alarm_rotor_low",0.31622776,1.0}; sound[]={"a3\sounds_f\vehicles\air\noises\heli_alarm_rotor_low",0.31622776,1.0};
frequency=1; frequency=1;
volume="engineOn * (1 - camPos) * (rotorSpeed factor [0.9, 0.8999]) * (rotorSpeed factor [-0.5, 1]) * (speed factor [3, 3.01])"; volume="engineOn * (1 - camPos) * (rotorSpeed factor [0.9, 0.8999]) * (rotorSpeed factor [-0.5, 1]) * (speed factor [3, 3.01])";
}; };
class rotorLowAlarmExt class rotorLowAlarmExt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\heli_alarm_rotor_low",0.22387211,1.0,20}; sound[]={"a3\sounds_f\vehicles\air\noises\heli_alarm_rotor_low",0.22387211,1.0,20};
frequency=1; frequency=1;
volume="engineOn * camPos * (rotorSpeed factor [0.9, 0.8999]) * (rotorSpeed factor [-0.5, 1]) * (speed factor [3, 3.01])"; volume="engineOn * camPos * (rotorSpeed factor [0.9, 0.8999]) * (rotorSpeed factor [-0.5, 1]) * (speed factor [3, 3.01])";
}; };
class scrubLandInt class scrubLandInt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\scrubLandInt_open",1.0,1.0,100}; sound[]={"a3\sounds_f\vehicles\air\noises\scrublandint_open",1.0,1.0,100};
frequency=1; frequency=1;
volume="2 * (1-camPos) * (scrubLand factor[0.02, 0.05])"; volume="2 * (1-camPos) * (scrubLand factor[0.02, 0.05])";
}; };
class scrubLandExt class scrubLandExt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\scrubLandExt",1.0,1.0,100}; sound[]={"a3\sounds_f\vehicles\air\noises\scrublandext",1.0,1.0,100};
frequency=1; frequency=1;
volume="camPos * (scrubLand factor[0.02, 0.05])"; volume="camPos * (scrubLand factor[0.02, 0.05])";
}; };
class scrubBuildingInt class scrubBuildingInt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\scrubBuildingInt",1.0,1.0,100}; sound[]={"a3\sounds_f\vehicles\air\noises\scrubbuildingint",1.0,1.0,100};
frequency=1; frequency=1;
volume="2 * (1 - camPos) * (scrubBuilding factor[0.02, 0.05])"; volume="2 * (1 - camPos) * (scrubBuilding factor[0.02, 0.05])";
}; };
class scrubBuildingExt class scrubBuildingExt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\scrubBuildingExt",1.0,1.0,100}; sound[]={"a3\sounds_f\vehicles\air\noises\scrubbuildingext",1.0,1.0,100};
frequency=1; frequency=1;
volume="camPos * (scrubBuilding factor[0.02, 0.05])"; volume="camPos * (scrubBuilding factor[0.02, 0.05])";
}; };
class scrubTreeInt class scrubTreeInt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\scrubTreeExt",1.0,1.0,100}; sound[]={"a3\sounds_f\vehicles\air\noises\scrubtreeext",1.0,1.0,100};
frequency=1; frequency=1;
volume="(1 - camPos) * ((scrubTree) factor [0, 0.01])"; volume="(1 - camPos) * ((scrubTree) factor [0, 0.01])";
}; };
class scrubTreeExt class scrubTreeExt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\scrubTreeExt",1.0,1.0,100}; sound[]={"a3\sounds_f\vehicles\air\noises\scrubtreeext",1.0,1.0,100};
frequency=1; frequency=1;
volume="camPos * ((scrubTree) factor [0, 0.01])"; volume="camPos * ((scrubTree) factor [0, 0.01])";
}; };
class RainExt class RainExt
{ {
sound[]={"A3\Sounds_F\vehicles\noises\rain1_ext",1.0,1.0,100}; sound[]={"a3\sounds_f\vehicles\noises\rain1_ext",1.0,1.0,100};
frequency=1; frequency=1;
volume="camPos * (rain - rotorSpeed/2) * 2"; volume="campos * (rain - rotorspeed/2) * 2";
}; };
class RainInt class RainInt
{ {
sound[]={"A3\Sounds_F\vehicles\noises\rain1_int_open",1.0,1.0,100}; sound[]={"a3\sounds_f\vehicles\noises\rain1_int_open",1.0,1.0,100};
frequency=1; frequency=1;
volume="(1-camPos)*(rain - rotorSpeed/2)*2"; volume="(1-campos)*(rain - rotorspeed/2)*2";
}; };
class SlingLoadDownExt class SlingLoadDownExt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\SL_engineDownEXT",1.0,1.0,500}; sound[]={"a3\sounds_f\vehicles\air\noises\sl_enginedownext",1.0,1.0,500};
frequency=1; frequency=1;
volume="camPos*(slingLoadActive factor [0,-1])"; volume="camPos*(slingLoadActive factor [0,-1])";
}; };
class SlingLoadUpExt class SlingLoadUpExt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\SL_engineUpEXT",1.0,1.0,500}; sound[]={"a3\sounds_f\vehicles\air\noises\sl_engineupext",1.0,1.0,500};
frequency=1; frequency=1;
volume="camPos*(slingLoadActive factor [0,1])"; volume="camPos*(slingLoadActive factor [0,1])";
}; };
class SlingLoadDownInt class SlingLoadDownInt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\SL_engineDownINT",1.0,1.0,500}; sound[]={"a3\sounds_f\vehicles\air\noises\sl_enginedownint",1.0,1.0,500};
frequency=1; frequency=1;
volume="(1-camPos)*(slingLoadActive factor [0,-1])"; volume="(1-camPos)*(slingLoadActive factor [0,-1])";
}; };
class SlingLoadUpInt class SlingLoadUpInt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\SL_engineUpINT",1.0,1.0,500}; sound[]={"a3\sounds_f\vehicles\air\noises\sl_engineupint",1.0,1.0,500};
frequency=1; frequency=1;
volume="(1-camPos)*(slingLoadActive factor [0,1])"; volume="(1-camPos)*(slingLoadActive factor [0,1])";
}; };
class WindInt class WindInt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\wind_open_int",1.1220185,1.0,50}; sound[]={"a3\sounds_f\vehicles\air\noises\wind_open_int",1.1220185,1.0,50};
frequency=1; frequency=1;
volume="(1-camPos)*(speed factor[5, 50])*(speed factor[5, 50])"; volume="(1-camPos)*(speed factor[5, 50])*(speed factor[5, 50])";
}; };
class WindLateralMovementInt class WindLateralMovementInt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\wind_lateral_open_int",1.9952624,1.0,50}; sound[]={"a3\sounds_f\vehicles\air\noises\wind_lateral_open_int",1.9952624,1.0,50};
frequency=1; frequency=1;
volume="(1-camPos)*lateralMovement*((speed factor [5,40]) + (speed factor [-5,-40]))"; volume="(1-camPos)*lateralMovement*((speed factor [5,40]) + (speed factor [-5,-40]))";
}; };
class GStress class GStress
{ {
sound[]={"A3\Sounds_F\vehicles\noises\vehicle_stress2b",0.31622776,1.0,50}; sound[]={"a3\sounds_f\vehicles\noises\vehicle_stress2b",0.31622776,1.0,50};
frequency=1; frequency=1;
volume="engineOn * (1-camPos) * ((gmeterZ factor[1.5, 2.5]) + (gmeterZ factor[0.5, -0.5]))"; volume="engineOn * (1-camPos) * ((gmeterZ factor[1.5, 2.5]) + (gmeterZ factor[0.5, -0.5]))";
}; };
}; };
class Waternoise_ext class Waternoise_ext
{ {
sound[]={"A3\Sounds_F\vehicles\noises\air_driving_in_water",0.70794576,1,300}; sound[]={"a3\sounds_f\vehicles\noises\air_driving_in_water",0.70794576,1,300};
frequency="1"; frequency="1";
volume="(speed factor[0, 5]) * water * camPos + (speed factor[-0.1, -5]) * water * camPos"; volume="(speed factor[0, 5]) * water * camPos + (speed factor[-0.1, -5]) * water * camPos";
}; };
class Waternoise_int class Waternoise_int
{ {
sound[]={"A3\Sounds_F\vehicles\noises\soft_driving_in_water_int",0.56234133,1,100}; sound[]={"a3\sounds_f\vehicles\noises\soft_driving_in_water_int",0.56234133,1,100};
frequency="1"; frequency="1";
volume="(speed factor[0, 5]) * water * (1-camPos) + (speed factor[-0.1, -5]) * water * (1-camPos)"; volume="(speed factor[0, 5]) * water * (1-camPos) + (speed factor[-0.1, -5]) * water * (1-camPos)";
}; };
@@ -10,7 +10,7 @@ PixelShaderID = "Super";
VertexShaderID = "Super"; VertexShaderID = "Super";
class Stage1 class Stage1
{ {
texture = "braf\braf_air\Braf_Helicopters\Braf_Fennec\Data\BRAF_EFS_nohq.paa"; texture = "braf\braf_air\braf_helicopters\braf_fennec\data\braf_efs_nohq.paa";
uvSource = "tex"; uvSource = "tex";
class uvTransform class uvTransform
{ {
@@ -46,7 +46,7 @@ class Stage3
}; };
class Stage4 class Stage4
{ {
texture = "braf\braf_air\Braf_Helicopters\Braf_Fennec\Data\BRAF_EFS_as.paa"; texture = "braf\braf_air\braf_helicopters\braf_fennec\data\braf_efs_as.paa";
uvSource = "tex"; uvSource = "tex";
class uvTransform class uvTransform
{ {
@@ -58,7 +58,7 @@ class Stage4
}; };
class Stage5 class Stage5
{ {
texture = "braf\braf_air\Braf_Helicopters\Braf_Fennec\Data\BRAF_EFS_smdi.paa"; texture = "braf\braf_air\braf_helicopters\braf_fennec\data\braf_efs_smdi.paa";
uvSource = "tex"; uvSource = "tex";
class uvTransform class uvTransform
{ {
@@ -80,5 +80,5 @@ class Stage7
}; };
class StageTI class StageTI
{ {
texture = "braf\braf_air\Braf_Helicopters\Braf_Fennec\Data\Ext_ti_ca.paa"; texture = "braf\braf_air\braf_helicopters\braf_fennec\data\ext_ti_ca.paa";
}; };
@@ -10,7 +10,7 @@ PixelShaderID = "Super";
VertexShaderID = "Super"; VertexShaderID = "Super";
class Stage1 class Stage1
{ {
texture = "braf\braf_air\Braf_Helicopters\Braf_Fennec\Data\ext_nohq.paa"; texture = "braf\braf_air\braf_helicopters\braf_fennec\data\ext_nohq.paa";
uvSource = "tex"; uvSource = "tex";
class uvTransform class uvTransform
{ {
@@ -46,7 +46,7 @@ class Stage3
}; };
class Stage4 class Stage4
{ {
texture = "braf\braf_air\Braf_Helicopters\Braf_Fennec\Data\ext_as.paa"; texture = "braf\braf_air\braf_helicopters\braf_fennec\data\ext_as.paa";
uvSource = "tex"; uvSource = "tex";
class uvTransform class uvTransform
{ {
@@ -58,7 +58,7 @@ class Stage4
}; };
class Stage5 class Stage5
{ {
texture = "braf\braf_air\Braf_Helicopters\Braf_Fennec\Data\ext_smdi.paa"; texture = "braf\braf_air\braf_helicopters\braf_fennec\data\ext_smdi.paa";
uvSource = "tex"; uvSource = "tex";
class uvTransform class uvTransform
{ {
@@ -80,5 +80,5 @@ class Stage7
}; };
class StageTI class StageTI
{ {
texture = "braf\braf_air\Braf_Helicopters\Braf_Fennec\Data\Ext_ti_ca.paa"; texture = "braf\braf_air\braf_helicopters\braf_fennec\data\ext_ti_ca.paa";
}; };
@@ -1,6 +1,6 @@
class StageTI class StageTI
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Fennec\data\camo1_ti_ca.paa"; texture="braf\braf_air\braf_helicopters\braf_fennec\data\camo1_ti_ca.paa";
}; };
ambient[]={0.75,0.75,0.75,1.0}; ambient[]={0.75,0.75,0.75,1.0};
diffuse[]={0.75,0.75,0.75,1.0}; diffuse[]={0.75,0.75,0.75,1.0};
@@ -12,7 +12,7 @@ PixelShaderID="Super";
VertexShaderID="Super"; VertexShaderID="Super";
class Stage1 class Stage1
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Fennec\data\camo1_nohq.paa"; texture="braf\braf_air\braf_helicopters\braf_fennec\data\camo1_nohq.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage2 class Stage2
@@ -34,12 +34,12 @@ class Stage3
}; };
class Stage4 class Stage4
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Fennec\data\camo1_as.paa"; texture="braf\braf_air\braf_helicopters\braf_fennec\data\camo1_as.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage5 class Stage5
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Fennec\data\camo1_smdi.paa"; texture="braf\braf_air\braf_helicopters\braf_fennec\data\camo1_smdi.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage6 class Stage6
@@ -8,7 +8,7 @@ PixelShaderID="Super";
VertexShaderID="Super"; VertexShaderID="Super";
class Stage1 class Stage1
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Fennec\data\camo1_nohq.paa"; texture="braf\braf_air\braf_helicopters\braf_fennec\data\camo1_nohq.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage2 class Stage2
@@ -30,12 +30,12 @@ class Stage3
}; };
class Stage4 class Stage4
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Fennec\data\camo1_as.paa"; texture="braf\braf_air\braf_helicopters\braf_fennec\data\camo1_as.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage5 class Stage5
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Fennec\data\camo1_smdi.paa"; texture="braf\braf_air\braf_helicopters\braf_fennec\data\camo1_smdi.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage6 class Stage6
@@ -51,5 +51,5 @@ class Stage7
}; };
class StageTI class StageTI
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Fennec\data\camo1_ti_ca.paa"; texture="braf\braf_air\braf_helicopters\braf_fennec\data\camo1_ti_ca.paa";
}; };
@@ -1,6 +1,6 @@
class StageTI class StageTI
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Fennec\data\camo2_ti_ca.paa"; texture="braf\braf_air\braf_helicopters\braf_fennec\data\camo2_ti_ca.paa";
}; };
ambient[] = {0.75,0.75,0.75,1.0}; ambient[] = {0.75,0.75,0.75,1.0};
diffuse[] = {0.75,0.75,0.75,1.0}; diffuse[] = {0.75,0.75,0.75,1.0};
@@ -12,7 +12,7 @@ PixelShaderID = "Super";
VertexShaderID = "Super"; VertexShaderID = "Super";
class Stage1 class Stage1
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Fennec\data\camo2_nohq.paa"; texture="braf\braf_air\braf_helicopters\braf_fennec\data\camo2_nohq.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage2 class Stage2
@@ -34,12 +34,12 @@ class Stage3
}; };
class Stage4 class Stage4
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Fennec\data\camo2_as.paa"; texture="braf\braf_air\braf_helicopters\braf_fennec\data\camo2_as.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage5 class Stage5
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Fennec\data\camo2_smdi.paa"; texture="braf\braf_air\braf_helicopters\braf_fennec\data\camo2_smdi.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage6 class Stage6
@@ -1,6 +1,6 @@
class StageTI class StageTI
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Fennec\data\camo3_ti_ca.paa"; texture="braf\braf_air\braf_helicopters\braf_fennec\data\camo3_ti_ca.paa";
}; };
ambient[] = {0.75,0.75,0.75,1.0}; ambient[] = {0.75,0.75,0.75,1.0};
diffuse[] = {0.75,0.75,0.75,1.0}; diffuse[] = {0.75,0.75,0.75,1.0};
@@ -12,7 +12,7 @@ PixelShaderID = "Super";
VertexShaderID = "Super"; VertexShaderID = "Super";
class Stage1 class Stage1
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Fennec\data\camo3_nohq.paa"; texture="braf\braf_air\braf_helicopters\braf_fennec\data\camo3_nohq.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage2 class Stage2
@@ -34,12 +34,12 @@ class Stage3
}; };
class Stage4 class Stage4
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Fennec\data\camo3_as.paa"; texture="braf\braf_air\braf_helicopters\braf_fennec\data\camo3_as.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage5 class Stage5
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Fennec\data\camo3_smdi.paa"; texture="braf\braf_air\braf_helicopters\braf_fennec\data\camo3_smdi.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage6 class Stage6
@@ -1,6 +1,6 @@
class StageTI class StageTI
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Fennec\data\camo4_ti_ca.paa"; texture="braf\braf_air\braf_helicopters\braf_fennec\data\camo4_ti_ca.paa";
}; };
ambient[] = {0.75,0.75,0.75,1.0}; ambient[] = {0.75,0.75,0.75,1.0};
diffuse[] = {0.75,0.75,0.75,1.0}; diffuse[] = {0.75,0.75,0.75,1.0};
@@ -12,7 +12,7 @@ PixelShaderID = "Super";
VertexShaderID = "Super"; VertexShaderID = "Super";
class Stage1 class Stage1
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Fennec\data\camo4_nohq.paa"; texture="braf\braf_air\braf_helicopters\braf_fennec\data\camo4_nohq.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage2 class Stage2
@@ -34,12 +34,12 @@ class Stage3
}; };
class Stage4 class Stage4
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Fennec\data\camo4_as.paa"; texture="braf\braf_air\braf_helicopters\braf_fennec\data\camo4_as.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage5 class Stage5
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Fennec\data\camo4_smdi.paa"; texture="braf\braf_air\braf_helicopters\braf_fennec\data\camo4_smdi.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage6 class Stage6
@@ -10,7 +10,7 @@ PixelShaderID = "Super";
VertexShaderID = "Super"; VertexShaderID = "Super";
class Stage1 class Stage1
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Fennec\data\camo4_nohq.paa"; texture="braf\braf_air\braf_helicopters\braf_fennec\data\camo4_nohq.paa";
uvSource="tex"; uvSource="tex";
class uvTransform class uvTransform
{ {
@@ -46,7 +46,7 @@ class Stage3
}; };
class Stage4 class Stage4
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Fennec\data\camo4_as.paa"; texture="braf\braf_air\braf_helicopters\braf_fennec\data\camo4_as.paa";
uvSource="tex"; uvSource="tex";
class uvTransform class uvTransform
{ {
@@ -58,7 +58,7 @@ class Stage4
}; };
class Stage5 class Stage5
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Fennec\data\camo4_smdi.paa"; texture="braf\braf_air\braf_helicopters\braf_fennec\data\camo4_smdi.paa";
uvSource="tex"; uvSource="tex";
class uvTransform class uvTransform
{ {
@@ -81,5 +81,5 @@ class Stage7
}; };
class StageTI class StageTI
{ {
texture = "braf\braf_air\Braf_Helicopters\Braf_Fennec\data\camo4_ti_ca.paa"; texture = "braf\braf_air\braf_helicopters\braf_fennec\data\camo4_ti_ca.paa";
}; };
@@ -1,6 +1,6 @@
class StageTI class StageTI
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Fennec\data\camo5_ti_ca.paa"; texture="braf\braf_air\braf_helicopters\braf_fennec\data\camo5_ti_ca.paa";
}; };
ambient[] = {0.75,0.75,0.75,1.0}; ambient[] = {0.75,0.75,0.75,1.0};
diffuse[] = {0.75,0.75,0.75,1.0}; diffuse[] = {0.75,0.75,0.75,1.0};
@@ -12,7 +12,7 @@ PixelShaderID = "Super";
VertexShaderID = "Super"; VertexShaderID = "Super";
class Stage1 class Stage1
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Fennec\data\camo5_nohq.paa"; texture="braf\braf_air\braf_helicopters\braf_fennec\data\camo5_nohq.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage2 class Stage2
@@ -34,12 +34,12 @@ class Stage3
}; };
class Stage4 class Stage4
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Fennec\data\camo5_as.paa"; texture="braf\braf_air\braf_helicopters\braf_fennec\data\camo5_as.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage5 class Stage5
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Fennec\data\camo5_smdi.paa"; texture="braf\braf_air\braf_helicopters\braf_fennec\data\camo5_smdi.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage6 class Stage6
@@ -10,7 +10,7 @@ PixelShaderID = "Super";
VertexShaderID = "Super"; VertexShaderID = "Super";
class Stage1 class Stage1
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Fennec\data\camo5_nohq.paa"; texture="braf\braf_air\braf_helicopters\braf_fennec\data\camo5_nohq.paa";
uvSource="tex"; uvSource="tex";
class uvTransform class uvTransform
{ {
@@ -46,7 +46,7 @@ class Stage3
}; };
class Stage4 class Stage4
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Fennec\data\camo5_as.paa"; texture="braf\braf_air\braf_helicopters\braf_fennec\data\camo5_as.paa";
uvSource="tex"; uvSource="tex";
class uvTransform class uvTransform
{ {
@@ -58,7 +58,7 @@ class Stage4
}; };
class Stage5 class Stage5
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Fennec\data\camo5_smdi.paa"; texture="braf\braf_air\braf_helicopters\braf_fennec\data\camo5_smdi.paa";
uvSource="tex"; uvSource="tex";
class uvTransform class uvTransform
{ {
@@ -81,5 +81,5 @@ class Stage7
}; };
class StageTI class StageTI
{ {
texture = "braf\braf_air\Braf_Helicopters\Braf_Fennec\data\camo5_ti_ca.paa"; texture = "braf\braf_air\braf_helicopters\braf_fennec\data\camo5_ti_ca.paa";
}; };
@@ -1,6 +1,6 @@
class StageTI class StageTI
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Fennec\data\camo1_ti_ca.paa"; texture="braf\braf_air\braf_helicopters\braf_fennec\data\camo1_ti_ca.paa";
}; };
ambient[]={1,1,1,1}; ambient[]={1,1,1,1};
diffuse[]={0.75,0.75,0.75,1}; diffuse[]={0.75,0.75,0.75,1};
@@ -12,7 +12,7 @@ PixelShaderID="Super";
VertexShaderID="Super"; VertexShaderID="Super";
class Stage1 class Stage1
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Fennec\data\camo1_nohq.paa"; texture="braf\braf_air\braf_helicopters\braf_fennec\data\camo1_nohq.paa";
uvSource="tex"; uvSource="tex";
class uvTransform class uvTransform
{ {
@@ -48,7 +48,7 @@ class Stage3
}; };
class Stage4 class Stage4
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Fennec\data\camo1_as.paa"; texture="braf\braf_air\braf_helicopters\braf_fennec\data\camo1_as.paa";
uvSource="tex"; uvSource="tex";
class uvTransform class uvTransform
{ {
@@ -60,7 +60,7 @@ class Stage4
}; };
class Stage5 class Stage5
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Fennec\data\camo1_smdi.paa"; texture="braf\braf_air\braf_helicopters\braf_fennec\data\camo1_smdi.paa";
uvSource="tex"; uvSource="tex";
class uvTransform class uvTransform
{ {
@@ -8,7 +8,7 @@ PixelShaderID="Super";
VertexShaderID="Super"; VertexShaderID="Super";
class Stage1 class Stage1
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Fennec\data\hud_nohq.paa"; texture="braf\braf_air\braf_helicopters\braf_fennec\data\hud_nohq.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage2 class Stage2
@@ -30,12 +30,12 @@ class Stage3
}; };
class Stage4 class Stage4
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Fennec\data\hud_as.paa"; texture="braf\braf_air\braf_helicopters\braf_fennec\data\hud_as.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage5 class Stage5
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Fennec\data\hud_smdi.paa"; texture="braf\braf_air\braf_helicopters\braf_fennec\data\hud_smdi.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage6 class Stage6
@@ -66,7 +66,7 @@ class CfgSkeletons
}; };
class CfgModels class CfgModels
{ {
class BRAF_Fennec class braf_fennec
{ {
htMin=60; htMin=60;
htMax=1800; htMax=1800;
@@ -1,4 +1,4 @@
<?xml version="1.0"?> <?xml version="1.0"?>
<GenHeli600 version="1.0"> <GenHeli600 version="1.0">
<!-- <!--
@@ -450,12 +450,12 @@
<CSComponent type="GenericControlSystem"> <CSComponent type="GenericControlSystem">
<Variables> <Variables>
<Variable name="CSComponent_1/ControlOutput/pitchRollControl" member="roll" alias="latCyclic" /> <Variable name="cscomponent_1/controloutput/pitchrollcontrol" member="roll" alias="latCyclic" />
<Variable name="CSComponent_1/ControlOutput/pitchRollControl" member="pitch" alias="lonCyclic" /> <Variable name="cscomponent_1/controloutput/pitchrollcontrol" member="pitch" alias="lonCyclic" />
<Variable name="CSComponent_1/ControlOutput/pedals" alias="pedals" /> <Variable name="cscomponent_1/controloutput/pedals" alias="pedals" />
<Variable name="CSComponent_1/ControlOutput/collective" alias="collective" /> <Variable name="cscomponent_1/controloutput/collective" alias="collective" />
<Variable alias="rotorBrake" name="CSComponent_1/ControlOutput/rotorBrake" /> <Variable alias="rotorBrake" name="cscomponent_1/controloutput/rotorbrake" />
<Variable name="angularVelocityBCS" member="X" alias="pitchRateRad" /> <Variable name="angularVelocityBCS" member="X" alias="pitchRateRad" />
<Variable name="angularVelocityBCS" member="Y" alias="rollRateRad" /> <Variable name="angularVelocityBCS" member="Y" alias="rollRateRad" />
@@ -464,15 +464,15 @@
<Variable name="attitudeHPR" member="P" alias="p" /> <Variable name="attitudeHPR" member="P" alias="p" />
<Variable name="attitudeHPR" member="R" alias="r" /> <Variable name="attitudeHPR" member="R" alias="r" />
<Variable name="MainRotor/A1" alias="A1m" /> <Variable name="mainrotor/a1" alias="A1m" />
<Variable name="MainRotor/B1" alias="B1m" /> <Variable name="mainrotor/b1" alias="B1m" />
<Variable name="MainRotor/theta0" alias="Th0m" /> <Variable name="mainrotor/theta0" alias="Th0m" />
<Variable name="TailRotor/A1" alias="A1t" /> <Variable name="tailrotor/a1" alias="A1t" />
<Variable name="TailRotor/B1" alias="B1t" /> <Variable name="tailrotor/b1" alias="B1t" />
<Variable name="TailRotor/theta0" alias="Th0t" /> <Variable name="tailrotor/theta0" alias="Th0t" />
<Variable alias="mainRotorBrake" name="MainRotor/rotorBrakeInput" /> <Variable alias="mainRotorBrake" name="mainrotor/rotorbrakeinput" />
</Variables> </Variables>
<MathExpression> <MathExpression>
File diff suppressed because it is too large Load Diff
@@ -1,6 +1,6 @@
class MFD class MFD
{ {
class BRAF_HRZ_LEFT class braf_hrz_left
{ {
topLeft="HRZ_L_TL"; topLeft="HRZ_L_TL";
topRight="HRZ_L_TR"; topRight="HRZ_L_TR";
@@ -5826,7 +5826,7 @@ class MFD
{ {
type="text"; type="text";
source="static"; source="static";
text="M/S"; text="m/s";
sourceScale=1; sourceScale=1;
align="center"; align="center";
scale=1; scale=1;
@@ -6907,13 +6907,13 @@ class MFD
}; };
}; };
}; };
class BRAF_HRZ_RIGHT: BRAF_HRZ_LEFT class braf_hrz_right: braf_hrz_left
{ {
topLeft="HRZ_R_TL"; topLeft="HRZ_R_TL";
topRight="HRZ_R_TR"; topRight="HRZ_R_TR";
bottomLeft="HRZ_R_BL"; bottomLeft="HRZ_R_BL";
}; };
class BRAF_HRZ_CENTER class braf_hrz_center
{ {
topLeft="HRZ_TL"; topLeft="HRZ_TL";
topRight="HRZ_TR"; topRight="HRZ_TR";
@@ -12305,7 +12305,7 @@ class MFD
}; };
}; };
}; };
class BRAF_DIR_LEFT class braf_dir_left
{ {
topLeft="DIR_L_TL"; topLeft="DIR_L_TL";
topRight="DIR_L_TR"; topRight="DIR_L_TR";
@@ -13374,13 +13374,13 @@ class MFD
}; };
}; };
}; };
class BRAF_DIR_RIGHT: BRAF_DIR_LEFT class braf_dir_right: braf_dir_left
{ {
topLeft="DIR_R_TL"; topLeft="DIR_R_TL";
topRight="DIR_R_TR"; topRight="DIR_R_TR";
bottomLeft="DIR_R_BL"; bottomLeft="DIR_R_BL";
}; };
class BRAF_ENG_TOP class braf_eng_top
{ {
topLeft="ENG_T_TL"; topLeft="ENG_T_TL";
topRight="ENG_T_TR"; topRight="ENG_T_TR";
@@ -13443,7 +13443,7 @@ class MFD
class Top class Top
{ {
type="polygon"; type="polygon";
texture="braf\braf_air\Braf_Helicopters\Braf_Pantera\data\engine2_ca.paa"; texture="braf\braf_air\braf_helicopters\braf_pantera\data\engine2_ca.paa";
points[]= points[]=
{ {
{ {
@@ -13473,7 +13473,7 @@ class MFD
}; };
}; };
}; };
class BRAF_ENG_BOTTOM class braf_eng_bottom
{ {
topLeft="ENG_B_TL"; topLeft="ENG_B_TL";
topRight="ENG_B_TR"; topRight="ENG_B_TR";
@@ -13536,7 +13536,7 @@ class MFD
class Bottom class Bottom
{ {
type="polygon"; type="polygon";
texture="braf\braf_air\Braf_Helicopters\Braf_Pantera\data\engine1_ca.paa"; texture="braf\braf_air\braf_helicopters\braf_pantera\data\engine1_ca.paa";
points[]= points[]=
{ {
{ {
@@ -13566,7 +13566,7 @@ class MFD
}; };
}; };
}; };
class BRAF_CLK_LEFT class braf_clk_left
{ {
topLeft="CLK_L_TL"; topLeft="CLK_L_TL";
topRight="CLK_L_TR"; topRight="CLK_L_TR";
@@ -13699,13 +13699,13 @@ class MFD
}; };
}; };
}; };
class BRAF_CLK_RIGHT: BRAF_CLK_LEFT class braf_clk_right: braf_clk_left
{ {
topLeft="CLK_R_TL"; topLeft="CLK_R_TL";
topRight="CLK_R_TR"; topRight="CLK_R_TR";
bottomLeft="CLK_R_BL"; bottomLeft="CLK_R_BL";
}; };
class BRAF_RADAR_LEFT class braf_radar_left
{ {
topLeft="RADAR_TL"; topLeft="RADAR_TL";
topRight="RADAR_TR"; topRight="RADAR_TR";
@@ -13735,7 +13735,7 @@ class MFD
class Radar class Radar
{ {
type="polygon"; type="polygon";
texture="braf\braf_air\Braf_Helicopters\Braf_Pantera\data\radar_co.paa"; texture="braf\braf_air\braf_helicopters\braf_pantera\data\radar_co.paa";
points[]= points[]=
{ {
{ {
@@ -13762,7 +13762,7 @@ class MFD
}; };
}; };
}; };
class BRAF_COM class braf_com
{ {
topLeft="COM_TL"; topLeft="COM_TL";
topRight="COM_TR"; topRight="COM_TR";
@@ -13825,7 +13825,7 @@ class MFD
class Radio class Radio
{ {
type="polygon"; type="polygon";
texture="braf\braf_air\Braf_Helicopters\Braf_Pantera\data\radio_ca.paa"; texture="braf\braf_air\braf_helicopters\braf_pantera\data\radio_ca.paa";
points[]= points[]=
{ {
{ {
@@ -2,248 +2,248 @@ occludeSoundsWhenIn=0.562341;
obstructSoundsWhenIn=0.316228; obstructSoundsWhenIn=0.316228;
attenuationEffectType="HeliAttenuation"; attenuationEffectType="HeliAttenuation";
emptySound[]={"",0,1}; emptySound[]={"",0,1};
soundGeneralCollision1[]={"A3\Sounds_F\vehicles\crashes\helis\Heli_coll_default_int_1",1.0,1,100}; soundGeneralCollision1[]={"a3\sounds_f\vehicles\crashes\helis\heli_coll_default_int_1",1.0,1,100};
soundGeneralCollision2[]={"A3\Sounds_F\vehicles\crashes\helis\Heli_coll_default_int_2",1.0,1,100}; soundGeneralCollision2[]={"a3\sounds_f\vehicles\crashes\helis\heli_coll_default_int_2",1.0,1,100};
soundGeneralCollision3[]={"A3\Sounds_F\vehicles\crashes\helis\Heli_coll_default_int_3",1.0,1,100}; soundGeneralCollision3[]={"a3\sounds_f\vehicles\crashes\helis\heli_coll_default_int_3",1.0,1,100};
soundCrashes[]={"soundGeneralCollision1",0.33,"soundGeneralCollision2",0.33,"soundGeneralCollision3",0.33}; soundCrashes[]={"soundGeneralCollision1",0.33,"soundGeneralCollision2",0.33,"soundGeneralCollision3",0.33};
soundLandCrashes[]={"emptySound",0}; soundLandCrashes[]={"emptySound",0};
soundBuildingCrash[]={"soundGeneralCollision1",1,"soundGeneralCollision2",1,"soundGeneralCollision3",1}; soundBuildingCrash[]={"soundGeneralCollision1",1,"soundGeneralCollision2",1,"soundGeneralCollision3",1};
soundArmorCrash[]={"soundGeneralCollision1",1,"soundGeneralCollision2",1,"soundGeneralCollision3",1}; soundArmorCrash[]={"soundGeneralCollision1",1,"soundGeneralCollision2",1,"soundGeneralCollision3",1};
soundWoodCrash[]={"soundGeneralCollision1",1,"soundGeneralCollision2",1,"soundGeneralCollision3",1}; soundWoodCrash[]={"soundGeneralCollision1",1,"soundGeneralCollision2",1,"soundGeneralCollision3",1};
soundBushCollision1[]={"A3\Sounds_F\vehicles\crashes\helis\Heli_coll_bush_int_1",1.0,1,100}; soundBushCollision1[]={"a3\sounds_f\vehicles\crashes\helis\heli_coll_bush_int_1",1.0,1,100};
soundBushCollision2[]={"A3\Sounds_F\vehicles\crashes\helis\Heli_coll_bush_int_2",1.0,1,100}; soundBushCollision2[]={"a3\sounds_f\vehicles\crashes\helis\heli_coll_bush_int_2",1.0,1,100};
soundBushCollision3[]={"A3\Sounds_F\vehicles\crashes\helis\Heli_coll_bush_int_3",1.0,1,100}; soundBushCollision3[]={"a3\sounds_f\vehicles\crashes\helis\heli_coll_bush_int_3",1.0,1,100};
soundBushCrash[]={"soundBushCollision1",0.33,"soundBushCollision2",0.33,"soundBushCollision3",0.33}; soundBushCrash[]={"soundBushCollision1",0.33,"soundBushCollision2",0.33,"soundBushCollision3",0.33};
soundWaterCollision1[]={"A3\Sounds_F\vehicles\crashes\planes\plane_crash_water_1",1.4125376,1,500}; soundWaterCollision1[]={"a3\sounds_f\vehicles\crashes\planes\plane_crash_water_1",1.4125376,1,500};
soundWaterCollision2[]={"A3\Sounds_F\vehicles\crashes\planes\plane_crash_water_2",1.4125376,1,500}; soundWaterCollision2[]={"a3\sounds_f\vehicles\crashes\planes\plane_crash_water_2",1.4125376,1,500};
soundWaterCrashes[]={"soundWaterCollision1",0.5,"soundWaterCollision2",0.5}; soundWaterCrashes[]={"soundWaterCollision1",0.5,"soundWaterCollision2",0.5};
soundDammage[]={"A3\Sounds_F\vehicles\crashes\helis\Heli_crash_default_ext_1",3.1622777,1}; soundDammage[]={"a3\sounds_f\vehicles\crashes\helis\heli_crash_default_ext_1",3.1622777,1};
soundGetIn[]={"A3\Sounds_F\vehicles\air\noises\heli_get_in2",0.56234133,1}; soundGetIn[]={"a3\sounds_f\vehicles\air\noises\heli_get_in2",0.56234133,1};
soundGetOut[]={"A3\Sounds_F\vehicles\air\noises\heli_get_out2",0.7943282,1,20}; soundGetOut[]={"a3\sounds_f\vehicles\air\noises\heli_get_out2",0.7943282,1,20};
soundEngineOnInt[]={"braf\braf_air\Braf_Helicopters\Braf_Sounds\pantera\pantera_int_start.ogg",0.31622776,1.0}; soundEngineOnInt[]={"braf\braf_air\braf_helicopters\braf_sounds\pantera\pantera_int_start.ogg",0.31622776,1.0};
soundEngineOnExt[]={"braf\braf_air\Braf_Helicopters\Braf_Sounds\pantera\pantera_ext_start.ogg",0.7943282,1.0,600}; soundEngineOnExt[]={"braf\braf_air\braf_helicopters\braf_sounds\pantera\pantera_ext_start.ogg",0.7943282,1.0,600};
soundEngineOffInt[]={"braf\braf_air\Braf_Helicopters\Braf_Sounds\pantera\pantera_int_shut.ogg",0.31622776,1.0}; soundEngineOffInt[]={"braf\braf_air\braf_helicopters\braf_sounds\pantera\pantera_int_shut.ogg",0.31622776,1.0};
soundEngineOffExt[]={"braf\braf_air\Braf_Helicopters\Braf_Sounds\pantera\pantera_ext_shut.ogg",0.7943282,1.0,600}; soundEngineOffExt[]={"braf\braf_air\braf_helicopters\braf_sounds\pantera\pantera_ext_shut.ogg",0.7943282,1.0,600};
soundLocked[]={"\A3\Sounds_F\weapons\Rockets\opfor_lock_1",1.0,1}; soundLocked[]={"\a3\sounds_f\weapons\rockets\opfor_lock_1",1.0,1};
soundIncommingMissile[]={"\A3\Sounds_F\vehicles\air\noises\alarm_locked_by_missile_1",0.31622776,1.0}; soundIncommingMissile[]={"\a3\sounds_f\vehicles\air\noises\alarm_locked_by_missile_1",0.31622776,1.0};
rotorDamageInt[]={"A3\Sounds_F\vehicles\air\noises\heli_damage_rotor_int_open_1",1.0,1.0}; rotorDamageInt[]={"a3\sounds_f\vehicles\air\noises\heli_damage_rotor_int_open_1",1.0,1.0};
rotorDamageOut[]={"A3\Sounds_F\vehicles\air\noises\heli_damage_rotor_ext_1",2.5118864,1.0,150}; rotorDamageOut[]={"a3\sounds_f\vehicles\air\noises\heli_damage_rotor_ext_1",2.5118864,1.0,150};
rotorDamage[]={"rotorDamageInt","rotorDamageOut"}; rotorDamage[]={"rotorDamageInt","rotorDamageOut"};
tailDamageInt[]={"A3\Sounds_F\vehicles\air\noises\heli_damage_tail",1.0,1.0}; tailDamageInt[]={"a3\sounds_f\vehicles\air\noises\heli_damage_tail",1.0,1.0};
tailDamageOut[]={"A3\Sounds_F\vehicles\air\noises\heli_damage_tail",1.0,1.0,300}; tailDamageOut[]={"a3\sounds_f\vehicles\air\noises\heli_damage_tail",1.0,1.0,300};
tailDamage[]={"tailDamageInt","tailDamageOut"}; tailDamage[]={"tailDamageInt","tailDamageOut"};
landingSoundInt0[]={"A3\Sounds_F\vehicles\air\noises\landing_skids_int1_open",1.0,1.0,100}; landingSoundInt0[]={"a3\sounds_f\vehicles\air\noises\landing_skids_int1_open",1.0,1.0,100};
landingSoundInt1[]={"A3\Sounds_F\vehicles\air\noises\landing_skids_int1_open",1.0,1.0,100}; landingSoundInt1[]={"a3\sounds_f\vehicles\air\noises\landing_skids_int1_open",1.0,1.0,100};
landingSoundInt[]={"landingSoundInt0",0.5,"landingSoundInt1",0.5}; landingSoundInt[]={"landingSoundInt0",0.5,"landingSoundInt1",0.5};
landingSoundOut0[]={"A3\Sounds_F\vehicles\air\noises\landing_skids_ext1",1.7782794,1.0,100}; landingSoundOut0[]={"a3\sounds_f\vehicles\air\noises\landing_skids_ext1",1.7782794,1.0,100};
landingSoundOut1[]={"A3\Sounds_F\vehicles\air\noises\landing_skids_ext1",1.7782794,1.0,100}; landingSoundOut1[]={"a3\sounds_f\vehicles\air\noises\landing_skids_ext1",1.7782794,1.0,100};
landingSoundOut[]={"landingSoundOut0",0.5,"landingSoundOut1",0.5}; landingSoundOut[]={"landingSoundOut0",0.5,"landingSoundOut1",0.5};
slingCargoAttach0[]={"A3\Sounds_F\vehicles\air\noises\SL_engineDownEndINT",1.0,1.0}; slingCargoAttach0[]={"a3\sounds_f\vehicles\air\noises\sl_enginedownendint",1.0,1.0};
slingCargoAttach1[]={"A3\Sounds_F\vehicles\air\noises\SL_1hookLock",1.7782794,1.0,200}; slingCargoAttach1[]={"a3\sounds_f\vehicles\air\noises\sl_1hooklock",1.7782794,1.0,200};
slingCargoAttach[]={"slingCargoAttach0","slingCargoAttach1"}; slingCargoAttach[]={"slingCargoAttach0","slingCargoAttach1"};
slingCargoDetach0[]={"A3\Sounds_F\vehicles\air\noises\SL_engineUpEndINT",1.0,1.0}; slingCargoDetach0[]={"a3\sounds_f\vehicles\air\noises\sl_engineupendint",1.0,1.0};
slingCargoDetach1[]={"A3\Sounds_F\vehicles\air\noises\SL_1hookUnlock",1.7782794,1.0,200}; slingCargoDetach1[]={"a3\sounds_f\vehicles\air\noises\sl_1hookunlock",1.7782794,1.0,200};
slingCargoDetach[]={"slingCargoDetach0","slingCargoDetach1"}; slingCargoDetach[]={"slingCargoDetach0","slingCargoDetach1"};
slingCargoDetachAir0[]={"A3\Sounds_F\vehicles\air\noises\SL_unhook_air_int",1.0,1.0}; slingCargoDetachAir0[]={"a3\sounds_f\vehicles\air\noises\sl_unhook_air_int",1.0,1.0};
slingCargoDetachAir1[]={"A3\Sounds_F\vehicles\air\noises\SL_unhook_air_ext",1.0,1.0,300}; slingCargoDetachAir1[]={"a3\sounds_f\vehicles\air\noises\sl_unhook_air_ext",1.0,1.0,300};
slingCargoDetachAir[]={"slingCargoDetach0","slingCargoDetach1"}; slingCargoDetachAir[]={"slingCargoDetach0","slingCargoDetach1"};
slingCargoRopeBreak0[]={"A3\Sounds_F\vehicles\air\noises\SL_rope_break_int",1.0,1.0}; slingCargoRopeBreak0[]={"a3\sounds_f\vehicles\air\noises\sl_rope_break_int",1.0,1.0};
slingCargoRopeBreak1[]={"A3\Sounds_F\vehicles\air\noises\SL_rope_break_ext",1.0,1.0,200}; slingCargoRopeBreak1[]={"a3\sounds_f\vehicles\air\noises\sl_rope_break_ext",1.0,1.0,200};
slingCargoRopeBreak[]={"slingCargoDetach0","slingCargoDetach1"}; slingCargoRopeBreak[]={"slingCargoDetach0","slingCargoDetach1"};
gearUpExt[]={"A3\Sounds_F\vehicles\air\Heli_Attack_01\blackfoot_gear_up_ext",1,1,1000}; gearUpExt[]={"a3\sounds_f\vehicles\air\heli_attack_01\blackfoot_gear_up_ext",1,1,1000};
gearUpInt[]={"A3\Sounds_F\vehicles\air\Heli_Attack_01\blackfoot_gear_up_int",1,1,100}; gearUpInt[]={"a3\sounds_f\vehicles\air\heli_attack_01\blackfoot_gear_up_int",1,1,100};
gearUp[]={"gearUpInt","gearUpExt"}; gearUp[]={"gearUpInt","gearUpExt"};
gearDownInt[]={"A3\Sounds_F\vehicles\air\Heli_Attack_01\blackfoot_gear_down_int",1,1,100}; gearDownInt[]={"a3\sounds_f\vehicles\air\heli_attack_01\blackfoot_gear_down_int",1,1,100};
gearDownExt[]={"A3\Sounds_F\vehicles\air\Heli_Attack_01\blackfoot_gear_down_ext",1,1,1000}; gearDownExt[]={"a3\sounds_f\vehicles\air\heli_attack_01\blackfoot_gear_down_ext",1,1,1000};
gearDown[]={"gearDownInt","gearDownExt"}; gearDown[]={"gearDownInt","gearDownExt"};
class Sounds class Sounds
{ {
class EngineExt class EngineExt
{ {
sound[]={"braf\braf_air\Braf_Helicopters\Braf_Sounds\pantera\pantera_ext_eng.ogg",1.2589254,1.0,400}; sound[]={"braf\braf_air\braf_helicopters\braf_sounds\pantera\pantera_ext_eng.ogg",1.2589254,1.0,400};
frequency="rotorSpeed"; frequency="rotorSpeed";
volume="4 * camPos * (0 max (rotorSpeed-0.4))"; volume="4 * camPos * (0 max (rotorSpeed-0.4))";
}; };
class RotorExt class RotorExt
{ {
sound[]={"braf\braf_air\Braf_Helicopters\Braf_Sounds\pantera\pantera_ext_rotor.ogg",1.2589254,1.0,1500}; sound[]={"braf\braf_air\braf_helicopters\braf_sounds\pantera\pantera_ext_rotor.ogg",1.2589254,1.0,1500};
frequency="(rotorSpeed factor [0.3, 0.7]) * (rotorSpeed factor [0.3, 1]) * (1 - rotorThrust/4)"; frequency="(rotorspeed factor [0.3, 0.7]) * (rotorspeed factor [0.3, 1]) * (1 - rotorthrust/4)";
volume="camPos * (rotorSpeed factor [0.3, 1]) * (1 + rotorThrust)"; volume="camPos * (rotorSpeed factor [0.3, 1]) * (1 + rotorThrust)";
}; };
class RotorSwist class RotorSwist
{ {
sound[]={"A3\Sounds_F\vehicles\air\Heli_Light_01\rotor_swist",0.70794576,1.0,200}; sound[]={"a3\sounds_f\vehicles\air\heli_light_01\rotor_swist",0.70794576,1.0,200};
frequency=1; frequency=1;
volume="camPos * (rotorThrust factor [0.7, 0.9])"; volume="camPos * (rotorThrust factor [0.7, 0.9])";
}; };
class EngineInt class EngineInt
{ {
sound[]={"braf\braf_air\Braf_Helicopters\Braf_Sounds\pantera\pantera_int_eng.ogg",0.7943282,1.0}; sound[]={"braf\braf_air\braf_helicopters\braf_sounds\pantera\pantera_int_eng.ogg",0.7943282,1.0};
frequency="rotorSpeed"; frequency="rotorSpeed";
volume="(1-camPos)*2*(0 max (rotorSpeed-0.4))"; volume="(1-camPos)*2*(0 max (rotorSpeed-0.4))";
}; };
class RotorInt class RotorInt
{ {
sound[]={"braf\braf_air\Braf_Helicopters\Braf_Sounds\pantera\pantera_int_rotor.ogg",0.63095737,1.0}; sound[]={"braf\braf_air\braf_helicopters\braf_sounds\pantera\pantera_int_rotor.ogg",0.63095737,1.0};
frequency="(rotorSpeed factor [0.3, 0.7]) * (rotorSpeed factor [0.3, 1]) * (1 - rotorThrust/4)"; frequency="(rotorspeed factor [0.3, 0.7]) * (rotorspeed factor [0.3, 1]) * (1 - rotorthrust/4)";
volume="(1 - camPos) * (rotorSpeed factor [0.3, 0.7]) * (1 + rotorThrust) * 0.7"; volume="(1 - camPos) * (rotorSpeed factor [0.3, 0.7]) * (1 + rotorThrust) * 0.7";
}; };
class RotorBench class RotorBench
{ {
sound[]={"braf\braf_air\Braf_Helicopters\Braf_Sounds\pantera\pantera_int_rotor_bench.ogg",0.5011872,1.0,1000}; sound[]={"braf\braf_air\braf_helicopters\braf_sounds\pantera\pantera_int_rotor_bench.ogg",0.5011872,1.0,1000};
frequency="(rotorSpeed factor [0.3, 0.7]) * (rotorSpeed factor [0.3, 1]) * (1 - rotorThrust/4)"; frequency="(rotorspeed factor [0.3, 0.7]) * (rotorspeed factor [0.3, 1]) * (1 - rotorthrust/4)";
volume="(playerPos factor [3.9, 4]) * (1 - camPos) * (rotorSpeed factor [0.3, 1]) * (1 + rotorThrust) * 0.4"; volume="(playerPos factor [3.9, 4]) * (1 - camPos) * (rotorSpeed factor [0.3, 1]) * (1 + rotorThrust) * 0.4";
cone[]={1.6,3.14,1.6,0.95}; cone[]={1.6,3.14,1.6,0.95};
}; };
class EngineBench class EngineBench
{ {
sound[]={"braf\braf_air\Braf_Helicopters\Braf_Sounds\pantera\pantera_int_eng_bench.ogg",0.3548134,1.0,400}; sound[]={"braf\braf_air\braf_helicopters\braf_sounds\pantera\pantera_int_eng_bench.ogg",0.3548134,1.0,400};
frequency="rotorSpeed"; frequency="rotorSpeed";
volume="(playerPos factor [3.9, 4]) * (1 - camPos) * (0 max (rotorSpeed-0.4))"; volume="(playerPos factor [3.9, 4]) * (1 - camPos) * (0 max (rotorSpeed-0.4))";
}; };
class WindBench class WindBench
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\wind_open_out",0.56234133,1.0,50}; sound[]={"a3\sounds_f\vehicles\air\noises\wind_open_out",0.56234133,1.0,50};
frequency=1; frequency=1;
volume="4 * (playerPos factor [3.9, 4]) * (1 - camPos) * ((speed factor[0, 30]) + (speed factor[0, -30]))"; volume="4 * (playerPos factor [3.9, 4]) * (1 - camPos) * ((speed factor[0, 30]) + (speed factor[0, -30]))";
}; };
class TransmissionDamageExt_phase1 class TransmissionDamageExt_phase1
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\heli_damage_transmission_ext_1",1.0,1.0,150}; sound[]={"a3\sounds_f\vehicles\air\noises\heli_damage_transmission_ext_1",1.0,1.0,150};
frequency="0.66 + rotorSpeed / 3"; frequency="0.66 + rotorspeed / 3";
volume="camPos * (transmissionDamage factor [0.3, 0.35]) * (transmissionDamage factor [0.5, 0.45]) * (rotorSpeed factor [0.2, 0.5])"; volume="camPos * (transmissionDamage factor [0.3, 0.35]) * (transmissionDamage factor [0.5, 0.45]) * (rotorSpeed factor [0.2, 0.5])";
}; };
class TransmissionDamageExt_phase2 class TransmissionDamageExt_phase2
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\heli_damage_transmission_ext_2",1.0,1.0,150}; sound[]={"a3\sounds_f\vehicles\air\noises\heli_damage_transmission_ext_2",1.0,1.0,150};
frequency="0.66 + rotorSpeed / 3"; frequency="0.66 + rotorspeed / 3";
volume="camPos * (transmissionDamage factor [0.45, 0.5]) * (rotorSpeed factor [0.2, 0.5])"; volume="camPos * (transmissionDamage factor [0.45, 0.5]) * (rotorSpeed factor [0.2, 0.5])";
}; };
class TransmissionDamageInt_phase1 class TransmissionDamageInt_phase1
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\heli_damage_transmission_int_1",1.0,1.0,150}; sound[]={"a3\sounds_f\vehicles\air\noises\heli_damage_transmission_int_1",1.0,1.0,150};
frequency="0.66 + rotorSpeed / 3"; frequency="0.66 + rotorspeed / 3";
volume="(1 - camPos) * (transmissionDamage factor [0.3, 0.35]) * (transmissionDamage factor [0.5, 0.45]) * (rotorSpeed factor [0.2, 0.5])"; volume="(1 - camPos) * (transmissionDamage factor [0.3, 0.35]) * (transmissionDamage factor [0.5, 0.45]) * (rotorSpeed factor [0.2, 0.5])";
}; };
class TransmissionDamageInt_phase2 class TransmissionDamageInt_phase2
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\heli_damage_transmission_int_2",1.0,1.0,150}; sound[]={"a3\sounds_f\vehicles\air\noises\heli_damage_transmission_int_2",1.0,1.0,150};
frequency="0.66 + rotorSpeed / 3"; frequency="0.66 + rotorspeed / 3";
volume="(1 - camPos) * (transmissionDamage factor [0.45, 0.5]) * (rotorSpeed factor [0.2, 0.5])"; volume="(1 - camPos) * (transmissionDamage factor [0.45, 0.5]) * (rotorSpeed factor [0.2, 0.5])";
}; };
class damageAlarmInt class damageAlarmInt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\heli_alarm_bluefor",0.31622776,1.0}; sound[]={"a3\sounds_f\vehicles\air\noises\heli_alarm_bluefor",0.31622776,1.0};
frequency=1; frequency=1;
volume="engineOn * (1 - camPos) * ( 1 - ((transmissionDamage factor [0.61, 0.60]) * (motorDamage factor [0.61, 0.60]) * (rotorDamage factor [0.51, 0.50]))) * (rotorSpeed factor [0.0, 0.001])"; volume="engineOn * (1 - camPos) * ( 1 - ((transmissionDamage factor [0.61, 0.60]) * (motorDamage factor [0.61, 0.60]) * (rotorDamage factor [0.51, 0.50]))) * (rotorSpeed factor [0.0, 0.001])";
}; };
class damageAlarmExt class damageAlarmExt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\heli_alarm_bluefor",0.22387211,1.0,20}; sound[]={"a3\sounds_f\vehicles\air\noises\heli_alarm_bluefor",0.22387211,1.0,20};
frequency=1; frequency=1;
volume="engineOn * camPos * ( 1 - ((transmissionDamage factor [0.61, 0.60]) * (motorDamage factor [0.61, 0.60]) * (rotorDamage factor [0.51, 0.50]))) * (rotorSpeed factor [0, 0.001])"; volume="engineOn * camPos * ( 1 - ((transmissionDamage factor [0.61, 0.60]) * (motorDamage factor [0.61, 0.60]) * (rotorDamage factor [0.51, 0.50]))) * (rotorSpeed factor [0, 0.001])";
}; };
class rotorLowAlarmInt class rotorLowAlarmInt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\heli_alarm_rotor_low",0.31622776,1.0}; sound[]={"a3\sounds_f\vehicles\air\noises\heli_alarm_rotor_low",0.31622776,1.0};
frequency=1; frequency=1;
volume="engineOn * (1 - camPos) * (rotorSpeed factor [0.9, 0.8999]) * (rotorSpeed factor [-0.5, 1]) * (speed factor [3, 3.01])"; volume="engineOn * (1 - camPos) * (rotorSpeed factor [0.9, 0.8999]) * (rotorSpeed factor [-0.5, 1]) * (speed factor [3, 3.01])";
}; };
class rotorLowAlarmExt class rotorLowAlarmExt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\heli_alarm_rotor_low",0.22387211,1.0,20}; sound[]={"a3\sounds_f\vehicles\air\noises\heli_alarm_rotor_low",0.22387211,1.0,20};
frequency=1; frequency=1;
volume="engineOn * camPos * (rotorSpeed factor [0.9, 0.8999]) * (rotorSpeed factor [-0.5, 1]) * (speed factor [3, 3.01])"; volume="engineOn * camPos * (rotorSpeed factor [0.9, 0.8999]) * (rotorSpeed factor [-0.5, 1]) * (speed factor [3, 3.01])";
}; };
class scrubLandInt class scrubLandInt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\scrubLandInt_open",1.0,1.0,100}; sound[]={"a3\sounds_f\vehicles\air\noises\scrublandint_open",1.0,1.0,100};
frequency=1; frequency=1;
volume="2 * (1-camPos) * (scrubLand factor[0.02, 0.05])"; volume="2 * (1-camPos) * (scrubLand factor[0.02, 0.05])";
}; };
class scrubLandExt class scrubLandExt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\scrubLandExt",1.0,1.0,100}; sound[]={"a3\sounds_f\vehicles\air\noises\scrublandext",1.0,1.0,100};
frequency=1; frequency=1;
volume="camPos * (scrubLand factor[0.02, 0.05])"; volume="camPos * (scrubLand factor[0.02, 0.05])";
}; };
class scrubBuildingInt class scrubBuildingInt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\scrubBuildingInt",1.0,1.0,100}; sound[]={"a3\sounds_f\vehicles\air\noises\scrubbuildingint",1.0,1.0,100};
frequency=1; frequency=1;
volume="2 * (1 - camPos) * (scrubBuilding factor[0.02, 0.05])"; volume="2 * (1 - camPos) * (scrubBuilding factor[0.02, 0.05])";
}; };
class scrubBuildingExt class scrubBuildingExt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\scrubBuildingExt",1.0,1.0,100}; sound[]={"a3\sounds_f\vehicles\air\noises\scrubbuildingext",1.0,1.0,100};
frequency=1; frequency=1;
volume="camPos * (scrubBuilding factor[0.02, 0.05])"; volume="camPos * (scrubBuilding factor[0.02, 0.05])";
}; };
class scrubTreeInt class scrubTreeInt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\scrubTreeExt",1.0,1.0,100}; sound[]={"a3\sounds_f\vehicles\air\noises\scrubtreeext",1.0,1.0,100};
frequency=1; frequency=1;
volume="(1 - camPos) * ((scrubTree) factor [0, 0.01])"; volume="(1 - camPos) * ((scrubTree) factor [0, 0.01])";
}; };
class scrubTreeExt class scrubTreeExt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\scrubTreeExt",1.0,1.0,100}; sound[]={"a3\sounds_f\vehicles\air\noises\scrubtreeext",1.0,1.0,100};
frequency=1; frequency=1;
volume="camPos * ((scrubTree) factor [0, 0.01])"; volume="camPos * ((scrubTree) factor [0, 0.01])";
}; };
class RainExt class RainExt
{ {
sound[]={"A3\Sounds_F\vehicles\noises\rain1_ext",1.0,1.0,100}; sound[]={"a3\sounds_f\vehicles\noises\rain1_ext",1.0,1.0,100};
frequency=1; frequency=1;
volume="camPos * (rain - rotorSpeed/2) * 2"; volume="campos * (rain - rotorspeed/2) * 2";
}; };
class RainInt class RainInt
{ {
sound[]={"A3\Sounds_F\vehicles\noises\rain1_int_open",1.0,1.0,100}; sound[]={"a3\sounds_f\vehicles\noises\rain1_int_open",1.0,1.0,100};
frequency=1; frequency=1;
volume="(1-camPos)*(rain - rotorSpeed/2)*2"; volume="(1-campos)*(rain - rotorspeed/2)*2";
}; };
class SlingLoadDownExt class SlingLoadDownExt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\SL_engineDownEXT",1.2589254,1.0,500}; sound[]={"a3\sounds_f\vehicles\air\noises\sl_enginedownext",1.2589254,1.0,500};
frequency=1; frequency=1;
volume="camPos*(slingLoadActive factor [0,-1])"; volume="camPos*(slingLoadActive factor [0,-1])";
}; };
class SlingLoadUpExt class SlingLoadUpExt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\SL_engineUpEXT",1.2589254,1.0,500}; sound[]={"a3\sounds_f\vehicles\air\noises\sl_engineupext",1.2589254,1.0,500};
frequency=1; frequency=1;
volume="camPos*(slingLoadActive factor [0,1])"; volume="camPos*(slingLoadActive factor [0,1])";
}; };
class SlingLoadDownInt class SlingLoadDownInt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\SL_engineDownINT",1.0,1.0,700}; sound[]={"a3\sounds_f\vehicles\air\noises\sl_enginedownint",1.0,1.0,700};
frequency=1; frequency=1;
volume="(1-camPos)*(slingLoadActive factor [0,-1])"; volume="(1-camPos)*(slingLoadActive factor [0,-1])";
}; };
class SlingLoadUpInt class SlingLoadUpInt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\SL_engineUpINT",1.0,1.0,700}; sound[]={"a3\sounds_f\vehicles\air\noises\sl_engineupint",1.0,1.0,700};
frequency=1; frequency=1;
volume="(1-camPos)*(slingLoadActive factor [0,1])"; volume="(1-camPos)*(slingLoadActive factor [0,1])";
}; };
class WindInt class WindInt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\wind_open_int",1.1220185,1.0,50}; sound[]={"a3\sounds_f\vehicles\air\noises\wind_open_int",1.1220185,1.0,50};
frequency=1; frequency=1;
volume="(1-camPos)*(speed factor[5, 50])*(speed factor[5, 50])"; volume="(1-camPos)*(speed factor[5, 50])*(speed factor[5, 50])";
}; };
class WindLateralMovementInt class WindLateralMovementInt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\wind_lateral_open_int",1.9952624,1.0,50}; sound[]={"a3\sounds_f\vehicles\air\noises\wind_lateral_open_int",1.9952624,1.0,50};
frequency=1; frequency=1;
volume="(1-camPos)*lateralMovement*((speed factor [5,40]) + (speed factor [-5,-40]))"; volume="(1-camPos)*lateralMovement*((speed factor [5,40]) + (speed factor [-5,-40]))";
}; };
class GStress class GStress
{ {
sound[]={"A3\Sounds_F\vehicles\noises\vehicle_stress2b",0.31622776,1.0,50}; sound[]={"a3\sounds_f\vehicles\noises\vehicle_stress2b",0.31622776,1.0,50};
frequency=1; frequency=1;
volume="engineOn * (1-camPos) * ((gmeterZ factor[1.5, 2.5]) + (gmeterZ factor[0.5, -0.5]))"; volume="engineOn * (1-camPos) * ((gmeterZ factor[1.5, 2.5]) + (gmeterZ factor[0.5, -0.5]))";
}; };
@@ -255,201 +255,201 @@ class SoundsExt
{ {
class EngineExt class EngineExt
{ {
sound[]={"braf\braf_air\Braf_Helicopters\Braf_Sounds\pantera\pantera_ext_eng.ogg",1.2589254,1.0,400}; sound[]={"braf\braf_air\braf_helicopters\braf_sounds\pantera\pantera_ext_eng.ogg",1.2589254,1.0,400};
frequency="rotorSpeed"; frequency="rotorSpeed";
volume="4 * camPos * (0 max (rotorSpeed-0.4))"; volume="4 * camPos * (0 max (rotorSpeed-0.4))";
}; };
class RotorExt class RotorExt
{ {
sound[]={"braf\braf_air\Braf_Helicopters\Braf_Sounds\pantera\pantera_ext_rotor.ogg",1.2589254,1.0,1500}; sound[]={"braf\braf_air\braf_helicopters\braf_sounds\pantera\pantera_ext_rotor.ogg",1.2589254,1.0,1500};
frequency="(rotorSpeed factor [0.3, 0.7]) * (rotorSpeed factor [0.3, 1]) * (1 - rotorThrust/4)"; frequency="(rotorspeed factor [0.3, 0.7]) * (rotorspeed factor [0.3, 1]) * (1 - rotorthrust/4)";
volume="camPos * (rotorSpeed factor [0.3, 1]) * (1 + rotorThrust)"; volume="camPos * (rotorSpeed factor [0.3, 1]) * (1 + rotorThrust)";
}; };
class RotorSwist class RotorSwist
{ {
sound[]={"A3\Sounds_F\vehicles\air\Heli_Light_01\rotor_swist",0.70794576,1.0,200}; sound[]={"a3\sounds_f\vehicles\air\heli_light_01\rotor_swist",0.70794576,1.0,200};
frequency=1; frequency=1;
volume="camPos * (rotorThrust factor [0.7, 0.9])"; volume="camPos * (rotorThrust factor [0.7, 0.9])";
}; };
class EngineInt class EngineInt
{ {
sound[]={"braf\braf_air\Braf_Helicopters\Braf_Sounds\pantera\pantera_int_eng.ogg",0.7943282,1.0}; sound[]={"braf\braf_air\braf_helicopters\braf_sounds\pantera\pantera_int_eng.ogg",0.7943282,1.0};
frequency="rotorSpeed"; frequency="rotorSpeed";
volume="(1-camPos)*2*(0 max (rotorSpeed-0.4))"; volume="(1-camPos)*2*(0 max (rotorSpeed-0.4))";
}; };
class RotorInt class RotorInt
{ {
sound[]={"braf\braf_air\Braf_Helicopters\Braf_Sounds\pantera\pantera_int_rotor.ogg",0.63095737,1.0}; sound[]={"braf\braf_air\braf_helicopters\braf_sounds\pantera\pantera_int_rotor.ogg",0.63095737,1.0};
frequency="(rotorSpeed factor [0.3, 0.7]) * (rotorSpeed factor [0.3, 1]) * (1 - rotorThrust/4)"; frequency="(rotorspeed factor [0.3, 0.7]) * (rotorspeed factor [0.3, 1]) * (1 - rotorthrust/4)";
volume="(1 - camPos) * (rotorSpeed factor [0.3, 0.7]) * (1 + rotorThrust) * 0.7"; volume="(1 - camPos) * (rotorSpeed factor [0.3, 0.7]) * (1 + rotorThrust) * 0.7";
}; };
class RotorBench class RotorBench
{ {
sound[]={"braf\braf_air\Braf_Helicopters\Braf_Sounds\pantera\pantera_int_rotor_bench.ogg",0.5011872,1.0,1000}; sound[]={"braf\braf_air\braf_helicopters\braf_sounds\pantera\pantera_int_rotor_bench.ogg",0.5011872,1.0,1000};
frequency="(rotorSpeed factor [0.3, 0.7]) * (rotorSpeed factor [0.3, 1]) * (1 - rotorThrust/4)"; frequency="(rotorspeed factor [0.3, 0.7]) * (rotorspeed factor [0.3, 1]) * (1 - rotorthrust/4)";
volume="(playerPos factor [3.9, 4]) * (1 - camPos) * (rotorSpeed factor [0.3, 1]) * (1 + rotorThrust) * 0.4"; volume="(playerPos factor [3.9, 4]) * (1 - camPos) * (rotorSpeed factor [0.3, 1]) * (1 + rotorThrust) * 0.4";
cone[]={1.6,3.14,1.6,0.95}; cone[]={1.6,3.14,1.6,0.95};
}; };
class EngineBench class EngineBench
{ {
sound[]={"braf\braf_air\Braf_Helicopters\Braf_Sounds\pantera\pantera_int_eng_bench.ogg",0.3548134,1.0,400}; sound[]={"braf\braf_air\braf_helicopters\braf_sounds\pantera\pantera_int_eng_bench.ogg",0.3548134,1.0,400};
frequency="rotorSpeed"; frequency="rotorSpeed";
volume="(playerPos factor [3.9, 4]) * (1 - camPos) * (0 max (rotorSpeed-0.4))"; volume="(playerPos factor [3.9, 4]) * (1 - camPos) * (0 max (rotorSpeed-0.4))";
}; };
class WindBench class WindBench
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\wind_open_out",0.56234133,1.0,50}; sound[]={"a3\sounds_f\vehicles\air\noises\wind_open_out",0.56234133,1.0,50};
frequency=1; frequency=1;
volume="4 * (playerPos factor [3.9, 4]) * (1 - camPos) * ((speed factor[0, 30]) + (speed factor[0, -30]))"; volume="4 * (playerPos factor [3.9, 4]) * (1 - camPos) * ((speed factor[0, 30]) + (speed factor[0, -30]))";
}; };
class TransmissionDamageExt_phase1 class TransmissionDamageExt_phase1
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\heli_damage_transmission_ext_1",1.0,1.0,150}; sound[]={"a3\sounds_f\vehicles\air\noises\heli_damage_transmission_ext_1",1.0,1.0,150};
frequency="0.66 + rotorSpeed / 3"; frequency="0.66 + rotorspeed / 3";
volume="camPos * (transmissionDamage factor [0.3, 0.35]) * (transmissionDamage factor [0.5, 0.45]) * (rotorSpeed factor [0.2, 0.5])"; volume="camPos * (transmissionDamage factor [0.3, 0.35]) * (transmissionDamage factor [0.5, 0.45]) * (rotorSpeed factor [0.2, 0.5])";
}; };
class TransmissionDamageExt_phase2 class TransmissionDamageExt_phase2
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\heli_damage_transmission_ext_2",1.0,1.0,150}; sound[]={"a3\sounds_f\vehicles\air\noises\heli_damage_transmission_ext_2",1.0,1.0,150};
frequency="0.66 + rotorSpeed / 3"; frequency="0.66 + rotorspeed / 3";
volume="camPos * (transmissionDamage factor [0.45, 0.5]) * (rotorSpeed factor [0.2, 0.5])"; volume="camPos * (transmissionDamage factor [0.45, 0.5]) * (rotorSpeed factor [0.2, 0.5])";
}; };
class TransmissionDamageInt_phase1 class TransmissionDamageInt_phase1
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\heli_damage_transmission_int_1",1.0,1.0,150}; sound[]={"a3\sounds_f\vehicles\air\noises\heli_damage_transmission_int_1",1.0,1.0,150};
frequency="0.66 + rotorSpeed / 3"; frequency="0.66 + rotorspeed / 3";
volume="(1 - camPos) * (transmissionDamage factor [0.3, 0.35]) * (transmissionDamage factor [0.5, 0.45]) * (rotorSpeed factor [0.2, 0.5])"; volume="(1 - camPos) * (transmissionDamage factor [0.3, 0.35]) * (transmissionDamage factor [0.5, 0.45]) * (rotorSpeed factor [0.2, 0.5])";
}; };
class TransmissionDamageInt_phase2 class TransmissionDamageInt_phase2
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\heli_damage_transmission_int_2",1.0,1.0,150}; sound[]={"a3\sounds_f\vehicles\air\noises\heli_damage_transmission_int_2",1.0,1.0,150};
frequency="0.66 + rotorSpeed / 3"; frequency="0.66 + rotorspeed / 3";
volume="(1 - camPos) * (transmissionDamage factor [0.45, 0.5]) * (rotorSpeed factor [0.2, 0.5])"; volume="(1 - camPos) * (transmissionDamage factor [0.45, 0.5]) * (rotorSpeed factor [0.2, 0.5])";
}; };
class damageAlarmInt class damageAlarmInt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\heli_alarm_bluefor",0.31622776,1.0}; sound[]={"a3\sounds_f\vehicles\air\noises\heli_alarm_bluefor",0.31622776,1.0};
frequency=1; frequency=1;
volume="engineOn * (1 - camPos) * ( 1 - ((transmissionDamage factor [0.61, 0.60]) * (motorDamage factor [0.61, 0.60]) * (rotorDamage factor [0.51, 0.50]))) * (rotorSpeed factor [0.0, 0.001])"; volume="engineOn * (1 - camPos) * ( 1 - ((transmissionDamage factor [0.61, 0.60]) * (motorDamage factor [0.61, 0.60]) * (rotorDamage factor [0.51, 0.50]))) * (rotorSpeed factor [0.0, 0.001])";
}; };
class damageAlarmExt class damageAlarmExt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\heli_alarm_bluefor",0.22387211,1.0,20}; sound[]={"a3\sounds_f\vehicles\air\noises\heli_alarm_bluefor",0.22387211,1.0,20};
frequency=1; frequency=1;
volume="engineOn * camPos * ( 1 - ((transmissionDamage factor [0.61, 0.60]) * (motorDamage factor [0.61, 0.60]) * (rotorDamage factor [0.51, 0.50]))) * (rotorSpeed factor [0, 0.001])"; volume="engineOn * camPos * ( 1 - ((transmissionDamage factor [0.61, 0.60]) * (motorDamage factor [0.61, 0.60]) * (rotorDamage factor [0.51, 0.50]))) * (rotorSpeed factor [0, 0.001])";
}; };
class rotorLowAlarmInt class rotorLowAlarmInt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\heli_alarm_rotor_low",0.31622776,1.0}; sound[]={"a3\sounds_f\vehicles\air\noises\heli_alarm_rotor_low",0.31622776,1.0};
frequency=1; frequency=1;
volume="engineOn * (1 - camPos) * (rotorSpeed factor [0.9, 0.8999]) * (rotorSpeed factor [-0.5, 1]) * (speed factor [3, 3.01])"; volume="engineOn * (1 - camPos) * (rotorSpeed factor [0.9, 0.8999]) * (rotorSpeed factor [-0.5, 1]) * (speed factor [3, 3.01])";
}; };
class rotorLowAlarmExt class rotorLowAlarmExt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\heli_alarm_rotor_low",0.22387211,1.0,20}; sound[]={"a3\sounds_f\vehicles\air\noises\heli_alarm_rotor_low",0.22387211,1.0,20};
frequency=1; frequency=1;
volume="engineOn * camPos * (rotorSpeed factor [0.9, 0.8999]) * (rotorSpeed factor [-0.5, 1]) * (speed factor [3, 3.01])"; volume="engineOn * camPos * (rotorSpeed factor [0.9, 0.8999]) * (rotorSpeed factor [-0.5, 1]) * (speed factor [3, 3.01])";
}; };
class scrubLandInt class scrubLandInt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\scrubLandInt_open",1.0,1.0,100}; sound[]={"a3\sounds_f\vehicles\air\noises\scrublandint_open",1.0,1.0,100};
frequency=1; frequency=1;
volume="2 * (1-camPos) * (scrubLand factor[0.02, 0.05])"; volume="2 * (1-camPos) * (scrubLand factor[0.02, 0.05])";
}; };
class scrubLandExt class scrubLandExt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\scrubLandExt",1.0,1.0,100}; sound[]={"a3\sounds_f\vehicles\air\noises\scrublandext",1.0,1.0,100};
frequency=1; frequency=1;
volume="camPos * (scrubLand factor[0.02, 0.05])"; volume="camPos * (scrubLand factor[0.02, 0.05])";
}; };
class scrubBuildingInt class scrubBuildingInt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\scrubBuildingInt",1.0,1.0,100}; sound[]={"a3\sounds_f\vehicles\air\noises\scrubbuildingint",1.0,1.0,100};
frequency=1; frequency=1;
volume="2 * (1 - camPos) * (scrubBuilding factor[0.02, 0.05])"; volume="2 * (1 - camPos) * (scrubBuilding factor[0.02, 0.05])";
}; };
class scrubBuildingExt class scrubBuildingExt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\scrubBuildingExt",1.0,1.0,100}; sound[]={"a3\sounds_f\vehicles\air\noises\scrubbuildingext",1.0,1.0,100};
frequency=1; frequency=1;
volume="camPos * (scrubBuilding factor[0.02, 0.05])"; volume="camPos * (scrubBuilding factor[0.02, 0.05])";
}; };
class scrubTreeInt class scrubTreeInt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\scrubTreeExt",1.0,1.0,100}; sound[]={"a3\sounds_f\vehicles\air\noises\scrubtreeext",1.0,1.0,100};
frequency=1; frequency=1;
volume="(1 - camPos) * ((scrubTree) factor [0, 0.01])"; volume="(1 - camPos) * ((scrubTree) factor [0, 0.01])";
}; };
class scrubTreeExt class scrubTreeExt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\scrubTreeExt",1.0,1.0,100}; sound[]={"a3\sounds_f\vehicles\air\noises\scrubtreeext",1.0,1.0,100};
frequency=1; frequency=1;
volume="camPos * ((scrubTree) factor [0, 0.01])"; volume="camPos * ((scrubTree) factor [0, 0.01])";
}; };
class RainExt class RainExt
{ {
sound[]={"A3\Sounds_F\vehicles\noises\rain1_ext",1.0,1.0,100}; sound[]={"a3\sounds_f\vehicles\noises\rain1_ext",1.0,1.0,100};
frequency=1; frequency=1;
volume="camPos * (rain - rotorSpeed/2) * 2"; volume="campos * (rain - rotorspeed/2) * 2";
}; };
class RainInt class RainInt
{ {
sound[]={"A3\Sounds_F\vehicles\noises\rain1_int_open",1.0,1.0,100}; sound[]={"a3\sounds_f\vehicles\noises\rain1_int_open",1.0,1.0,100};
frequency=1; frequency=1;
volume="(1-camPos)*(rain - rotorSpeed/2)*2"; volume="(1-campos)*(rain - rotorspeed/2)*2";
}; };
class SlingLoadDownExt class SlingLoadDownExt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\SL_engineDownEXT",1.0,1.0,500}; sound[]={"a3\sounds_f\vehicles\air\noises\sl_enginedownext",1.0,1.0,500};
frequency=1; frequency=1;
volume="camPos*(slingLoadActive factor [0,-1])"; volume="camPos*(slingLoadActive factor [0,-1])";
}; };
class SlingLoadUpExt class SlingLoadUpExt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\SL_engineUpEXT",1.0,1.0,500}; sound[]={"a3\sounds_f\vehicles\air\noises\sl_engineupext",1.0,1.0,500};
frequency=1; frequency=1;
volume="camPos*(slingLoadActive factor [0,1])"; volume="camPos*(slingLoadActive factor [0,1])";
}; };
class SlingLoadDownInt class SlingLoadDownInt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\SL_engineDownINT",1.0,1.0,500}; sound[]={"a3\sounds_f\vehicles\air\noises\sl_enginedownint",1.0,1.0,500};
frequency=1; frequency=1;
volume="(1-camPos)*(slingLoadActive factor [0,-1])"; volume="(1-camPos)*(slingLoadActive factor [0,-1])";
}; };
class SlingLoadUpInt class SlingLoadUpInt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\SL_engineUpINT",1.0,1.0,500}; sound[]={"a3\sounds_f\vehicles\air\noises\sl_engineupint",1.0,1.0,500};
frequency=1; frequency=1;
volume="(1-camPos)*(slingLoadActive factor [0,1])"; volume="(1-camPos)*(slingLoadActive factor [0,1])";
}; };
class WindInt class WindInt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\wind_open_int",1.1220185,1.0,50}; sound[]={"a3\sounds_f\vehicles\air\noises\wind_open_int",1.1220185,1.0,50};
frequency=1; frequency=1;
volume="(1-camPos)*(speed factor[5, 50])*(speed factor[5, 50])"; volume="(1-camPos)*(speed factor[5, 50])*(speed factor[5, 50])";
}; };
class WindLateralMovementInt class WindLateralMovementInt
{ {
sound[]={"A3\Sounds_F\vehicles\air\noises\wind_lateral_open_int",1.9952624,1.0,50}; sound[]={"a3\sounds_f\vehicles\air\noises\wind_lateral_open_int",1.9952624,1.0,50};
frequency=1; frequency=1;
volume="(1-camPos)*lateralMovement*((speed factor [5,40]) + (speed factor [-5,-40]))"; volume="(1-camPos)*lateralMovement*((speed factor [5,40]) + (speed factor [-5,-40]))";
}; };
class GStress class GStress
{ {
sound[]={"A3\Sounds_F\vehicles\noises\vehicle_stress2b",0.31622776,1.0,50}; sound[]={"a3\sounds_f\vehicles\noises\vehicle_stress2b",0.31622776,1.0,50};
frequency=1; frequency=1;
volume="engineOn * (1-camPos) * ((gmeterZ factor[1.5, 2.5]) + (gmeterZ factor[0.5, -0.5]))"; volume="engineOn * (1-camPos) * ((gmeterZ factor[1.5, 2.5]) + (gmeterZ factor[0.5, -0.5]))";
}; };
}; };
class Waternoise_ext class Waternoise_ext
{ {
sound[]={"A3\Sounds_F\vehicles\noises\air_driving_in_water",0.70794576,1,300}; sound[]={"a3\sounds_f\vehicles\noises\air_driving_in_water",0.70794576,1,300};
frequency="1"; frequency="1";
volume="(speed factor[0, 5]) * water * camPos + (speed factor[-0.1, -5]) * water * camPos"; volume="(speed factor[0, 5]) * water * camPos + (speed factor[-0.1, -5]) * water * camPos";
}; };
class Waternoise_int class Waternoise_int
{ {
sound[]={"A3\Sounds_F\vehicles\noises\soft_driving_in_water_int",0.56234133,1,100}; sound[]={"a3\sounds_f\vehicles\noises\soft_driving_in_water_int",0.56234133,1,100};
frequency="1"; frequency="1";
volume="(speed factor[0, 5]) * water * (1-camPos) + (speed factor[-0.1, -5]) * water * (1-camPos)"; volume="(speed factor[0, 5]) * water * (1-camPos) + (speed factor[-0.1, -5]) * water * (1-camPos)";
}; };
@@ -1,6 +1,6 @@
class StageTI class StageTI
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Pantera\data\camo1\camo1_ti_ca.paa"; texture="braf\braf_air\braf_helicopters\braf_pantera\data\camo1\camo1_ti_ca.paa";
}; };
ambient[]={0.75,0.75,0.75,1.0}; ambient[]={0.75,0.75,0.75,1.0};
diffuse[]={0.75,0.75,0.75,1.0}; diffuse[]={0.75,0.75,0.75,1.0};
@@ -12,7 +12,7 @@ PixelShaderID="Super";
VertexShaderID="Super"; VertexShaderID="Super";
class Stage1 class Stage1
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Pantera\data\camo1\camo1_nohq.paa"; texture="braf\braf_air\braf_helicopters\braf_pantera\data\camo1\camo1_nohq.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage2 class Stage2
@@ -34,12 +34,12 @@ class Stage3
}; };
class Stage4 class Stage4
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Pantera\data\camo1\camo1_as.paa"; texture="braf\braf_air\braf_helicopters\braf_pantera\data\camo1\camo1_as.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage5 class Stage5
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Pantera\data\camo1\camo1_smdi.paa"; texture="braf\braf_air\braf_helicopters\braf_pantera\data\camo1\camo1_smdi.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage6 class Stage6
@@ -1,6 +1,6 @@
class StageTI class StageTI
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Pantera\data\camo1\camo1_ti_ca.paa"; texture="braf\braf_air\braf_helicopters\braf_pantera\data\camo1\camo1_ti_ca.paa";
}; };
ambient[]={1,1,1,1}; ambient[]={1,1,1,1};
diffuse[]={0.5,0.5,0.5,1}; diffuse[]={0.5,0.5,0.5,1};
@@ -12,7 +12,7 @@ PixelShaderID="Super";
VertexShaderID="Super"; VertexShaderID="Super";
class Stage1 class Stage1
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Pantera\data\camo1\camo1_nohq.paa"; texture="braf\braf_air\braf_helicopters\braf_pantera\data\camo1\camo1_nohq.paa";
uvSource="tex"; uvSource="tex";
class uvTransform class uvTransform
{ {
@@ -48,7 +48,7 @@ class Stage3
}; };
class Stage4 class Stage4
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Pantera\data\camo1\camo1_as.paa"; texture="braf\braf_air\braf_helicopters\braf_pantera\data\camo1\camo1_as.paa";
uvSource="tex"; uvSource="tex";
class uvTransform class uvTransform
{ {
@@ -60,7 +60,7 @@ class Stage4
}; };
class Stage5 class Stage5
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Pantera\data\camo1\camo1_smdi.paa"; texture="braf\braf_air\braf_helicopters\braf_pantera\data\camo1\camo1_smdi.paa";
uvSource="tex"; uvSource="tex";
class uvTransform class uvTransform
{ {
@@ -1,6 +1,6 @@
class StageTI class StageTI
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Pantera\data\camo1\camo1_ti_ca.paa"; texture="braf\braf_air\braf_helicopters\braf_pantera\data\camo1\camo1_ti_ca.paa";
}; };
ambient[]={0.75,0.75,0.75,1.0}; ambient[]={0.75,0.75,0.75,1.0};
diffuse[]={0.75,0.75,0.75,1.0}; diffuse[]={0.75,0.75,0.75,1.0};
@@ -12,7 +12,7 @@ PixelShaderID="Super";
VertexShaderID="Super"; VertexShaderID="Super";
class Stage1 class Stage1
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Pantera\data\camo1\camo1_nohq.paa"; texture="braf\braf_air\braf_helicopters\braf_pantera\data\camo1\camo1_nohq.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage2 class Stage2
@@ -34,12 +34,12 @@ class Stage3
}; };
class Stage4 class Stage4
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Pantera\data\camo1\camo1_as.paa"; texture="braf\braf_air\braf_helicopters\braf_pantera\data\camo1\camo1_as.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage5 class Stage5
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Pantera\data\camo1\camo1_smdi.paa"; texture="braf\braf_air\braf_helicopters\braf_pantera\data\camo1\camo1_smdi.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage6 class Stage6
@@ -1,6 +1,6 @@
class StageTI class StageTI
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Pantera\data\camo1\camo1_ti_ca.paa"; texture="braf\braf_air\braf_helicopters\braf_pantera\data\camo1\camo1_ti_ca.paa";
}; };
ambient[]={1,1,1,1}; ambient[]={1,1,1,1};
diffuse[]={0.5,0.5,0.5,1}; diffuse[]={0.5,0.5,0.5,1};
@@ -12,7 +12,7 @@ PixelShaderID="Super";
VertexShaderID="Super"; VertexShaderID="Super";
class Stage1 class Stage1
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Pantera\data\camo1\camo1_nohq.paa"; texture="braf\braf_air\braf_helicopters\braf_pantera\data\camo1\camo1_nohq.paa";
uvSource="tex"; uvSource="tex";
class uvTransform class uvTransform
{ {
@@ -48,7 +48,7 @@ class Stage3
}; };
class Stage4 class Stage4
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Pantera\data\camo1\camo1_as.paa"; texture="braf\braf_air\braf_helicopters\braf_pantera\data\camo1\camo1_as.paa";
uvSource="tex"; uvSource="tex";
class uvTransform class uvTransform
{ {
@@ -60,7 +60,7 @@ class Stage4
}; };
class Stage5 class Stage5
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Pantera\data\camo1\camo1_smdi.paa"; texture="braf\braf_air\braf_helicopters\braf_pantera\data\camo1\camo1_smdi.paa";
uvSource="tex"; uvSource="tex";
class uvTransform class uvTransform
{ {
@@ -1,6 +1,6 @@
class StageTI class StageTI
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Pantera\data\camo2\camo2_ti_ca.paa"; texture="braf\braf_air\braf_helicopters\braf_pantera\data\camo2\camo2_ti_ca.paa";
}; };
ambient[]={0.75,0.75,0.75,1.0}; ambient[]={0.75,0.75,0.75,1.0};
diffuse[]={0.75,0.75,0.75,1.0}; diffuse[]={0.75,0.75,0.75,1.0};
@@ -12,7 +12,7 @@ PixelShaderID="Super";
VertexShaderID="Super"; VertexShaderID="Super";
class Stage1 class Stage1
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Pantera\data\camo2\camo2_nohq.paa"; texture="braf\braf_air\braf_helicopters\braf_pantera\data\camo2\camo2_nohq.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage2 class Stage2
@@ -34,12 +34,12 @@ class Stage3
}; };
class Stage4 class Stage4
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Pantera\data\camo2\camo2_as.paa"; texture="braf\braf_air\braf_helicopters\braf_pantera\data\camo2\camo2_as.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage5 class Stage5
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Pantera\data\camo2\camo2_smdi.paa"; texture="braf\braf_air\braf_helicopters\braf_pantera\data\camo2\camo2_smdi.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage6 class Stage6
@@ -1,6 +1,6 @@
class StageTI class StageTI
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Pantera\data\camo2\camo2_ti_ca.paa"; texture="braf\braf_air\braf_helicopters\braf_pantera\data\camo2\camo2_ti_ca.paa";
}; };
ambient[]={1,1,1,1}; ambient[]={1,1,1,1};
diffuse[]={0.5,0.5,0.5,1}; diffuse[]={0.5,0.5,0.5,1};
@@ -12,7 +12,7 @@ PixelShaderID="Super";
VertexShaderID="Super"; VertexShaderID="Super";
class Stage1 class Stage1
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Pantera\data\camo2\camo2_nohq.paa"; texture="braf\braf_air\braf_helicopters\braf_pantera\data\camo2\camo2_nohq.paa";
uvSource="tex"; uvSource="tex";
class uvTransform class uvTransform
{ {
@@ -48,7 +48,7 @@ class Stage3
}; };
class Stage4 class Stage4
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Pantera\data\camo2\camo2_as.paa"; texture="braf\braf_air\braf_helicopters\braf_pantera\data\camo2\camo2_as.paa";
uvSource="tex"; uvSource="tex";
class uvTransform class uvTransform
{ {
@@ -60,7 +60,7 @@ class Stage4
}; };
class Stage5 class Stage5
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Pantera\data\camo2\camo2_smdi.paa"; texture="braf\braf_air\braf_helicopters\braf_pantera\data\camo2\camo2_smdi.paa";
uvSource="tex"; uvSource="tex";
class uvTransform class uvTransform
{ {
@@ -1,6 +1,6 @@
class StageTI class StageTI
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Pantera\data\camo3\camo3_ti_ca.paa"; texture="braf\braf_air\braf_helicopters\braf_pantera\data\camo3\camo3_ti_ca.paa";
}; };
ambient[]={1,1,1,1}; ambient[]={1,1,1,1};
diffuse[]={1,1,1,1}; diffuse[]={1,1,1,1};
@@ -12,7 +12,7 @@ PixelShaderID="Super";
VertexShaderID="Super"; VertexShaderID="Super";
class Stage1 class Stage1
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Pantera\data\camo3\camo3_nohq.paa"; texture="braf\braf_air\braf_helicopters\braf_pantera\data\camo3\camo3_nohq.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage2 class Stage2
@@ -34,12 +34,12 @@ class Stage3
}; };
class Stage4 class Stage4
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Pantera\data\camo3\camo3_as.paa"; texture="braf\braf_air\braf_helicopters\braf_pantera\data\camo3\camo3_as.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage5 class Stage5
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Pantera\data\camo3\camo3_smdi.paa"; texture="braf\braf_air\braf_helicopters\braf_pantera\data\camo3\camo3_smdi.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage6 class Stage6
@@ -1,6 +1,6 @@
class StageTI class StageTI
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Pantera\data\camo3\camo3_ti_ca.paa"; texture="braf\braf_air\braf_helicopters\braf_pantera\data\camo3\camo3_ti_ca.paa";
}; };
ambient[]={1,1,1,1}; ambient[]={1,1,1,1};
diffuse[]={0.5,0.5,0.5,1}; diffuse[]={0.5,0.5,0.5,1};
@@ -12,7 +12,7 @@ PixelShaderID="Super";
VertexShaderID="Super"; VertexShaderID="Super";
class Stage1 class Stage1
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Pantera\data\camo3\camo3_nohq.paa"; texture="braf\braf_air\braf_helicopters\braf_pantera\data\camo3\camo3_nohq.paa";
uvSource="tex"; uvSource="tex";
class uvTransform class uvTransform
{ {
@@ -48,7 +48,7 @@ class Stage3
}; };
class Stage4 class Stage4
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Pantera\data\camo3\camo3_as.paa"; texture="braf\braf_air\braf_helicopters\braf_pantera\data\camo3\camo3_as.paa";
uvSource="tex"; uvSource="tex";
class uvTransform class uvTransform
{ {
@@ -60,7 +60,7 @@ class Stage4
}; };
class Stage5 class Stage5
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Pantera\data\camo3\camo3_smdi.paa"; texture="braf\braf_air\braf_helicopters\braf_pantera\data\camo3\camo3_smdi.paa";
uvSource="tex"; uvSource="tex";
class uvTransform class uvTransform
{ {
@@ -1,6 +1,6 @@
class StageTI class StageTI
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Pantera\data\camo4\camo4_ti_ca.paa"; texture="braf\braf_air\braf_helicopters\braf_pantera\data\camo4\camo4_ti_ca.paa";
}; };
ambient[]={1,1,1,1}; ambient[]={1,1,1,1};
diffuse[]={1,1,1,1}; diffuse[]={1,1,1,1};
@@ -12,7 +12,7 @@ PixelShaderID="Super";
VertexShaderID="Super"; VertexShaderID="Super";
class Stage1 class Stage1
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Pantera\data\camo4\camo4_nohq.paa"; texture="braf\braf_air\braf_helicopters\braf_pantera\data\camo4\camo4_nohq.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage2 class Stage2
@@ -34,12 +34,12 @@ class Stage3
}; };
class Stage4 class Stage4
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Pantera\data\camo4\camo4_as.paa"; texture="braf\braf_air\braf_helicopters\braf_pantera\data\camo4\camo4_as.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage5 class Stage5
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Pantera\data\camo4\camo4_smdi.paa"; texture="braf\braf_air\braf_helicopters\braf_pantera\data\camo4\camo4_smdi.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage6 class Stage6
@@ -1,6 +1,6 @@
class StageTI class StageTI
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Pantera\data\EFS\EFS_ti_ca.paa"; texture="braf\braf_air\braf_helicopters\braf_pantera\data\efs\efs_ti_ca.paa";
}; };
ambient[]={0.75,0.75,0.75,1.0}; ambient[]={0.75,0.75,0.75,1.0};
diffuse[]={0.75,0.75,0.75,1.0}; diffuse[]={0.75,0.75,0.75,1.0};
@@ -12,7 +12,7 @@ PixelShaderID="Super";
VertexShaderID="Super"; VertexShaderID="Super";
class Stage1 class Stage1
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Pantera\data\EFS\EFS_nohq.paa"; texture="braf\braf_air\braf_helicopters\braf_pantera\data\efs\efs_nohq.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage2 class Stage2
@@ -34,12 +34,12 @@ class Stage3
}; };
class Stage4 class Stage4
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Pantera\data\EFS\EFS_as.paa"; texture="braf\braf_air\braf_helicopters\braf_pantera\data\efs\efs_as.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage5 class Stage5
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Pantera\data\EFS\EFS_smdi.paa"; texture="braf\braf_air\braf_helicopters\braf_pantera\data\efs\efs_smdi.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage6 class Stage6
@@ -10,7 +10,7 @@ PixelShaderID = "Super";
VertexShaderID = "Super"; VertexShaderID = "Super";
class Stage1 class Stage1
{ {
texture = "braf\braf_air\Braf_Helicopters\Braf_Pantera\data\ext_nohq.paa"; texture = "braf\braf_air\braf_helicopters\braf_pantera\data\ext_nohq.paa";
uvSource = "tex"; uvSource = "tex";
class uvTransform class uvTransform
{ {
@@ -46,7 +46,7 @@ class Stage3
}; };
class Stage4 class Stage4
{ {
texture = "braf\braf_air\Braf_Helicopters\Braf_Pantera\data\ext_as.paa"; texture = "braf\braf_air\braf_helicopters\braf_pantera\data\ext_as.paa";
uvSource = "tex"; uvSource = "tex";
class uvTransform class uvTransform
{ {
@@ -58,7 +58,7 @@ class Stage4
}; };
class Stage5 class Stage5
{ {
texture = "braf\braf_air\Braf_Helicopters\Braf_Pantera\data\ext_smdi.paa"; texture = "braf\braf_air\braf_helicopters\braf_pantera\data\ext_smdi.paa";
uvSource = "tex"; uvSource = "tex";
class uvTransform class uvTransform
{ {
@@ -80,5 +80,5 @@ class Stage7
}; };
class StageTI class StageTI
{ {
texture = "braf\braf_air\Braf_Helicopters\Braf_Pantera\data\Ext_ti_ca.paa"; texture = "braf\braf_air\braf_helicopters\braf_pantera\data\ext_ti_ca.paa";
}; };
@@ -1,6 +1,6 @@
class StageTI class StageTI
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Pantera\data\Sticks\Sticks_ti_ca.paa"; texture="braf\braf_air\braf_helicopters\braf_pantera\data\sticks\sticks_ti_ca.paa";
}; };
ambient[]={0.75,0.75,0.75,1.0}; ambient[]={0.75,0.75,0.75,1.0};
diffuse[]={0.75,0.75,0.75,1.0}; diffuse[]={0.75,0.75,0.75,1.0};
@@ -12,7 +12,7 @@ PixelShaderID="Super";
VertexShaderID="Super"; VertexShaderID="Super";
class Stage1 class Stage1
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Pantera\data\Sticks\Sticks_nohq.paa"; texture="braf\braf_air\braf_helicopters\braf_pantera\data\sticks\sticks_nohq.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage2 class Stage2
@@ -34,12 +34,12 @@ class Stage3
}; };
class Stage4 class Stage4
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Pantera\data\Sticks\Sticks_as.paa"; texture="braf\braf_air\braf_helicopters\braf_pantera\data\sticks\sticks_as.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage5 class Stage5
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Pantera\data\Sticks\Sticks_smdi.paa"; texture="braf\braf_air\braf_helicopters\braf_pantera\data\sticks\sticks_smdi.paa";
uvSource="tex"; uvSource="tex";
}; };
class Stage6 class Stage6
@@ -10,7 +10,7 @@ PixelShaderID="Super";
VertexShaderID="Super"; VertexShaderID="Super";
class Stage1 class Stage1
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Pantera\data\camo1\camo1_nohq.paa"; texture="braf\braf_air\braf_helicopters\braf_pantera\data\camo1\camo1_nohq.paa";
uvSource="tex"; uvSource="tex";
class uvTransform class uvTransform
{ {
@@ -46,7 +46,7 @@ class Stage3
}; };
class Stage4 class Stage4
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Pantera\data\camo1\camo1_as.paa"; texture="braf\braf_air\braf_helicopters\braf_pantera\data\camo1\camo1_as.paa";
uvSource="tex"; uvSource="tex";
class uvTransform class uvTransform
{ {
@@ -58,7 +58,7 @@ class Stage4
}; };
class Stage5 class Stage5
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Pantera\data\camo1\camo1_smdi.paa"; texture="braf\braf_air\braf_helicopters\braf_pantera\data\camo1\camo1_smdi.paa";
uvSource="tex"; uvSource="tex";
class uvTransform class uvTransform
{ {
@@ -75,10 +75,10 @@ class Stage6
}; };
class Stage7 class Stage7
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Pantera\data\env_land_co.paa"; texture="a3\data_f\env_land_co.paa";
uvSource="none"; uvSource="none";
}; };
class StageTI class StageTI
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Pantera\data\camo1\camo1_ti_ca.paa"; texture="braf\braf_air\braf_helicopters\braf_pantera\data\camo1\camo1_ti_ca.paa";
}; };
@@ -8,7 +8,7 @@ PixelShaderID="Super";
VertexShaderID="Super"; VertexShaderID="Super";
class Stage1 class Stage1
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Pantera\data\Camo2\camo2_nohq.paa"; texture="braf\braf_air\braf_helicopters\braf_pantera\data\camo2\camo2_nohq.paa";
uvSource="tex"; uvSource="tex";
class uvTransform class uvTransform
{ {
@@ -44,7 +44,7 @@ class Stage3
}; };
class Stage4 class Stage4
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Pantera\data\Camo2\camo2_as.paa"; texture="braf\braf_air\braf_helicopters\braf_pantera\data\camo2\camo2_as.paa";
uvSource="tex"; uvSource="tex";
class uvTransform class uvTransform
{ {
@@ -56,7 +56,7 @@ class Stage4
}; };
class Stage5 class Stage5
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Pantera\data\Camo2\camo2_smdi.paa"; texture="braf\braf_air\braf_helicopters\braf_pantera\data\camo2\camo2_smdi.paa";
uvSource="tex"; uvSource="tex";
class uvTransform class uvTransform
{ {
@@ -73,10 +73,10 @@ class Stage6
}; };
class Stage7 class Stage7
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Pantera\data\env_land_co.paa"; texture="a3\data_f\env_land_co.paa";
uvSource="none"; uvSource="none";
}; };
class StageTI class StageTI
{ {
texture="braf\braf_air\Braf_Helicopters\Braf_Pantera\data\Camo2\camo2_ti_ca.paa"; texture="braf\braf_air\braf_helicopters\braf_pantera\data\camo2\camo2_ti_ca.paa";
}; };
@@ -81,7 +81,7 @@ class CfgSkeletons
}; };
class CfgModels class CfgModels
{ {
class BRAF_Pantera class braf_pantera
{ {
htMin=60; htMin=60;
htMax=1800; htMax=1800;
@@ -450,12 +450,12 @@
<CSComponent type="GenericControlSystem"> <CSComponent type="GenericControlSystem">
<Variables> <Variables>
<Variable alias="latCyclic" member="roll" name="CSComponent_1/ControlOutput/pitchRollControl"/> <Variable alias="latCyclic" member="roll" name="cscomponent_1/controloutput/pitchrollcontrol"/>
<Variable alias="lonCyclic" member="pitch" name="CSComponent_1/ControlOutput/pitchRollControl"/> <Variable alias="lonCyclic" member="pitch" name="cscomponent_1/controloutput/pitchrollcontrol"/>
<Variable alias="pedals" name="CSComponent_1/ControlOutput/pedals"/> <Variable alias="pedals" name="cscomponent_1/controloutput/pedals"/>
<Variable alias="collective" name="CSComponent_1/ControlOutput/collective"/> <Variable alias="collective" name="cscomponent_1/controloutput/collective"/>
<Variable alias="rotorBrake" name="CSComponent_1/ControlOutput/rotorBrake" /> <Variable alias="rotorBrake" name="cscomponent_1/controloutput/rotorbrake" />
<Variable alias="pitchRateRad" member="X" name="angularVelocityBCS"/> <Variable alias="pitchRateRad" member="X" name="angularVelocityBCS"/>
<Variable alias="rollRateRad" member="Y" name="angularVelocityBCS"/> <Variable alias="rollRateRad" member="Y" name="angularVelocityBCS"/>
@@ -464,17 +464,17 @@
<Variable alias="p" member="P" name="attitudeHPR"/> <Variable alias="p" member="P" name="attitudeHPR"/>
<Variable alias="r" member="R" name="attitudeHPR"/> <Variable alias="r" member="R" name="attitudeHPR"/>
<Variable alias="A1m" name="MainRotor/A1"/> <Variable alias="A1m" name="mainrotor/a1"/>
<Variable alias="B1m" name="MainRotor/B1"/> <Variable alias="B1m" name="mainrotor/b1"/>
<Variable alias="Th0m" name="MainRotor/theta0"/> <Variable alias="Th0m" name="mainrotor/theta0"/>
<Variable alias="mainRotorBrake" name="MainRotor/rotorBrakeInput" /> <Variable alias="mainRotorBrake" name="mainrotor/rotorbrakeinput" />
<Variable alias="A1t" name="TailRotor/A1"/> <Variable alias="A1t" name="tailrotor/a1"/>
<Variable alias="B1t" name="TailRotor/B1"/> <Variable alias="B1t" name="tailrotor/b1"/>
<Variable alias="Th0t" name="TailRotor/theta0"/> <Variable alias="Th0t" name="tailrotor/theta0"/>
<Variable alias="profondeur" name="HorizontalStabilizer/controlSurfaceDeflection" /> <Variable alias="profondeur" name="horizontalstabilizer/controlsurfacedeflection" />
</Variables> </Variables>
+5 -5
View File
@@ -17,7 +17,7 @@ class CfgMovesMaleSdr: CfgMovesBasic
class Crew; class Crew;
class braf_fennec_pilot: Crew class braf_fennec_pilot: Crew
{ {
file="\braf\braf_air\Braf_air_anims\braf_fennec_pilot"; file="\braf\braf_air\braf_air_anims\braf_fennec_pilot";
interpolateTo[]= {"",1}; interpolateTo[]= {"",1};
leftHandIKCurve[]={1}; leftHandIKCurve[]={1};
rightHandIKCurve[]={1}; rightHandIKCurve[]={1};
@@ -25,19 +25,19 @@ class CfgMovesMaleSdr: CfgMovesBasic
}; };
class braf_fennec_copilot: braf_fennec_pilot class braf_fennec_copilot: braf_fennec_pilot
{ {
file="\braf\braf_air\Braf_air_anims\braf_fennec_pilot"; file="\braf\braf_air\braf_air_anims\braf_fennec_pilot";
}; };
class braf_fennec_cargo: braf_fennec_pilot class braf_fennec_cargo: braf_fennec_pilot
{ {
file="\braf\braf_air\Braf_air_anims\braf_fennec_cargo"; file="\braf\braf_air\braf_air_anims\braf_fennec_cargo";
}; };
class braf_Pantera_pilot: braf_fennec_pilot class braf_Pantera_pilot: braf_fennec_pilot
{ {
file="\braf\braf_air\Braf_air_anims\braf_Pantera_pilot"; file="\braf\braf_air\braf_air_anims\braf_pantera_pilot";
}; };
class braf_Pantera_cargo: braf_fennec_pilot class braf_Pantera_cargo: braf_fennec_pilot
{ {
file="\braf\braf_air\Braf_air_anims\braf_Pantera_cargo"; file="\braf\braf_air\braf_air_anims\braf_pantera_cargo";
}; };
}; };
}; };
+1 -1
View File
@@ -123,7 +123,7 @@ class CfgSkeletons
"RightToeBase","RightFoot" "RightToeBase","RightFoot"
}; };
// location of pivot points (local axes) for hierarchical animation // location of pivot points (local axes) for hierarchical animation
pivotsModel="A3\anims_f\data\skeleton\SkeletonPivots.p3d"; pivotsModel="a3\anims_f\data\skeleton\skeletonpivots.p3d";
}; };
}; };
+1 -1
View File
@@ -123,7 +123,7 @@ class CfgSkeletons
"RightToeBase","RightFoot" "RightToeBase","RightFoot"
}; };
// location of pivot points (local axes) for hierarchical animation // location of pivot points (local axes) for hierarchical animation
pivotsModel="A3\anims_f\data\skeleton\SkeletonPivots.p3d"; pivotsModel="a3\anims_f\data\skeleton\skeletonpivots.p3d";
}; };
}; };
class CfgModels class CfgModels
+57 -54
View File
@@ -1,65 +1,68 @@
class CfgPatches { class CfgPatches {
class BRAF_Air { class braf_air {
author = "BRAF Team"; author = "BRAF TEAM";
addonRootClass = "A3_Air_F"; addonRootClass = "A3_Air_F";
requiredAddons[] = { requiredAddons[] = {
"A3_Air_F", "A3_Air_F",
"A3_Data_F", "A3_Data_F",
"A3_Armor_F_Beta_APC_Tracked_01", "A3_Armor_F_Beta_APC_Tracked_01",
"A3_Weapons_F", "A3_Weapons_F",
"braf_main",
"braf_static",
"braf_naval_weapons",
"braf_characters_army", "braf_characters_army",
"BRAF_Insignia", "braf_characters_aviation",
"BRAF_Soft", "braf_insignia",
"BRAF_Optics_Air", "braf_soft",
"Braf_SAR", "braf_optics_air",
"BRAF_Sounds", "braf_sar",
"braf_sounds",
}; };
requiredVersion = 0.1; requiredVersion = 0.1;
units[] = { units[] = {
"BRAF_Fennec_Unarmed", "braf_Fennec_unarmed",
"BRAF_Fennec_Unarmed_FAB", "braf_Fennec_unarmed_FAB",
"BRAF_Fennec_Unarmed_MB", "braf_Fennec_unarmed_MB",
"BRAF_Fennec_Resort", "braf_Fennec_resort",
"BRAF_Fennec_80s", "braf_Fennec_80s",
"BRAF_Fennec_Armed", "braf_Fennec_armed",
"BRAF_Fennec_Armed_FAB", "braf_Fennec_armed_FAB",
"BRAF_Fennec_Armed_MB", "braf_Fennec_armed_MB",
"BRAF_Fennec_Cargo", "braf_Fennec_cargo",
"BRAF_Fennec_Cargo_FAB", "braf_Fennec_cargo_FAB",
"BRAF_Fennec_Cargo_MB", "braf_Fennec_cargo_MB",
"BRAF_Fennec_SAR", "braf_Fennec_SAR",
"BRAF_Fennec_SAR_FAB", "braf_Fennec_SAR_FAB",
"BRAF_Fennec_SAR_MB", "braf_Fennec_SAR_MB",
"BRAF_Pantera_K2", "braf_Pantera_K2_2BAvEx",
"BRAF_Pantera_K2_2BAvEx", "braf_Pantera_K2_FFV_2BAvEx",
"BRAF_Pantera_K2_FFV_2BAvEx", "braf_Pantera_K2_3BAvEx",
"BRAF_Pantera_K2_3BAvEx", "braf_Pantera_K2_FFV_3BAvEx",
"BRAF_Pantera_K2_FFV_3BAvEx", "braf_Pantera_K2_4BAvEx",
"BRAF_Pantera_K2_4BAvEx", "braf_Pantera_K2_FFV_4BAvEx",
"BRAF_Pantera_K2_FFV_4BAvEx", "braf_Pantera_K2_80s",
"BRAF_Pantera_K2_80s", "braf_Pantera_K2_FFV_80s",
"BRAF_Pantera_K2_FFV_80s", "braf_Pantera_K2_SAR",
"BRAF_Pantera_K2_SAR", "braf_Pantera_K2_Offshore",
"BRAF_Pantera_K2_Offshore", "braf_Pantera_K2_Black",
"BRAF_Pantera_K2_Black", "braf_Pantera_K2_Red",
"BRAF_Pantera_K2_Red", "braf_Pantera_K2_Yellow",
"BRAF_Pantera_K2_Yellow", "braf_Pantera_K2_Silver",
"BRAF_Pantera_K2_Silver", "braf_Caracal_1",
"BRAF_Caracal_1", "braf_Caracal_2",
"BRAF_Caracal_2", "braf_Caracal_3",
"BRAF_Caracal_3", "braf_Caracal_4",
"BRAF_Caracal_4", "braf_Caracal_5",
"BRAF_Caracal_5", "braf_Caracal_6",
"BRAF_Caracal_6", "braf_Caracal_7",
//"BRAF_Caracal_6a", "braf_Caracal_8",
"BRAF_Caracal_7", "braf_Caracal_9",
"BRAF_Caracal_8", "braf_Caracal_10"
"BRAF_Caracal_9"
}; };
weapons[] = {}; weapons[] = {};
}; };
}; };
#include "BRAF_air_anims\BRAF_anims.hpp" #include "braf_air_anims\braf_anims.hpp"
class WeaponCloudsMGun; class WeaponCloudsMGun;
class DefaultEventHandlers; class DefaultEventHandlers;
class SensorTemplatePassiveRadar; class SensorTemplatePassiveRadar;
@@ -118,29 +121,29 @@ class CfgVehicles {
class Components; class Components;
class EventHandlers; class EventHandlers;
}; };
#include "BRAF_Helicopters\BRAF_Caracal\Caracal_base.hpp" #include "braf_helicopters\braf_caracal\caracal_base.hpp"
#include "BRAF_Helicopters\BRAF_Fennec\Fennec_base.hpp" #include "braf_helicopters\braf_fennec\fennec_base.hpp"
#include "BRAF_Helicopters\BRAF_Pantera\Pantera_base.hpp" #include "braf_helicopters\braf_pantera\pantera_base.hpp"
// #include "BRAF_Helicopters\BRAF_BlackHawk\BlackHawk_base.hpp" // #include "braf_helicopters\braf_blackhawk\blackhawk_base.hpp"
}; };
class CfgMagazines { class CfgMagazines {
class 100Rnd_127x99_mag_Tracer_Red; class 100Rnd_127x99_mag_Tracer_Red;
class PylonRack_7Rnd_Rocket_04_AP_F; class PylonRack_7Rnd_Rocket_04_AP_F;
class PylonRack_7Rnd_Rocket_04_HE_F; class PylonRack_7Rnd_Rocket_04_HE_F;
#include "BRAF_air_weap\Magazines.hpp" #include "braf_air_weap\magazines.hpp"
}; };
class CfgWeapons { class CfgWeapons {
class MGun; class MGun;
class HMG_127; class HMG_127;
class missiles_DAR; class missiles_DAR;
#include "BRAF_air_weap\Weapons.hpp" #include "braf_air_weap\weapons.hpp"
}; };
class CfgAmmo { class CfgAmmo {
class B_127x99_Ball; class B_127x99_Ball;
class Rocket_04_AP_F; class Rocket_04_AP_F;
class Rocket_04_HE_F; class Rocket_04_HE_F;
#include "BRAF_air_weap\ammo.hpp" #include "braf_air_weap\ammo.hpp"
}; };
+59 -59
View File
@@ -6,11 +6,11 @@ class CfgMagazines
class PylonRack_7Rnd_Rocket_04_HE_F; class PylonRack_7Rnd_Rocket_04_HE_F;
class magazine_Missile_BIM9X_x1; class magazine_Missile_BIM9X_x1;
class PylonMissile_1Rnd_BombCluster_01_F; class PylonMissile_1Rnd_BombCluster_01_F;
class BRAF_A29_500Rnd_50_cal_M: 100Rnd_127x99_mag_Tracer_Red class braf_a29_500rnd_50_cal_m: 100Rnd_127x99_mag_Tracer_Red
{ {
displayName="500Rnd 127x99 mm Tracer Red"; displayName="500Rnd 127x99 mm Tracer Red";
displayNameShort="500Rnd .50 Tracer"; displayNameShort="500Rnd .50 Tracer";
ammo="Braf_B_127x99_Ball_Red_Tracer_Splash"; ammo="braf_b_127x99_ball_red_tracer_splash";
lastRoundsTracer=10; lastRoundsTracer=10;
tracersEvery=5; tracersEvery=5;
count=500; count=500;
@@ -22,22 +22,22 @@ class CfgMagazines
ammo=""; ammo="";
count=0; count=0;
}; };
class BRAF_Pylon_EFT: VehicleMagazine class braf_pylon_eft: VehicleMagazine
{ {
displayName="External Fuel Tank 320L"; displayName="External Fuel Tank 320L";
scope=1; scope=1;
initSpeed=0; initSpeed=0;
ammo="braf_eft_f"; ammo="braf_eft_f";
model="\A3\Weapons_F\DynamicLoadout\PylonMissile_1x_Bomb_02_F.p3d"; model="\a3\weapons_f\dynamicloadout\pylonmissile_1x_bomb_02_f.p3d";
count=1; count=1;
hardpoints[]= hardpoints[]=
{ {
"BRAF_EFT_PYLON" "BRAF_EFT_PYLON"
}; };
pylonWeapon="BRAF_EFT_weapon"; pylonWeapon="braf_eft_weapon";
class mfdElements class mfdElements
{ {
class BRAF_SMS class braf_sms
{ {
class Bones class Bones
{ {
@@ -226,7 +226,7 @@ class CfgMagazines
}; };
class Selected: Default class Selected: Default
{ {
condition="(PylonSelected + PylonAmmoRelative)/2"; condition="(pylonselected + pylonammorelative)/2";
alpha=1; alpha=1;
class Shape: Shape class Shape: Shape
{ {
@@ -372,23 +372,23 @@ class CfgMagazines
}; };
}; };
}; };
class BRAF_Pylon_Mk82: VehicleMagazine // class braf_pylon_mk82: VehicleMagazine //
{ {
displayName="Mk.82 LDGP Bomb"; displayName="Mk.82 LDGP Bomb";
displayNameShort="Mk.82 LGB"; displayNameShort="Mk.82 LGB";
scope=1; scope=1;
initSpeed=0; initSpeed=0;
ammo="braf_Mk82_F"; ammo="braf_Mk82_F";
model="\A3\Weapons_F\DynamicLoadout\PylonMissile_1x_Bomb_02_F.p3d"; model="\a3\weapons_f\dynamicloadout\pylonmissile_1x_bomb_02_f.p3d";
count=1; count=1;
hardpoints[]= hardpoints[]=
{ {
"BRAF_Mk82_PYLON" "BRAF_Mk82_PYLON"
}; };
pylonWeapon="BRAF_Mk82_weapon"; pylonWeapon="braf_mk82_weapon";
class mfdElements class mfdElements
{ {
class BRAF_SMS class braf_sms
{ {
class Bones class Bones
{ {
@@ -577,7 +577,7 @@ class CfgMagazines
}; };
class Selected: Default class Selected: Default
{ {
condition="(PylonSelected + PylonAmmoRelative)/2"; condition="(pylonselected + pylonammorelative)/2";
alpha=1; alpha=1;
class Shape: Shape class Shape: Shape
{ {
@@ -723,23 +723,23 @@ class CfgMagazines
}; };
}; };
}; };
class BRAF_Pylon_M117: VehicleMagazine // class braf_pylon_m117: VehicleMagazine //
{ {
displayName="M117 LDGP Bomb"; displayName="M117 LDGP Bomb";
displayNameShort="M117"; displayNameShort="M117";
scope=1; scope=1;
initSpeed=0; initSpeed=0;
ammo="braf_M117_F"; ammo="braf_M117_F";
model="\A3\Weapons_F\DynamicLoadout\PylonMissile_1x_Bomb_02_F.p3d"; model="\a3\weapons_f\dynamicloadout\pylonmissile_1x_bomb_02_f.p3d";
count=1; count=1;
hardpoints[]= hardpoints[]=
{ {
"BRAF_M117_PYLON" "BRAF_M117_PYLON"
}; };
pylonWeapon="BRAF_M117_weapon"; pylonWeapon="braf_m117_weapon";
class mfdElements class mfdElements
{ {
class BRAF_SMS class braf_sms
{ {
class Bones class Bones
{ {
@@ -928,7 +928,7 @@ class CfgMagazines
}; };
class Selected: Default class Selected: Default
{ {
condition="(PylonSelected + PylonAmmoRelative)/2"; condition="(pylonselected + pylonammorelative)/2";
alpha=1; alpha=1;
class Shape: Shape class Shape: Shape
{ {
@@ -1074,22 +1074,22 @@ class CfgMagazines
}; };
}; };
}; };
class BRAF_Pylon_GBU12: VehicleMagazine // class braf_pylon_gbu12: VehicleMagazine //
{ {
displayName="Mk.82 LGB Lizard II"; displayName="Mk.82 LGB Lizard II";
scope=1; scope=1;
initSpeed=0; initSpeed=0;
ammo="braf_mk82_lgb_F"; ammo="braf_mk82_lgb_F";
model="\A3\Weapons_F\DynamicLoadout\PylonMissile_1x_Bomb_02_F.p3d"; model="\a3\weapons_f\dynamicloadout\pylonmissile_1x_bomb_02_f.p3d";
count=1; count=1;
hardpoints[]= hardpoints[]=
{ {
"BRAF_GBU12_PYLON" "BRAF_GBU12_PYLON"
}; };
pylonWeapon="BRAF_GBU12_weapon"; pylonWeapon="braf_gbu12_weapon";
class mfdElements class mfdElements
{ {
class BRAF_SMS class braf_sms
{ {
class Bones class Bones
{ {
@@ -1278,7 +1278,7 @@ class CfgMagazines
}; };
class Selected: Default class Selected: Default
{ {
condition="(PylonSelected + PylonAmmoRelative)/2"; condition="(pylonselected + pylonammorelative)/2";
alpha=1; alpha=1;
class Shape: Shape class Shape: Shape
{ {
@@ -1424,23 +1424,23 @@ class CfgMagazines
}; };
}; };
}; };
class BRAF_Pylon_GBU58: VehicleMagazine // class braf_pylon_gbu58: VehicleMagazine //
{ {
displayName="Mk.81 LGB Lizard II"; displayName="Mk.81 LGB Lizard II";
displayNameShort="Mk.81 LGB"; displayNameShort="Mk.81 LGB";
scope=1; scope=1;
initSpeed=0; initSpeed=0;
ammo="braf_mk81_lgb_F"; ammo="braf_mk81_lgb_F";
model="\A3\Weapons_F\DynamicLoadout\PylonMissile_1x_Bomb_02_F.p3d"; model="\a3\weapons_f\dynamicloadout\pylonmissile_1x_bomb_02_f.p3d";
count=1; count=1;
hardpoints[]= hardpoints[]=
{ {
"BRAF_GBU58_PYLON" "BRAF_GBU58_PYLON"
}; };
pylonWeapon="BRAF_GBU58_weapon"; pylonWeapon="braf_gbu58_weapon";
class mfdElements class mfdElements
{ {
class BRAF_SMS class braf_sms
{ {
class Bones class Bones
{ {
@@ -1629,7 +1629,7 @@ class CfgMagazines
}; };
class Selected: Default class Selected: Default
{ {
condition="(PylonSelected + PylonAmmoRelative)/2"; condition="(pylonselected + pylonammorelative)/2";
alpha=1; alpha=1;
class Shape: Shape class Shape: Shape
{ {
@@ -1775,23 +1775,23 @@ class CfgMagazines
}; };
}; };
}; };
class BRAF_Pylon_BLG252: PylonMissile_1Rnd_BombCluster_01_F // class braf_pylon_blg252: PylonMissile_1Rnd_BombCluster_01_F //
{ {
displayName="BLG-252 Cluster Bomb"; displayName="BLG-252 Cluster Bomb";
displayNameShort="BLG-252"; displayNameShort="BLG-252";
scope=1; scope=1;
initSpeed=0; initSpeed=0;
ammo="braf_blg252_F"; ammo="braf_blg252_F";
model="\braf\braf_air2\braf_Air_Weap2\braf_pylon_blg252.p3d"; model="\braf\braf_air2\braf_air_weap2\braf_pylon_blg252.p3d";
count=1; count=1;
hardpoints[]= hardpoints[]=
{ {
"BRAF_BLG252_PYLON" "BRAF_BLG252_PYLON"
}; };
pylonWeapon="BRAF_BLG252_weapon"; pylonWeapon="braf_blg252_weapon";
class mfdElements class mfdElements
{ {
class BRAF_SMS class braf_sms
{ {
class Bones class Bones
{ {
@@ -1980,7 +1980,7 @@ class CfgMagazines
}; };
class Selected: Default class Selected: Default
{ {
condition="(PylonSelected + PylonAmmoRelative)/2"; condition="(pylonselected + pylonammorelative)/2";
alpha=1; alpha=1;
class Shape: Shape class Shape: Shape
{ {
@@ -2126,22 +2126,22 @@ class CfgMagazines
}; };
}; };
}; };
class BRAF_PylonPod_EQ_LMF_70_7_ap: PylonRack_7Rnd_Rocket_04_AP_F class braf_pylonpod_eq_lmf_70_7_ap: PylonRack_7Rnd_Rocket_04_AP_F
{ {
displayName="7x Skyfire 70 Armour Piercing"; displayName="7x Skyfire 70 Armour Piercing";
displayNameShort="7x Skyfire 70 AP"; displayNameShort="7x Skyfire 70 AP";
model="\braf\braf_air2\braf_air_weap2\braf_EQ_LMF_70_7.p3d"; model="\braf\braf_air2\braf_air_weap2\braf_eq_lmf_70_7.p3d";
ammo="braf_skyfire_70_AP_F"; ammo="braf_skyfire_70_AP_F";
hardpoints[]= hardpoints[]=
{ {
"BRAF_EQ_LMF_70_7_ap_PYLON" "BRAF_EQ_LMF_70_7_ap_PYLON"
}; };
pylonWeapon="BRAF_EQ_LMF_70_7_ap_weapon"; pylonWeapon="braf_eq_lmf_70_7_ap_weapon";
count=7; count=7;
mass=90; mass=90;
class mfdElements class mfdElements
{ {
class BRAF_SMS class braf_sms
{ {
class Bones class Bones
{ {
@@ -2330,7 +2330,7 @@ class CfgMagazines
}; };
class Selected: Default class Selected: Default
{ {
condition="(PylonSelected + PylonAmmoRelative)/2"; condition="(pylonselected + pylonammorelative)/2";
alpha=1; alpha=1;
class Shape: Shape class Shape: Shape
{ {
@@ -2476,20 +2476,20 @@ class CfgMagazines
}; };
}; };
}; };
class BRAF_PylonPod_EQ_LMF_70_19_ap: BRAF_PylonPod_EQ_LMF_70_7_ap class braf_pylonpod_eq_lmf_70_19_ap: braf_pylonpod_eq_lmf_70_7_ap
{ {
displayName="19x Skyfire 70 Armour Piercing"; displayName="19x Skyfire 70 Armour Piercing";
displayNameShort="19x Skyfire 70 AP"; displayNameShort="19x Skyfire 70 AP";
model="\braf\braf_air2\braf_air_weap2\braf_EQ_LMF_70_19.p3d"; model="\braf\braf_air2\braf_air_weap2\braf_eq_lmf_70_19.p3d";
hardpoints[]= hardpoints[]=
{ {
"BRAF_EQ_LMF_70_19_ap_PYLON" "BRAF_EQ_LMF_70_19_ap_PYLON"
}; };
pylonWeapon="BRAF_EQ_LMF_70_19_ap_weapon"; pylonWeapon="braf_eq_lmf_70_19_ap_weapon";
count=19; count=19;
mass=170; mass=170;
}; };
class BRAF_PylonPod_EQ_LMF_70_7_he: BRAF_PylonPod_EQ_LMF_70_7_ap class braf_pylonpod_eq_lmf_70_7_he: braf_pylonpod_eq_lmf_70_7_ap
{ {
displayName="7x Skyfire 70 High Explosive"; displayName="7x Skyfire 70 High Explosive";
displayNameShort="7x Skyfire 70 HE"; displayNameShort="7x Skyfire 70 HE";
@@ -2498,10 +2498,10 @@ class CfgMagazines
{ {
"BRAF_EQ_LMF_70_7_he_PYLON" "BRAF_EQ_LMF_70_7_he_PYLON"
}; };
pylonWeapon="BRAF_EQ_LMF_70_7_he_weapon"; pylonWeapon="braf_eq_lmf_70_7_he_weapon";
class mfdElements class mfdElements
{ {
class BRAF_SMS class braf_sms
{ {
class Bones class Bones
{ {
@@ -2690,7 +2690,7 @@ class CfgMagazines
}; };
class Selected: Default class Selected: Default
{ {
condition="(PylonSelected + PylonAmmoRelative)/2"; condition="(pylonselected + pylonammorelative)/2";
alpha=1; alpha=1;
class Shape: Shape class Shape: Shape
{ {
@@ -2836,20 +2836,20 @@ class CfgMagazines
}; };
}; };
}; };
class BRAF_PylonPod_EQ_LMF_70_19_he: BRAF_PylonPod_EQ_LMF_70_7_he class braf_pylonpod_eq_lmf_70_19_he: braf_pylonpod_eq_lmf_70_7_he
{ {
displayName="19x Skyfire 70 High Explosive"; displayName="19x Skyfire 70 High Explosive";
displayNameShort="19x Skyfire 70 HE"; displayNameShort="19x Skyfire 70 HE";
model="\braf\braf_air2\braf_air_weap2\braf_EQ_LMF_70_19.p3d"; model="\braf\braf_air2\braf_air_weap2\braf_eq_lmf_70_19.p3d";
hardpoints[]= hardpoints[]=
{ {
"BRAF_EQ_LMF_70_19_he_PYLON" "BRAF_EQ_LMF_70_19_he_PYLON"
}; };
pylonWeapon="BRAF_EQ_LMF_70_19_he_weapon"; pylonWeapon="braf_eq_lmf_70_19_he_weapon";
count=19; count=19;
mass=170; mass=170;
}; };
class BRAF_PylonPod_EQ_LMF_70_7_gat: BRAF_PylonPod_EQ_LMF_70_7_ap class braf_pylonpod_eq_lmf_70_7_gat: braf_pylonpod_eq_lmf_70_7_ap
{ {
displayName="7x Skyfire 70 Laser Guided AT"; displayName="7x Skyfire 70 Laser Guided AT";
displayNameShort="7x Skyfire 70 LGAT"; displayNameShort="7x Skyfire 70 LGAT";
@@ -2859,12 +2859,12 @@ class CfgMagazines
{ {
"BRAF_EQ_LMF_70_7_gat_PYLON" "BRAF_EQ_LMF_70_7_gat_PYLON"
}; };
pylonWeapon="BRAF_EQ_LMF_70_7_gat_weapon"; pylonWeapon="braf_eq_lmf_70_7_gat_weapon";
count=7; count=7;
mass=90; mass=90;
class mfdElements class mfdElements
{ {
class BRAF_SMS class braf_sms
{ {
class Bones class Bones
{ {
@@ -3053,7 +3053,7 @@ class CfgMagazines
}; };
class Selected: Default class Selected: Default
{ {
condition="(PylonSelected + PylonAmmoRelative)/2"; condition="(pylonselected + pylonammorelative)/2";
alpha=1; alpha=1;
class Shape: Shape class Shape: Shape
{ {
@@ -3199,21 +3199,21 @@ class CfgMagazines
}; };
}; };
}; };
class BRAF_PylonPod_EQ_LMF_70_19_gat: BRAF_PylonPod_EQ_LMF_70_7_gat class braf_pylonpod_eq_lmf_70_19_gat: braf_pylonpod_eq_lmf_70_7_gat
{ {
displayName="19x Skyfire 70 Laser Guided AT"; displayName="19x Skyfire 70 Laser Guided AT";
displayNameShort="19x Skyfire 70 LGAT"; displayNameShort="19x Skyfire 70 LGAT";
model="\braf\braf_air2\braf_air_weap2\braf_EQ_LMF_70_19.p3d"; model="\braf\braf_air2\braf_air_weap2\braf_eq_lmf_70_19.p3d";
hardpoints[]= hardpoints[]=
{ {
"BRAF_EQ_LMF_70_19_gat_PYLON" "BRAF_EQ_LMF_70_19_gat_PYLON"
}; };
pylonWeapon="BRAF_EQ_LMF_70_19_gat_weapon"; pylonWeapon="braf_eq_lmf_70_19_gat_weapon";
count=19; count=19;
mass=170; mass=170;
class mfdElements class mfdElements
{ {
class BRAF_SMS class braf_sms
{ {
class Bones class Bones
{ {
@@ -3402,7 +3402,7 @@ class CfgMagazines
}; };
class Selected: Default class Selected: Default
{ {
condition="(PylonSelected + PylonAmmoRelative)/2"; condition="(pylonselected + pylonammorelative)/2";
alpha=1; alpha=1;
class Shape: Shape class Shape: Shape
{ {
@@ -3555,7 +3555,7 @@ class CfgMagazines
descriptionShort="IR short range AA missile"; descriptionShort="IR short range AA missile";
ammo="braf_maa1a_F"; ammo="braf_maa1a_F";
count=1; count=1;
model="\braf\braf_air2\braf_Air_Weap2\braf_pylonpod_maa1a.p3d"; model="\braf\braf_air2\braf_air_weap2\braf_pylonpod_maa1a.p3d";
hardpoints[]= hardpoints[]=
{ {
"BRAF_PIRANHA_PYLON" "BRAF_PIRANHA_PYLON"
@@ -3564,7 +3564,7 @@ class CfgMagazines
ejectSpeed[]={1,0,0}; ejectSpeed[]={1,0,0};
class mfdElements class mfdElements
{ {
class BRAF_SMS class braf_sms
{ {
class Bones class Bones
{ {
@@ -3753,7 +3753,7 @@ class CfgMagazines
}; };
class Selected: Default class Selected: Default
{ {
condition="(PylonSelected + PylonAmmoRelative)/2"; condition="(pylonselected + pylonammorelative)/2";
alpha=1; alpha=1;
class Shape: Shape class Shape: Shape
{ {
+43 -43
View File
@@ -4,10 +4,10 @@ class CfgWeapons
class missiles_DAR; class missiles_DAR;
class RocketPods; class RocketPods;
class MGun; class MGun;
class BRAF_50Cal_weapon; class braf_50cal_weapon;
class weapon_BIM9xLauncher; class weapon_BIM9xLauncher;
class BombCluster_01_F; class BombCluster_01_F;
class BRAF_master_arm_safe: missiles_DAR class braf_master_arm_safe: missiles_DAR
{ {
canLock=0; canLock=0;
displayName="MASTER-SAFE"; displayName="MASTER-SAFE";
@@ -18,7 +18,7 @@ class CfgWeapons
cursorAim="EmptyCursor"; cursorAim="EmptyCursor";
magazines[]={"braf_master_safe_magazine"}; magazines[]={"braf_master_safe_magazine"};
}; };
class BRAF_M3W_A29: BRAF_50Cal_weapon class braf_m3w_a29: braf_50cal_weapon
{ {
scope=1; scope=1;
canLock=2; canLock=2;
@@ -27,10 +27,10 @@ class CfgWeapons
ballisticsComputer = 8; ballisticsComputer = 8;
dispersion=0.001; dispersion=0.001;
showaimcursorinternal=1; showaimcursorinternal=1;
displayname="2x AN/M3W .50 Cal"; displayname="2x an/m3w .50 cal";
magazines[]= magazines[]=
{ {
"BRAF_A29_500Rnd_50_cal_M" "braf_a29_500rnd_50_cal_m"
}; };
class GunParticles class GunParticles
{ {
@@ -72,21 +72,21 @@ class CfgWeapons
{ {
begin1[]= begin1[]=
{ {
"braf\braf_air2\braf_Air_Weap2\data\m2hb", "braf\braf_air2\braf_air_weap2\data\m2hb",
1.5848932, 1.5848932,
1, 1,
2100 2100
}; };
begin2[]= begin2[]=
{ {
"braf\braf_air2\braf_Air_Weap2\data\m2_single_1", "braf\braf_air2\braf_air_weap2\data\m2_single_1",
1.5848932, 1.5848932,
1, 1,
2100 2100
}; };
begin3[]= begin3[]=
{ {
"braf\braf_air2\braf_Air_Weap2\data\m2_single_2", "braf\braf_air2\braf_air_weap2\data\m2_single_2",
1.5848932, 1.5848932,
1, 1,
2100 2100
@@ -102,14 +102,14 @@ class CfgWeapons
}; };
closure1[]= closure1[]=
{ {
"A3\Sounds_F\weapons\Closure\sfx10", "a3\sounds_f\weapons\closure\sfx10",
0.63095737, 0.63095737,
1, 1,
20 20
}; };
closure2[]= closure2[]=
{ {
"A3\sounds_f\weapons\closure\sfx11", "a3\sounds_f\weapons\closure\sfx11",
0.63095737, 0.63095737,
1.2, 1.2,
20 20
@@ -199,72 +199,72 @@ class CfgWeapons
}; };
reloadMagazineSound[]= reloadMagazineSound[]=
{ {
"braf\braf_air2\braf_Air_Weap2\data\reload-belt-1", "braf\braf_air2\braf_air_weap2\data\reload-belt-1",
10, 10,
1, 1,
20 20
}; };
}; };
class BRAF_EFT_weapon: Mk82BombLauncher class braf_eft_weapon: Mk82BombLauncher
{ {
displayName="External Fuel Tank 320L"; displayName="External Fuel Tank 320L";
magazines[]= magazines[]=
{ {
"BRAF_Pylon_EFT" "braf_pylon_eft"
}; };
model="\braf\braf_air2\braf_air_weap2\braf_external_tank.p3d"; model="\braf\braf_air2\braf_air_weap2\braf_external_tank.p3d";
}; };
class BRAF_Mk82_weapon: Mk82BombLauncher class braf_mk82_weapon: Mk82BombLauncher
{ {
displayName="Mk.82 LDGP Bomb"; displayName="Mk.82 LDGP Bomb";
magazines[]= magazines[]=
{ {
"BRAF_Pylon_Mk82" "braf_pylon_mk82"
}; };
model="\braf\braf_air2\braf_air_weap2\braf_mk82.p3d"; model="\braf\braf_air2\braf_air_weap2\braf_mk82.p3d";
}; };
class BRAF_M117_weapon: Mk82BombLauncher class braf_m117_weapon: Mk82BombLauncher
{ {
displayName="M117 LDGP Bomb"; displayName="M117 LDGP Bomb";
magazines[]= magazines[]=
{ {
"BRAF_Pylon_M117" "braf_pylon_m117"
}; };
model="\braf\braf_air2\braf_air_weap2\braf_m117.p3d"; model="\braf\braf_air2\braf_air_weap2\braf_m117.p3d";
}; };
class BRAF_GBU12_weapon: Mk82BombLauncher class braf_gbu12_weapon: Mk82BombLauncher
{ {
displayName="Mk.82 LGB Lizard II"; displayName="Mk.82 LGB Lizard II";
magazines[]= magazines[]=
{ {
"BRAF_Pylon_GBU12" "braf_pylon_gbu12"
}; };
model="\braf\braf_air2\braf_air_weap2\braf_gbu12.p3d"; model="\braf\braf_air2\braf_air_weap2\braf_gbu12.p3d";
}; };
class BRAF_GBU58_weapon: Mk82BombLauncher class braf_gbu58_weapon: Mk82BombLauncher
{ {
displayName="Mk.81 LGB Lizard II"; displayName="Mk.81 LGB Lizard II";
magazines[]= magazines[]=
{ {
"BRAF_Pylon_GBU58" "braf_pylon_gbu58"
}; };
model="\braf\braf_air2\braf_air_weap2\braf_gbu58.p3d"; model="\braf\braf_air2\braf_air_weap2\braf_gbu58.p3d";
}; };
class BRAF_BLG252_weapon: BombCluster_01_F class braf_blg252_weapon: BombCluster_01_F
{ {
displayName="BLG-252 Cluster Bomb"; displayName="BLG-252 Cluster Bomb";
magazines[]= magazines[]=
{ {
"BRAF_Pylon_BLG252" "braf_pylon_blg252"
}; };
}; };
class BRAF_EQ_LMF_70_7_ap_weapon: RocketPods class braf_eq_lmf_70_7_ap_weapon: RocketPods
{ {
magazines[]= magazines[]=
{ {
"BRAF_PylonPod_EQ_LMF_70_7_ap" "braf_pylonpod_eq_lmf_70_7_ap"
}; };
displayName="EQ-LMF 70/7 AP"; displayName="eq-lmf 70/7 ap";
modes[]= modes[]=
{ {
"Far_AI", "Far_AI",
@@ -290,7 +290,7 @@ class CfgWeapons
{ {
begin1[]= begin1[]=
{ {
"A3\Sounds_F\weapons\Rockets\new_rocket_8", "a3\sounds_f\weapons\rockets\new_rocket_8",
1.7782794, 1.7782794,
1.2, 1.2,
1600 1600
@@ -374,7 +374,7 @@ class CfgWeapons
{ {
begin1[]= begin1[]=
{ {
"A3\Sounds_F\weapons\Rockets\new_rocket_8", "a3\sounds_f\weapons\rockets\new_rocket_8",
1.7782794, 1.7782794,
1.2, 1.2,
1600 1600
@@ -388,49 +388,49 @@ class CfgWeapons
textureType="fullAuto"; textureType="fullAuto";
}; };
}; };
class BRAF_EQ_LMF_70_19_ap_weapon: BRAF_EQ_LMF_70_7_ap_weapon class braf_eq_lmf_70_19_ap_weapon: braf_eq_lmf_70_7_ap_weapon
{ {
magazines[]= magazines[]=
{ {
"BRAF_PylonPod_EQ_LMF_70_19_ap" "braf_pylonpod_eq_lmf_70_19_ap"
}; };
displayName="EQ-LMF 70/19 AP"; displayName="eq-lmf 70/19 ap";
}; };
class BRAF_EQ_LMF_70_7_he_weapon: BRAF_EQ_LMF_70_7_ap_weapon class braf_eq_lmf_70_7_he_weapon: braf_eq_lmf_70_7_ap_weapon
{ {
magazines[]= magazines[]=
{ {
"BRAF_PylonPod_EQ_LMF_70_7_he" "braf_pylonpod_eq_lmf_70_7_he"
}; };
holdsterAnimValue=4; holdsterAnimValue=4;
displayName="EQ-LMF 70/7 HE"; displayName="eq-lmf 70/7 he";
}; };
class BRAF_EQ_LMF_70_19_he_weapon: BRAF_EQ_LMF_70_7_ap_weapon class braf_eq_lmf_70_19_he_weapon: braf_eq_lmf_70_7_ap_weapon
{ {
magazines[]= magazines[]=
{ {
"BRAF_PylonPod_EQ_LMF_70_19_he" "braf_pylonpod_eq_lmf_70_19_he"
}; };
holdsterAnimValue=4; holdsterAnimValue=4;
displayName="EQ-LMF 70/19 HE"; displayName="eq-lmf 70/19 he";
}; };
class BRAF_EQ_LMF_70_7_gat_weapon: BRAF_EQ_LMF_70_7_ap_weapon class braf_eq_lmf_70_7_gat_weapon: braf_eq_lmf_70_7_ap_weapon
{ {
magazines[]= magazines[]=
{ {
"BRAF_PylonPod_EQ_LMF_70_7_gat" "braf_pylonpod_eq_lmf_70_7_gat"
}; };
holdsterAnimValue=4; holdsterAnimValue=4;
displayName="EQ-LMF 70/7 GAT"; displayName="eq-lmf 70/7 gat";
}; };
class BRAF_EQ_LMF_70_19_gat_weapon: BRAF_EQ_LMF_70_7_gat_weapon class braf_eq_lmf_70_19_gat_weapon: braf_eq_lmf_70_7_gat_weapon
{ {
magazines[]= magazines[]=
{ {
"BRAF_PylonPod_EQ_LMF_70_19_gat" "braf_pylonpod_eq_lmf_70_19_gat"
}; };
holdsterAnimValue=4; holdsterAnimValue=4;
displayName="EQ-LMF 70/19 GAT"; displayName="eq-lmf 70/19 gat";
}; };
class braf_MAA1A_Launcher_weapon: weapon_BIM9xLauncher class braf_MAA1A_Launcher_weapon: weapon_BIM9xLauncher
{ {
+5 -5
View File
@@ -44,8 +44,8 @@ class CfgAmmo
}; };
class braf_blg252_F: BombCluster_01_Ammo_F class braf_blg252_F: BombCluster_01_Ammo_F
{ {
model="\braf\braf_air2\braf_Air_Weap2\braf_blg252.p3d"; model="\braf\braf_air2\braf_air_weap2\braf_blg252.p3d";
proxyShape="\braf\braf_air2\braf_Air_Weap2\braf_blg252.p3d"; proxyShape="\braf\braf_air2\braf_air_weap2\braf_blg252.p3d";
submunitionConeType[]= submunitionConeType[]=
{ {
"randomcenter", "randomcenter",
@@ -107,7 +107,7 @@ class CfgAmmo
muzzleEffect=""; muzzleEffect="";
soundFly[]= soundFly[]=
{ {
"A3\Sounds_F\weapons\Rockets\rocket_fly_1", "a3\sounds_f\weapons\rockets\rocket_fly_1",
0.63095737, 0.63095737,
1.2, 1.2,
1700 1700
@@ -168,8 +168,8 @@ class CfgAmmo
}; };
class braf_maa1a_F: ammo_Missile_ShortRangeAABase class braf_maa1a_F: ammo_Missile_ShortRangeAABase
{ {
model="\braf\braf_air2\braf_Air_Weap2\braf_maa1a_fly.p3d"; model="\braf\braf_air2\braf_air_weap2\braf_maa1a_fly.p3d";
proxyShape="\braf\braf_air2\braf_Air_Weap2\braf_maa1a.p3d"; proxyShape="\braf\braf_air2\braf_air_weap2\braf_maa1a.p3d";
maxSpeed=1191; maxSpeed=1191;
missileLockMaxDistance=4000; missileLockMaxDistance=4000;
}; };
+4 -4
View File
@@ -1,6 +1,6 @@
//class StageTI //class StageTI
//{ //{
// texture = "braf\braf_air2\braf_Air_Weap2\data\camo1_ti_ca.tga"; // texture = "braf\braf_air2\braf_air_weap2\data\camo1_ti_ca.tga";
//}; //};
ambient[]={0.75,0.75,0.75,1.0}; ambient[]={0.75,0.75,0.75,1.0};
diffuse[]={0.75,0.75,0.75,1.0}; diffuse[]={0.75,0.75,0.75,1.0};
@@ -12,7 +12,7 @@ PixelShaderID="Super";
VertexShaderID="Super"; VertexShaderID="Super";
class Stage1 class Stage1
{ {
texture = "braf\braf_air2\braf_Air_Weap2\data\camo1_nohq.tga"; texture = "braf\braf_air2\braf_air_weap2\data\camo1_nohq.tga";
uvSource = "tex"; uvSource = "tex";
class uvTransform class uvTransform
{ {
@@ -48,7 +48,7 @@ class Stage3
}; };
class Stage4 class Stage4
{ {
texture = "braf\braf_air2\braf_Air_Weap2\data\camo1_as.tga"; texture = "braf\braf_air2\braf_air_weap2\data\camo1_as.tga";
uvSource = "tex"; uvSource = "tex";
class uvTransform class uvTransform
{ {
@@ -60,7 +60,7 @@ class Stage4
}; };
class Stage5 class Stage5
{ {
texture = "braf\braf_air2\braf_Air_Weap2\data\camo1_SMDI.tga"; texture = "braf\braf_air2\braf_air_weap2\data\camo1_smdi.tga";
uvSource = "tex"; uvSource = "tex";
class uvTransform class uvTransform
{ {
+4 -4
View File
@@ -1,6 +1,6 @@
//class StageTI //class StageTI
//{ //{
// texture = "braf\braf_air2\braf_Air_Weap2\data\camo2_ti_ca.tga"; // texture = "braf\braf_air2\braf_air_weap2\data\camo2_ti_ca.tga";
//}; //};
ambient[]={0.75,0.75,0.75,1.0}; ambient[]={0.75,0.75,0.75,1.0};
diffuse[]={0.75,0.75,0.75,1.0}; diffuse[]={0.75,0.75,0.75,1.0};
@@ -12,7 +12,7 @@ PixelShaderID="Super";
VertexShaderID="Super"; VertexShaderID="Super";
class Stage1 class Stage1
{ {
texture = "braf\braf_air2\braf_Air_Weap2\data\camo2_nohq.tga"; texture = "braf\braf_air2\braf_air_weap2\data\camo2_nohq.tga";
uvSource = "tex"; uvSource = "tex";
class uvTransform class uvTransform
{ {
@@ -48,7 +48,7 @@ class Stage3
}; };
class Stage4 class Stage4
{ {
texture = "braf\braf_air2\braf_Air_Weap2\data\camo2_as.tga"; texture = "braf\braf_air2\braf_air_weap2\data\camo2_as.tga";
uvSource = "tex"; uvSource = "tex";
class uvTransform class uvTransform
{ {
@@ -60,7 +60,7 @@ class Stage4
}; };
class Stage5 class Stage5
{ {
texture = "braf\braf_air2\braf_Air_Weap2\data\camo2_SMDI.tga"; texture = "braf\braf_air2\braf_air_weap2\data\camo2_smdi.tga";
uvSource = "tex"; uvSource = "tex";
class uvTransform class uvTransform
{ {
+4 -4
View File
@@ -1,6 +1,6 @@
//class StageTI //class StageTI
//{ //{
// texture = "braf\braf_air2\braf_Air_Weap2\data\camo3_ti_ca.tga"; // texture = "braf\braf_air2\braf_air_weap2\data\camo3_ti_ca.tga";
//}; //};
ambient[]={0.75,0.75,0.75,1.0}; ambient[]={0.75,0.75,0.75,1.0};
diffuse[]={0.75,0.75,0.75,1.0}; diffuse[]={0.75,0.75,0.75,1.0};
@@ -12,7 +12,7 @@ PixelShaderID="Super";
VertexShaderID="Super"; VertexShaderID="Super";
class Stage1 class Stage1
{ {
texture = "braf\braf_air2\braf_Air_Weap2\data\camo3_nohq.tga"; texture = "braf\braf_air2\braf_air_weap2\data\camo3_nohq.tga";
uvSource = "tex"; uvSource = "tex";
class uvTransform class uvTransform
{ {
@@ -48,7 +48,7 @@ class Stage3
}; };
class Stage4 class Stage4
{ {
texture = "braf\braf_air2\braf_Air_Weap2\data\camo3_as.tga"; texture = "braf\braf_air2\braf_air_weap2\data\camo3_as.tga";
uvSource = "tex"; uvSource = "tex";
class uvTransform class uvTransform
{ {
@@ -60,7 +60,7 @@ class Stage4
}; };
class Stage5 class Stage5
{ {
texture = "braf\braf_air2\braf_Air_Weap2\data\camo3_smdi.tga"; texture = "braf\braf_air2\braf_air_weap2\data\camo3_smdi.tga";
uvSource = "tex"; uvSource = "tex";
class uvTransform class uvTransform
{ {
+4 -4
View File
@@ -1,6 +1,6 @@
//class StageTI //class StageTI
//{ //{
// texture = "braf\braf_air2\braf_Air_Weap2\data\camo4_ti_ca.tga"; // texture = "braf\braf_air2\braf_air_weap2\data\camo4_ti_ca.tga";
//}; //};
ambient[]={0.75,0.75,0.75,1.0}; ambient[]={0.75,0.75,0.75,1.0};
diffuse[]={0.75,0.75,0.75,1.0}; diffuse[]={0.75,0.75,0.75,1.0};
@@ -12,7 +12,7 @@ PixelShaderID="Super";
VertexShaderID="Super"; VertexShaderID="Super";
class Stage1 class Stage1
{ {
texture = "braf\braf_air2\braf_Air_Weap2\data\camo4_nohq.tga"; texture = "braf\braf_air2\braf_air_weap2\data\camo4_nohq.tga";
uvSource = "tex"; uvSource = "tex";
class uvTransform class uvTransform
{ {
@@ -48,7 +48,7 @@ class Stage3
}; };
class Stage4 class Stage4
{ {
texture = "braf\braf_air2\braf_Air_Weap2\data\camo4_as.tga"; texture = "braf\braf_air2\braf_air_weap2\data\camo4_as.tga";
uvSource = "tex"; uvSource = "tex";
class uvTransform class uvTransform
{ {
@@ -60,7 +60,7 @@ class Stage4
}; };
class Stage5 class Stage5
{ {
texture = "braf\braf_air2\braf_Air_Weap2\data\camo4_smdi.tga"; texture = "braf\braf_air2\braf_air_weap2\data\camo4_smdi.tga";
uvSource = "tex"; uvSource = "tex";
class uvTransform class uvTransform
{ {
+4 -4
View File
@@ -1,6 +1,6 @@
//class StageTI //class StageTI
//{ //{
// texture = "braf\braf_air2\braf_Air_Weap2\data\camo5_ti_ca.tga"; // texture = "braf\braf_air2\braf_air_weap2\data\camo5_ti_ca.tga";
//}; //};
ambient[]={0.75,0.75,0.75,1.0}; ambient[]={0.75,0.75,0.75,1.0};
diffuse[]={0.75,0.75,0.75,1.0}; diffuse[]={0.75,0.75,0.75,1.0};
@@ -12,7 +12,7 @@ PixelShaderID="Super";
VertexShaderID="Super"; VertexShaderID="Super";
class Stage1 class Stage1
{ {
texture = "braf\braf_air2\braf_Air_Weap2\data\camo5_nohq.tga"; texture = "braf\braf_air2\braf_air_weap2\data\camo5_nohq.tga";
uvSource = "tex"; uvSource = "tex";
class uvTransform class uvTransform
{ {
@@ -48,7 +48,7 @@ class Stage3
}; };
class Stage4 class Stage4
{ {
texture = "braf\braf_air2\braf_Air_Weap2\data\camo5_as.tga"; texture = "braf\braf_air2\braf_air_weap2\data\camo5_as.tga";
uvSource = "tex"; uvSource = "tex";
class uvTransform class uvTransform
{ {
@@ -60,7 +60,7 @@ class Stage4
}; };
class Stage5 class Stage5
{ {
texture = "braf\braf_air2\braf_Air_Weap2\data\camo5_smdi.tga"; texture = "braf\braf_air2\braf_air_weap2\data\camo5_smdi.tga";
uvSource = "tex"; uvSource = "tex";
class uvTransform class uvTransform
{ {
+4 -4
View File
@@ -1,6 +1,6 @@
//class StageTI //class StageTI
//{ //{
// texture = "braf\braf_air2\braf_Air_Weap2\data\camo6_ti_ca.tga"; // texture = "braf\braf_air2\braf_air_weap2\data\camo6_ti_ca.tga";
//}; //};
ambient[]={0.75,0.75,0.75,1.0}; ambient[]={0.75,0.75,0.75,1.0};
diffuse[]={0.75,0.75,0.75,1.0}; diffuse[]={0.75,0.75,0.75,1.0};
@@ -12,7 +12,7 @@ PixelShaderID="Super";
VertexShaderID="Super"; VertexShaderID="Super";
class Stage1 class Stage1
{ {
texture = "braf\braf_air2\braf_Air_Weap2\data\camo6_nohq.tga"; texture = "braf\braf_air2\braf_air_weap2\data\camo6_nohq.tga";
uvSource = "tex"; uvSource = "tex";
class uvTransform class uvTransform
{ {
@@ -48,7 +48,7 @@ class Stage3
}; };
class Stage4 class Stage4
{ {
texture = "braf\braf_air2\braf_Air_Weap2\data\camo6_as.tga"; texture = "braf\braf_air2\braf_air_weap2\data\camo6_as.tga";
uvSource = "tex"; uvSource = "tex";
class uvTransform class uvTransform
{ {
@@ -60,7 +60,7 @@ class Stage4
}; };
class Stage5 class Stage5
{ {
texture = "braf\braf_air2\braf_Air_Weap2\data\camo6_smdi.tga"; texture = "braf\braf_air2\braf_air_weap2\data\camo6_smdi.tga";
uvSource = "tex"; uvSource = "tex";
class uvTransform class uvTransform
{ {
+3 -3
View File
@@ -8,7 +8,7 @@ PixelShaderID = "Super";
VertexShaderID = "Super"; VertexShaderID = "Super";
class Stage1 class Stage1
{ {
texture = "braf\braf_air2\braf_Air_Weap2\data\glass_nohq.paa"; texture = "braf\braf_air2\braf_air_weap2\data\glass_nohq.paa";
uvSource = "tex"; uvSource = "tex";
class uvTransform class uvTransform
{ {
@@ -44,7 +44,7 @@ class Stage3
}; };
class Stage4 class Stage4
{ {
texture = "braf\braf_air2\braf_Air_Weap2\data\glass_as.paa"; texture = "braf\braf_air2\braf_air_weap2\data\glass_as.paa";
uvSource = "tex"; uvSource = "tex";
class uvTransform class uvTransform
{ {
@@ -56,7 +56,7 @@ class Stage4
}; };
class Stage5 class Stage5
{ {
texture = "braf\braf_air2\braf_Air_Weap2\data\glass_smdi.paa"; texture = "braf\braf_air2\braf_air_weap2\data\glass_smdi.paa";
uvSource = "tex"; uvSource = "tex";
class uvTransform class uvTransform
{ {
+3 -3
View File
@@ -23,19 +23,19 @@ class CfgMovesMaleSdr : CfgMovesBasic
speed=0.5; speed=0.5;
looped= 0; looped= 0;
terminal= 1; terminal= 1;
file="braf\braf_air2\Braf_air_anim\a29_pilot_kia.rtm"; file="braf\braf_air2\braf_air_anim\a29_pilot_kia.rtm";
connectTo[]={"DeadState", 0.1}; connectTo[]={"DeadState", 0.1};
}; };
class A29_Pilot: Crew class A29_Pilot: Crew
{ {
file="braf\braf_air2\Braf_air_anim\a29_pilot_alive.rtm"; file="braf\braf_air2\braf_air_anim\a29_pilot_alive.rtm";
interpolateTo[]={"A29_Pilot_Dead", 1}; interpolateTo[]={"A29_Pilot_Dead", 1};
}; };
/* /*
class braf_ejection_chute_KIA: DefaultDie class braf_ejection_chute_KIA: DefaultDie
{ {
actions = "DeadActions"; actions = "DeadActions";
file = "\braf\braf_air2\braf_air_anim\braf_ejection_chute_KIA.rtm"; file = "\braf\braf_air2\braf_air_anim\braf_ejection_chute_kia.rtm";
speed = 0.5; speed = 0.5;
terminal = 1; terminal = 1;
soundEnabled = 0; soundEnabled = 0;
+1 -1
View File
@@ -123,7 +123,7 @@ class CfgSkeletons
"RightToeBase","RightFoot" "RightToeBase","RightFoot"
}; };
// location of pivot points (local axes) for hierarchical animation // location of pivot points (local axes) for hierarchical animation
pivotsModel="A3\anims_f\data\skeleton\SkeletonPivots.p3d"; pivotsModel="a3\anims_f\data\skeleton\skeletonpivots.p3d";
}; };
}; };
class CfgModels class CfgModels
@@ -1,8 +1,8 @@
class BRAF_GripenNG : I_Plane_Fighter_04_F class braf_gripenng : I_Plane_Fighter_04_F
{ {
displayName="F-39E Gripen NG"; displayName="F-39E Gripen NG";
Author="BRAF Team"; author = "BRAF TEAM";
faction="BRAF_FAB"; faction="braf_fab";
side=2; side=2;
crew="braf_characters_aviation_air_force_fighter_pilot"; crew="braf_characters_aviation_air_force_fighter_pilot";
hiddenSelectionsTextures[] = hiddenSelectionsTextures[] =
@@ -10,5 +10,5 @@ class BRAF_GripenNG : I_Plane_Fighter_04_F
"braf\braf_air2\braf_airplanes\braf_gripen\data\gripen_01_co.paa", "braf\braf_air2\braf_airplanes\braf_gripen\data\gripen_01_co.paa",
"braf\braf_air2\braf_airplanes\braf_gripen\data\gripen_02_co.paa" "braf\braf_air2\braf_airplanes\braf_gripen\data\gripen_02_co.paa"
}; };
editorPreview = "\braf\braf_insignia\editorpreview\air2\BRAF_GripenNG.jpg"; editorPreview = "\braf\braf_insignia\editorpreview\air2\braf_gripenng.jpg";
}; };
@@ -1,6 +1,6 @@
//class StageTI //class StageTI
//{ //{
// texture = "braf\braf_air2\braf_airplanes\braf_super_tucano\Data\Extrase_ti_ca.tga"; // texture = "braf\braf_air2\braf_airplanes\braf_super_tucano\data\extrase_ti_ca.tga";
//}; //};
Ambient[]={1,1,1,1}; Ambient[]={1,1,1,1};
Diffuse[]={1,1,1,1}; Diffuse[]={1,1,1,1};
@@ -12,7 +12,7 @@ PixelShaderID="Super";
VertexShaderID="Super"; VertexShaderID="Super";
class Stage1 class Stage1
{ {
texture = "braf\braf_air2\braf_airplanes\braf_super_tucano\Data\Extras_nohq.tga"; texture = "braf\braf_air2\braf_airplanes\braf_super_tucano\data\extras_nohq.tga";
uvSource = "tex"; uvSource = "tex";
class uvTransform class uvTransform
{ {
@@ -48,7 +48,7 @@ class Stage3
}; };
class Stage4 class Stage4
{ {
texture = "braf\braf_air2\braf_airplanes\braf_super_tucano\Data\Extras_as.tga"; texture = "braf\braf_air2\braf_airplanes\braf_super_tucano\data\extras_as.tga";
uvSource = "tex"; uvSource = "tex";
class uvTransform class uvTransform
{ {
@@ -60,7 +60,7 @@ class Stage4
}; };
class Stage5 class Stage5
{ {
texture = "braf\braf_air2\braf_airplanes\braf_super_tucano\Data\Extras_smdi.tga"; texture = "braf\braf_air2\braf_airplanes\braf_super_tucano\data\extras_smdi.tga";
uvSource = "tex"; uvSource = "tex";
class uvTransform class uvTransform
{ {
@@ -8,7 +8,7 @@ PixelShaderID="Super";
VertexShaderID="Super"; VertexShaderID="Super";
class Stage1 class Stage1
{ {
texture = "braf\braf_air2\braf_airplanes\braf_super_tucano\Data\Extras_nohq.tga"; texture = "braf\braf_air2\braf_airplanes\braf_super_tucano\data\extras_nohq.tga";
uvSource = "tex"; uvSource = "tex";
class uvTransform class uvTransform
{ {
@@ -37,7 +37,7 @@ class Stage3
}; };
class Stage4 class Stage4
{ {
texture = "braf\braf_air2\braf_airplanes\braf_super_tucano\Data\Extras_as.tga"; texture = "braf\braf_air2\braf_airplanes\braf_super_tucano\data\extras_as.tga";
uvSource = "tex"; uvSource = "tex";
class uvTransform class uvTransform
{ {
@@ -49,7 +49,7 @@ class Stage4
}; };
class Stage5 class Stage5
{ {
texture = "braf\braf_air2\braf_airplanes\braf_super_tucano\Data\Extras_smdi.tga"; texture = "braf\braf_air2\braf_airplanes\braf_super_tucano\data\extras_smdi.tga";
uvSource = "tex"; uvSource = "tex";
class uvTransform class uvTransform
{ {
@@ -71,5 +71,5 @@ class Stage7
}; };
//class StageTI //class StageTI
//{ //{
// texture = "braf\braf_air2\braf_airplanes\braf_super_tucano\Data\Extras_ti_ca.tga"; // texture = "braf\braf_air2\braf_airplanes\braf_super_tucano\data\extras_ti_ca.tga";
//}; //};
@@ -8,7 +8,7 @@ PixelShaderID="Super";
VertexShaderID="Super"; VertexShaderID="Super";
class Stage1 class Stage1
{ {
texture = "braf\braf_air2\braf_airplanes\braf_super_tucano\Data\camo1_nohq.tga"; texture = "braf\braf_air2\braf_airplanes\braf_super_tucano\data\camo1_nohq.tga";
uvSource = "tex"; uvSource = "tex";
class uvTransform class uvTransform
{ {
@@ -44,7 +44,7 @@ class Stage3
}; };
class Stage4 class Stage4
{ {
texture = "braf\braf_air2\braf_airplanes\braf_super_tucano\Data\camo1_as.tga"; texture = "braf\braf_air2\braf_airplanes\braf_super_tucano\data\camo1_as.tga";
uvSource = "tex"; uvSource = "tex";
class uvTransform class uvTransform
{ {
@@ -56,7 +56,7 @@ class Stage4
}; };
class Stage5 class Stage5
{ {
texture = "braf\braf_air2\braf_airplanes\braf_super_tucano\Data\camo1_SMDI.tga"; texture = "braf\braf_air2\braf_airplanes\braf_super_tucano\data\camo1_smdi.tga";
uvSource = "tex"; uvSource = "tex";
class uvTransform class uvTransform
{ {
@@ -78,5 +78,5 @@ class Stage7
}; };
//class StageTI //class StageTI
//{ //{
// texture = "braf\braf_air2\braf_airplanes\braf_super_tucano\Data\camo1_ti_ca.tga"; // texture = "braf\braf_air2\braf_airplanes\braf_super_tucano\data\camo1_ti_ca.tga";
//}; //};
@@ -8,7 +8,7 @@ PixelShaderID="Super";
VertexShaderID="Super"; VertexShaderID="Super";
class Stage1 class Stage1
{ {
texture = "braf\braf_air2\braf_airplanes\braf_super_tucano\Data\camo1_nohq.tga"; texture = "braf\braf_air2\braf_airplanes\braf_super_tucano\data\camo1_nohq.tga";
uvSource = "tex"; uvSource = "tex";
class uvTransform class uvTransform
{ {
@@ -44,7 +44,7 @@ class Stage3
}; };
class Stage4 class Stage4
{ {
texture = "braf\braf_air2\braf_airplanes\braf_super_tucano\Data\camo1_as.tga"; texture = "braf\braf_air2\braf_airplanes\braf_super_tucano\data\camo1_as.tga";
uvSource = "tex"; uvSource = "tex";
class uvTransform class uvTransform
{ {
@@ -56,7 +56,7 @@ class Stage4
}; };
class Stage5 class Stage5
{ {
texture = "braf\braf_air2\braf_airplanes\braf_super_tucano\Data\camo1_SMDI.tga"; texture = "braf\braf_air2\braf_airplanes\braf_super_tucano\data\camo1_smdi.tga";
uvSource = "tex"; uvSource = "tex";
class uvTransform class uvTransform
{ {
@@ -78,5 +78,5 @@ class Stage7
}; };
//class StageTI //class StageTI
//{ //{
// texture = "braf\braf_air2\braf_airplanes\braf_super_tucano\Data\camo1_ti_ca.tga"; // texture = "braf\braf_air2\braf_airplanes\braf_super_tucano\data\camo1_ti_ca.tga";
//}; //};
@@ -8,7 +8,7 @@ PixelShaderID="Super";
VertexShaderID="Super"; VertexShaderID="Super";
class Stage1 class Stage1
{ {
texture = "braf\braf_air2\braf_airplanes\braf_super_tucano\Data\camo1_nohq.tga"; texture = "braf\braf_air2\braf_airplanes\braf_super_tucano\data\camo1_nohq.tga";
uvSource = "tex"; uvSource = "tex";
class uvTransform class uvTransform
{ {
@@ -37,7 +37,7 @@ class Stage3
}; };
class Stage4 class Stage4
{ {
texture = "braf\braf_air2\braf_airplanes\braf_super_tucano\Data\camo1_as.tga"; texture = "braf\braf_air2\braf_airplanes\braf_super_tucano\data\camo1_as.tga";
uvSource = "tex"; uvSource = "tex";
class uvTransform class uvTransform
{ {
@@ -49,7 +49,7 @@ class Stage4
}; };
class Stage5 class Stage5
{ {
texture = "braf\braf_air2\braf_airplanes\braf_super_tucano\Data\camo1_SMDI.tga"; texture = "braf\braf_air2\braf_airplanes\braf_super_tucano\data\camo1_smdi.tga";
uvSource = "tex"; uvSource = "tex";
class uvTransform class uvTransform
{ {
@@ -71,5 +71,5 @@ class Stage7
}; };
//class StageTI //class StageTI
//{ //{
// texture = "braf\braf_air2\braf_airplanes\braf_super_tucano\Data\camo1_ti_ca.tga"; // texture = "braf\braf_air2\braf_airplanes\braf_super_tucano\data\camo1_ti_ca.tga";
//}; //};
@@ -8,7 +8,7 @@ PixelShaderID="Super";
VertexShaderID="Super"; VertexShaderID="Super";
class Stage1 class Stage1
{ {
texture = "braf\braf_air2\braf_airplanes\braf_super_tucano\Data\camo2_nohq.tga"; texture = "braf\braf_air2\braf_airplanes\braf_super_tucano\data\camo2_nohq.tga";
uvSource = "tex"; uvSource = "tex";
class uvTransform class uvTransform
{ {
@@ -44,7 +44,7 @@ class Stage3
}; };
class Stage4 class Stage4
{ {
texture = "braf\braf_air2\braf_airplanes\braf_super_tucano\Data\camo2_as.tga"; texture = "braf\braf_air2\braf_airplanes\braf_super_tucano\data\camo2_as.tga";
uvSource = "tex"; uvSource = "tex";
class uvTransform class uvTransform
{ {
@@ -56,7 +56,7 @@ class Stage4
}; };
class Stage5 class Stage5
{ {
texture = "braf\braf_air2\braf_airplanes\braf_super_tucano\Data\camo2_smdi.tga"; texture = "braf\braf_air2\braf_airplanes\braf_super_tucano\data\camo2_smdi.tga";
uvSource = "tex"; uvSource = "tex";
class uvTransform class uvTransform
{ {
@@ -78,5 +78,5 @@ class Stage7
}; };
//class StageTI //class StageTI
//{ //{
// texture = "braf\braf_air2\braf_airplanes\braf_super_tucano\Data\camo2_ti_ca.tga"; // texture = "braf\braf_air2\braf_airplanes\braf_super_tucano\data\camo2_ti_ca.tga";
//}; //};
@@ -8,7 +8,7 @@ PixelShaderID="Super";
VertexShaderID="Super"; VertexShaderID="Super";
class Stage1 class Stage1
{ {
texture = "braf\braf_air2\braf_airplanes\braf_super_tucano\Data\camo2_nohq.tga"; texture = "braf\braf_air2\braf_airplanes\braf_super_tucano\data\camo2_nohq.tga";
uvSource = "tex"; uvSource = "tex";
class uvTransform class uvTransform
{ {
@@ -44,7 +44,7 @@ class Stage3
}; };
class Stage4 class Stage4
{ {
texture = "braf\braf_air2\braf_airplanes\braf_super_tucano\Data\camo2_as.tga"; texture = "braf\braf_air2\braf_airplanes\braf_super_tucano\data\camo2_as.tga";
uvSource = "tex"; uvSource = "tex";
class uvTransform class uvTransform
{ {
@@ -56,7 +56,7 @@ class Stage4
}; };
class Stage5 class Stage5
{ {
texture = "braf\braf_air2\braf_airplanes\braf_super_tucano\Data\camo2_SMDI.tga"; texture = "braf\braf_air2\braf_airplanes\braf_super_tucano\data\camo2_smdi.tga";
uvSource = "tex"; uvSource = "tex";
class uvTransform class uvTransform
{ {
@@ -78,5 +78,5 @@ class Stage7
}; };
//class StageTI //class StageTI
//{ //{
// texture = "braf\braf_air2\braf_airplanes\braf_super_tucano\Data\camo2_ti_ca.tga"; // texture = "braf\braf_air2\braf_airplanes\braf_super_tucano\data\camo2_ti_ca.tga";
//}; //};
@@ -8,7 +8,7 @@ PixelShaderID="Super";
VertexShaderID="Super"; VertexShaderID="Super";
class Stage1 class Stage1
{ {
texture = "braf\braf_air2\braf_airplanes\braf_super_tucano\Data\camo2_nohq.tga"; texture = "braf\braf_air2\braf_airplanes\braf_super_tucano\data\camo2_nohq.tga";
uvSource = "tex"; uvSource = "tex";
class uvTransform class uvTransform
{ {
@@ -37,7 +37,7 @@ class Stage3
}; };
class Stage4 class Stage4
{ {
texture = "braf\braf_air2\braf_airplanes\braf_super_tucano\Data\camo2_as.tga"; texture = "braf\braf_air2\braf_airplanes\braf_super_tucano\data\camo2_as.tga";
uvSource = "tex"; uvSource = "tex";
class uvTransform class uvTransform
{ {
@@ -49,7 +49,7 @@ class Stage4
}; };
class Stage5 class Stage5
{ {
texture = "braf\braf_air2\braf_airplanes\braf_super_tucano\Data\camo2_SMDI.tga"; texture = "braf\braf_air2\braf_airplanes\braf_super_tucano\data\camo2_smdi.tga";
uvSource = "tex"; uvSource = "tex";
class uvTransform class uvTransform
{ {
@@ -71,5 +71,5 @@ class Stage7
}; };
//class StageTI //class StageTI
//{ //{
// texture = "braf\braf_air2\braf_airplanes\braf_super_tucano\Data\camo2_ti_ca.tga"; // texture = "braf\braf_air2\braf_airplanes\braf_super_tucano\data\camo2_ti_ca.tga";
//}; //};

Some files were not shown because too many files have changed in this diff Show More