mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
Merge pull request #1668 from acemod/release
Release v3.1.1 merge into Master
This commit is contained in:
commit
85c40a4cf2
@ -4,11 +4,11 @@
|
||||
</p>
|
||||
<p align="center">
|
||||
<a href="https://github.com/acemod/ACE3/releases">
|
||||
<img src="https://img.shields.io/badge/Version-3.0.1-blue.svg"
|
||||
<img src="https://img.shields.io/badge/Version-3.1.1-blue.svg"
|
||||
alt="ACE version">
|
||||
</a>
|
||||
<a href="https://github.com/acemod/ACE3/releases/download/v3.0.1/ace3_3.0.1.zip">
|
||||
<img src="http://img.shields.io/badge/Download-40.9_MB-green.svg"
|
||||
<a href="https://github.com/acemod/ACE3/releases/download/v3.1.1/ace3_3.1.1.zip">
|
||||
<img src="http://img.shields.io/badge/Download-52.2_MB-green.svg"
|
||||
alt="ACE download">
|
||||
</a>
|
||||
<a href="https://github.com/acemod/ACE3/issues">
|
||||
|
Binary file not shown.
@ -140,6 +140,15 @@ call FUNC(checkFiles);
|
||||
}, 0, [false]] call cba_fnc_addPerFrameHandler;
|
||||
|
||||
|
||||
["SettingsInitialized", {
|
||||
[
|
||||
GVAR(checkPBOsAction),
|
||||
GVAR(checkPBOsCheckAll),
|
||||
call compile GVAR(checkPBOsWhitelist)
|
||||
] call FUNC(checkPBOs)
|
||||
}] call FUNC(addEventHandler);
|
||||
|
||||
|
||||
/***************************************************************/
|
||||
/***************************************************************/
|
||||
/***************************************************************/
|
||||
@ -308,14 +317,6 @@ if(isMultiplayer && { ACE_time > 0 || isNull player } ) then {
|
||||
}, 0, []] call cba_fnc_addPerFrameHandler;
|
||||
};
|
||||
|
||||
["SettingsInitialized", {
|
||||
[
|
||||
GVAR(checkPBOsAction),
|
||||
GVAR(checkPBOsCheckAll),
|
||||
call compile GVAR(checkPBOsWhitelist)
|
||||
] call FUNC(checkPBOs)
|
||||
}] call FUNC(addEventHandler);
|
||||
|
||||
//Device Handler:
|
||||
GVAR(deviceKeyHandlingArray) = [];
|
||||
GVAR(deviceKeyCurrentIndex) = -1;
|
||||
|
@ -11,7 +11,6 @@ PREP(addCanInteractWithCondition);
|
||||
PREP(addLineToDebugDraw);
|
||||
PREP(addSetting);
|
||||
PREP(addToInventory);
|
||||
PREP(adminKick);
|
||||
PREP(ambientBrightness);
|
||||
PREP(applyForceWalkStatus);
|
||||
PREP(ASLToPosition);
|
||||
|
@ -1,8 +0,0 @@
|
||||
// by commy2
|
||||
#include "script_component.hpp"
|
||||
|
||||
private "_name";
|
||||
|
||||
_name = name (_this select 0);
|
||||
|
||||
[_name, "{if (serverCommandAvailable '#kick') then {serverCommand format['#kick %1', _this]}}"] call FUNC(execRemoteFnc);
|
@ -67,24 +67,26 @@ if (!isServer) then {
|
||||
//[_error, "{systemChat _this}"] call FUNC(execRemoteFnc);
|
||||
diag_log text _error;
|
||||
|
||||
_text = composeText [lineBreak, parseText format ["<t align='center'>%1</t>", _text]];
|
||||
if (_mode < 2) then {
|
||||
_text = composeText [lineBreak, parseText format ["<t align='center'>%1</t>", _text]];
|
||||
|
||||
_rscLayer = "ACE_RscErrorHint" call BIS_fnc_rscLayer;
|
||||
_rscLayer cutRsc ["ACE_RscErrorHint", "PLAIN", 0, true];
|
||||
_rscLayer = "ACE_RscErrorHint" call BIS_fnc_rscLayer;
|
||||
_rscLayer cutRsc ["ACE_RscErrorHint", "PLAIN", 0, true];
|
||||
|
||||
disableSerialization;
|
||||
_ctrlHint = uiNamespace getVariable "ACE_ctrlErrorHint";
|
||||
_ctrlHint ctrlSetStructuredText _text;
|
||||
disableSerialization;
|
||||
_ctrlHint = uiNamespace getVariable "ACE_ctrlErrorHint";
|
||||
_ctrlHint ctrlSetStructuredText _text;
|
||||
|
||||
if (_mode == 0) then {
|
||||
sleep 10;
|
||||
_rscLayer cutFadeOut 0.2;
|
||||
if (_mode == 0) then {
|
||||
sleep 10;
|
||||
_rscLayer cutFadeOut 0.2;
|
||||
};
|
||||
};
|
||||
|
||||
if (_mode == 2) then {
|
||||
sleep 10;
|
||||
waitUntil {alive player};
|
||||
[player] call FUNC(adminKick);
|
||||
waitUntil {alive player}; // To be able to show list if using checkAll
|
||||
_text = composeText [parseText format ["<t align='center'>%1</t>", _text]];
|
||||
["[ACE] ERROR", _text, {findDisplay 46 closeDisplay 0}] call FUNC(errorMessage);
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -5,8 +5,8 @@
|
||||
|
||||
#define MAJOR 3
|
||||
#define MINOR 1
|
||||
#define PATCHLVL 0
|
||||
#define BUILD 0
|
||||
#define PATCHLVL 1
|
||||
#define BUILD 1
|
||||
|
||||
#define VERSION MAJOR.MINOR.PATCHLVL.BUILD
|
||||
#define VERSION_AR MAJOR,MINOR,PATCHLVL,BUILD
|
||||
|
@ -5,8 +5,8 @@ class CfgPatches {
|
||||
units[] = {};
|
||||
weapons[] = {};
|
||||
requiredVersion = REQUIRED_VERSION;
|
||||
requiredAddons[] = {"ace_interaction"};
|
||||
author[] = {"Rocko"};
|
||||
requiredAddons[] = {"ace_apl", "ace_interaction"};
|
||||
author[] = {"Rocko", "Ruthberg"};
|
||||
VERSION_CONFIG;
|
||||
};
|
||||
};
|
||||
|
@ -23,6 +23,152 @@ class CfgSkeletons {
|
||||
"step","11"
|
||||
};
|
||||
};
|
||||
class OFP2_ManSkeleton {
|
||||
isDiscrete = 0;
|
||||
skeletonInherit = "";
|
||||
skeletonBones[] = {
|
||||
"Pelvis","",
|
||||
"Spine","Pelvis",
|
||||
"Spine1","Spine",
|
||||
"Spine2","Spine1",
|
||||
"Spine3","Spine2",
|
||||
"Camera","Pelvis",
|
||||
"weapon","Spine1",
|
||||
"launcher","Spine1",
|
||||
//Head skeleton in hierarchy
|
||||
"neck","Spine3",
|
||||
"neck1","neck",
|
||||
"head","neck1",
|
||||
"HeadCutScene","head",
|
||||
"jaw","head",
|
||||
"chin","head",
|
||||
"jaw_rf","head",
|
||||
"jaw_rm","head",
|
||||
"jaw_rs","head",
|
||||
"jaw_lf","head",
|
||||
"jaw_lm","head",
|
||||
"jaw_ls","head",
|
||||
"ear_r","head",
|
||||
"ear_l","head",
|
||||
"lip_lc","head",
|
||||
"lip_lwlb","head",
|
||||
"lip_lwlf","head",
|
||||
"lip_lwm","head",
|
||||
"lip_lwrf","head",
|
||||
"lip_lwrb","head",
|
||||
"lip_rc","head",
|
||||
"lip_uprb","head",
|
||||
"lip_uprf","head",
|
||||
"lip_upm","head",
|
||||
"lip_uplf","head",
|
||||
"lip_uplb","head",
|
||||
"nose_tip","head",
|
||||
"nose_r","head",
|
||||
"nose_l","head",
|
||||
"zig_lt","head",
|
||||
"zig_lm","head",
|
||||
"zig_lb","head",
|
||||
"zig_rt","head",
|
||||
"zig_rm","head",
|
||||
"zig_rb","head",
|
||||
"cheek_r","head",
|
||||
"cheek_l","head",
|
||||
"eyebrow_lb","head",
|
||||
"eyebrow_lm","head",
|
||||
"eyebrow_lf","head",
|
||||
"corr","head",
|
||||
"eyebrow_rf","head",
|
||||
"eyebrow_rm","head",
|
||||
"eyebrow_rb","head",
|
||||
"eye_upr","head",
|
||||
"eye_lwr","head",
|
||||
"eye_upl","head",
|
||||
"eye_lwl","head",
|
||||
"cheek_rf","head",
|
||||
"cheek_rm","head",
|
||||
"cheek_rb","head",
|
||||
"cheek_lf","head",
|
||||
"cheek_lm","head",
|
||||
"cheek_lb","head",
|
||||
"forehead_l","head",
|
||||
"forehead_m","head",
|
||||
"forehead_r","head",
|
||||
"l_eye","head",
|
||||
"r_eye","head",
|
||||
"l_pupila","head",
|
||||
"r_pupila","head",
|
||||
"neck_t","head",
|
||||
"neck_b","head",
|
||||
"neck_r","head",
|
||||
"neck_l","head",
|
||||
"tongue_b","head",
|
||||
"tongue_m","head",
|
||||
"tongue_f","head",
|
||||
//Left upper side
|
||||
"LeftShoulder","Spine3",
|
||||
"LeftArm","LeftShoulder",
|
||||
"LeftArmRoll","LeftArm",
|
||||
"LeftForeArm","LeftArmRoll",
|
||||
"LeftForeArmRoll","LeftForeArm",
|
||||
"LeftHand","LeftForeArmRoll",
|
||||
"LeftHandRing","LeftHand",
|
||||
"LeftHandRing1","LeftHandRing",
|
||||
"LeftHandRing2","LeftHandRing1",
|
||||
"LeftHandRing3","LeftHandRing2",
|
||||
"LeftHandPinky1","LeftHandRing",
|
||||
"LeftHandPinky2","LeftHandPinky1",
|
||||
"LeftHandPinky3","LeftHandPinky2",
|
||||
"LeftHandMiddle1","LeftHand",
|
||||
"LeftHandMiddle2","LeftHandMiddle1",
|
||||
"LeftHandMiddle3","LeftHandMiddle2",
|
||||
"LeftHandIndex1","LeftHand",
|
||||
"LeftHandIndex2","LeftHandIndex1",
|
||||
"LeftHandIndex3","LeftHandIndex2",
|
||||
"LeftHandThumb1","LeftHand",
|
||||
"LeftHandThumb2","LeftHandThumb1",
|
||||
"LeftHandThumb3","LeftHandThumb2",
|
||||
//Right upper side
|
||||
"RightShoulder","Spine3",
|
||||
"RightArm","RightShoulder",
|
||||
"RightArmRoll","RightArm",
|
||||
"RightForeArm","RightArmRoll",
|
||||
"RightForeArmRoll","RightForeArm",
|
||||
"RightHand","RightForeArmRoll",
|
||||
"RightHandRing","RightHand",
|
||||
"RightHandRing1","RightHandRing",
|
||||
"RightHandRing2","RightHandRing1",
|
||||
"RightHandRing3","RightHandRing2",
|
||||
"RightHandPinky1","RightHandRing",
|
||||
"RightHandPinky2","RightHandPinky1",
|
||||
"RightHandPinky3","RightHandPinky2",
|
||||
"RightHandMiddle1","RightHand",
|
||||
"RightHandMiddle2","RightHandMiddle1",
|
||||
"RightHandMiddle3","RightHandMiddle2",
|
||||
"RightHandIndex1","RightHand",
|
||||
"RightHandIndex2","RightHandIndex1",
|
||||
"RightHandIndex3","RightHandIndex2",
|
||||
"RightHandThumb1","RightHand",
|
||||
"RightHandThumb2","RightHandThumb1",
|
||||
"RightHandThumb3","RightHandThumb2",
|
||||
//Left lower side
|
||||
"LeftUpLeg","Pelvis",
|
||||
"LeftUpLegRoll","LeftUpLeg",
|
||||
"LeftLeg","LeftUpLegRoll",
|
||||
"LeftLegRoll","LeftLeg",
|
||||
"LeftFoot","LeftLegRoll",
|
||||
"LeftToeBase","LeftFoot",
|
||||
//Right lower side
|
||||
"RightUpLeg","Pelvis",
|
||||
"RightUpLegRoll","RightUpLeg",
|
||||
"RightLeg","RightUpLegRoll",
|
||||
"RightLegRoll","RightLeg",
|
||||
"RightFoot","RightLegRoll",
|
||||
"RightToeBase","RightFoot"
|
||||
};
|
||||
// location of pivot points (local axes) for hierarchical animation
|
||||
//pivotsModel="ca\Anims\Characters\Data\Skeleton\SkeletonPivots.p3d";
|
||||
pivotsModel="";
|
||||
};
|
||||
};
|
||||
|
||||
class CfgModels {
|
||||
|
@ -236,9 +236,9 @@ extern "C"
|
||||
void __stdcall RVExtension(char *output, int outputSize, const char *function)
|
||||
{
|
||||
ZERO_OUTPUT();
|
||||
|
||||
std::stringstream outputStr;
|
||||
if (!strcmp(function, "version")) {
|
||||
int n = sprintf(output, "%s", ACE_FULL_VERSION_STR);
|
||||
strncpy(output, ACE_FULL_VERSION_STR, outputSize);
|
||||
EXTENSION_RETURN();
|
||||
}
|
||||
|
||||
@ -258,7 +258,11 @@ void __stdcall RVExtension(char *output, int outputSize, const char *function)
|
||||
velocity = strtod(strtok_s(NULL, ":", &next_token), NULL);
|
||||
|
||||
retard = calculateRetard(dragModel, ballisticCoefficient, velocity);
|
||||
int n = sprintf(output, "%f", retard);
|
||||
// int n = sprintf(output, "%f", retard);
|
||||
|
||||
outputStr << retard;
|
||||
strncpy(output, outputStr.str().c_str(), outputSize);
|
||||
|
||||
EXTENSION_RETURN();
|
||||
} else if (!strcmp(mode, "atmosphericCorrection")) {
|
||||
double ballisticCoefficient = 1.0;
|
||||
@ -274,7 +278,9 @@ void __stdcall RVExtension(char *output, int outputSize, const char *function)
|
||||
atmosphereModel = strtok_s(NULL, ":", &next_token);
|
||||
|
||||
ballisticCoefficient = calculateAtmosphericCorrection(ballisticCoefficient, temperature, pressure, humidity, atmosphereModel);
|
||||
int n = sprintf(output, "%f", ballisticCoefficient);
|
||||
//int n = sprintf(output, "%f", ballisticCoefficient);
|
||||
outputStr << ballisticCoefficient;
|
||||
strncpy(output, outputStr.str().c_str(), outputSize);
|
||||
EXTENSION_RETURN();
|
||||
} else if (!strcmp(mode, "new")) {
|
||||
unsigned int index = 0;
|
||||
@ -369,7 +375,7 @@ void __stdcall RVExtension(char *output, int outputSize, const char *function)
|
||||
bulletDatabase[index].frames = 0.0;
|
||||
bulletDatabase[index].randSeed = 0;
|
||||
|
||||
int n = sprintf(output, "%s", "");
|
||||
strncpy(output, "", outputSize);
|
||||
EXTENSION_RETURN();
|
||||
} else if (!strcmp(mode, "simulate")) {
|
||||
// simulate:0:[-0.109985,542.529,-3.98301]:[3751.57,5332.23,214.252]:[0.598153,2.38829,0]:28.6:0:0.481542:0:215.16
|
||||
@ -586,8 +592,9 @@ void __stdcall RVExtension(char *output, int outputSize, const char *function)
|
||||
velocityOffset[1] += (distribution(bulletDatabase[index].randGenerator) * 0.8 - 0.4) * coef;
|
||||
velocityOffset[2] += (distribution(bulletDatabase[index].randGenerator) * 0.8 - 0.4) * coef;
|
||||
};
|
||||
|
||||
int n = sprintf(output, "_bullet setVelocity (_bulletVelocity vectorAdd [%f, %f, %f]); _bullet setPosASL (_bulletPosition vectorAdd [%f, %f, %f]);", velocityOffset[0], velocityOffset[1], velocityOffset[2], positionOffset[0], positionOffset[1], positionOffset[2]);
|
||||
|
||||
outputStr << "_bullet setVelocity (_bulletVelocity vectorAdd [" << velocityOffset[0] << "," << velocityOffset[1] << "," << velocityOffset[2] << "]); _bullet setPosASL (_bulletPosition vectorAdd [" << positionOffset[0] << "," << positionOffset[1] << "," << positionOffset[2] << "]);";
|
||||
strncpy(output, outputStr.str().c_str(), outputSize);
|
||||
EXTENSION_RETURN();
|
||||
} else if (!strcmp(mode, "set")) {
|
||||
int height = 0;
|
||||
@ -602,7 +609,7 @@ void __stdcall RVExtension(char *output, int outputSize, const char *function)
|
||||
map->gridBuildingNums.push_back(numObjects);
|
||||
map->gridSurfaceIsWater.push_back(surfaceIsWater);
|
||||
|
||||
int n = sprintf(output, "%s", "");
|
||||
strncpy(output, outputStr.str().c_str(), outputSize);
|
||||
EXTENSION_RETURN();
|
||||
} else if (!strcmp(mode, "init")) {
|
||||
int mapSize = 0;
|
||||
@ -617,7 +624,8 @@ void __stdcall RVExtension(char *output, int outputSize, const char *function)
|
||||
|
||||
map = &mapDatabase[worldName];
|
||||
if (map->gridHeights.size() == gridCells) {
|
||||
int n = sprintf(output, "%s", "Terrain already initialized");
|
||||
outputStr << "Terrain already initialized";
|
||||
strncpy(output, outputStr.str().c_str(), outputSize);
|
||||
EXTENSION_RETURN();
|
||||
}
|
||||
|
||||
@ -630,10 +638,9 @@ void __stdcall RVExtension(char *output, int outputSize, const char *function)
|
||||
map->gridBuildingNums.reserve(gridCells);
|
||||
map->gridSurfaceIsWater.reserve(gridCells);
|
||||
|
||||
int n = sprintf(output, "%s", "");
|
||||
strncpy(output, outputStr.str().c_str(), outputSize);
|
||||
EXTENSION_RETURN();
|
||||
}
|
||||
|
||||
int n = sprintf(output, "%s", "");
|
||||
strncpy(output, outputStr.str().c_str(), outputSize);
|
||||
EXTENSION_RETURN();
|
||||
}
|
||||
|
4
mod.cpp
4
mod.cpp
@ -1,8 +1,8 @@
|
||||
name = "Advanced Combat Environment 3.1.0";
|
||||
name = "Advanced Combat Environment 3.1.1";
|
||||
picture = "logo_ace3_ca.paa";
|
||||
actionName = "GitHub";
|
||||
action = "https://github.com/acemod/ACE3";
|
||||
description = "ACE3 - Version 3.1.0";
|
||||
description = "ACE3 - Version 3.1.1";
|
||||
logo = "logo_ace3_ca.paa";
|
||||
logoOver = "logo_ace3_ca.paa";
|
||||
tooltip = "ACE3";
|
||||
|
Loading…
Reference in New Issue
Block a user