-
Notifications
You must be signed in to change notification settings - Fork 736
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Added interaction to quickly pass a magazine #2390
Merged
Merged
Changes from all commits
Commits
Show all changes
11 commits
Select commit
Hold shift + click to select a range
60afa18
Merge pull request #1 from acemod/master
BaerMitUmlaut da42367
Merge branch 'master' of https://github.com/acemod/ACE3
BaerMitUmlaut c26107b
Added ability to pass a magazine
BaerMitUmlaut 45bfa3e
Fixed vanishing mags and localized hint
BaerMitUmlaut a29902d
More use of params, event system, removed compile
BaerMitUmlaut ccf1bf1
Cleaned up canPassMagazine condition
BaerMitUmlaut 8ee1136
Rewrite canPassMagazine condition
BaerMitUmlaut d6dcd41
Resolved merge conflicts
BaerMitUmlaut 090384c
Fixed canPassMagazine header
BaerMitUmlaut 1effe61
Removed parent condition
BaerMitUmlaut 818466d
Added ACE setting to hide interaction
BaerMitUmlaut File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
/* | ||
* Author: BaerMitUmlaut | ||
* Checks if unit has a spare magazine for the specified weapon. | ||
* | ||
* Arguments: | ||
* 0: Unit that passes the magazine <OBJECT> | ||
* 1: Unit to pass the magazine to <OBJECT> | ||
* 2: Weapon classname <STRING> | ||
* | ||
* Return Value: | ||
* Unit can pass magazine <BOOL> | ||
* | ||
* Example: | ||
* [_player, _target, "arifle_MX_F"] call ace_interaction_fnc_canPassMagazine | ||
* | ||
* Public: No | ||
*/ | ||
|
||
#include "script_component.hpp" | ||
params ["_player", "_target", "_weapon"]; | ||
private ["_compatibleMags"]; | ||
|
||
if (!GVAR(enableMagazinePassing)) exitWith {false}; | ||
|
||
_compatibleMags = getArray (configfile >> "CfgWeapons" >> _weapon >> "magazines"); | ||
{ | ||
_x params ["_className", "", "_loaded"]; | ||
if ((_className in _compatibleMags) && {!_loaded} && {_target canAdd _className}) exitWith {true}; | ||
false | ||
} foreach (magazinesAmmoFull _player); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
/* | ||
* Author: BaerMitUmlaut | ||
* Pass spare magazine for the specified weapon. | ||
* | ||
* Arguments: | ||
* 0: Unit that passes the magazine <OBJECT> | ||
* 1: Unit to pass the magazine to <OBJECT> | ||
* 2: Weapon classname <STRING> | ||
* | ||
* Return Value: | ||
* None | ||
* | ||
* Example: | ||
* [_player, _target, "arifle_MX_F"] call ace_interaction_fnc_magToPassazine | ||
* | ||
* Public: No | ||
*/ | ||
|
||
#include "script_component.hpp" | ||
params ["_player", "_target", "_weapon"]; | ||
private ["_compatibleMags", "_filteredMags", "_magToPass", "_magToPassIndex", "_playerName", "_magToPassDisplayName"]; | ||
|
||
_compatibleMags = getArray (configfile >> "CfgWeapons" >> _weapon >> "magazines"); | ||
_filteredMags = [magazinesAmmoFull _player, { | ||
params ["_className", "", "_loaded"]; | ||
_className in _compatibleMags && !_loaded | ||
}] call EFUNC(common,filter); | ||
|
||
//select magazine with most ammo | ||
_magToPass = _filteredMags select 0; | ||
_magToPassIndex = 0; | ||
{ | ||
_x params ["_className", "_ammoCount"]; | ||
if ((_ammoCount > (_magToPass select 1)) && (_target canAdd _className)) then { | ||
_magToPass = _x; | ||
_magToPassIndex = _forEachIndex; | ||
}; | ||
} foreach _filteredMags; | ||
|
||
//remove all magazines and add them again, except the one to be passed | ||
//needed because of missing commands, see http://feedback.arma3.com/view.php?id=12782 | ||
_magToPass params ["_magToPassClassName", "_magToPassAmmoCount"]; | ||
_player removeMagazines _magToPassClassName; | ||
{ | ||
_x params ["_className", "_ammoCount"]; | ||
if ((_className == _magToPassClassName) && (_forEachIndex != _magToPassIndex)) then { | ||
_player addMagazine [_className, _ammoCount]; | ||
}; | ||
} foreach _filteredMags; | ||
|
||
_player playActionNow "PutDown"; | ||
|
||
_target addMagazine [_magToPassClassName, _magToPassAmmoCount]; | ||
|
||
_playerName = [_player] call EFUNC(common,getName); | ||
_magToPassDisplayName = getText (configFile >> "CfgMagazines" >> _magToPassClassName >> "displayName"); | ||
["displayTextStructured", [_target], [[LSTRING(PassMagazineHint), _playerName, _magToPassDisplayName], 1.5, _target]] call EFUNC(common,targetEvent); | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. What happens if I pass this to a local AI? Reminder for me to test this. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The AI receives the mag and the hint does not appear. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You can use
params
for this