mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
7b13a75305
* Initial Commit
* Got rid of unneeded translation values
* Updated Strings
* "Fixed" issue where when you deploy the tripid and weapon on slope it freaked out.
* Fixed locality issues. Added timers to relavent functions.
* Added weights to all magazines/tripod. Weights to weapons coming soon when I transfer them to the launcher slot
* Fixed bug regarding localized strings. Created new tripod model
* Added timers for deploying/picking up the tripod. Changed ammo-box model from custom to one already in ARMA. Changed gun-bag model for a more generic one. Created a texture for the tripod and gunbag
* Removed ability to disassemble weapons via the addAction. Added ACE Action to get in due to a memory point issue. Changed from a static deploy/dismount time to one based in the weapon configs
* Created forward-compatability. Made it so I can define a base plate for any weapon if I ever want to expand from the generic M3 Tripod.
* Fixed bug where tripod wouldn't deploy with the correct times. Fixed bug where if you moved the tripod into the ground it would go flying.
* Added mortar compatability. Will probably shift whole mortar ammo loading to CSW one day
* Added icons to each relavent item
* Added README, possibly fixed bug where if you are in a weapon others cant load/unload ammo. Changed distance you can interact with weapons
* Added checks for when deploying the gun as well as unloading ammo to prevent duplication/deletion of items.
* Added documentation
* Added order to doc
* Explained why things are the way they are
* Remove temp files
* Removed redundant files
* Converted tabs->spaces. Added newlines at end of all files. Changed broken line in fnc_tripodDeploy.sqf.
* 100% newlines at end of file
* Added newlines to files that didnt get the change. Fixed README. Changed from GVAR(cswOptions) to GVAR(options). Changed from tabs to spaces in wiki
* Fixed issue with UAV assembling with enableWeaponDisassembling. Fixed bug where game would crash if you disassembled static weapon with more than 1 magazine
* Tabs->Spaces
* Added CSW options to base StaticWeapon class to allow for easier additions. Switched default mortar away from CSW system due to incompatabilities
* Lazy Evaluations and macros to describe how things work.
* Added newlines to script_component. Fix no-texture issue on tripod. "Fix" 20mm HE saying 40mm HE. Add custom icons to all weapons. Move "Check Ammo" to CSW menu
* abc
* Revert "abc"
This reverts commit bcb4214bd9
.
* Update to current commit
* Revert changes to fortify.md
* Updated UI Icon to Crew Served Ammo branch UI
* Added Pabst's CrewServedAmmo to handle ammo loading/unloading instead of my solution
* Fixed bug where currentWeaponTurret returned a blank string when a player hasent entered hte weapon to select the current weapon
* Re-added ammo loading time
* Tabs->Spaces
* Newline at end of files
* Removed replaced functions
* Remove redundant strings. Move ammo handling to appropiate section
* Tabs->Spaces
* Update wiki
* Updated to fix crash with default weapons and disable CSW ability on default static weapons
* Added editor attributes to enable/disable CSW at edit time
* Change how ammo is removed from the CSW. Uses math instead of iteration
* Fix bug where assembled weapon did not get rid of default actions
* Added support for multiple types of ammo in one CSW
* Add tracer magazines for .50 cal
* Fix bug where you could load ammo even if the gun couldnt take any more
* Disable debug and enable compile cache
* Changed weapon deploy/pickup time. Removed custom Titan missiles. Using ACE Dragging now. Added progress bar check for pickupTripod. Updated documentation
* Removed check if CSW is full to unload ammo
* Fix bug where items would spawn underneath other items on wepaon dismount
* Change some things
* Configure base statics, improve returnAmmo
* Add mortar baseplate
* Remove explicit inheritance
* Fix bug where unloading ammo would duplicate it if you had room in your person.
* Tab->Space
* Player couldnt pickup tripod due to legacy code
* Fix GMG_01_base_F inheritce
* Port of ACE 2 tripod + ACE 2 CSW Bag
* Move ACE 2 Data to APL folder
* Adjust weights to make them more accurate to how ARMA uses it and the real life equivalents
* Fix bug where error was thrown on esc from picking up tripod. Tripod rotated 180
* Fix bug where if you called ace_common_claim the weapon could be set to be disassembled even though it may not be wanted via CSW
* Added ability to toggle ammo handling when weaponAssembly is disabled.
* Add Proxy Weapons for all Vanilla static weapons. These serve as a way to allow for realistic ammo reload times without having to modify base classes if you want feautres turned off. Adjusted reload and mount times to be more "realistic"
* Fix Shadow RPT Spam
* Update wiki
* Change order of setDir and setPos
* Change all setDir/setPos orientations. Remove redundant check. Ensure that weapon locked state reflects it with the "getIn" command. Add a way to pass in a specific classname for the weapon assemble type. Add a callback function onDisassemble if user wants to set the state of the new tripod using the old weapon as a reference
* Actually check for the carryWeaponClassname in the deployWeapon check
* Ai Compatiblity
* Add stringtable entries
* Formatting fixes
* Stringtables for settings, fix setMagazineTurretAmmo
* inherit ammo for mags, reorder stringtable
displays correct ammo and descriptionShort
* don't require ace_javelin
* Tweaks, cleanup, localzation, ace_reload changes
change weapon tag to [CSW]
tweak localization strings
minor cleanup
simplify some ace_reload funcs
* delete moved dev func
* Hopefully fix issue where to-be deleted tripod intersects with newly created weapon and vice versa. Remove PBOPREFIX newline
* cleanup/proxyWeapon/mk6 compat
* RHS compatability
* Modified all tripod p3ds to have [0,0,0] at the mount. Ported AGS-30, Kord, M220, and SPG-9 tripods to APL And added them to CSW. Changed RHS compats to use new ported tripods. Changed strings to reflect real names.
* Change from M224 Mortar Bag -> Mk6 Mortar bag
* Add named propert (Autocenter) to make P3D [0,0,0] the center of the object instead of engine calculated
* oh no tabs
* remove some more evil tabs
* fix changes lost in merge
* fix bad merge pt2
* Fix UBC
148 lines
5.0 KiB
Markdown
148 lines
5.0 KiB
Markdown
---
|
|
layout: wiki
|
|
title: Crew Served Weapons Framework
|
|
description: Explains how to add new Crew Served Weapons to ACE3
|
|
group: framework
|
|
order: 5
|
|
parent: wiki
|
|
mod: ace
|
|
version:
|
|
major: 3
|
|
minor: 13
|
|
patch: 0
|
|
---
|
|
|
|
## 1. Making a new Crew Served Weapon
|
|
|
|
### 1.1 CfgVehicles
|
|
|
|
```cpp
|
|
class CfgVehicles {
|
|
class LandVehicle;
|
|
class StaticWeapon: LandVehicle {
|
|
class ACE_Actions;
|
|
};
|
|
class StaticMGWeapon: StaticWeapon {
|
|
class Turrets {
|
|
class MainTurret;
|
|
};
|
|
class ACE_Actions: ACE_Actions {
|
|
class ACE_MainActions;
|
|
};
|
|
};
|
|
class banana_csw: StaticMGWeapon {
|
|
class ace_csw {
|
|
enabled = 1; // whether or not the weapon is affected by CSW
|
|
proxyWeapon = QGVAR(HMG_Static); // The weapon that will be added to the CSW on initialization. Used to ensure lower ammo-reload time when using Ammo Handling
|
|
magazineLocation = "_target selectionPosition 'magazine'"; // The location of the magazine. Where the action for ammo-handling will appear on the weapon
|
|
disassembleWeapon = QGVAR(staticHMGCarry); // What the weapon will disassemble to
|
|
disassembleTurret = QGVAR(m3TripodLow); // Which tripod will appear when weapon has been disassembled
|
|
ammoLoadTime = 7; // How long it takes in seconds to load ammo into the weapon
|
|
ammoUnloadTime = 5; // How long it takes in seconds to unload ammo from the weapon
|
|
desiredAmmo = 69; // When the weapon is reloaded it will try and reload to this ammo capacity
|
|
disassembleFunc = "myCoolFunction.sqf"; // A callback function for when the CSW gets disassembled. Arguments: [tripod, staticWeapon]
|
|
};
|
|
};
|
|
};
|
|
```
|
|
|
|
### 1.2 CfgMagazines
|
|
|
|
```cpp
|
|
class CfgMagazines {
|
|
class 100Rnd_127x99_mag; // Example magazine used - does not have to be this
|
|
class banana_ammo: 100Rnd_127x99_mag {
|
|
scope=2; // Needs to be 2 to make sure it shows up in Arsenal
|
|
type=256; // Must be 256 to show up in Arsenal
|
|
count = 100; // How much ammo gets added per "Load Ammo" selection
|
|
model = "\A3\Structures_F_EPB\Items\Military\Ammobox_rounds_F.p3d"; // default ammo box model
|
|
//ace_isbelt = 1; // Needed if your magazine has belt linking
|
|
};
|
|
};
|
|
```
|
|
|
|
### 1.3 CfgWeapons
|
|
|
|
```cpp
|
|
class CfgWeapons {
|
|
class Launcher_Base_F;
|
|
class banana_carry_weapon: Launcher_Base_F {
|
|
class ACE_CSW {
|
|
type = "weapon"; // What type of carry it is. Must always be "weapon" for the carry weapon
|
|
deployTime = 4; // How long it takes to deploy the weapon onto the tripod
|
|
pickupTime = 4; // How long it takes to disassemble weapon from the tripod
|
|
class assembleTo {
|
|
ace_csw_m3Tripod = "banana_csw_mod1"; // What tripod can this weapon deploy onto, and what vehicle will it spawn when it is deployed
|
|
banana_tripod = "banana_csw";
|
|
};
|
|
};
|
|
};
|
|
|
|
class HMG_Static;
|
|
class banana_proxy_weapon: HMG_Static {
|
|
magazineReloadTime = 0.5; // Proxy weapons are spawned onto the CSW when it is assembled. Because ammo loading times use defined values in the magazine, this number needs to be low to ensure low latency
|
|
};
|
|
};
|
|
```
|
|
|
|
### 1.4 CfgMagazineGroups
|
|
|
|
```cpp
|
|
class ace_csw_groups { // Ammo that can be loaded into this CSW
|
|
class banana_ammo { // The magazine which the player can place into their inventory
|
|
banana_dummy_ammo = 1; // Magazine that is loaded into the weapon as per CfgWeapons >> weapon >> magazines
|
|
};
|
|
|
|
// Optional
|
|
class ace_csw_100Rnd_127x99_mag { // default magazine that CSW already implements
|
|
banana_dummy_ammo = 1;
|
|
};
|
|
|
|
/*
|
|
Ammo types already defined by CSW:
|
|
- ace_csw_100Rnd_127x99_mag
|
|
- ace_csw_100Rnd_127x99_mag_red
|
|
- ace_csw_100Rnd_127x99_mag_green
|
|
- ace_csw_100Rnd_127x99_mag_yellow
|
|
- ace_csw_50Rnd_127x108_mag
|
|
- ace_csw_20Rnd_20mm_G_belt
|
|
- ACE_1Rnd_82mm_Mo_HE
|
|
- ACE_1Rnd_82mm_Mo_Smoke
|
|
- ACE_1Rnd_82mm_Mo_Illum
|
|
- ACE_1Rnd_82mm_Mo_HE_Guided
|
|
- ACE_1Rnd_82mm_Mo_HE_LaserGuided
|
|
- Titan_AT
|
|
- Titan_AA
|
|
*/
|
|
};
|
|
```
|
|
|
|
## 2. Making a new Tripod
|
|
|
|
### 2.1 CfgVehicles
|
|
|
|
```cpp
|
|
class CfgVehicles {
|
|
class ace_csw_baseTripod;
|
|
class banana_tripod: ace_csw_baseTripod {
|
|
class ace_csw { disassembleTo = "banana_carry_tripod"; }; // What will be spawned when "Pickup Tripod" is selected
|
|
};
|
|
};
|
|
```
|
|
|
|
### 2.2 CfgWeapons
|
|
|
|
```cpp
|
|
class CfgWeapons {
|
|
class Launcher_Base_F;
|
|
class banana_carry_tripod: Launcher_Base_F {
|
|
class ACE_CSW {
|
|
type = "mount"; // What type of carry it is. Must always be "mount" for the tripod
|
|
deployTime = 4; // How long it takes to deploy the tripod
|
|
pickupTime = 4; // How long it takes to pickup the tripod
|
|
deploy = "banana_tripod"; // what vehicle will spawn when the tripod is deployed
|
|
};
|
|
};
|
|
};
|
|
```
|