initial upload
98
README.md
Normal file
@ -0,0 +1,98 @@
|
||||
  
|
||||
|
||||
# Vehicle & backpack Paintshop By Halv
|
||||
|
||||
## Copyright (C) 2015 Halvhjearne
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
## Contact : halvhjearne@gmail.com
|
||||
|
||||
|
||||
# Halv's Paintshop eXpanded 4 Exile
|
||||
# by DirtySanchez at DonkeyPunch Community Gaming
|
||||
## Copyright (C) 2017 DirtySanchez/Halvhjearne
|
||||
All skins provided in this pack are the property of DonkeyPunch Community Gaming and DirtySanchez/=RAV=MusTanG
|
||||
|
||||
## Installation
|
||||
####.
|
||||
|
||||
## STEP 1:
|
||||
#### --Run this query on your database
|
||||
#### ALTER TABLE `construction` ADD `paintshop` TEXT NOT NULL;
|
||||
####.
|
||||
|
||||
## STEP 2:
|
||||
#### --add this to the description.ext
|
||||
#### #include "addons\paintshop\Halv_defines.hpp"
|
||||
#### #include "addons\paintshop\paintshop.hpp"
|
||||
####.
|
||||
|
||||
## STEP 3:
|
||||
#### --add to init.sqf
|
||||
#### if(hasInterface)then
|
||||
#### {
|
||||
#### [] execVM "addons\paintshop\paintshop.sqf";
|
||||
#### };
|
||||
#### [] execVM "addons\paintshop\paintshop_serveraddon.sqf";
|
||||
####.
|
||||
|
||||
## STEP 4:
|
||||
#### --add this to your exile.ini
|
||||
#### ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
#### ;; Halv's PaintShop eXpanded 4 Exile
|
||||
#### ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
####
|
||||
#### [updateBasePaint]
|
||||
#### SQL1_1 = UPDATE construction SET paintshop = ? WHERE id = ?
|
||||
#### Number of Inputs = 2
|
||||
#### SQL1_INPUTS = 1,2
|
||||
####.
|
||||
|
||||
## STEP 5:
|
||||
#### --change this in the exile.ini
|
||||
#### [loadConstruction]
|
||||
#### SQL1_1 = SELECT id,class,account_uid,spawned_at,position_x,position_y,position_z,direction_x,direction_y,direction_z,up_x,up_y,up_z,is_locked,pin_code,territory_id,deleted_at,damage,paintshop FROM construction WHERE id = ?
|
||||
#### Number Of Inputs = 1
|
||||
#### SQL1_INPUTS = 1
|
||||
#### OUTPUT = 1,2-STRING,3-STRING,4-STRING,5,6,7,8,9,10,11,12,13,14,15-STRING,16,17,18,19
|
||||
####.
|
||||
|
||||
## STEP 6:
|
||||
#### --add class Paint to your CfgInteractionMenus under class Construction >> Actions
|
||||
#### class Construction
|
||||
#### {
|
||||
#### targetType = 2;
|
||||
#### target = "Exile_Construction_Abstract_Static";
|
||||
####
|
||||
#### class Actions
|
||||
#### {
|
||||
#### class Paint : ExileAbstractAction
|
||||
#### {
|
||||
#### title = "Paint Base Part";
|
||||
#### condition = "call ExileClient_util_world_isInOwnTerritory";
|
||||
#### action = "ExileClientInteractionObject call HALV_paintshop_opendialog";
|
||||
#### };
|
||||
####.
|
||||
|
||||
## Step 7:
|
||||
#### --add this to your CfgExileCustomCode
|
||||
#### class CfgExileCustomCode
|
||||
#### {
|
||||
#### ExileServer_object_construction_database_load = "addons\paintshop\ExileServer_object_construction_database_load.sqf";
|
||||
####.
|
||||
|
||||
## STEP 8:
|
||||
#### if using infiStar add allowed IDDs 6666
|
||||
####.
|
@ -0,0 +1,63 @@
|
||||
/**
|
||||
* ExileServer_object_construction_database_load
|
||||
*
|
||||
* Exile Mod
|
||||
* www.exilemod.com
|
||||
* © 2015 Exile Mod Team
|
||||
*
|
||||
* This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
|
||||
* To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
|
||||
*/
|
||||
|
||||
private["_constructionID","_data","_position","_vectorDirection","_vectorUp","_constructionObject","_damageLevel","_public","_pinCode"];
|
||||
_constructionID = _this;
|
||||
_data = format ["loadConstruction:%1", _constructionID] call ExileServer_system_database_query_selectSingle;
|
||||
_position = [_data select 4, _data select 5, _data select 6];
|
||||
_vectorDirection = [_data select 7, _data select 8, _data select 9];
|
||||
_vectorUp = [_data select 10, _data select 11, _data select 12];
|
||||
_constructionObject = createVehicle [(_data select 1), _position, [], 0, "CAN_COLLIDE"];
|
||||
_constructionObject setPosATL _position;
|
||||
_constructionObject setVectorDirAndUp [_vectorDirection, _vectorUp];
|
||||
_constructionObject setVariable ["ExileDatabaseID", _data select 0];
|
||||
_constructionObject setVariable ["ExileOwnerUID", (_data select 2)];
|
||||
_constructionObject setVariable ["ExileIsPersistent", true];
|
||||
_constructionObject setVariable ["ExileTerritoryID", (_data select 15)];
|
||||
_damageLevel = (_data select 17);
|
||||
|
||||
//Halv's paintshop eXpanded 4 Exile
|
||||
_paintshop = _data select 18;
|
||||
if!(_paintshop isEqualTo "")then
|
||||
{
|
||||
{
|
||||
_constructionObject setObjectTextureGlobal [_forEachIndex, _paintshop select _forEachIndex];
|
||||
}forEach _paintshop;
|
||||
};
|
||||
//END
|
||||
|
||||
_public = _damageLevel > 0;
|
||||
_constructionObject setVariable ["ExileConstructionDamage",_damageLevel,_public];
|
||||
if(_public)then
|
||||
{
|
||||
_constructionObject call ExileServer_util_setDamageTexture;
|
||||
};
|
||||
_pinCode = _data select 14;
|
||||
if !(_pinCode isEqualTo "000000") then
|
||||
{
|
||||
_constructionObject setVariable ["ExileAccessCode", _pinCode];
|
||||
_constructionObject setVariable ["ExileIsLocked", (_data select 13), true];
|
||||
};
|
||||
if (getNumber(configFile >> "CfgVehicles" >> (_data select 1) >> "exileRequiresSimulation") isEqualTo 1) then
|
||||
{
|
||||
_constructionObject enableSimulationGlobal true;
|
||||
_constructionObject call ExileServer_system_simulationMonitor_addVehicle;
|
||||
}
|
||||
else
|
||||
{
|
||||
_constructionObject enableSimulationGlobal false;
|
||||
};
|
||||
_constructionObject setVelocity [0, 0, 0];
|
||||
_constructionObject setPosATL _position;
|
||||
_constructionObject setVelocity [0, 0, 0];
|
||||
_constructionObject setVectorDirAndUp [_vectorDirection, _vectorUp];
|
||||
_constructionObject setVelocity [0, 0, 0];
|
||||
_constructionObject
|
604
addons/paintshop/Halv_defines.hpp
Normal file
@ -0,0 +1,604 @@
|
||||
/*
|
||||
definitions for various dialogs by Halv
|
||||
|
||||
Copyright (C) 2015 Halvhjearne
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Contact : halvhjearne@gmail.com
|
||||
*/
|
||||
|
||||
// Control types
|
||||
#define CT_MAP_MAIN 101
|
||||
#define CT_TREE 12
|
||||
#define CT_STRUCTURED_TEXT 13
|
||||
#define CT_XSLIDER 43
|
||||
#define CT_SLIDER 3
|
||||
|
||||
// Static styles
|
||||
#define ST_PICTURE 0x30
|
||||
#define ST_MULTI 16
|
||||
// Listbox styles
|
||||
#define ST_LEFT 0x00
|
||||
#define LB_TEXTURES 0x10
|
||||
// Slider styles
|
||||
#define SL_DIR 0x400
|
||||
#define SL_VERT 0
|
||||
#define SL_HORZ 1024
|
||||
#define SL_TEXTURES 0x10
|
||||
|
||||
|
||||
// Base Classes
|
||||
|
||||
class HALV_IGUIBack
|
||||
{
|
||||
type = 0;
|
||||
idc = -1;
|
||||
style = 80;
|
||||
text = "";
|
||||
colorText[] = {.1,.1,.1,.6};
|
||||
font = "PuristaMedium";
|
||||
sizeEx = 0;
|
||||
shadow = 0;
|
||||
x = 0.1;
|
||||
y = 0.1;
|
||||
w = 0.1;
|
||||
h = 0.1;
|
||||
colorbackground[] = {.1,.1,.1,.6};
|
||||
};
|
||||
|
||||
class HALV_RscFrame
|
||||
{
|
||||
type = 0;
|
||||
idc = -1;
|
||||
style = 64;
|
||||
shadow = 2;
|
||||
colorBackground[] = {0,.5,1,.8};
|
||||
colorText[] = {0,.5,1,.8};
|
||||
font = "PuristaLight";
|
||||
sizeEx = 0.02;
|
||||
text = "";
|
||||
};
|
||||
|
||||
class HALV_RscButton
|
||||
{
|
||||
access = 0;
|
||||
type = 1;
|
||||
text = "";
|
||||
colorText[] = {1,1,1,0.8};
|
||||
colorDisabled[] = {0.4,0.4,0.4,1};
|
||||
colorBackground[] = {.7,.7,.7,.6};
|
||||
colorBackgroundDisabled[] = {.95,.95,.95,1};
|
||||
colorBackgroundActive[] = {.3,.3,.3,.6};
|
||||
colorFocused[] = {.7,.7,.7,.8};
|
||||
colorShadow[] = {.1,.1,.1,1};
|
||||
colorBorder[] = {.7,.7,.7,.5};
|
||||
soundEnter[] = {"\A3\ui_f\data\sound\RscButton\soundEnter",0.09,1};
|
||||
soundPush[] = {"\A3\ui_f\data\sound\RscButton\soundPush",0.09,1};
|
||||
soundClick[] = {"\A3\ui_f\data\sound\RscButton\soundClick",0.09,1};
|
||||
soundEscape[] = {"\A3\ui_f\data\sound\RscButton\soundEscape",0.09,1};
|
||||
style = 2;
|
||||
x = 0;
|
||||
y = 0;
|
||||
w = 0.095589;
|
||||
h = 0.039216;
|
||||
shadow = 1;
|
||||
font = "PuristaMedium";
|
||||
sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
|
||||
offsetX = 0.003;
|
||||
offsetY = 0.003;
|
||||
offsetPressedX = 0.002;
|
||||
offsetPressedY = 0.002;
|
||||
borderSize = 0;
|
||||
};
|
||||
|
||||
class HALV_RscListBox
|
||||
{
|
||||
access = 0;
|
||||
type = 5;
|
||||
w = 0.4;
|
||||
h = 0.4;
|
||||
rowHeight = 0;
|
||||
colorText[] = {1, 1, 1, 1};
|
||||
colorDisabled[] = {1, 1, 1, 0.25};
|
||||
colorScrollbar[] = {1, 0, 0, 0};
|
||||
colorSelect[] = {0, 0, 0, 1};
|
||||
colorSelect2[] = {0, 0, 0, 1};
|
||||
colorSelectBackground[] = {0.95, 0.95, 0.95, 1};
|
||||
colorSelectBackground2[] = {1, 1, 1, 0.5};
|
||||
colorBackground[] = {0.2,0.2,0.2,0.6};
|
||||
pictureColor[] = {1,1,1,1}; // Picture color
|
||||
pictureColorSelect[] = {1,1,1,1}; // Selected picture color
|
||||
pictureColorDisabled[] = {1,1,1,0.5}; // Disabled picture color
|
||||
soundSelect[] = {"\A3\ui_f\data\sound\RscListbox\soundSelect", 0.09, 1};
|
||||
arrowEmpty = "#(argb,8,8,3)color(1,1,1,1)";
|
||||
arrowFull = "#(argb,8,8,3)color(1,1,1,1)";
|
||||
class ListScrollBar
|
||||
{
|
||||
color[] = {1, 1, 1, 0.6};
|
||||
colorActive[] = {1, 1, 1, 1};
|
||||
colorDisabled[] = {1, 1, 1, 0.3};
|
||||
shadow = 0;
|
||||
thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa";
|
||||
arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa";
|
||||
arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa";
|
||||
border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa";
|
||||
};
|
||||
style = 16;
|
||||
font = "PuristaMedium";
|
||||
sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
|
||||
shadow = 0;
|
||||
colorShadow[] = {0, 0, 0, 0.5};
|
||||
color[] = {1, 1, 1, 1};
|
||||
period = 1.2;
|
||||
maxHistoryDelay = 1;
|
||||
autoScrollSpeed = -1;
|
||||
autoScrollDelay = 5;
|
||||
autoScrollRewind = 0;
|
||||
};
|
||||
|
||||
class HALV_RscCheckbox
|
||||
{
|
||||
idc = -1;
|
||||
type = 7;
|
||||
style = 2;
|
||||
x = "LINE_X(XVAL)";
|
||||
y = "LINE_Y";
|
||||
w = "LINE_W(WVAL)";
|
||||
h = 0.029412;
|
||||
colorText[] = {0,.5,1,1};
|
||||
color[] = {.7,.7,.7,.5};
|
||||
colorBackground[] = {.7,.7,.7,.2};
|
||||
colorTextSelect[] = {0, 0.8, 0,.8};
|
||||
colorSelectedBg[] = {.1,.1,.1,.2};
|
||||
colorSelect[] = {.7,.7,.7,.2};
|
||||
colorTextDisable[] = {0.4, 0.4, 0.4, 1};
|
||||
colorDisable[] = {0.4, 0.4, 0.4, 1};
|
||||
font = "PuristaMedium";
|
||||
sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
|
||||
rows = 1;
|
||||
columns = 1;
|
||||
};
|
||||
|
||||
class HALV_RscStructuredText
|
||||
{
|
||||
access = 0;
|
||||
type = CT_STRUCTURED_TEXT;
|
||||
idc = -1;
|
||||
style = ST_LEFT;
|
||||
colorText[] = {1,1,1,1};
|
||||
colorBackground[] = {.1,.1,.1,.6};
|
||||
class Attributes
|
||||
{
|
||||
font = "PuristaMedium";
|
||||
color = "#ffffff";
|
||||
align = "center";
|
||||
shadow = 1;
|
||||
};
|
||||
x = 0;
|
||||
y = 0;
|
||||
h = 0.035;
|
||||
w = 0.1;
|
||||
text = "";
|
||||
size = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
|
||||
shadow = 1;
|
||||
};
|
||||
|
||||
class HALV_RscSlider {
|
||||
idc = -1;
|
||||
type = CT_XSLIDER;
|
||||
style = SL_HORZ;
|
||||
x = 0.4;
|
||||
y = 0.2;
|
||||
w = 0.3;
|
||||
h = 0.025;
|
||||
color[] = { 1, 1, 1, 1 };
|
||||
coloractive[] = { 1, 1, 1,.5 };
|
||||
colorDisabled[] = {.5,.5,.5,.2};
|
||||
colorBackground[] = {.1,.1,.1,.6};
|
||||
arrowEmpty = "\A3\ui_f\data\gui\cfg\slider\arrowEmpty_ca.paa";
|
||||
arrowFull = "\A3\ui_f\data\gui\cfg\slider\arrowFull_ca.paa";
|
||||
border = "\A3\ui_f\data\gui\cfg\slider\border_ca.paa";
|
||||
thumb = "\A3\ui_f\data\gui\cfg\slider\thumb_ca.paa";
|
||||
};
|
||||
|
||||
class HALV_RscMapControl
|
||||
{
|
||||
type = CT_MAP_MAIN;
|
||||
style = ST_PICTURE;
|
||||
idc = -1;
|
||||
colorBackground[] = {0.969, 0.957, 0.949, 1};
|
||||
colorOutside[] = {0, 0, 0, 1};
|
||||
colorText[] = {0, 0, 0, 1};
|
||||
font = "TahomaB";
|
||||
// sizeEx = 0.04;
|
||||
sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.04)";
|
||||
colorSea[] = {0.467, 0.631, 0.851, 0.5};
|
||||
colorForest[] = {0.624, 0.78, 0.388, 0.5};
|
||||
colorRocks[] = {0, 0, 0, 0.3};
|
||||
colorCountlines[] = {0.572, 0.354, 0.188, 0.25};
|
||||
colorMainCountlines[] = {0.572, 0.354, 0.188, 0.5};
|
||||
colorCountlinesWater[] = {0.491, 0.577, 0.702, 0.3};
|
||||
colorMainCountlinesWater[] = {0.491, 0.577, 0.702, 0.6};
|
||||
colorForestBorder[] = {0, 0, 0, 0};
|
||||
colorRocksBorder[] = {0, 0, 0, 0};
|
||||
colorPowerLines[] = {0.1, 0.1, 0.1, 1};
|
||||
colorRailWay[] = {0.8, 0.2, 0, 1};
|
||||
colorNames[] = {0.1, 0.1, 0.1, 0.9};
|
||||
colorInactive[] = {1, 1, 1, 0.5};
|
||||
colorLevels[] = {0.286, 0.177, 0.094, 0.5};
|
||||
colorTracks[] = {0.84, 0.76, 0.65, 0.15};
|
||||
colorRoads[] = {0.7, 0.7, 0.7, 1};
|
||||
colorMainRoads[] = {0.9, 0.5, 0.3, 1};
|
||||
colorTracksFill[] = {0.84, 0.76, 0.65, 1};
|
||||
colorRoadsFill[] = {1, 1, 1, 1};
|
||||
colorMainRoadsFill[] = {1, 0.6, 0.4, 1};
|
||||
colorGrid[] = {0.1, 0.1, 0.1, 0.6};
|
||||
colorGridMap[] = {0.1, 0.1, 0.1, 0.6};
|
||||
stickX[] = {0.2, {"Gamma", 1, 1.5}};
|
||||
stickY[] = {0.2, {"Gamma", 1, 1.5}};
|
||||
moveOnEdges = 1;
|
||||
x = 0;
|
||||
y = 0;
|
||||
w = 1;
|
||||
h = 1;
|
||||
shadow = 0;
|
||||
ptsPerSquareSea = 5;
|
||||
ptsPerSquareTxt = 20;
|
||||
ptsPerSquareCLn = 10;
|
||||
ptsPerSquareExp = 10;
|
||||
ptsPerSquareCost = 10;
|
||||
ptsPerSquareFor = 9;
|
||||
ptsPerSquareForEdge = 9;
|
||||
ptsPerSquareRoad = 6;
|
||||
ptsPerSquareObj = 9;
|
||||
showCountourInterval = 0;
|
||||
scaleMin = 0.001;
|
||||
scaleMax = 1;
|
||||
scaleDefault = 0.16;
|
||||
maxSatelliteAlpha = 0.85;
|
||||
alphaFadeStartScale = 2;
|
||||
alphaFadeEndScale = 2;
|
||||
fontLabel = "PuristaMedium";
|
||||
sizeExLabel = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.8)";
|
||||
fontGrid = "TahomaB";
|
||||
sizeExGrid = 0.02;
|
||||
fontUnits = "TahomaB";
|
||||
sizeExUnits = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.8)";
|
||||
fontNames = "EtelkaNarrowMediumPro";
|
||||
sizeExNames = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.8) * 2";
|
||||
fontInfo = "PuristaMedium";
|
||||
sizeExInfo = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.8)";
|
||||
fontLevel = "TahomaB";
|
||||
sizeExLevel = 0.02;
|
||||
text = "#(argb,8,8,3)color(1,1,1,1)";
|
||||
onMouseMoving = "mouseX = (_this Select 1);mouseY = (_this Select 2)";
|
||||
onMouseButtonDown = "mouseButtonDown = _this Select 1";
|
||||
onMouseButtonUp = "mouseButtonUp = _this Select 1";
|
||||
class Legend {
|
||||
colorBackground[] = {1, 1, 1, 0.5};
|
||||
color[] = {0, 0, 0, 1};
|
||||
x = "SafeZoneX + (((safezoneW / safezoneH) min 1.2) / 40)";
|
||||
y = "SafeZoneY + safezoneH - 4.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
|
||||
w = "10 * (((safezoneW / safezoneH) min 1.2) / 40)";
|
||||
h = "3.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
|
||||
font = "PuristaMedium";
|
||||
sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.8)";
|
||||
};
|
||||
class ActiveMarker {
|
||||
color[] = {0.3, 0.1, 0.9, 1};
|
||||
size = 50;
|
||||
};
|
||||
class Command {
|
||||
color[] = {1, 1, 1, 1};
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\waypoint_ca.paa";
|
||||
size = 18;
|
||||
importance = 1;
|
||||
coefMin = 1;
|
||||
coefMax = 1;
|
||||
};
|
||||
class Task {
|
||||
colorCreated[] = {1, 1, 1, 1};
|
||||
colorCanceled[] = {0.7, 0.7, 0.7, 1};
|
||||
colorDone[] = {0.7, 1, 0.3, 1};
|
||||
colorFailed[] = {1, 0.3, 0.2, 1};
|
||||
color[] = {"(profilenamespace getvariable ['IGUI_TEXT_RGB_R',0])", "(profilenamespace getvariable ['IGUI_TEXT_RGB_G',1])", "(profilenamespace getvariable ['IGUI_TEXT_RGB_B',1])", "(profilenamespace getvariable ['IGUI_TEXT_RGB_A',0.8])"};
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\taskIcon_CA.paa";
|
||||
iconCreated = "\A3\ui_f\data\map\mapcontrol\taskIconCreated_CA.paa";
|
||||
iconCanceled = "\A3\ui_f\data\map\mapcontrol\taskIconCanceled_CA.paa";
|
||||
iconDone = "\A3\ui_f\data\map\mapcontrol\taskIconDone_CA.paa";
|
||||
iconFailed = "\A3\ui_f\data\map\mapcontrol\taskIconFailed_CA.paa";
|
||||
size = 27;
|
||||
importance = 1;
|
||||
coefMin = 1;
|
||||
coefMax = 1;
|
||||
};
|
||||
class CustomMark {
|
||||
color[] = {0, 0, 0, 1};
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\custommark_ca.paa";
|
||||
size = 24;
|
||||
importance = 1;
|
||||
coefMin = 1;
|
||||
coefMax = 1;
|
||||
};
|
||||
class Tree {
|
||||
color[] = {0.45, 0.64, 0.33, 0.4};
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\bush_ca.paa";
|
||||
size = 12;
|
||||
importance = "0.9 * 16 * 0.05";
|
||||
coefMin = 0.25;
|
||||
coefMax = 4;
|
||||
};
|
||||
class SmallTree {
|
||||
color[] = {0.45, 0.64, 0.33, 0.4};
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\bush_ca.paa";
|
||||
size = 12;
|
||||
importance = "0.6 * 12 * 0.05";
|
||||
coefMin = 0.25;
|
||||
coefMax = 4;
|
||||
};
|
||||
class Bush {
|
||||
color[] = {0.45, 0.64, 0.33, 0.4};
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\bush_ca.paa";
|
||||
size = "14/2";
|
||||
importance = "0.2 * 14 * 0.05 * 0.05";
|
||||
coefMin = 0.25;
|
||||
coefMax = 4;
|
||||
};
|
||||
class Church {
|
||||
color[] = {1, 1, 1, 1};
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\church_CA.paa";
|
||||
size = 24;
|
||||
importance = 1;
|
||||
coefMin = 0.85;
|
||||
coefMax = 1;
|
||||
};
|
||||
class Chapel {
|
||||
color[] = {0, 0, 0, 1};
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\Chapel_CA.paa";
|
||||
size = 24;
|
||||
importance = 1;
|
||||
coefMin = 0.85;
|
||||
coefMax = 1;
|
||||
};
|
||||
class Cross {
|
||||
color[] = {0, 0, 0, 1};
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\Cross_CA.paa";
|
||||
size = 24;
|
||||
importance = 1;
|
||||
coefMin = 0.85;
|
||||
coefMax = 1;
|
||||
};
|
||||
class Rock {
|
||||
color[] = {0.1, 0.1, 0.1, 0.8};
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\rock_ca.paa";
|
||||
size = 12;
|
||||
importance = "0.5 * 12 * 0.05";
|
||||
coefMin = 0.25;
|
||||
coefMax = 4;
|
||||
};
|
||||
class Bunker {
|
||||
color[] = {0, 0, 0, 1};
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\bunker_ca.paa";
|
||||
size = 14;
|
||||
importance = "1.5 * 14 * 0.05";
|
||||
coefMin = 0.25;
|
||||
coefMax = 4;
|
||||
};
|
||||
class Fortress {
|
||||
color[] = {0, 0, 0, 1};
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\bunker_ca.paa";
|
||||
size = 16;
|
||||
importance = "2 * 16 * 0.05";
|
||||
coefMin = 0.25;
|
||||
coefMax = 4;
|
||||
};
|
||||
class Fountain {
|
||||
color[] = {0, 0, 0, 1};
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\fountain_ca.paa";
|
||||
size = 11;
|
||||
importance = "1 * 12 * 0.05";
|
||||
coefMin = 0.25;
|
||||
coefMax = 4;
|
||||
};
|
||||
class ViewTower {
|
||||
color[] = {0, 0, 0, 1};
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\viewtower_ca.paa";
|
||||
size = 16;
|
||||
importance = "2.5 * 16 * 0.05";
|
||||
coefMin = 0.5;
|
||||
coefMax = 4;
|
||||
};
|
||||
class Lighthouse {
|
||||
color[] = {1, 1, 1, 1};
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\lighthouse_CA.paa";
|
||||
size = 24;
|
||||
importance = 1;
|
||||
coefMin = 0.85;
|
||||
coefMax = 1;
|
||||
};
|
||||
class Quay {
|
||||
color[] = {1, 1, 1, 1};
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\quay_CA.paa";
|
||||
size = 24;
|
||||
importance = 1;
|
||||
coefMin = 0.85;
|
||||
coefMax = 1;
|
||||
};
|
||||
class Fuelstation {
|
||||
color[] = {1, 1, 1, 1};
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\fuelstation_CA.paa";
|
||||
size = 24;
|
||||
importance = 1;
|
||||
coefMin = 0.85;
|
||||
coefMax = 1;
|
||||
};
|
||||
class Hospital {
|
||||
color[] = {1, 1, 1, 1};
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\hospital_CA.paa";
|
||||
size = 24;
|
||||
importance = 1;
|
||||
coefMin = 0.85;
|
||||
coefMax = 1;
|
||||
};
|
||||
class BusStop {
|
||||
color[] = {1, 1, 1, 1};
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\busstop_CA.paa";
|
||||
size = 24;
|
||||
importance = 1;
|
||||
coefMin = 0.85;
|
||||
coefMax = 1;
|
||||
};
|
||||
class Transmitter {
|
||||
color[] = {1, 1, 1, 1};
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\transmitter_CA.paa";
|
||||
size = 24;
|
||||
importance = 1;
|
||||
coefMin = 0.85;
|
||||
coefMax = 1;
|
||||
};
|
||||
class Stack {
|
||||
color[] = {0, 0, 0, 1};
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\stack_ca.paa";
|
||||
size = 20;
|
||||
importance = "2 * 16 * 0.05";
|
||||
coefMin = 0.9;
|
||||
coefMax = 4;
|
||||
};
|
||||
class Ruin {
|
||||
color[] = {0, 0, 0, 1};
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\ruin_ca.paa";
|
||||
size = 16;
|
||||
importance = "1.2 * 16 * 0.05";
|
||||
coefMin = 1;
|
||||
coefMax = 4;
|
||||
};
|
||||
class Tourism {
|
||||
color[] = {0, 0, 0, 1};
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\tourism_ca.paa";
|
||||
size = 16;
|
||||
importance = "1 * 16 * 0.05";
|
||||
coefMin = 0.7;
|
||||
coefMax = 4;
|
||||
};
|
||||
class Watertower {
|
||||
color[] = {1, 1, 1, 1};
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\watertower_CA.paa";
|
||||
size = 24;
|
||||
importance = 1;
|
||||
coefMin = 0.85;
|
||||
coefMax = 1;
|
||||
};
|
||||
class Waypoint {
|
||||
color[] = {0, 0, 0, 1};
|
||||
size = 24;
|
||||
importance = 1;
|
||||
coefMin = 1;
|
||||
coefMax = 1;
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\waypoint_ca.paa";
|
||||
};
|
||||
class WaypointCompleted {
|
||||
color[] = {0, 0, 0, 1};
|
||||
size = 24;
|
||||
importance = 1;
|
||||
coefMin = 1;
|
||||
coefMax = 1;
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\waypointCompleted_ca.paa";
|
||||
};
|
||||
class power {
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\power_CA.paa";
|
||||
size = 24;
|
||||
importance = 1;
|
||||
coefMin = 0.85;
|
||||
coefMax = 1;
|
||||
color[] = {1, 1, 1, 1};
|
||||
};
|
||||
class powersolar {
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\powersolar_CA.paa";
|
||||
size = 24;
|
||||
importance = 1;
|
||||
coefMin = 0.85;
|
||||
coefMax = 1;
|
||||
color[] = {1, 1, 1, 1};
|
||||
};
|
||||
class powerwave {
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\powerwave_CA.paa";
|
||||
size = 24;
|
||||
importance = 1;
|
||||
coefMin = 0.85;
|
||||
coefMax = 1;
|
||||
color[] = {1, 1, 1, 1};
|
||||
};
|
||||
class powerwind {
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\powerwind_CA.paa";
|
||||
size = 24;
|
||||
importance = 1;
|
||||
coefMin = 0.85;
|
||||
coefMax = 1;
|
||||
color[] = {1, 1, 1, 1};
|
||||
};
|
||||
class Shipwreck {
|
||||
icon = "\A3\ui_f\data\map\mapcontrol\Shipwreck_CA.paa";
|
||||
size = 24;
|
||||
importance = 1;
|
||||
coefMin = 0.85;
|
||||
coefMax = 1;
|
||||
color[] = {0, 0, 0, 1};
|
||||
};
|
||||
};
|
||||
|
||||
class HALV_CT_TREE
|
||||
{
|
||||
access = 0; // Control access (0 - ReadAndWrite, 1 - ReadAndCreate, 2 - ReadOnly, 3 - ReadOnlyVerified)
|
||||
type = CT_TREE; // Type is 12
|
||||
style = ST_LEFT; // Style
|
||||
x = 0.35567 * safezoneW + safezoneX;
|
||||
y = 0.137091 * safezoneH + safezoneY;
|
||||
w = 0.438144 * safezoneW;
|
||||
h = 0.725818 * safezoneH;
|
||||
colorBorder[] = {0,.5,1,.8}; // Frame color
|
||||
colorBackground[] = {0.2,0.2,0.2,0.6}; // Fill color
|
||||
colorSelect[] = {1,0.5,0,1}; // Selected item fill color (when multiselectEnabled is 0)
|
||||
colorMarked[] = {1,0.5,0,0.5}; // Marked item fill color (when multiselectEnabled is 1)
|
||||
colorMarkedSelected[] = {1,0.5,0,1}; // Selected item fill color (when multiselectEnabled is 1)
|
||||
sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";// Text size
|
||||
font = "EtelkaMonospacePro"; // Font from CfgFontFamilies
|
||||
shadow = 1; // Shadow (0 - none, 1 - N/A, 2 - black outline)
|
||||
colorText[] = {1,1,1,1}; // Text color
|
||||
colorSelectText[] = {1,1,1,1}; // Selected text color (when multiselectEnabled is 0)
|
||||
colorMarkedText[] = {1,1,1,1}; // Selected text color (when multiselectEnabled is 1)
|
||||
tooltip = ""; // Tooltip text
|
||||
tooltipColorShade[] = {0,0,0,1}; // Tooltip background color
|
||||
tooltipColorText[] = {1,1,1,1}; // Tooltip text color
|
||||
tooltipColorBox[] = {1,1,1,1}; // Tooltip frame color
|
||||
multiselectEnabled = 0; // Allow selecting multiple items while holding Ctrl or Shift
|
||||
expandOnDoubleclick = 1; // Expand/collapse item upon double-click
|
||||
hiddenTexture = "A3\ui_f\data\gui\rsccommon\rsctree\hiddenTexture_ca.paa"; // Expand icon
|
||||
expandedTexture = "A3\ui_f\data\gui\rsccommon\rsctree\expandedTexture_ca.paa"; // Collapse icon
|
||||
maxHistoryDelay = 1; // Time since last keyboard type search to reset it
|
||||
// Scrollbar configuration
|
||||
class ScrollBar
|
||||
{
|
||||
width = 0; // width of ScrollBar
|
||||
height = 0; // height of ScrollBar
|
||||
// scrollSpeed = 0.01; // scroll speed of ScrollBar
|
||||
arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa"; // Arrow
|
||||
arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa"; // Arrow when clicked on
|
||||
border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa"; // Slider background (stretched vertically)
|
||||
thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa"; // Dragging element (stretched vertically)
|
||||
color[] = {1,1,1,1}; // Scrollbar color
|
||||
};
|
||||
colorDisabled[] = {0,0,0,0}; // Does nothing, but must be present, otherwise an error is shown
|
||||
colorArrow[] = {0,0,0,0}; // Does nothing, but must be present, otherwise an error is shown
|
||||
};
|
246
addons/paintshop/paintshop.hpp
Normal file
@ -0,0 +1,246 @@
|
||||
/*
|
||||
Vehicle, uniform & backpack Paintshop
|
||||
By Halv
|
||||
|
||||
Copyright (C) 2015 Halvhjearne > README.md
|
||||
*/
|
||||
|
||||
class HALV_painshop_dialog
|
||||
{
|
||||
idd=6666;
|
||||
moveingenabled=false;
|
||||
class controls
|
||||
{
|
||||
class HALV_paintshop_textextframe: HALV_RscFrame
|
||||
{
|
||||
idc = 6672;
|
||||
x = 0.138874 * safezoneW + safezoneX;
|
||||
y = 0.246975 * safezoneH + safezoneY;
|
||||
w = 0.14445 * safezoneW;
|
||||
h = 0.0330033 * safezoneH;
|
||||
};
|
||||
class HALV_paintshop_textureframe: HALV_RscFrame
|
||||
{
|
||||
idc = 6670;
|
||||
text = "Paintshop by Halv"; //--- ToDo: Localize;
|
||||
x = 0.128556 * safezoneW + safezoneX;
|
||||
y = 0.224972 * safezoneH + safezoneY;
|
||||
w = 0.165086 * safezoneW;
|
||||
h = 0.550055 * safezoneH;
|
||||
};
|
||||
class HALV_paintshop_texlistframe: HALV_RscFrame
|
||||
{
|
||||
idc = 6671;
|
||||
x = 0.138874 * safezoneW + safezoneX;
|
||||
y = 0.290979 * safezoneH + safezoneY;
|
||||
w = 0.14445 * safezoneW;
|
||||
h = 0.462046 * safezoneH;
|
||||
};
|
||||
class HALV_paintshop_textureback: HALV_IGUIBack
|
||||
{
|
||||
idc = 6669;
|
||||
x = 0.128557 * safezoneW + safezoneX;
|
||||
y = 0.224973 * safezoneH + safezoneY;
|
||||
w = 0.165086 * safezoneW;
|
||||
h = 0.550055 * safezoneH;
|
||||
};
|
||||
class HALV_paintshop_mainback: HALV_IGUIBack
|
||||
{
|
||||
idc = -1;
|
||||
x = 0.128556 * safezoneW + safezoneX;
|
||||
y = 0.775027 * safezoneH + safezoneY;
|
||||
w = 0.247629 * safezoneW;
|
||||
h = 0.187019 * safezoneH;
|
||||
};
|
||||
class HALV_paintshop_mainframe: HALV_RscFrame
|
||||
{
|
||||
idc = -1;
|
||||
x = 0.128556 * safezoneW + safezoneX;
|
||||
y = 0.775027 * safezoneH + safezoneY;
|
||||
w = 0.247629 * safezoneW;
|
||||
h = 0.187019 * safezoneH;
|
||||
};
|
||||
class HALV_paintshop_maintxt: HALV_RscStructuredText
|
||||
{
|
||||
idc = -1;
|
||||
text = "Halv's Paintshop:"; //--- ToDo: Localize;
|
||||
x = 0.138874 * safezoneW + safezoneX;
|
||||
y = 0.786029 * safezoneH + safezoneY;
|
||||
w = 0.118656 * safezoneW;
|
||||
h = 0.0330033 * safezoneH;
|
||||
size = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1.1)";
|
||||
};
|
||||
class HALV_paintshop_maintxtframe: HALV_RscFrame
|
||||
{
|
||||
idc = -1;
|
||||
x = 0.138874 * safezoneW + safezoneX;
|
||||
y = 0.786028 * safezoneH + safezoneY;
|
||||
w = 0.118656 * safezoneW;
|
||||
h = 0.0330033 * safezoneH;
|
||||
};
|
||||
class HALV_paintshop_mainvehframe: HALV_RscFrame
|
||||
{
|
||||
idc = -1;
|
||||
x = 0.267848 * safezoneW + safezoneX;
|
||||
y = 0.786028 * safezoneH + safezoneY;
|
||||
w = 0.0980199 * safezoneW;
|
||||
h = 0.0330033 * safezoneH;
|
||||
};
|
||||
class HALV_paintshop_mainlistframe: HALV_RscFrame
|
||||
{
|
||||
idc = -1;
|
||||
x = 0.267848 * safezoneW + safezoneX;
|
||||
y = 0.830033 * safezoneH + safezoneY;
|
||||
w = 0.0980199 * safezoneW;
|
||||
h = 0.121012 * safezoneH;
|
||||
};
|
||||
class HALV_paintshop_mainswitchframe: HALV_RscFrame
|
||||
{
|
||||
idc = -1;
|
||||
x = 0.138874 * safezoneW + safezoneX;
|
||||
y = 0.830033 * safezoneH + safezoneY;
|
||||
w = 0.118656 * safezoneW;
|
||||
h = 0.0330033 * safezoneH;
|
||||
};
|
||||
class HALV_paintshop_mainlist: HALV_RscListBox
|
||||
{
|
||||
idc = 6673;
|
||||
x = 0.267848 * safezoneW + safezoneX;
|
||||
y = 0.830033 * safezoneH + safezoneY;
|
||||
w = 0.0980199 * safezoneW;
|
||||
h = 0.121012 * safezoneH;
|
||||
onLBDblClick = "call HALV_paintshop_onLBDblClick2;false";
|
||||
onLBSelChanged = "call HALV_paintshop_onLBSelChanged2;false";
|
||||
};
|
||||
class HALV_paintshop_texlist: HALV_RscListBox
|
||||
{
|
||||
idc = 6675;
|
||||
x = 0.138874 * safezoneW + safezoneX;
|
||||
y = 0.290979 * safezoneH + safezoneY;
|
||||
w = 0.14445 * safezoneW;
|
||||
h = 0.462046 * safezoneH;
|
||||
onLBDblClick = "_this call HALV_paintshop_addtolist;false";
|
||||
onLBSelChanged = "_this call HALV_paintshop_onLBSelChanged;false";
|
||||
};
|
||||
class HALV_paintshop_mainswitch: HALV_RscCheckbox
|
||||
{
|
||||
idc = 6674;
|
||||
x = 0.138874 * safezoneW + safezoneX;
|
||||
y = 0.830033 * safezoneH + safezoneY;
|
||||
w = 0.118656 * safezoneW;
|
||||
h = 0.0330033 * safezoneH;
|
||||
strings[] = {"Colour Mode"};
|
||||
checked_strings[] = {"Texture Mode"};
|
||||
onCheckBoxesSelChanged = "_this call HALV_paintshop_checkchanged;false";
|
||||
tooltip = "Click to switch between texture list and colour sliders"; // Tooltip text
|
||||
};
|
||||
class HALV_paintshop_textxt: HALV_RscStructuredText
|
||||
{
|
||||
idc = 6676;
|
||||
text = "Select Texture"; //--- ToDo: Localize;
|
||||
x = 0.138874 * safezoneW + safezoneX;
|
||||
y = 0.246975 * safezoneH + safezoneY;
|
||||
w = 0.14445 * safezoneW;
|
||||
h = 0.0330033 * safezoneH;
|
||||
size = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1.2)";
|
||||
};
|
||||
class HALV_paintshop_mainbutacc: HALV_RscButton
|
||||
{
|
||||
idc = 6677;
|
||||
text = "Accept Selected"; //--- ToDo: Localize;
|
||||
x = 0.138874 * safezoneW + safezoneX;
|
||||
y = 0.918042 * safezoneH + safezoneY;
|
||||
w = 0.118656 * safezoneW;
|
||||
h = 0.0330033 * safezoneH;
|
||||
action = "call HALV_paintshop_selected;";
|
||||
tooltip = "Accept all colors / Textures on the list"; // Tooltip text
|
||||
};
|
||||
class HALV_paintshop_mainvehtxt: HALV_RscStructuredText
|
||||
{
|
||||
idc = 6678;
|
||||
text = ""; //CurrentVehicle
|
||||
x = 0.267847 * safezoneW + safezoneX;
|
||||
y = 0.786029 * safezoneH + safezoneY;
|
||||
w = 0.0980199 * safezoneW;
|
||||
h = 0.0330033 * safezoneH;
|
||||
size = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.8)";
|
||||
tooltip = "Currently Painting"; // Tooltip text
|
||||
};
|
||||
class HALV_paintshop_mainbutadd: HALV_RscButton
|
||||
{
|
||||
idc = 6679;
|
||||
text = "== Add to list =>"; //--- ToDo: Localize;
|
||||
x = 0.138874 * safezoneW + safezoneX;
|
||||
y = 0.874037 * safezoneH + safezoneY;
|
||||
w = 0.118656 * safezoneW;
|
||||
h = 0.0330033 * safezoneH;
|
||||
action = "call HALV_paintshop_addtolist;";
|
||||
tooltip = "Add Current Selected Color / Texture to the list"; // Tooltip text
|
||||
};
|
||||
class HALV_paintshop_sliderback: HALV_IGUIBack
|
||||
{
|
||||
idc = 6667;
|
||||
x = 0.376185 * safezoneW + safezoneX;
|
||||
y = 0.775027 * safezoneH + safezoneY;
|
||||
w = 0.412715 * safezoneW;
|
||||
h = 0.187019 * safezoneH;
|
||||
};
|
||||
class HALV_paintshop_sliderframe: HALV_RscFrame
|
||||
{
|
||||
idc = 6668;
|
||||
text = "Paintshop by Halv"; //--- ToDo: Localize;
|
||||
x = 0.376185 * safezoneW + safezoneX;
|
||||
y = 0.775027 * safezoneH + safezoneY;
|
||||
w = 0.412715 * safezoneW;
|
||||
h = 0.187019 * safezoneH;
|
||||
};
|
||||
class HALV_paintshop_slider1: HALV_RscSlider
|
||||
{
|
||||
idc = 6681;
|
||||
x = 0.381344 * safezoneW + safezoneX;
|
||||
y = 0.786029 * safezoneH + safezoneY;
|
||||
w = 0.397238 * safezoneW;
|
||||
h = 0.0330033 * safezoneH;
|
||||
color[] = { 1, 0, 0, .5 };
|
||||
coloractive[] = { 1, 0, 0, 1 };
|
||||
onSliderPosChanged = "_this call HALV_paintshop_slidingcolor;false";
|
||||
tooltip = "Slide to increase / decrease red color"; // Tooltip text
|
||||
};
|
||||
class HALV_paintshop_slider2: HALV_RscSlider
|
||||
{
|
||||
idc = 6682;
|
||||
x = 0.381344 * safezoneW + safezoneX;
|
||||
y = 0.830033 * safezoneH + safezoneY;
|
||||
w = 0.397238 * safezoneW;
|
||||
h = 0.0330033 * safezoneH;
|
||||
color[] = { 0, 1, 0, .5 };
|
||||
coloractive[] = { 0, 1, 0, 1 };
|
||||
onSliderPosChanged = "_this call HALV_paintshop_slidingcolor;false";
|
||||
tooltip = "Slide to increase / decrease green color"; // Tooltip text
|
||||
};
|
||||
class HALV_paintshop_slider3: HALV_RscSlider
|
||||
{
|
||||
idc = 6683;
|
||||
x = 0.381344 * safezoneW + safezoneX;
|
||||
y = 0.874037 * safezoneH + safezoneY;
|
||||
w = 0.397238 * safezoneW;
|
||||
h = 0.0330033 * safezoneH;
|
||||
color[] = { 0, 0, 1, .5 };
|
||||
coloractive[] = { 0, 0, 1, 1 };
|
||||
onSliderPosChanged = "_this call HALV_paintshop_slidingcolor;false";
|
||||
tooltip = "Slide to increase / decrease blue color"; // Tooltip text
|
||||
};
|
||||
class HALV_paintshop_slider4: HALV_RscSlider
|
||||
{
|
||||
idc = 6684;
|
||||
x = 0.381344 * safezoneW + safezoneX;
|
||||
y = 0.918042 * safezoneH + safezoneY;
|
||||
w = 0.397238 * safezoneW;
|
||||
h = 0.0330033 * safezoneH;
|
||||
color[] = { 1, 1, 1, .5 };
|
||||
coloractive[] = { 1, 1, 1, 1 };
|
||||
onSliderPosChanged = "_this call HALV_paintshop_slidingcolor;false";
|
||||
tooltip = "Slide to increase / decrease saturation"; // Tooltip text
|
||||
};
|
||||
};
|
||||
};
|
363
addons/paintshop/paintshop.sqf
Normal file
@ -0,0 +1,363 @@
|
||||
/*
|
||||
Vehicle, uniform & backpack Paintshop
|
||||
By Halv
|
||||
|
||||
Copyright (C) 2015 Halvhjearne > README.md
|
||||
|
||||
Halv's Paintshop eXpanded 4 Exile
|
||||
by DirtySanchez
|
||||
DonkeyPunch.INFO
|
||||
https://discord.me/eXpoch
|
||||
*/
|
||||
|
||||
#include "settings.sqf";
|
||||
|
||||
HALV_paintshop_opendialog = {
|
||||
if(isNull _this)exitWith{};
|
||||
HALV_paintshop_vehicletopaint = _this;
|
||||
HALV_paintshop_color = [0,0,0,0.6];
|
||||
HALV_paintshop_defaultsides = HALV_paintshop_vehicletopaint getVariable ["VEHICLE_DEFAULTTEX",[]];
|
||||
if(HALV_paintshop_defaultsides isEqualTo [])then{
|
||||
HALV_paintshop_defaultsides = getObjectTextures HALV_paintshop_vehicletopaint;
|
||||
HALV_paintshop_vehicletopaint setVariable ["VEHICLE_DEFAULTTEX",HALV_paintshop_defaultsides,true];
|
||||
};
|
||||
_typeOf = typeOf HALV_paintshop_vehicletopaint;
|
||||
_txt = (gettext (configFile >> "cfgvehicles" >> _typeOf >> "displayName"));
|
||||
if(count(HALV_paintshop_defaultsides) < 1)exitWith{
|
||||
titleText [format["%1 can not be painted ...",_txt],"PLAIN DOWN"];
|
||||
diag_log format["%1 could not be painted ...",_typeOf];
|
||||
};
|
||||
HALV_paintshop_sidestopaint = [];
|
||||
{
|
||||
HALV_paintshop_sidestopaint pushBack [_forEachIndex,_x];
|
||||
}forEach getObjectTextures HALV_paintshop_vehicletopaint;
|
||||
HALV_paintshop_currentside = 0;
|
||||
HALV_paintshop_texture = HALV_paintshop_defaultsides select 0;
|
||||
createDialog "HALV_painshop_dialog";
|
||||
disableSerialization;
|
||||
_ctrl = (findDisplay 6666) displayCtrl 6678;_ctrl ctrlEnable false;
|
||||
{_ctrl = (findDisplay 6666) displayCtrl _x;_ctrl ctrlShow false;}forEach [6669,6670,6671,6672,6675,6676];
|
||||
{_ctrl = (findDisplay 6666) displayCtrl _x;_ctrl sliderSetRange [0,1];_ctrl sliderSetSpeed [0.01,0.03];}forEach [6681,6682,6683,6684];
|
||||
_ctrl sliderSetPosition 0.6;
|
||||
_ctrl = (findDisplay 6666) displayCtrl 6678;
|
||||
_ctrl ctrlSetText _txt;
|
||||
_ctrl = (findDisplay 6666) displayCtrl 6673;
|
||||
lbClear _ctrl;
|
||||
{
|
||||
_text = format["Side %1",_x select 0];
|
||||
_index = _ctrl lbAdd _text;
|
||||
_ctrl lbSetPicture [_index,_x select 1];
|
||||
_ctrl lbSetPictureColor [_index, [1, 1, 1, 1]];
|
||||
_ctrl lbSetPictureColorSelected [_index, [1, 1, 1, 1]];
|
||||
_ctrl lbSetData [_index,_x select 1];
|
||||
_ctrl lbSetValue [_index,_x select 0];
|
||||
_ctrl lbSetTooltip [_index,"Double Click to Reset Texture"];
|
||||
}forEach HALV_paintshop_sidestopaint;
|
||||
};
|
||||
|
||||
HALV_paintshop_checkchanged = {
|
||||
disableSerialization;
|
||||
if((_this select 2) isEqualTo 1)then{
|
||||
{_ctrl = (findDisplay 6666) displayCtrl _x;_ctrl ctrlShow false;}forEach [6667,6668,6681,6682,6683,6684];
|
||||
{_ctrl = (findDisplay 6666) displayCtrl _x;_ctrl ctrlShow true;}forEach [6669,6670,6671,6672,6675,6676];
|
||||
call HALV_paintshop_filllistbox;
|
||||
}else{
|
||||
{_ctrl = (findDisplay 6666) displayCtrl _x;_ctrl ctrlShow false;}forEach [6669,6670,6671,6672,6675,6676];
|
||||
{_ctrl = (findDisplay 6666) displayCtrl _x;_ctrl ctrlShow true;}forEach [6667,6668,6681,6682,6683,6684];
|
||||
};
|
||||
};
|
||||
|
||||
HALV_paintshop_filllistbox = {
|
||||
#include "settings.sqf";
|
||||
disableSerialization;
|
||||
_ctrl = (findDisplay 6666) displayCtrl 6675;
|
||||
lbClear _ctrl;
|
||||
_colorsConfig=configFile >> "CfgVehicles" >> (typeOf HALV_paintshop_vehicletopaint) >> "availableColors";
|
||||
if(isArray(_colorsConfig))then{
|
||||
// _textureSelectionIndex=configFile >> "CfgVehicles" >> (typeOf HALV_paintshop_vehicletopaint) >> "textureSelectionIndex";
|
||||
_colors=getArray(_colorsConfig);
|
||||
{
|
||||
_fi = _forEachIndex;
|
||||
{
|
||||
_lb = _ctrl lbAdd format["Skin: %1 %2",_fi,_forEachIndex];
|
||||
_ctrl lbSetData [_lb,_x];
|
||||
_ctrl lbSetPicture [_lb,_x];
|
||||
_ctrl lbSetPictureColor [_lb, [1, 1, 1, 1]];
|
||||
_ctrl lbSetPictureColorSelected [_lb, [1, 1, 1, 1]];
|
||||
_ctrl lbSetTooltip [_lb,"Click to Test Texture"];
|
||||
}forEach _x;
|
||||
}forEach _colors;
|
||||
};
|
||||
{
|
||||
_fi = _forEachIndex;
|
||||
_lb = _ctrl lbAdd format["Default: Side %1",_fi];
|
||||
_ctrl lbSetData [_lb,_x];
|
||||
_ctrl lbSetPicture [_lb,_x];
|
||||
_ctrl lbSetPictureColor [_lb, [1, 1, 1, 1]];
|
||||
_ctrl lbSetPictureColorSelected [_lb, [1, 1, 1, 1]];
|
||||
_ctrl lbSetTooltip [_lb,"Click to Test Texture"];
|
||||
}forEach HALV_paintshop_defaultsides;
|
||||
{
|
||||
_lb = _ctrl lbAdd (_x select 0);
|
||||
_ctrl lbSetPicture [_lb,(_x select 1)];
|
||||
_ctrl lbSetData [_lb,(_x select 1)];
|
||||
_ctrl lbSetPictureColor [_lb, [1, 1, 1, 1]];
|
||||
_ctrl lbSetPictureColorSelected [_lb, [1, 1, 1, 1]];
|
||||
_ctrl lbSetTooltip [_lb,"Click to Test Texture"];
|
||||
}forEach _textures;
|
||||
lbSort _ctrl;
|
||||
};
|
||||
|
||||
HALV_paintshop_slidingcolor = {
|
||||
_ctrl = _this select 0;
|
||||
_val = _this select 1;
|
||||
if !(_val isEqualTo (sliderPosition _ctrl))exitWith{};
|
||||
_arr = switch(str _ctrl)do{
|
||||
case "Control #6681":{[0,_val];};
|
||||
case "Control #6682":{[1,_val];};
|
||||
case "Control #6683":{[2,_val];};
|
||||
case "Control #6684":{[3,_val];};
|
||||
};
|
||||
HALV_paintshop_color set _arr;
|
||||
HALV_paintshop_vehicletopaint setObjectTexture [HALV_paintshop_currentside,format["#(argb,8,8,3)color(%1,%2,%3,%4)",HALV_paintshop_color select 0,HALV_paintshop_color select 1,HALV_paintshop_color select 2,HALV_paintshop_color select 3]];
|
||||
hintSilent str(HALV_paintshop_color);
|
||||
};
|
||||
|
||||
HALV_paintshop_selected = {
|
||||
#include "settings.sqf";
|
||||
closeDialog 0;
|
||||
diag_log str['HALVSETTEX:',HALV_paintshop_sidestopaint];
|
||||
{
|
||||
_tex = _x select 1;
|
||||
if(typeName (_x select 1) == "ARRAY")then{
|
||||
_tex = format["#(argb,8,8,3)color(%1,%2,%3,%4)",(_x select 1) select 0,(_x select 1) select 1,(_x select 1) select 2,(_x select 1) select 3];
|
||||
HALV_paintshop_vehicletopaint setObjectTextureGlobal [_x select 0,format["#(argb,8,8,3)color(%1,%2,%3,%4)",(_x select 1) select 0,(_x select 1) select 1,(_x select 1) select 2,(_x select 1) select 3]];
|
||||
};
|
||||
if(_tex == "")then{
|
||||
_tex = HALV_paintshop_defaultsides select (_x select 0);
|
||||
};
|
||||
HALV_paintshop_vehicletopaint setObjectTextureGlobal [_x select 0,_tex];
|
||||
}forEach HALV_paintshop_sidestopaint;
|
||||
_alltex = getObjectTextures HALV_paintshop_vehicletopaint;
|
||||
switch(true)do{
|
||||
case (HALV_paintshop_vehicletopaint isKindOf "bag_base"):{
|
||||
if(_alltex isEqualTo HALV_paintshop_defaultsides)then{
|
||||
profileNamespace setVariable ["HALV_BAGCOLOR",nil];
|
||||
HALV_paintshop_vehicletopaint setVariable ["VEHICLE_DEFAULTTEX",nil];
|
||||
}else{
|
||||
profileNamespace setVariable ["HALV_BAGCOLOR",_alltex];
|
||||
};
|
||||
};
|
||||
case (HALV_paintshop_vehicletopaint isEqualTo player):{
|
||||
if(_alltex isEqualTo HALV_paintshop_defaultsides)then{
|
||||
profileNamespace setVariable ["HALV_UNIFORMCOLOR",nil];
|
||||
HALV_paintshop_vehicletopaint setVariable ["VEHICLE_DEFAULTTEX",nil];
|
||||
}else{
|
||||
profileNamespace setVariable ["HALV_UNIFORMCOLOR",_alltex];
|
||||
};
|
||||
};
|
||||
case (HALV_paintshop_vehicletopaint isKindOf "Exile_Construction_Abstract_Static"):{
|
||||
HALV_basepartsavetex = [ExileClientSessionId,HALV_paintshop_vehicletopaint];
|
||||
publicVariableServer "HALV_basepartsavetex";
|
||||
};
|
||||
default{
|
||||
if (((locked HALV_paintshop_vehicletopaint) isEqualTo 0) && ((locked HALV_paintshop_vehicletopaint) != 1))then{
|
||||
if !(isPlayer HALV_paintshop_vehicletopaint)then{
|
||||
|
||||
HALV_vehsavetex = [ExileClientSessionId,HALV_paintshop_vehicletopaint];
|
||||
publicVariableServer "HALV_vehsavetex";
|
||||
|
||||
}else{
|
||||
titleText ["[SERVER]:\n*** VEHICLE PAINTJOB NOT SAVED! ***\nThere was a player in the vehicle!","PLAIN DOWN"];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
HALV_paintshop_addtolist = {
|
||||
disableSerialization;
|
||||
_ctrl = (findDisplay 6666) displayCtrl 6674;
|
||||
_tex = if (ctrlChecked _ctrl)then{HALV_paintshop_texture}else{format["#(argb,8,8,3)color(%1,%2,%3,%4)",HALV_paintshop_color select 0,HALV_paintshop_color select 1,HALV_paintshop_color select 2,HALV_paintshop_color select 3]};
|
||||
{
|
||||
if(HALV_paintshop_currentside isEqualTo (_x select 0))exitWith{
|
||||
HALV_paintshop_sidestopaint deleteAt _forEachIndex;
|
||||
};
|
||||
}forEach HALV_paintshop_sidestopaint;
|
||||
HALV_paintshop_sidestopaint pushBack [HALV_paintshop_currentside,_tex];
|
||||
call HALV_paintshop_switchside;
|
||||
lbClear _ctrl;
|
||||
{
|
||||
_text = format["Side %1",_x select 0];
|
||||
_index = _ctrl lbAdd _text;
|
||||
_ctrl lbSetPicture [_index,_x select 1];
|
||||
_ctrl lbSetPictureColor [_index, [1, 1, 1, 1]];
|
||||
_ctrl lbSetPictureColorSelected [_index, [1, 1, 1, 1]];
|
||||
_ctrl lbSetData [_index,_x select 1];
|
||||
_ctrl lbSetValue [_index,_x select 0];
|
||||
_ctrl lbSetTooltip [_index,"Double Click to Reset Texture"];
|
||||
}forEach HALV_paintshop_sidestopaint;
|
||||
lbSort _ctrl;
|
||||
diag_log str['HALVADDTEX:',_tex];
|
||||
};
|
||||
|
||||
HALV_paintshop_onLBSelChanged = {
|
||||
_texture = (_this select 0) lbData (_this select 1);
|
||||
HALV_paintshop_vehicletopaint setObjectTexture [HALV_paintshop_currentside,_texture];
|
||||
HALV_paintshop_texture = _texture;
|
||||
};
|
||||
|
||||
HALV_paintshop_onLBSelChanged2 = {
|
||||
_ctrl = _this select 0;
|
||||
_lb = _this select 1;
|
||||
_texture = _ctrl lbData _lb;
|
||||
_value = _ctrl lbValue _lb;
|
||||
HALV_paintshop_currentside = _value;
|
||||
HALV_paintshop_texture = _texture;
|
||||
};
|
||||
|
||||
HALV_paintshop_onLBDblClick2 = {
|
||||
disableSerialization;
|
||||
_ctrl = _this select 0;
|
||||
_lb = _this select 1;
|
||||
_value = _ctrl lbValue _lb;
|
||||
HALV_paintshop_vehicletopaint setObjectTexture [HALV_paintshop_currentside,(HALV_paintshop_defaultsides select _value)];
|
||||
HALV_paintshop_sidestopaint set [_value,[HALV_paintshop_currentside,(HALV_paintshop_defaultsides select _value)]];
|
||||
diag_log str['HALVREMTEX:',[_value,[HALV_paintshop_currentside,(HALV_paintshop_defaultsides select _value)]]];
|
||||
lbClear _ctrl;
|
||||
{
|
||||
_text = format["Side %1",_x select 0];
|
||||
_index = _ctrl lbAdd _text;
|
||||
_ctrl lbSetPicture [_index,_x select 1];
|
||||
_ctrl lbSetPictureColor [_index, [1, 1, 1, 1]];
|
||||
_ctrl lbSetPictureColorSelected [_index, [1, 1, 1, 1]];
|
||||
_ctrl lbSetData [_index,_x select 1];
|
||||
_ctrl lbSetValue [_index,_x select 0];
|
||||
_ctrl lbSetTooltip [_index,"Double Click to Reset Texture"];
|
||||
}forEach HALV_paintshop_sidestopaint;
|
||||
lbSort _ctrl;
|
||||
};
|
||||
|
||||
HALV_paintshop_switchside = {
|
||||
HALV_paintshop_currentside = HALV_paintshop_currentside + 1;
|
||||
if(HALV_paintshop_currentside >= count HALV_paintshop_defaultsides)then{HALV_paintshop_currentside = 0;};
|
||||
disableSerialization;
|
||||
_ctrl = (findDisplay 6666) displayCtrl 6673;
|
||||
_ctrl lbSetCurSel HALV_paintshop_currentside;
|
||||
};
|
||||
|
||||
waitUntil{!isNull (findDisplay 46) && !dialog && typeOf player != "Exile_Unit_GhostPlayer"};
|
||||
|
||||
_pcolor = profileNamespace getVariable ["HALV_BAGCOLOR",[]];
|
||||
if (!(_pcolor isEqualTo []) && !(Backpack player in ["","B_Parachute","B_O_Parachute_02_F","B_I_Parachute_02_F","B_B_Parachute_02_F"]))then{
|
||||
_bag = (unitBackpack player);
|
||||
_defaultsides = getObjectTextures _bag;
|
||||
if(count _defaultsides > 0)then{
|
||||
if(typeName(_pcolor select 0) == "ARRAY")then{
|
||||
{_bag setObjectTextureGlobal _x;}forEach _pcolor;
|
||||
profileNamespace setVariable ["HALV_BAGCOLOR",(getObjectTextures _bag)];
|
||||
}else{
|
||||
{_bag setObjectTextureGlobal [_forEachIndex,_x];}forEach _pcolor;
|
||||
};
|
||||
if("" in (getObjectTextures _bag))then{
|
||||
{_bag setObjectTextureGlobal [_forEachIndex,_x];}forEach _defaultsides;
|
||||
profileNamespace setVariable ["HALV_BAGCOLOR",nil];
|
||||
}else{
|
||||
_bag setVariable ["VEHICLE_DEFAULTTEX",_defaultsides,true];
|
||||
};
|
||||
}else{
|
||||
_txt = (gettext (configFile >> "cfgvehicles" >> (Backpack player) >> "displayName"));
|
||||
systemChat format["%1 could not be painted ...",_txt];
|
||||
diag_log format["%1 could not be painted ...",Backpack player];
|
||||
};
|
||||
};
|
||||
|
||||
_pcolor = profileNamespace getVariable ["HALV_UNIFORMCOLOR",[]];
|
||||
if (!(_pcolor isEqualTo []) && !(Uniform player in ["","U_Test1_uniform","U_Test_uniform"]))then{
|
||||
_defaultsides = getObjectTextures player;
|
||||
if(count _defaultsides > 0)then{
|
||||
if(typeName(_pcolor select 0) == "ARRAY")then{
|
||||
{player setObjectTextureGlobal _x;}forEach _pcolor;
|
||||
profileNamespace setVariable ["HALV_UNIFORMCOLOR",(getObjectTextures player)];
|
||||
}else{
|
||||
{player setObjectTextureGlobal [_forEachIndex,_x];}forEach _pcolor;
|
||||
};
|
||||
if("" in (getObjectTextures player))then{
|
||||
{player setObjectTextureGlobal [_forEachIndex,_x];}forEach _defaultsides;
|
||||
profileNamespace setVariable ["HALV_UNIFORMCOLOR",nil];
|
||||
}else{
|
||||
player setVariable ["VEHICLE_DEFAULTTEX",_defaultsides,true];
|
||||
};
|
||||
}else{
|
||||
_txt = (gettext (configFile >> "cfgvehicles" >> (Uniform player) >> "displayName"));
|
||||
systemChat format["%1 could not be painted ...",_txt];
|
||||
diag_log format["%1 could not be painted ...",Uniform player];
|
||||
};
|
||||
};
|
||||
|
||||
_HALV_panitshop_bagaction = -1;
|
||||
_HALV_panitshop_uniformaction = -1;
|
||||
_HALV_panitshop_vehicleactions = [];
|
||||
_lastsearch = [];
|
||||
|
||||
_sendmessage = true;
|
||||
|
||||
while{alive player}do{
|
||||
_nearpaintshops = (nearestObjects [player,_paintshopbuildings,15])-[player];
|
||||
_inRange = count _nearpaintshops > 0;
|
||||
if(_inRange)then{
|
||||
if(_sendmessage)then{
|
||||
player sideChat "-- Paint Shop --";
|
||||
_sendmessage = false;
|
||||
};
|
||||
if(player isEqualTo vehicle player)then{
|
||||
if !(Backpack player in ["","B_Parachute","B_O_Parachute_02_F","B_I_Parachute_02_F","B_B_Parachute_02_F"])then{
|
||||
if(_HALV_panitshop_bagaction< 0)then{
|
||||
_HALV_panitshop_bagaction = player addAction ["<img size='1.5'image='\a3\Ui_f\data\map\VehicleIcons\iconmanmedic_ca.paa'/> <t color='#0096ff'>Paint Backpack</t>", {(_this select 3) call HALV_paintshop_opendialog;}, (unitBackpack player),1, false, true, "", ""];
|
||||
};
|
||||
}else{
|
||||
player removeAction _HALV_panitshop_bagaction;
|
||||
_HALV_panitshop_bagaction = -1;
|
||||
};
|
||||
if !(Uniform player in ["","U_Test1_uniform","U_Test_uniform"])then{
|
||||
if(_HALV_panitshop_uniformaction< 0)then{
|
||||
_HALV_panitshop_uniformaction = player addAction ["<img size='1.5'image='\a3\Ui_f\data\map\VehicleIcons\iconmanmedic_ca.paa'/> <t color='#0096ff'>Paint Uniform</t>", {(_this select 3) call HALV_paintshop_opendialog;}, player,1, false, true, "", ""];
|
||||
};
|
||||
}else{
|
||||
player removeAction _HALV_panitshop_uniformaction;
|
||||
_HALV_panitshop_uniformaction = -1;
|
||||
};
|
||||
_nearvehicles = (player nearEntities [["Air","LandVehicle","Ship"],40])-[player];
|
||||
if !(_nearvehicles isEqualTo _lastsearch)then{{player removeAction _x}forEach _HALV_panitshop_vehicleactions;_HALV_panitshop_vehicleactions = [];};
|
||||
if(count _HALV_panitshop_vehicleactions < 1)then{
|
||||
{
|
||||
if !(_x isKindOf "Wreck_Base")then{
|
||||
_txt = (gettext (configFile >> 'cfgvehicles' >> (typeOf _x) >> 'displayName'));
|
||||
_action = player addAction [format["<img size='1.5'image='\a3\Ui_f\data\map\VehicleIcons\iconmanmedic_ca.paa'/> <t color='#0096ff'>Paint %1</t>",_txt], {(_this select 3) call HALV_paintshop_opendialog;}, _x,1, false, true, "", ""];
|
||||
_HALV_panitshop_vehicleactions pushBack _action;
|
||||
};
|
||||
}forEach _nearvehicles;
|
||||
};
|
||||
_lastsearch = _nearvehicles;
|
||||
|
||||
}else{
|
||||
{player removeAction _x}forEach _HALV_panitshop_vehicleactions+[_HALV_panitshop_bagaction,_HALV_panitshop_uniformaction];
|
||||
_HALV_panitshop_vehicleactions = [];
|
||||
_HALV_panitshop_uniformaction = -1;
|
||||
_HALV_panitshop_bagaction = -1;
|
||||
_lastsearch = [];
|
||||
};
|
||||
}else{
|
||||
_sendmessage = true;
|
||||
{player removeAction _x}forEach _HALV_panitshop_vehicleactions+[_HALV_panitshop_bagaction,_HALV_panitshop_uniformaction];
|
||||
_HALV_panitshop_vehicleactions = [];
|
||||
_HALV_panitshop_uniformaction = -1;
|
||||
_HALV_panitshop_bagaction = -1;
|
||||
_lastsearch = [];
|
||||
};
|
||||
sleep 2;
|
||||
};
|
||||
|
||||
waitUntil{alive player};
|
||||
|
||||
[]execVM __FILE__;
|
40
addons/paintshop/paintshop_serveraddon.sqf
Normal file
@ -0,0 +1,40 @@
|
||||
/*
|
||||
Vehicle, uniform & backpack Paintshop
|
||||
By Halv
|
||||
|
||||
Copyright (C) 2015 Halvhjearne > README.md
|
||||
|
||||
Halv's Paintshop eXpanded 4 Exile
|
||||
by DirtySanchez
|
||||
DonkeyPunch.INFO
|
||||
https://discord.me/eXpoch
|
||||
*/
|
||||
|
||||
if(isServer)then{
|
||||
|
||||
HALV_server_savetextures = {
|
||||
private ["_vehicle","_skinTextures","_vehicleID","_sessionId"];
|
||||
_sessionId = _this select 0;
|
||||
_vehicle = _this select 1;
|
||||
if (!isNull _vehicle) then {
|
||||
_vehicleID = _vehicle getVariable ["ExileDatabaseID",0];
|
||||
_skinTextures = getObjectTextures _vehicle;
|
||||
format["updateVehicleSkin:%1:%2", _skinTextures, _vehicleID] call ExileServer_system_database_query_fireAndForget;
|
||||
[_sessionId, "toastRequest", ["SuccessTitleAndText", ["Vehicle Skin Saved!", "Halv's Paintshop eXpanded 4 Exile by DirtySanchez"]]] call ExileServer_system_network_send_to;
|
||||
};
|
||||
};
|
||||
"HALV_vehsavetex" addPublicVariableEventHandler {(_this select 1) call HALV_server_savetextures;};
|
||||
|
||||
HALV_server_saveBPtextures = {
|
||||
private ["_construction","_databaseID","_textures","_sessionId"];
|
||||
_sessionId = _this select 0;
|
||||
_construction = _this select 1;
|
||||
if (!isNull _construction) then {
|
||||
_databaseID = _construction getVariable ["ExileDatabaseID",0];
|
||||
_textures = getObjectTextures _construction;
|
||||
format ["updateBasePaint:%1:%2",_textures,_databaseID] call ExileServer_system_database_query_fireAndForget;
|
||||
[_sessionId, "toastRequest", ["SuccessTitleAndText", ["BasePart Skin Saved!", "Halv's Paintshop eXpanded 4 Exile by DirtySanchez"]]] call ExileServer_system_network_send_to;
|
||||
};
|
||||
};
|
||||
"HALV_basepartsavetex" addPublicVariableEventHandler {(_this select 1) call HALV_server_saveBPtextures;};
|
||||
};
|
122
addons/paintshop/settings.sqf
Normal file
@ -0,0 +1,122 @@
|
||||
/*
|
||||
Vehicle & backpack Paintshop
|
||||
By Halv
|
||||
|
||||
Copyright (C) 2015 Halvhjearne > README.md
|
||||
|
||||
Halv's Paintshop eXpanded 4 Exile
|
||||
by DirtySanchez
|
||||
DonkeyPunch.INFO
|
||||
https://discord.me/eXpoch
|
||||
*/
|
||||
|
||||
|
||||
//these are the classnames of buildings that will activate the paintshop
|
||||
_paintshopbuildings = ["Land_CarService_F","Land_Repair_center","Exile_Construction_Flag_Static"];
|
||||
|
||||
//add textures and preset colors here
|
||||
_textures = [
|
||||
//Halv's Paintshop eXpanded 4 Exile by DirtySanchez
|
||||
["Armor","addons\paintshop\skins\armor.jpg"],
|
||||
["Devil's Camo","addons\paintshop\skins\blackredwhite.paa"],
|
||||
["Blue Camo","addons\paintshop\skins\bluecamo.jpg"],
|
||||
["Camo Camo","addons\paintshop\skins\camo.jpg"],
|
||||
["DirtySanchez Camo","addons\paintshop\skins\camo1.jpg"],
|
||||
["Aqua Camo","addons\paintshop\skins\camoaqua.jpg"],
|
||||
["Desert Camo","addons\paintshop\skins\camodesert.jpg"],
|
||||
["Silver Camo","addons\paintshop\skins\camogrey.jpg"],
|
||||
["Pink Camo","addons\paintshop\skins\camopink.jpg"],
|
||||
["Red Camo","addons\paintshop\skins\camored.jpg"],
|
||||
["Smooth Camo","addons\paintshop\skins\camosmooth.jpg"],
|
||||
["Tie Die Camo","addons\paintshop\skins\camotiedie.jpg"],
|
||||
["Digital Camo","addons\paintshop\skins\digital.jpg"],
|
||||
["Fire Camo","addons\paintshop\skins\fire.jpg"],
|
||||
["Flat Green Camo","addons\paintshop\skins\flatgreen.jpg"],
|
||||
["Pink Hair Camo","addons\paintshop\skins\pink-hair.jpg"],
|
||||
["Safari Camo","addons\paintshop\skins\safari.jpg"],
|
||||
["Shield Camo","addons\paintshop\skins\shield.jpg"],
|
||||
["Skull Camo","addons\paintshop\skins\skullcamo.jpg"],
|
||||
["Neon Camo","addons\paintshop\skins\spilled_neon.jpg"],
|
||||
["Urban Camo","addons\paintshop\skins\urbancamo.jpg"],
|
||||
["Zebra Camo","addons\paintshop\skins\zebracamo.paa"],
|
||||
//original halv textures from here down and commented out below
|
||||
["Eagle","\a3\data_f_curator\Eagle\Data\eagle_co.paa"],
|
||||
//preset colors
|
||||
["Red","#(argb,8,8,3)color(1,0,0,1)"],
|
||||
["Green","#(argb,8,8,3)color(0,1,0,1)"],
|
||||
["Blue","#(argb,8,8,3)color(0,0,1,1)"],
|
||||
["Black","#(argb,8,8,3)color(0,0,0,0.6)"],
|
||||
["Pink","#(argb,8,8,3)color(1,0.75,0.84,0.2)"],
|
||||
["Tan","#(argb,8,8,3)color(0.8,0.7,0.5,0.2)"]
|
||||
];
|
||||
|
||||
/*
|
||||
// Use these below as examples of how to add other textures from MODS or from the mission file pbo :)
|
||||
//Epoch
|
||||
//Epoch["Bear","\x\addons\a3_epoch_assets\textures\bear\bear_co.paa"],
|
||||
//Epoch["Candy","\x\addons\a3_epoch_assets\textures\candy\candy_ca.paa"],
|
||||
//Epoch["Circuit","\x\addons\a3_epoch_assets\textures\circuit\circuit_co.paa"],
|
||||
//Epoch["Concrete","\x\addons\a3_epoch_assets\textures\concrete_ca.paa"],
|
||||
//Epoch["Wood","\x\addons\a3_epoch_assets\textures\wood_co.paa"],
|
||||
//Epoch["Supply crate","\x\addons\a3_epoch_assets_1\textures\supply_crate_co.paa"],
|
||||
//Epoch["Carry Tent","\x\addons\a3_epoch_assets_3\carnival\carnyTent_co.paa"],
|
||||
//custom textures (have to be in your mission pbo)
|
||||
//custom["Linux","trader\trader.jpg"],
|
||||
//custom["DK Flag","custom\dkflag.jpg"],
|
||||
//custom["Load Screen","custom\loadscreen.jpg"],
|
||||
//custom["Problem Solving","custom\problemsolving.jpg"],
|
||||
//custom["Union Jack","custom\unionjack.jpg"],
|
||||
//custom["Carbon","custom\carbon.jpg"],
|
||||
//custom["Stars and Bars","custom\confederate.jpg"],
|
||||
//custom["Leopard skin","custom\leopard.jpg"],
|
||||
//custom["Stars and Stripes","custom\murica.jpg"],
|
||||
//custom["Rainbow","custom\rainbow.jpg"],
|
||||
//custom["Shark Teeths","custom\shark.jpg"],
|
||||
//custom["Camo Light Green","custom\lightgreen.jpg"]
|
||||
//default arma 3 textures
|
||||
["Debriefing background","\a3\Ui_f\data\gui\cfg\Debriefing\debriefingbackground_co.paa"],
|
||||
["CommunityGuide background 1","\a3\Ui_f\data\gui\cfg\CommunityGuide\airassault_co.paa"],
|
||||
["CommunityGuide background 2","\a3\Ui_f\data\gui\cfg\CommunityGuide\basicinfantrycombat_co.paa"],
|
||||
["CommunityGuide background 3","\a3\Ui_f\data\gui\cfg\CommunityGuide\combinedarms_co.paa"],
|
||||
["CommunityGuide background 4","\a3\Ui_f\data\gui\cfg\CommunityGuide\groundvehiclecrew_co.paa"],
|
||||
["CommunityGuide background 5","\a3\Ui_f\data\gui\cfg\CommunityGuide\guerrillawarfare_co.paa"],
|
||||
["CommunityGuide background 6","\a3\Ui_f\data\gui\cfg\CommunityGuide\helicopters_co.paa"],
|
||||
["CommunityGuide background 7","\a3\Ui_f\data\gui\cfg\CommunityGuide\introduction_co.paa"],
|
||||
["CommunityGuide background 8","\a3\Ui_f\data\gui\cfg\CommunityGuide\sniperslaunchers_co.paa"],
|
||||
["CommunityGuide background 9","\a3\Ui_f\data\gui\cfg\CommunityGuide\zeus_co.paa"],
|
||||
["LoadingScreens 1","\a3\Ui_f\data\gui\cfg\LoadingScreens\gc_wallpaper_06_co.paa"],
|
||||
["LoadingScreens 2","\a3\Ui_f\data\gui\cfg\LoadingScreens\gc_wallpaper_07_co.paa"],
|
||||
["LoadingScreens 3","\a3\Ui_f\data\gui\cfg\LoadingScreens\gc_wallpaper_10_co.paa"],
|
||||
["LoadingScreens 4","\a3\Ui_f\data\gui\cfg\LoadingScreens\gc_wallpaper_14_co.paa"],
|
||||
["LoadingScreens 5","\a3\Ui_f\data\gui\cfg\LoadingScreens\gc_wallpaper_16_co.paa"],
|
||||
["LoadingScreens 6","\a3\Ui_f\data\gui\cfg\LoadingScreens\gc_wallpaper_17_co.paa"],
|
||||
["LoadingScreens 7","\a3\Ui_f\data\gui\cfg\LoadingScreens\gc_wallpaper_18_co.paa"],
|
||||
["LoadingScreens 8","\a3\Ui_f\data\gui\cfg\LoadingScreens\loading_01_co.paa"],
|
||||
["Bootcamp Background","\a3\Ui_f\data\gui\Rsc\RscDisplayBootcampMsgBox\bootcampmsgbox_background_ca.paa"],
|
||||
["Workshop defaultimage","\a3\Ui_f\data\gui\Rsc\RscDisplayPublishMission\steamworksdefaultimage_co.paa"],
|
||||
["WelcomeScreens 1","\a3\Ui_f\data\gui\Rsc\RscDisplayWelcome\welcome1_ca.paa"],
|
||||
["WelcomeScreens 2","\a3\Ui_f\data\gui\Rsc\RscDisplayWelcome\welcome2_ca.paa"],
|
||||
["WelcomeScreens 3","\a3\Ui_f\data\gui\Rsc\RscDisplayWelcome\welcome3_ca.paa"],
|
||||
["WelcomeScreens 4","\a3\Ui_f\data\gui\Rsc\RscDisplayWelcome\welcome4_ca.paa"],
|
||||
//karts pics
|
||||
["Karts Content","\a3\data_f_kart\images\karts_contentbrowserpicture_co.paa"],
|
||||
["Karts illustration 1","\a3\data_f_kart\images\karts_illustration_01_ca.paa"],
|
||||
["Karts illustration 2","\a3\data_f_kart\images\karts_illustration_02_ca.paa"],
|
||||
["Karts illustration 3","\a3\data_f_kart\images\karts_illustration_03_ca.paa"],
|
||||
["Karts illustration 4","\a3\data_f_kart\images\karts_illustration_04_ca.paa"],
|
||||
["Karts illustration 5","\a3\data_f_kart\images\karts_illustration_05_ca.paa"],
|
||||
["Karts illustration 6","\a3\data_f_kart\images\karts_illustration_06_ca.paa"],
|
||||
["Karts Overview","\a3\data_f_kart\images\karts_overviewpicture_co.paa"],
|
||||
["Karts Flag 1","\a3\data_f_kart\Flags\flag_bluking1_co.paa"],
|
||||
["Karts Flag 2","\a3\data_f_kart\Flags\flag_bluking2_co.paa"],
|
||||
["Karts Flag 3","\a3\data_f_kart\Flags\flag_fuel1_co.paa"],
|
||||
["Karts Flag 4","\a3\data_f_kart\Flags\flag_fuel2_co.paa"],
|
||||
["Karts Flag 5","\a3\data_f_kart\Flags\flag_koke1_co.paa"],
|
||||
["Karts Flag 6","\a3\data_f_kart\Flags\flag_koke2_co.paa"],
|
||||
["Karts Flag 7","\a3\data_f_kart\Flags\flag_redburger_co.paa"],
|
||||
["Karts Flag 8","\a3\data_f_kart\Flags\flag_redstone_co.paa"],
|
||||
["Karts Flag 9","\a3\data_f_kart\Flags\flag_suatmm_co.paa"],
|
||||
|
||||
//other
|
||||
["Heli Content","\a3\data_f_heli\images\heli_overviewpicture_co.paa"],
|
||||
*/
|
BIN
addons/paintshop/skins/armor.jpg
Normal file
After Width: | Height: | Size: 22 KiB |
BIN
addons/paintshop/skins/blackredwhite.paa
Normal file
BIN
addons/paintshop/skins/bluecamo.jpg
Normal file
After Width: | Height: | Size: 75 KiB |
BIN
addons/paintshop/skins/camo.jpg
Normal file
After Width: | Height: | Size: 40 KiB |
BIN
addons/paintshop/skins/camo1.jpg
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
addons/paintshop/skins/camoaqua.jpg
Normal file
After Width: | Height: | Size: 8.6 KiB |
BIN
addons/paintshop/skins/camodesert.jpg
Normal file
After Width: | Height: | Size: 40 KiB |
BIN
addons/paintshop/skins/camogrey.jpg
Normal file
After Width: | Height: | Size: 16 KiB |
BIN
addons/paintshop/skins/camopink.jpg
Normal file
After Width: | Height: | Size: 22 KiB |
BIN
addons/paintshop/skins/camored.jpg
Normal file
After Width: | Height: | Size: 22 KiB |
BIN
addons/paintshop/skins/camosmooth.jpg
Normal file
After Width: | Height: | Size: 43 KiB |
BIN
addons/paintshop/skins/camoterrain.jpg
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
addons/paintshop/skins/camotiedie.jpg
Normal file
After Width: | Height: | Size: 26 KiB |
BIN
addons/paintshop/skins/digital.jpg
Normal file
After Width: | Height: | Size: 40 KiB |
BIN
addons/paintshop/skins/fire.jpg
Normal file
After Width: | Height: | Size: 38 KiB |
BIN
addons/paintshop/skins/flatgreen.jpg
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
addons/paintshop/skins/pink-hair.jpg
Normal file
After Width: | Height: | Size: 30 KiB |
BIN
addons/paintshop/skins/safari.jpg
Normal file
After Width: | Height: | Size: 43 KiB |
BIN
addons/paintshop/skins/shield.jpg
Normal file
After Width: | Height: | Size: 16 KiB |
BIN
addons/paintshop/skins/skullcamo.jpg
Normal file
After Width: | Height: | Size: 28 KiB |
BIN
addons/paintshop/skins/spilled_neon.jpg
Normal file
After Width: | Height: | Size: 33 KiB |
BIN
addons/paintshop/skins/urbancamo.jpg
Normal file
After Width: | Height: | Size: 364 KiB |