mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
toggle laser vs ir laser
This commit is contained in:
parent
b72366f0f6
commit
3da3543381
@ -2,7 +2,7 @@ class CfgVehicles {
|
||||
class NATO_Box_Base;
|
||||
class Box_NATO_Support_F: NATO_Box_Base {
|
||||
class TransportItems {
|
||||
MACRO_ADDITEM(ACE_acc_pointer_red,4);
|
||||
MACRO_ADDITEM(ACE_acc_pointer_green,4);
|
||||
};
|
||||
};
|
||||
|
||||
@ -23,13 +23,12 @@ class CfgVehicles {
|
||||
class FIA_Box_Base_F;
|
||||
class Box_FIA_Support_F: FIA_Box_Base_F {
|
||||
class TransportItems {
|
||||
MACRO_ADDITEM(ACE_acc_pointer_red,4);
|
||||
MACRO_ADDITEM(ACE_acc_pointer_green,4);
|
||||
};
|
||||
};
|
||||
|
||||
class ACE_Box_Misc: Box_NATO_Support_F {
|
||||
class TransportItems {
|
||||
MACRO_ADDITEM(ACE_acc_pointer_red,4);
|
||||
MACRO_ADDITEM(ACE_acc_pointer_green,4);
|
||||
};
|
||||
};
|
||||
|
@ -1,17 +1,28 @@
|
||||
|
||||
class SlotInfo;
|
||||
class PointerSlot: SlotInfo {
|
||||
compatibleItems[] += {"ACE_acc_pointer_red","ACE_acc_pointer_green"};
|
||||
compatibleItems[] += {"ACE_acc_pointer_red","ACE_acc_pointer_green_IR","ACE_acc_pointer_green"};
|
||||
};
|
||||
|
||||
class CfgWeapons {
|
||||
class ItemCore;
|
||||
class InventoryFlashLightItem_Base_F;
|
||||
|
||||
class acc_pointer_IR: ItemCore {
|
||||
ACE_nextModeClass = "ACE_acc_pointer_red";
|
||||
ACE_modeDescription = "$STR_ACE_Laserpointer_IRLaser";
|
||||
|
||||
displayName = "$STR_ACE_Laserpointer_red";
|
||||
descriptionUse = "$STR_ACE_Laserpointer_useLaser";
|
||||
};
|
||||
|
||||
class ACE_acc_pointer_red: ItemCore {
|
||||
ACE_nextModeClass = "acc_pointer_IR";
|
||||
ACE_modeDescription = "$STR_ACE_Laserpointer_Laser";
|
||||
|
||||
author = "$STR_ACE_Common_ACETeam";
|
||||
_generalMacro = "ACE_acc_pointer_red";
|
||||
scope = 2;
|
||||
scope = 1;
|
||||
displayName = "$STR_ACE_Laserpointer_red";
|
||||
descriptionUse = "$STR_ACE_Laserpointer_useLaser";
|
||||
picture = "\A3\weapons_F\Data\UI\gear_accv_pointer_CA.paa";
|
||||
@ -54,9 +65,23 @@ class CfgWeapons {
|
||||
inertia = 0.1;
|
||||
};
|
||||
|
||||
class ACE_acc_pointer_green: ACE_acc_pointer_red {
|
||||
class ACE_acc_pointer_green_IR: acc_pointer_IR {
|
||||
ACE_nextModeClass = "ACE_acc_pointer_green";
|
||||
ACE_modeDescription = "$STR_ACE_Laserpointer_IRLaser";
|
||||
|
||||
author = "$STR_ACE_Common_ACETeam";
|
||||
_generalMacro = "ACE_acc_pointer_green";
|
||||
scope = 1;
|
||||
displayName = "$STR_ACE_Laserpointer_green";
|
||||
};
|
||||
|
||||
class ACE_acc_pointer_green: ACE_acc_pointer_red {
|
||||
ACE_nextModeClass = "ACE_acc_pointer_green_IR";
|
||||
ACE_modeDescription = "$STR_ACE_Laserpointer_Laser";
|
||||
|
||||
author = "$STR_ACE_Common_ACETeam";
|
||||
_generalMacro = "ACE_acc_pointer_green";
|
||||
scope = 2;
|
||||
displayName = "$STR_ACE_Laserpointer_green";
|
||||
};
|
||||
};
|
||||
|
@ -11,7 +11,7 @@ GVAR(nearUnits) = [];
|
||||
// @todo. Maybe move to common?
|
||||
[{
|
||||
private "_nearUnits";
|
||||
_nearUnits = nearestObjects [positionCameraToWorld [0,0,0], ["CAManBase"], 50];
|
||||
_nearUnits = nearestObjects [positionCameraToWorld [0,0,0], ["CAManBase"], 50]; // when moving this, search also for units inside vehicles. currently breaks the laser in FFV
|
||||
|
||||
if (count _nearUnits > 10) then {
|
||||
_nearUnits resize 10;
|
||||
@ -24,3 +24,16 @@ GVAR(nearUnits) = [];
|
||||
addMissionEventHandler ["Draw3D", {
|
||||
call FUNC(onDraw);
|
||||
}];
|
||||
|
||||
// init keybinds
|
||||
["ACE3", QGVAR(switchLaserLightMode), localize "STR_ACE_Laserpointer_switchLaserLight",
|
||||
{
|
||||
// Conditions: canInteract
|
||||
if !([ACE_player, objNull, ["isNotInside"]] call EFUNC(common,canInteractWith)) exitWith {false};
|
||||
// Conditions: specific
|
||||
if !([ACE_player] call EFUNC(common,canUseWeapon)) exitWith {false};
|
||||
|
||||
[ACE_player, currentWeapon ACE_player] call FUNC(switchLaserLightMode);
|
||||
true
|
||||
},
|
||||
{false}, [38, [false, true, false]], false] call CBA_fnc_addKeybind;
|
||||
|
@ -4,5 +4,6 @@ ADDON = false;
|
||||
|
||||
PREP(drawLaserpoint);
|
||||
PREP(onDraw);
|
||||
PREP(switchLaserLightMode);
|
||||
|
||||
ADDON = true;
|
||||
|
@ -3,7 +3,7 @@
|
||||
class CfgPatches {
|
||||
class ADDON {
|
||||
units[] = {};
|
||||
weapons[] = {"ACE_acc_pointer_red","ACE_acc_pointer_green"};
|
||||
weapons[] = {"ACE_acc_pointer_red","ACE_acc_pointer_green","ACE_acc_pointer_green_IR"};
|
||||
requiredVersion = REQUIRED_VERSION;
|
||||
requiredAddons[] = {"ace_common"};
|
||||
author[] = {"commy2"};
|
||||
|
58
addons/laserpointer/functions/fnc_switchLaserLightMode.sqf
Normal file
58
addons/laserpointer/functions/fnc_switchLaserLightMode.sqf
Normal file
@ -0,0 +1,58 @@
|
||||
// by commy2
|
||||
#include "script_component.hpp"
|
||||
|
||||
private ["_unit", "_weapon"];
|
||||
|
||||
_unit = _this select 0;
|
||||
_weapon = _this select 1;
|
||||
|
||||
// 1 = primary, 2 = secondary, 3 = handgun
|
||||
private "_currentWeaponType";
|
||||
_currentWeaponType = 0;
|
||||
|
||||
private "_pointer";
|
||||
_pointer = switch (_weapon) do {
|
||||
case (primaryWeapon _unit): {
|
||||
_currentWeaponType = 1;
|
||||
primaryWeaponItems _unit select 1
|
||||
};
|
||||
case (secondaryWeapon _unit): {
|
||||
_currentWeaponType = 2;
|
||||
secondaryWeaponItems _unit select 1
|
||||
};
|
||||
case (handgunWeapon _unit): {
|
||||
_currentWeaponType = 3;
|
||||
handgunItems _unit select 1
|
||||
};
|
||||
default {""};
|
||||
};
|
||||
|
||||
if (_pointer == "") exitWith {};
|
||||
|
||||
private "_nextPointer";
|
||||
_nextPointer = getText (configFile >> "CfgWeapons" >> _pointer >> "ACE_nextModeClass");
|
||||
|
||||
if (_nextPointer == "") exitWith {};
|
||||
|
||||
private ["_description", "_picture"];
|
||||
|
||||
_description = getText (configFile >> "CfgWeapons" >> _nextPointer >> "ACE_modeDescription");
|
||||
_picture = getText (configFile >> "CfgWeapons" >> _nextPointer >> "picture");
|
||||
|
||||
switch (_currentWeaponType) do {
|
||||
case 1: {
|
||||
_unit removePrimaryWeaponItem _pointer;
|
||||
_unit addPrimaryWeaponItem _nextPointer;
|
||||
};
|
||||
case 2: {
|
||||
_unit removeSecondaryWeaponItem _pointer;
|
||||
_unit addSecondaryWeaponItem _nextPointer;
|
||||
};
|
||||
case 3: {
|
||||
_unit removeHandgunItem _pointer;
|
||||
_unit addHandgunItem _nextPointer;
|
||||
};
|
||||
};
|
||||
|
||||
[_description, _picture] call EFUNC(common,displayTextPicture);
|
||||
playSound "ACE_Sound_Click";
|
@ -36,5 +36,17 @@
|
||||
<Russian><t color='#9cf953'>Использовать: </t>вкл/выкл лазер</Russian>
|
||||
<Spanish><t color='#9cf953'>Usar: </t>encender/apagar láser</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Laserpointer_Laser">
|
||||
<English>Laser</English>
|
||||
<German>Laser</German>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Laserpointer_IRLaser">
|
||||
<English>IR Laser</English>
|
||||
<German>IR-Laser</German>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Laserpointer_switchLaserLight">
|
||||
<English>Switch Laser / IR Laser</English>
|
||||
<German>Umschalten Laser / IR-Laser</German>
|
||||
</Key>
|
||||
</Package>
|
||||
</Project>
|
||||
|
Loading…
Reference in New Issue
Block a user