mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
Merge remote-tracking branch 'origin/master' into medical-rewrite
This commit is contained in:
commit
4484a36f25
@ -1 +0,0 @@
|
||||
z\ace\addons\sitting
|
@ -1,7 +0,0 @@
|
||||
class ACE_Settings {
|
||||
class GVAR(enable) {
|
||||
value = 0;
|
||||
typeName = "BOOL";
|
||||
displayName = CSTRING(Enable);
|
||||
};
|
||||
};
|
@ -1,35 +0,0 @@
|
||||
|
||||
class Extended_PreStart_EventHandlers {
|
||||
class ADDON {
|
||||
init = QUOTE(call COMPILE_FILE(XEH_preStart));
|
||||
};
|
||||
};
|
||||
|
||||
class Extended_PreInit_EventHandlers {
|
||||
class ADDON {
|
||||
init = QUOTE(call COMPILE_FILE(XEH_preInit));
|
||||
};
|
||||
};
|
||||
|
||||
class Extended_PostInit_EventHandlers {
|
||||
class ADDON {
|
||||
clientInit = QUOTE(call COMPILE_FILE(XEH_clientInit));
|
||||
};
|
||||
};
|
||||
|
||||
class Extended_Killed_EventHandlers {
|
||||
class CAManBase {
|
||||
class ADDON {
|
||||
killed = QUOTE(_this call DFUNC(handleInterrupt));
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
// Need initPost or there are problems with setVariable
|
||||
class Extended_InitPost_EventHandlers {
|
||||
class ThingX {
|
||||
class ADDON {
|
||||
init = QUOTE(_this call DFUNC(addSitActions));
|
||||
};
|
||||
};
|
||||
};
|
@ -1,108 +0,0 @@
|
||||
// Force free-look, prevent body rotating and leaning
|
||||
#define MACRO_ANIMATION \
|
||||
head = "headDefault"; \
|
||||
aimingBody = "aimingNo"; \
|
||||
forceAim = 1; \
|
||||
static = 1;
|
||||
|
||||
class CfgMovesBasic;
|
||||
class CfgMovesMaleSdr: CfgMovesBasic {
|
||||
class States {
|
||||
class HubSittingChairA_idle1;
|
||||
class GVAR(HubSittingChairA_idle1): HubSittingChairA_idle1 {
|
||||
MACRO_ANIMATION
|
||||
};
|
||||
class HubSittingChairA_idle2;
|
||||
class GVAR(HubSittingChairA_idle2): HubSittingChairA_idle2 {
|
||||
MACRO_ANIMATION
|
||||
};
|
||||
class HubSittingChairA_idle3;
|
||||
class GVAR(HubSittingChairA_idle3): HubSittingChairA_idle3 {
|
||||
MACRO_ANIMATION
|
||||
};
|
||||
class HubSittingChairA_move1;
|
||||
class GVAR(HubSittingChairA_move1): HubSittingChairA_move1 {
|
||||
MACRO_ANIMATION
|
||||
};
|
||||
class HubSittingChairB_idle1;
|
||||
class GVAR(HubSittingChairB_idle1): HubSittingChairB_idle1 {
|
||||
MACRO_ANIMATION
|
||||
};
|
||||
class HubSittingChairB_idle2;
|
||||
class GVAR(HubSittingChairB_idle2): HubSittingChairB_idle2 {
|
||||
MACRO_ANIMATION
|
||||
};
|
||||
class HubSittingChairB_idle3;
|
||||
class GVAR(HubSittingChairB_idle3): HubSittingChairB_idle3 {
|
||||
MACRO_ANIMATION
|
||||
};
|
||||
class HubSittingChairB_move1;
|
||||
class GVAR(HubSittingChairB_move1): HubSittingChairB_move1 {
|
||||
MACRO_ANIMATION
|
||||
};
|
||||
class HubSittingChairC_idle1;
|
||||
class GVAR(HubSittingChairC_idle1): HubSittingChairC_idle1 {
|
||||
MACRO_ANIMATION
|
||||
};
|
||||
class HubSittingChairC_idle2;
|
||||
class GVAR(HubSittingChairC_idle2): HubSittingChairC_idle2 {
|
||||
MACRO_ANIMATION
|
||||
};
|
||||
class HubSittingChairC_idle3;
|
||||
class GVAR(HubSittingChairC_idle3): HubSittingChairC_idle3 {
|
||||
MACRO_ANIMATION
|
||||
};
|
||||
class HubSittingChairC_move1;
|
||||
class GVAR(HubSittingChairC_move1): HubSittingChairC_move1 {
|
||||
MACRO_ANIMATION
|
||||
};
|
||||
class HubSittingChairUA_idle1;
|
||||
class GVAR(HubSittingChairUA_idle1): HubSittingChairUA_idle1 {
|
||||
MACRO_ANIMATION
|
||||
};
|
||||
class HubSittingChairUA_idle2;
|
||||
class GVAR(HubSittingChairUA_idle2): HubSittingChairUA_idle2 {
|
||||
MACRO_ANIMATION
|
||||
};
|
||||
class HubSittingChairUA_idle3;
|
||||
class GVAR(HubSittingChairUA_idle3): HubSittingChairUA_idle3 {
|
||||
MACRO_ANIMATION
|
||||
};
|
||||
class HubSittingChairUA_move1;
|
||||
class GVAR(HubSittingChairUA_move1): HubSittingChairUA_move1 {
|
||||
MACRO_ANIMATION
|
||||
};
|
||||
class HubSittingChairUB_idle1;
|
||||
class GVAR(HubSittingChairUB_idle1): HubSittingChairUB_idle1 {
|
||||
MACRO_ANIMATION
|
||||
};
|
||||
class HubSittingChairUB_idle2;
|
||||
class GVAR(HubSittingChairUB_idle2): HubSittingChairUB_idle2 {
|
||||
MACRO_ANIMATION
|
||||
};
|
||||
class HubSittingChairUB_idle3;
|
||||
class GVAR(HubSittingChairUB_idle3): HubSittingChairUB_idle3 {
|
||||
MACRO_ANIMATION
|
||||
};
|
||||
class HubSittingChairUB_move1;
|
||||
class GVAR(HubSittingChairUB_move1): HubSittingChairUB_move1 {
|
||||
MACRO_ANIMATION
|
||||
};
|
||||
class HubSittingChairUC_idle1;
|
||||
class GVAR(HubSittingChairUC_idle1): HubSittingChairUC_idle1 {
|
||||
MACRO_ANIMATION
|
||||
};
|
||||
class HubSittingChairUC_idle2;
|
||||
class GVAR(HubSittingChairUC_idle2): HubSittingChairUC_idle2 {
|
||||
MACRO_ANIMATION
|
||||
};
|
||||
class HubSittingChairUC_idle3;
|
||||
class GVAR(HubSittingChairUC_idle3): HubSittingChairUC_idle3 {
|
||||
MACRO_ANIMATION
|
||||
};
|
||||
class HubSittingChairUC_move1;
|
||||
class GVAR(HubSittingChairUC_move1): HubSittingChairUC_move1 {
|
||||
MACRO_ANIMATION
|
||||
};
|
||||
};
|
||||
};
|
@ -1,123 +0,0 @@
|
||||
|
||||
class CBA_Extended_EventHandlers;
|
||||
|
||||
class CfgVehicles {
|
||||
class ACE_Module;
|
||||
class ACE_ModuleSitting: ACE_Module {
|
||||
author = ECSTRING(common,ACETeam);
|
||||
category = "ACE";
|
||||
displayName = CSTRING(ModuleDisplayName);
|
||||
function = QFUNC(moduleInit);
|
||||
scope = 1;
|
||||
isGlobal = 1;
|
||||
isSingular = 1;
|
||||
icon = QPATHTOF(UI\Icon_Module_Sitting_ca.paa);
|
||||
class Arguments {
|
||||
class enable {
|
||||
displayName = CSTRING(Enable);
|
||||
description = CSTRING(Enable);
|
||||
typeName = "BOOL";
|
||||
defaultValue = 1;
|
||||
};
|
||||
};
|
||||
class ModuleDescription {
|
||||
description = CSTRING(ModuleDescription);
|
||||
};
|
||||
};
|
||||
|
||||
class Man;
|
||||
class CAManBase: Man {
|
||||
class ACE_SelfActions {
|
||||
class GVAR(Stand) {
|
||||
displayName = CSTRING(Stand);
|
||||
condition = QUOTE(_player call FUNC(canStand));
|
||||
exceptions[] = {"isNotSitting"};
|
||||
statement = QUOTE(_player call FUNC(stand));
|
||||
priority = 0;
|
||||
icon = QPATHTOF(UI\stand_ca.paa);
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
// Folding Chair
|
||||
class ThingX;
|
||||
class Land_CampingChair_V1_F: ThingX {
|
||||
class EventHandlers {
|
||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||
};
|
||||
|
||||
GVAR(canSit) = 1;
|
||||
GVAR(sitDirection) = 180;
|
||||
GVAR(sitPosition)[] = {0, -0.1, -0.45};
|
||||
EGVAR(dragging,canCarry) = 1;
|
||||
EGVAR(dragging,carryPosition)[] = {0, 0.75, 0.5};
|
||||
EGVAR(dragging,carryDirection) = 180;
|
||||
};
|
||||
// Camping Chair
|
||||
class Land_CampingChair_V2_F: ThingX {
|
||||
class EventHandlers {
|
||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||
};
|
||||
|
||||
GVAR(canSit) = 1;
|
||||
GVAR(sitDirection) = 180;
|
||||
GVAR(sitPosition)[] = {0, -0.1, -0.45};
|
||||
EGVAR(dragging,canCarry) = 1;
|
||||
EGVAR(dragging,carryPosition)[] = {0, 0.75, 0.5};
|
||||
EGVAR(dragging,carryDirection) = 180;
|
||||
};
|
||||
|
||||
// Chair (Plastic)
|
||||
class Furniture_base_F: ThingX {};
|
||||
class Land_ChairPlastic_F: Furniture_base_F {
|
||||
class EventHandlers {
|
||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||
};
|
||||
|
||||
GVAR(canSit) = 1;
|
||||
GVAR(sitDirection) = 90;
|
||||
GVAR(sitPosition)[] = {0, 0, -0.5};
|
||||
EGVAR(dragging,canCarry) = 1;
|
||||
EGVAR(dragging,carryPosition)[] = {0, 0.75, 0.5};
|
||||
EGVAR(dragging,carryDirection) = 270;
|
||||
};
|
||||
// Chair (Wooden)
|
||||
class Land_ChairWood_F: Furniture_base_F {
|
||||
class EventHandlers {
|
||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||
};
|
||||
|
||||
GVAR(canSit) = 1;
|
||||
GVAR(sitDirection) = 180;
|
||||
GVAR(sitPosition)[] = {0, -0.05, 0};
|
||||
EGVAR(dragging,canCarry) = 1;
|
||||
EGVAR(dragging,carryPosition)[] = {0, 0.75, 0.5};
|
||||
EGVAR(dragging,carryDirection) = 180;
|
||||
};
|
||||
// Office Chair
|
||||
class Land_OfficeChair_01_F: Furniture_base_F {
|
||||
class EventHandlers {
|
||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||
};
|
||||
|
||||
GVAR(canSit) = 1;
|
||||
GVAR(sitDirection) = 180;
|
||||
GVAR(sitPosition)[] = {0, 0, -0.6};
|
||||
EGVAR(dragging,canCarry) = 1;
|
||||
EGVAR(dragging,carryPosition)[] = {0, 0.75, 0.5};
|
||||
EGVAR(dragging,carryDirection) = 180;
|
||||
};
|
||||
// Rattan Chair
|
||||
class Land_RattanChair_01_F: Furniture_base_F {
|
||||
class EventHandlers {
|
||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||
};
|
||||
|
||||
GVAR(canSit) = 1;
|
||||
GVAR(sitDirection) = 180;
|
||||
GVAR(sitPosition)[] = {0, -0.1, -1}; // Z must be -1 due to chair's geometry (magic floating seat point)
|
||||
EGVAR(dragging,canCarry) = 1;
|
||||
EGVAR(dragging,carryPosition)[] = {0, 0.75, 0.5};
|
||||
EGVAR(dragging,carryDirection) = 180;
|
||||
};
|
||||
};
|
@ -1,11 +0,0 @@
|
||||
ace_sitting
|
||||
===============
|
||||
|
||||
The Sitting module introduces ability to sit on chairs.
|
||||
|
||||
|
||||
## Maintainers
|
||||
|
||||
The people responsible for merging changes to this component or answering potential questions.
|
||||
|
||||
- [Jonpas](https://github.com/jonpas)
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,9 +0,0 @@
|
||||
|
||||
PREP(addSitActions);
|
||||
PREP(canSit);
|
||||
PREP(canStand);
|
||||
PREP(getRandomAnimation);
|
||||
PREP(handleInterrupt);
|
||||
PREP(moduleInit);
|
||||
PREP(sit);
|
||||
PREP(stand);
|
@ -1,17 +0,0 @@
|
||||
#include "script_component.hpp"
|
||||
|
||||
// Exit on Headless
|
||||
if (!hasInterface) exitWith {};
|
||||
|
||||
["ace_settingsInitialized", {
|
||||
if ([[QUOTE(ADDON), QGVAR(enable)], ["acex_sitting", "acex_sitting_enable"], "3.8.0"] call EFUNC(common,deprecateComponent)) exitwith {};
|
||||
//If not enabled, then do not add CanInteractWith Condition or event handlers:
|
||||
if (!GVAR(enable)) exitWith {};
|
||||
|
||||
// Add interaction menu exception
|
||||
["isNotSitting", {isNil {(_this select 0) getVariable QGVAR(isSitting)}}] call EFUNC(common,addCanInteractWithCondition);
|
||||
|
||||
// Handle interruptions
|
||||
["ace_unconscious", {_this call DFUNC(handleInterrupt)}] call CBA_fnc_addEventHandler;
|
||||
[QEGVAR(captives,setHandcuffed), {_this call DFUNC(handleInterrupt)}] call CBA_fnc_addEventHandler;
|
||||
}] call CBA_fnc_addEventHandler;
|
@ -1,9 +0,0 @@
|
||||
#include "script_component.hpp"
|
||||
|
||||
ADDON = false;
|
||||
|
||||
#include "XEH_PREP.hpp"
|
||||
|
||||
GVAR(initializedClasses) = [];
|
||||
|
||||
ADDON = true;
|
@ -1,3 +0,0 @@
|
||||
#include "script_component.hpp"
|
||||
|
||||
#include "XEH_PREP.hpp"
|
@ -1,20 +0,0 @@
|
||||
#include "script_component.hpp"
|
||||
|
||||
class CfgPatches {
|
||||
class ADDON {
|
||||
name = COMPONENT_NAME;
|
||||
units[] = {};
|
||||
weapons[] = {};
|
||||
requiredVersion = REQUIRED_VERSION;
|
||||
requiredAddons[] = {"ace_interaction"};
|
||||
author = ECSTRING(common,ACETeam);
|
||||
authors[] = {"Jonpas"};
|
||||
url = ECSTRING(main,URL);
|
||||
VERSION_CONFIG;
|
||||
};
|
||||
};
|
||||
|
||||
#include "ACE_Settings.hpp"
|
||||
#include "CfgEventHandlers.hpp"
|
||||
#include "CfgMoves.hpp"
|
||||
#include "CfgVehicles.hpp"
|
@ -1,51 +0,0 @@
|
||||
/*
|
||||
* Author: Jonpas
|
||||
* Adds sit actions.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Seat <OBJECT>
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
*
|
||||
* Example:
|
||||
* [seat] call ace_sitting_fnc_addSitActions
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
params ["_seat"];
|
||||
|
||||
private _type = typeOf _seat;
|
||||
|
||||
// Exit if the object is not specified as a seat
|
||||
if (getNumber (configFile >> "CfgVehicles" >> _type >> QGVAR(canSit)) != 1) exitWith {};
|
||||
|
||||
// only run this after the settings are initialized
|
||||
if !(EGVAR(common,settingsInitFinished)) exitWith {
|
||||
EGVAR(common,runAtSettingsInitialized) pushBack [FUNC(addSitActions), _this];
|
||||
};
|
||||
|
||||
//If not enabled, don't add actions:
|
||||
if (!GVAR(enable)) exitWith {};
|
||||
|
||||
// Exit if class already initialized
|
||||
if (_type in GVAR(initializedClasses)) exitWith {};
|
||||
|
||||
GVAR(initializedClasses) pushBack _type;
|
||||
|
||||
TRACE_1("Adding Sit Action",_type);
|
||||
|
||||
private _sitAction = [
|
||||
QGVAR(Sit),
|
||||
localize LSTRING(Sit),
|
||||
QPATHTOF(UI\sit_ca.paa),
|
||||
{_this call FUNC(sit)},
|
||||
{_this call FUNC(canSit)},
|
||||
{},
|
||||
[],
|
||||
[0, 0, 0],
|
||||
1.5
|
||||
] call EFUNC(interact_menu,createAction);
|
||||
[_type, 0, ["ACE_MainActions"], _sitAction] call EFUNC(interact_menu,addActionToClass);
|
@ -1,23 +0,0 @@
|
||||
/*
|
||||
* Author: Jonpas
|
||||
* Check if the player can sit down.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Seat <OBJECT>
|
||||
*
|
||||
* Return Value:
|
||||
* Can Sit Down <BOOL>
|
||||
*
|
||||
* Example:
|
||||
* [seat] call ace_sitting_fnc_canSit
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
params ["_seat"];
|
||||
|
||||
// Sitting enabled, is seat object, not occupied and standing up (or not on a big slope)
|
||||
GVAR(enable) &&
|
||||
{!(_seat call EFUNC(common,owned))} &&
|
||||
{round (vectorUp _seat select 0) == 0 && {round (vectorUp _seat select 1) == 0} && {round (vectorUp _seat select 2) == 1}}
|
@ -1,21 +0,0 @@
|
||||
/*
|
||||
* Author: Jonpas
|
||||
* Check if the player can stand up (is in sitting position).
|
||||
*
|
||||
* Arguments:
|
||||
* Player <OBJECT>
|
||||
*
|
||||
* Return Value:
|
||||
* Can Stand Up <BOOL>
|
||||
*
|
||||
* Example:
|
||||
* player call ace_sitting_fnc_canStand;
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
params ["_player"];
|
||||
|
||||
// Sitting
|
||||
!isNil {_player getVariable QGVAR(isSitting)}
|
@ -1,44 +0,0 @@
|
||||
/*
|
||||
* Author: Jonpas
|
||||
* Gets a random animations from the list.
|
||||
*
|
||||
* Arguments:
|
||||
* None
|
||||
*
|
||||
* Return Value:
|
||||
* Random Animation <STRING>
|
||||
*
|
||||
* Example:
|
||||
* _animation = call ace_sitting_fnc_getRandomAnimation
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
// Select random animation from Animations Pool
|
||||
selectRandom [
|
||||
QGVAR(HubSittingChairA_idle1),
|
||||
QGVAR(HubSittingChairA_idle2),
|
||||
QGVAR(HubSittingChairA_idle3),
|
||||
QGVAR(HubSittingChairA_move1),
|
||||
QGVAR(HubSittingChairB_idle1),
|
||||
QGVAR(HubSittingChairB_idle2),
|
||||
QGVAR(HubSittingChairB_idle3),
|
||||
QGVAR(HubSittingChairB_move1),
|
||||
QGVAR(HubSittingChairC_idle1),
|
||||
QGVAR(HubSittingChairC_idle2),
|
||||
QGVAR(HubSittingChairC_idle3),
|
||||
QGVAR(HubSittingChairC_move1),
|
||||
QGVAR(HubSittingChairUA_idle1),
|
||||
QGVAR(HubSittingChairUA_idle2),
|
||||
QGVAR(HubSittingChairUA_idle3),
|
||||
QGVAR(HubSittingChairUA_move1),
|
||||
QGVAR(HubSittingChairUB_idle1),
|
||||
QGVAR(HubSittingChairUB_idle2),
|
||||
QGVAR(HubSittingChairUB_idle3),
|
||||
QGVAR(HubSittingChairUB_move1),
|
||||
QGVAR(HubSittingChairUC_idle1),
|
||||
QGVAR(HubSittingChairUC_idle2),
|
||||
QGVAR(HubSittingChairUC_idle3),
|
||||
QGVAR(HubSittingChairUC_move1)
|
||||
]
|
@ -1,22 +0,0 @@
|
||||
/*
|
||||
* Author: Jonpas
|
||||
* Handles interruptions of sitting, like killed or unconsciousness.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Player <OBJECT>
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
*
|
||||
* Example:
|
||||
* player call ace_sitting_fnc_handleInterrupt
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
params ["_player"];
|
||||
|
||||
if (!isNil {_player getVariable QGVAR(isSitting)}) then {
|
||||
_player call FUNC(stand);
|
||||
};
|
@ -1,25 +0,0 @@
|
||||
/*
|
||||
* Author: Jonpas
|
||||
* Initializes the Sitting module.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: The module logic <LOGIC>
|
||||
* 1: Units <ARRAY>
|
||||
* 2: Activated <BOOL>
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
if !(isServer) exitWith {};
|
||||
|
||||
params ["_logic", "_units", "_activated"];
|
||||
|
||||
if (!_activated) exitWith {};
|
||||
|
||||
[_logic, QGVAR(enable), "enable"] call EFUNC(common,readSettingFromModule);
|
||||
|
||||
ACE_LOGINFO("Sitting Module Initialized.");
|
@ -1,72 +0,0 @@
|
||||
/*
|
||||
* Author: Jonpas
|
||||
* Sits down the player.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Seat <OBJECT>
|
||||
* 1: Player <OBJECT>
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
*
|
||||
* Example:
|
||||
* [seat, player] call ace_sitting_fnc_sit;
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
params ["_seat", "_player"];
|
||||
|
||||
// Overwrite weird position, because Arma decides to set it differently based on current animation/stance...
|
||||
_player switchMove "amovpknlmstpsraswrfldnon";
|
||||
|
||||
// Add scroll-wheel action to release object
|
||||
private _actionID = _player addAction [
|
||||
format ["<t color='#FFFF00'>%1</t>", localize LSTRING(Stand)],
|
||||
QUOTE((_this select 0) call FUNC(stand)),
|
||||
nil,
|
||||
20,
|
||||
false,
|
||||
true,
|
||||
"GetOut",
|
||||
QUOTE(_this call FUNC(canStand))
|
||||
];
|
||||
|
||||
// Read config
|
||||
private _configFile = configFile >> "CfgVehicles" >> typeOf _seat;
|
||||
private _sitDirection = (getDir _seat) + getNumber (_configFile >> QGVAR(sitDirection));
|
||||
private _sitPosition = getArray (_configFile >> QGVAR(sitPosition));
|
||||
|
||||
// Get random animation and perform it (before moving player to ensure correct placement)
|
||||
[_player, call FUNC(getRandomAnimation), 2] call EFUNC(common,doAnimation); // Correctly places when using non-transitional animations
|
||||
[_player, "", 1] call EFUNC(common,doAnimation); // Correctly applies animation's config values (such as disallow throwing of grenades, intercept keybinds... etc).
|
||||
|
||||
// Set direction and position
|
||||
_player setDir _sitDirection;
|
||||
//modelToWorld returns AGL
|
||||
_player setPosASL (AGLtoASL (_seat modelToWorld _sitPosition));
|
||||
|
||||
// Set variables, save seat object on player
|
||||
_player setVariable [QGVAR(isSitting), [_seat, _actionID]];
|
||||
[_player, _seat] call EFUNC(common,claim); // To prevent multiple people sitting on one seat
|
||||
|
||||
|
||||
// Add automatical stand PFH in case of interruptions
|
||||
private _seatPosOrig = getPosASL _seat;
|
||||
[{
|
||||
params ["_args", "_pfhId"];
|
||||
_args params ["_player", "_seat", "_seatPosOrig"];
|
||||
|
||||
// Remove PFH if not sitting any more
|
||||
if (isNil {_player getVariable QGVAR(isSitting)}) exitWith {
|
||||
[_pfhId] call CBA_fnc_removePerFrameHandler;
|
||||
TRACE_1("Remove PFH",_player getVariable [ARR_2(QGVAR(isSitting), false)]);
|
||||
};
|
||||
|
||||
// Stand up if chair gets deleted or moved
|
||||
if (isNull _seat || !((getPosASL _seat) isEqualTo _seatPosOrig)) exitWith {
|
||||
_player call FUNC(stand);
|
||||
TRACE_2("Chair moved",getPosASL _seat,_seatPosOrig);
|
||||
};
|
||||
}, 0, [_player, _seat, _seatPosOrig]] call CBA_fnc_addPerFrameHandler;
|
@ -1,38 +0,0 @@
|
||||
/*
|
||||
* Author: Jonpas
|
||||
* Stands up the player.
|
||||
*
|
||||
* Arguments:
|
||||
* Player <OBJECT>
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
*
|
||||
* Example:
|
||||
* player call ace_sitting_fnc_stand;
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
params ["_player"];
|
||||
|
||||
(_player getVariable QGVAR(isSitting)) params ["_seat", "_actionID"];
|
||||
|
||||
// Remove scroll-wheel action
|
||||
_player removeAction _actionID;
|
||||
|
||||
// Restore animation
|
||||
private _animation = switch (currentWeapon _player) do {
|
||||
case "": {"amovpercmstpsnonwnondnon"};
|
||||
case (primaryWeapon _player): {"amovpercmstpslowwrfldnon"};
|
||||
case (handgunWeapon _player): {"amovpercmstpslowwpstdnon"};
|
||||
default {"amovpercmstpsnonwnondnon"};
|
||||
};
|
||||
|
||||
[_player, _animation, 2] call EFUNC(common,doAnimation);
|
||||
|
||||
// Set variables to nil
|
||||
_player setVariable [QGVAR(isSitting), nil];
|
||||
if (isNull _seat) exitWith {};
|
||||
[objNull, _seat] call EFUNC(common,claim);
|
@ -1 +0,0 @@
|
||||
#include "\z\ace\addons\sitting\script_component.hpp"
|
@ -1,18 +0,0 @@
|
||||
#define COMPONENT sitting
|
||||
#define COMPONENT_BEAUTIFIED Sitting
|
||||
#include "\z\ace\addons\main\script_mod.hpp"
|
||||
|
||||
// #define DEBUG_MODE_FULL
|
||||
// #define DISABLE_COMPILE_CACHE
|
||||
// #define CBA_DEBUG_SYNCHRONOUS
|
||||
// #define ENABLE_PERFORMANCE_COUNTERS
|
||||
|
||||
#ifdef DEBUG_ENABLED_SITTING
|
||||
#define DEBUG_MODE_FULL
|
||||
#endif
|
||||
|
||||
#ifdef DEBUG_SETTINGS_SITTING
|
||||
#define DEBUG_SETTINGS DEBUG_SETTINGS_SITTING
|
||||
#endif
|
||||
|
||||
#include "\z\ace\addons\main\script_macros.hpp"
|
@ -1,70 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project name="ACE">
|
||||
<Package name="Sitting">
|
||||
<Key ID="STR_ACE_Sitting_Sit">
|
||||
<English>Sit Down</English>
|
||||
<German>Hinsetzen</German>
|
||||
<Polish>Usiądź</Polish>
|
||||
<Portuguese>Sentar</Portuguese>
|
||||
<Czech>Sednout si</Czech>
|
||||
<Spanish>Sentarse</Spanish>
|
||||
<French>S'assoir</French>
|
||||
<Hungarian>Leülés</Hungarian>
|
||||
<Russian>Сесть</Russian>
|
||||
<Italian>Siediti</Italian>
|
||||
<Japanese>座る</Japanese>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Sitting_Stand">
|
||||
<English>Stand Up</English>
|
||||
<German>Aufstehen</German>
|
||||
<Polish>Wstań</Polish>
|
||||
<Portuguese>Levantar</Portuguese>
|
||||
<Czech>Vstát</Czech>
|
||||
<Spanish>Levantarse</Spanish>
|
||||
<French>Se lever</French>
|
||||
<Hungarian>Felállás</Hungarian>
|
||||
<Russian>Встать</Russian>
|
||||
<Italian>Alzati</Italian>
|
||||
<Japanese>立つ</Japanese>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Sitting_Enable">
|
||||
<English>Enable Sitting</English>
|
||||
<German>Sitzen ermöglichen</German>
|
||||
<Portuguese>Habilitar opção para sentar</Portuguese>
|
||||
<Polish>Aktywuj siadanie</Polish>
|
||||
<Czech>Povolit sezení</Czech>
|
||||
<Spanish>Activar asiento</Spanish>
|
||||
<French>Permettre de s'assoir</French>
|
||||
<Hungarian>Ülés engedélyezése</Hungarian>
|
||||
<Russian>Разрешить сидение</Russian>
|
||||
<Italian>Abilita seduta</Italian>
|
||||
<Japanese>座るのを有効化</Japanese>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Sitting_ModuleDisplayName">
|
||||
<English>Sitting</English>
|
||||
<German>Hinsetzen</German>
|
||||
<Portuguese>Sentado</Portuguese>
|
||||
<Polish>Siadanie</Polish>
|
||||
<Czech>Sezení</Czech>
|
||||
<Spanish>Sentarse</Spanish>
|
||||
<French>S'assoir</French>
|
||||
<Hungarian>Ülés</Hungarian>
|
||||
<Russian>Сидение</Russian>
|
||||
<Italian>Sedersi</Italian>
|
||||
<Japanese>着座</Japanese>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Sitting_ModuleDescription">
|
||||
<English>This module allows you to disable the ability to sit on chairs.</English>
|
||||
<German>Dieses Modul eröffnet die Möglichkeit, sich auf Stühlen hinzusetzen.</German>
|
||||
<Portuguese>Este módulo permite que você desabilite a capacidade de sentar-se em cadeiras e banheiros.</Portuguese>
|
||||
<Polish>Moduł ten pozwala na włączenie lub wyłączenie możliwości siadania na krzesłach i toaletach.</Polish>
|
||||
<Czech>Tento modul dovoluje zakázat možnost sedět na židlých a toaletách.</Czech>
|
||||
<Spanish>Este módulo te permite desactivar la capacidad de sentarse en sillas.</Spanish>
|
||||
<French>Ce module contrôle la capacité de s'assoir sur des chaises ou sur des toilettes</French>
|
||||
<Hungarian>Ez a modul lehetővé teszi a székekre és toalettekre való leülés letiltását.</Hungarian>
|
||||
<Russian>Этот модуль позволяет вам запретить возможность садиться на стулья и туалеты.</Russian>
|
||||
<Italian>Questo modulo ti permette di disabilitare la possibilità di sederti sulle sedie.</Italian>
|
||||
<Japanese>モジュールでは椅子に着席するのを無効化できます。</Japanese>
|
||||
</Key>
|
||||
</Package>
|
||||
</Project>
|
@ -346,10 +346,6 @@
|
||||
`ace_common`
|
||||
{% endif %}
|
||||
|
||||
{% if include.component == "sitting" %}
|
||||
`ace_interaction`
|
||||
{% endif %}
|
||||
|
||||
{% if include.component == "slideshow" %}
|
||||
`ace_common`
|
||||
{% endif %}
|
||||
|
@ -5,23 +5,21 @@ description: Ability to sit on chairs.
|
||||
group: feature
|
||||
category: interaction
|
||||
parent: wiki
|
||||
mod: ace
|
||||
mod: acex
|
||||
version:
|
||||
major: 3
|
||||
minor: 2
|
||||
minor: 0
|
||||
patch: 0
|
||||
redirect_from: "/wiki/feature/sitting.html"
|
||||
---
|
||||
|
||||
<div class="panel callout">
|
||||
<h5>Note:</h5>
|
||||
<p>ACE3 Sitting has been deprecated in favour of ACEX Sitting and will be removed in a future version.</p>
|
||||
</div>
|
||||
_Sitting has been moved from ACE3 (in v3.8.0) to ACEX._
|
||||
|
||||
## 1. Overview
|
||||
Adds the ability to sit on chairs.
|
||||
|
||||
## 2. Usage
|
||||
Please note that to be able to use this function the sitting module need to be placed down (or set to 1 in the server config)
|
||||
Please note that to be able to use this function the sitting module need to be placed down (or set to 1 in the server config).
|
||||
|
||||
### 2.1 How to sit / stand up
|
||||
- Look at the chair and press the interaction key <kbd>Ctrl</kbd>+<kbd>⊞ Win</kbd> (ACE3 default).
|
||||
@ -30,4 +28,4 @@ Please note that to be able to use this function the sitting module need to be p
|
||||
|
||||
## 3. Dependencies
|
||||
|
||||
{% include dependencies_list.md component="sitting" %}
|
||||
{% include dependenciesx_list.md component="sitting" %}
|
Loading…
Reference in New Issue
Block a user