mirror of
https://github.com/Bjanski/ExAd.git
synced 2024-08-30 16:52:14 +00:00
commit
33445d4b1b
1
@ExileServer/addons/exad_grinding/$PREFIX$
Normal file
1
@ExileServer/addons/exad_grinding/$PREFIX$
Normal file
@ -0,0 +1 @@
|
||||
exad_grinding
|
@ -0,0 +1,35 @@
|
||||
/*
|
||||
fn_grindProgress.sqf
|
||||
|
||||
Copyright 2016 Jan Babor
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
private ["_object","_databaseID"];
|
||||
|
||||
_object = objectFromNetId ([_this, 0, "",[""]] call BIS_fnc_param);
|
||||
|
||||
if(isNull _object)exitWith{false};
|
||||
|
||||
if((_object getVariable ["ExAd_Grinding_progress", 0]) >= ExAd_GRINDING_OBJECT_MAX)then{
|
||||
_object setVariable ["ExileAccessCode", nil];
|
||||
_object setVariable ["ExileIsLocked", nil, true];
|
||||
|
||||
_databaseID = _object getVariable ["ExileDatabaseID",0];
|
||||
format ["addDoorLock:%1:%2","000000",_databaseID] call ExileServer_system_database_query_fireAndForget;
|
||||
};
|
||||
|
||||
_object setVariable ["ExAd_Grinding_progress", (_object getVariable ["ExAd_Grinding_progress", 0]) + ExAd_GRINDING_PROGRESS, true];
|
||||
|
||||
true
|
@ -0,0 +1,27 @@
|
||||
/*
|
||||
fn_restoreLock.sqf
|
||||
|
||||
Copyright 2016 Jan Babor
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
private ["_object","_databaseID"];
|
||||
|
||||
_object = objectFromNetId ([_this, 0, "",[""]] call BIS_fnc_param);
|
||||
|
||||
if(isNull _object)exitWith{false};
|
||||
|
||||
_object setVariable ["ExAd_Grinding_progress", 0, true];
|
||||
|
||||
true
|
1
@ExileServer/addons/exad_grinding/PboPrefix.txt
Normal file
1
@ExileServer/addons/exad_grinding/PboPrefix.txt
Normal file
@ -0,0 +1 @@
|
||||
exad_grinding
|
46
@ExileServer/addons/exad_grinding/config.cpp
Normal file
46
@ExileServer/addons/exad_grinding/config.cpp
Normal file
@ -0,0 +1,46 @@
|
||||
/*
|
||||
config.cpp
|
||||
|
||||
Copyright 2016 Jan Babor
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
class CfgPatches {
|
||||
class ExAd_Grinding {
|
||||
requiredVersion = 0.1;
|
||||
requiredAddons[] = {"ExAd_Core"};
|
||||
};
|
||||
};
|
||||
|
||||
class CfgFunctions {
|
||||
class ExAdServer {
|
||||
class Grinding {
|
||||
file = "exad_grinding\Functions";
|
||||
class grindProgress {};
|
||||
class restoreLock {};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class CfgNetworkMessages
|
||||
{
|
||||
class grindProgress
|
||||
{
|
||||
parameters[] = {"STRING"};
|
||||
};
|
||||
class restoreLock
|
||||
{
|
||||
parameters[] = {"STRING"};
|
||||
};
|
||||
};
|
@ -2,6 +2,7 @@ eventHandler !="ExAd_ACTION_PARACHUTE_DETACH = (findDisplay 46) displayAddEvent
|
||||
compile !="call compile format[\"_messageParameters call ExAd_fnc_%1;\",_messageName]"
|
||||
createVehicle !="_parachuteObject = createVehicle [\"Steerable_Parachute_F\", getPosATL player, [], 0, \"CAN_COLLIDE\"]"
|
||||
addAction !="ExAd_ACTION_PARACHUTE = player addaction [format"
|
||||
drawLine3D !="drawLine3D [cursorTarget modelToWorld ["
|
||||
Entities !="waitUntil {sleep 0.1; {player distance _x < 10 max (sizeOf typeOf _x)} count (player nearEntities [\"Helicopter_Base_F\", 20]) == 0}"
|
||||
disableCollisionWith !="_parachuteObject disableCollisionWith player"
|
||||
remoteexec !="_this remoteExec [\"ExAdServer_fnc_clientRequest\",2]"
|
1
docs/Grinding/examples.md
Normal file
1
docs/Grinding/examples.md
Normal file
@ -0,0 +1 @@
|
||||
#Examples
|
51
docs/Grinding/installation.md
Normal file
51
docs/Grinding/installation.md
Normal file
@ -0,0 +1,51 @@
|
||||
# Installation
|
||||
|
||||
Remember for this plugin to work you first need to install
|
||||
* [Core](https://github.com/Bjanski/ExAd/blob/Core/docs/core/installation.md)
|
||||
|
||||
## Client
|
||||
|
||||
* Place the folder "Grinding" into "mpmissions\exile.<MAP>\ExAdClient\"
|
||||
|
||||
* Goto "mpmissions\exile.<MAP>\ExAdClient\CfgFunctions" and uncomment
|
||||
|
||||
_From_
|
||||
```cpp
|
||||
//#include "Grinding\CfgFunctions.cpp"
|
||||
```
|
||||
_To_
|
||||
```cpp
|
||||
#include "Grinding\CfgFunctions.cpp"
|
||||
```
|
||||
|
||||
* In "config.cpp" find "CfgInteractionMenus" and add to "Construction".
|
||||
```cpp
|
||||
class Construction
|
||||
{
|
||||
targetType = 2;
|
||||
target = "Exile_Construction_Abstract_Static";
|
||||
|
||||
class Actions
|
||||
{
|
||||
class Grind : ExileAbstractAction
|
||||
{
|
||||
title = "Grind Lock";
|
||||
condition = "call ExAd_fnc_canGrindLock";
|
||||
action = "_this spawn ExAd_fnc_grindLock";
|
||||
};
|
||||
|
||||
class RestoreLock : ExileAbstractAction
|
||||
{
|
||||
title = "Restore Lock";
|
||||
condition = "_object call ExAd_fnc_canRestoreLock";
|
||||
action = "_this spawn ExAd_fnc_restoreLock";
|
||||
};
|
||||
};
|
||||
};
|
||||
```
|
||||
|
||||
* Now you can go into "mpmissions\exile.<MAP>\ExAdClient\Grinding\customize.sqf" and change to desirable settings.
|
||||
|
||||
## Server
|
||||
|
||||
* Copy over and pack "@ExileServer\addons\exad_grinding" into a pbo.
|
@ -5,7 +5,7 @@
|
||||
## Client
|
||||
|
||||
* Place the folder "HaloParachute" into "mpmissions\exile.<MAP>\ExAd\"
|
||||
* Goto "mpmissions\exile.<MAP>\ExAd\CfgFunctions" and uncomment
|
||||
* Goto "mpmissions\exile.<MAP>\ExAdClient\CfgFunctions" and uncomment
|
||||
|
||||
From
|
||||
```cpp
|
||||
|
@ -8,7 +8,7 @@ Remember for this plugin to work you first need to install
|
||||
|
||||
* Place the folder "VirtualGarage" into "mpmissions\exile.<MAP>\ExAdClient\"
|
||||
|
||||
* Goto "mpmissions\exile.<MAP>\ExAd\CfgFunctions" and uncomment
|
||||
* Goto "mpmissions\exile.<MAP>\ExAdClient\CfgFunctions" and uncomment
|
||||
|
||||
_From_
|
||||
```cpp
|
||||
@ -22,7 +22,7 @@ _To_
|
||||
|
||||
* In "config.cpp" in the mission root folder, find class CfgExileCustomCode and add the following row
|
||||
```js
|
||||
ExileServer_system_territory_database_load = "EXOClient\CustomCode\ExileServer_system_territory_database_load.sqf";
|
||||
ExileServer_system_territory_database_load = "ExAdClient\CustomCode\ExileServer_system_territory_database_load.sqf";
|
||||
```
|
||||
* In "config.cpp" you can also add the ("CfgInteractionMenus" >> "Flag" >> "VG") class if you want to be able to fast load the app through your flag pole.
|
||||
|
||||
|
11
mpmissions/Exile.Altis/ExAdClient/Grinding/CHANGELOG.md
Normal file
11
mpmissions/Exile.Altis/ExAdClient/Grinding/CHANGELOG.md
Normal file
@ -0,0 +1,11 @@
|
||||
#VirtualGarage
|
||||
## Changelog:
|
||||
|
||||
### 160502 23:15 . v0.6.0
|
||||
#### Fixed
|
||||
|
||||
#### Added
|
||||
* Grinding introduced
|
||||
* Grinding battleye scripts
|
||||
|
||||
#### Deleted
|
28
mpmissions/Exile.Altis/ExAdClient/Grinding/CfgFunctions.cpp
Normal file
28
mpmissions/Exile.Altis/ExAdClient/Grinding/CfgFunctions.cpp
Normal file
@ -0,0 +1,28 @@
|
||||
/*
|
||||
CfgFunctions.cpp
|
||||
|
||||
Copyright 2016 Jan Babor
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
|
||||
class Grinding
|
||||
{
|
||||
file = "ExAdClient\Grinding\Functions";
|
||||
class canGrindLock {};
|
||||
class canRestoreLock {};
|
||||
class grindLock {};
|
||||
class restoreLock {};
|
||||
class postInitGrinding {file = "ExAdClient\Grinding\postInit.sqf"; postInit = 1;};
|
||||
};
|
@ -0,0 +1,19 @@
|
||||
/*
|
||||
fn_canGrindLock.sqf
|
||||
|
||||
Copyright 2016 Jan Babor
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
(((ExileClientInteractionObject getvariable ['ExileIsLocked',1]) isEqualTo -1) && !ExAd_GRINDING && ('Exile_Item_Grinder' in (magazines player)))
|
@ -0,0 +1,19 @@
|
||||
/*
|
||||
fn_canRestoreLock.sqf
|
||||
|
||||
Copyright 2016 Jan Babor
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
(('Exile_Item_Codelock' in (magazines player)) && (ExileClientInteractionObject getVariable ['ExAd_Grinding_progress', 0] > 0))
|
@ -0,0 +1,92 @@
|
||||
/*
|
||||
fn_grindLock.sqf
|
||||
|
||||
Copyright 2016 Jan Babor
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
private ["_soundSrc","_ticker"];
|
||||
|
||||
if(vehicle player != player)exitWith{false};
|
||||
|
||||
ExAd_GRINDING_OBJECT = _this select 0;
|
||||
ExAd_GRINDING = true;
|
||||
call ExileClient_gui_interactionMenu_unhook;
|
||||
_soundSrc = createSoundSource ["Sound_Factory10", position ExAd_GRINDING_OBJECT, [], 0];
|
||||
player playActionNow "medicStart";
|
||||
|
||||
|
||||
ExAd_DRAW3D_HANDLER = addMissionEventHandler ["Draw3D", {
|
||||
private ["_object","_progress"];
|
||||
|
||||
_object = if(isNil "ExAd_GRINDING_OBJECT")then{cursorTarget}else{ExAd_GRINDING_OBJECT};
|
||||
_progress = 1 min ((_object getVariable ["ExAd_Grinding_progress", 1]) / ExAd_GRINDING_OBJECT_MAX);
|
||||
|
||||
drawLine3D [cursorTarget modelToWorld [-0.5, -0.15, 1], cursorTarget modelToWorld [0.5, -0.15, 1], [0,0,0,1]];
|
||||
drawLine3D [cursorTarget modelToWorld [-0.5, -0.15, 0.95], cursorTarget modelToWorld [0.5, -0.15, 0.95], [0,0,0,1]];
|
||||
drawLine3D [cursorTarget modelToWorld [-0.5, 0.15, 1], cursorTarget modelToWorld [0.5, 0.15, 1], [0,0,0,1]];
|
||||
drawLine3D [cursorTarget modelToWorld [-0.5, 0.15, 0.95], cursorTarget modelToWorld [0.5, 0.15, 0.95], [0,0,0,1]];
|
||||
|
||||
drawLine3D [cursorTarget modelToWorld [-0.5, -0.15, 1], cursorTarget modelToWorld [-0.5, -0.15, 0.95], [0,0,0,1]];
|
||||
drawLine3D [cursorTarget modelToWorld [0.5, -0.15, 1], cursorTarget modelToWorld [0.5, -0.15, 0.95], [0,0,0,1]];
|
||||
drawLine3D [cursorTarget modelToWorld [-0.5, 0.15, 1], cursorTarget modelToWorld [-0.5, 0.15, 0.95], [0,0,0,1]];
|
||||
drawLine3D [cursorTarget modelToWorld [0.5, -0.15, 1], cursorTarget modelToWorld [0.5, -0.15, 0.95], [0,0,0,1]];
|
||||
|
||||
for "_i" from 1 to 49 do {
|
||||
drawLine3D [cursorTarget modelToWorld [-0.5, -0.15, 1 - (0.001 * _i)], cursorTarget modelToWorld [((-0.5) + _progress), -0.15, 1 - (0.001 * _i)], [1,0.482,0,1]];
|
||||
drawLine3D [cursorTarget modelToWorld [0.5, 0.15, 1 - (0.001 * _i)], cursorTarget modelToWorld [((0.5) - _progress), 0.15, 1 - (0.001 * _i)], [1,0.482,0,1]];
|
||||
|
||||
drawLine3D [cursorTarget modelToWorld [0.5, -0.15, 1 - (0.001 * _i)], cursorTarget modelToWorld [((-0.5) + _progress), -0.15, 1 - (0.001 * _i)], [0.55,0.55,0.55,1]];
|
||||
drawLine3D [cursorTarget modelToWorld [-0.5, 0.15, 1 - (0.001 * _i)], cursorTarget modelToWorld [((0.5) - _progress), 0.15, 1 - (0.001 * _i)], [0.55,0.55,0.55,1]];
|
||||
}
|
||||
}];
|
||||
|
||||
_ticker = 1;
|
||||
while{(ExAd_GRINDING_OBJECT == cursorTarget) && ExAd_GRINDING}do{
|
||||
UISleep 1;
|
||||
if(random[0,50,100] < 1)exitWith{
|
||||
player removeItem "Exile_Item_Grinder";
|
||||
['Whoops', [STR_ExAd_GRINDING_NOTI_BROKE]] call ExileClient_gui_notification_event_addNotification;
|
||||
false
|
||||
};
|
||||
|
||||
if!("Exile_Magazine_Battery" in (magazines player))exitWith{
|
||||
['Whoops', [STR_ExAd_GRINDING_NOTI_EMPTY_BAT]] call ExileClient_gui_notification_event_addNotification;
|
||||
false
|
||||
};
|
||||
|
||||
if((_ticker % ExAd_GRINDING_PROGRESS_INTERVALL) == 0)then{
|
||||
player removeItem "Exile_Magazine_Battery";
|
||||
|
||||
["grindProgress", [netId ExAd_GRINDING_OBJECT]] call ExAd_fnc_serverDispatch;
|
||||
['Success', [STR_ExAd_GRINDING_NOTI_PROGRESS]] call ExileClient_gui_notification_event_addNotification;
|
||||
|
||||
player playActionNow "medicStart";
|
||||
};
|
||||
|
||||
if(ExAd_GRINDING_OBJECT getVariable ["ExAd_Grinding_progress", 0] > ExAd_GRINDING_OBJECT_MAX)exitWith{
|
||||
UISleep 2;
|
||||
['Success', [STR_ExAd_GRINDING_NOTI_FINISHED]] call ExileClient_gui_notification_event_addNotification;
|
||||
};
|
||||
_ticker = _ticker + 1;
|
||||
};
|
||||
|
||||
deleteVehicle _soundSrc;
|
||||
player playActionNow "medicStop";
|
||||
removeMissionEventHandler ["Draw3D",ExAd_DRAW3D_HANDLER];
|
||||
|
||||
ExAd_GRINDING_OBJECT = nil;
|
||||
ExAd_GRINDING = false;
|
||||
call ExileClient_gui_interactionMenu_unhook;
|
||||
|
||||
true
|
@ -0,0 +1,33 @@
|
||||
/*
|
||||
fn_restoreLock.sqf
|
||||
|
||||
Copyright 2016 Jan Babor
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
params["_object"];
|
||||
|
||||
if(vehicle player != player)exitWith{false};
|
||||
|
||||
call ExileClient_gui_interactionMenu_unhook;
|
||||
player playActionNow "medic";
|
||||
|
||||
UISleep 5;
|
||||
player removeItem "Exile_Item_Codelock";
|
||||
['Success', [STR_ExAd_GRINDING_NOTI_RESTORED]] call ExileClient_gui_notification_event_addNotification;
|
||||
|
||||
["restoreLock", [netId _object]] call ExAd_fnc_serverDispatch;
|
||||
|
||||
call ExileClient_gui_interactionMenu_unhook;
|
||||
|
||||
true
|
5
mpmissions/Exile.Altis/ExAdClient/Grinding/UPDATE.md
Normal file
5
mpmissions/Exile.Altis/ExAdClient/Grinding/UPDATE.md
Normal file
@ -0,0 +1,5 @@
|
||||
#VirtualGarage
|
||||
## Instructions:
|
||||
|
||||
### 160502 23:15 . v0.6.0
|
||||
#### Full installation
|
27
mpmissions/Exile.Altis/ExAdClient/Grinding/customize.sqf
Normal file
27
mpmissions/Exile.Altis/ExAdClient/Grinding/customize.sqf
Normal file
@ -0,0 +1,27 @@
|
||||
/*
|
||||
customize.sqf
|
||||
|
||||
Copyright 2016 Jan Babor
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
ExAd_GRINDING_PROGRESS_INTERVALL = 60; //SCALAR - Grinding, interval time measured in seconds.
|
||||
|
||||
ExAd_GRINDING_PROGRESS = 30; //SCALAR - Damage each finished interval will take from the code lock.
|
||||
|
||||
ExAd_GRINDING_OBJECT_MAX = 900; //SCALAR - Code lock sustainability.
|
||||
|
||||
/*
|
||||
The default values above means that a full succesful grind will take (900 / 30) * 60 = 1800 = 20 minutes
|
||||
*/
|
32
mpmissions/Exile.Altis/ExAdClient/Grinding/postInit.sqf
Normal file
32
mpmissions/Exile.Altis/ExAdClient/Grinding/postInit.sqf
Normal file
@ -0,0 +1,32 @@
|
||||
/*
|
||||
postInit.sqf
|
||||
|
||||
Copyright 2016 Jan Babor
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
|
||||
*/
|
||||
|
||||
execVM "ExAdClient\Grinding\customize.sqf";
|
||||
|
||||
ExAd_GRINDING = false;
|
||||
|
||||
STR_ExAd_GRINDING_NOTI_BROKE = if(isLocalized "STR_ExAd_GRINDING_NOTI_BROKE")then{localize "STR_ExAd_GRINDING_NOTI_BROKE"}else{"Your grinder broke, get a new one before you can continue."};
|
||||
|
||||
STR_ExAd_GRINDING_NOTI_EMPTY_BAT = if(isLocalized "STR_ExAd_GRINDING_NOTI_EMPTY_BAT")then{localize "STR_ExAd_GRINDING_NOTI_EMPTY_BAT"}else{"Find some batteries to get the grinder to work."};
|
||||
|
||||
STR_ExAd_GRINDING_NOTI_PROGRESS = if(isLocalized "STR_ExAd_GRINDING_NOTI_PROGRESS")then{localize "STR_ExAd_GRINDING_NOTI_PROGRESS"}else{"Your grinder broke, get a new one before you can continue."};
|
||||
|
||||
STR_ExAd_GRINDING_NOTI_FINISHED = if(isLocalized "STR_ExAd_GRINDING_NOTI_FINISHED")then{localize "STR_ExAd_GRINDING_NOTI_FINISHED"}else{"You have broken the code lock."};
|
||||
|
||||
STR_ExAd_GRINDING_NOTI_RESTORED = if(isLocalized "STR_ExAd_GRINDING_NOTI_RESTORED")then{localize "STR_ExAd_GRINDING_NOTI_RESTORED"}else{"You've changed the look"};
|
@ -19,4 +19,26 @@ class CfgInteractionMenus
|
||||
};
|
||||
};
|
||||
};
|
||||
class Construction
|
||||
{
|
||||
targetType = 2;
|
||||
target = "Exile_Construction_Abstract_Static";
|
||||
|
||||
class Actions
|
||||
{
|
||||
class Grind : ExileAbstractAction
|
||||
{
|
||||
title = "Grind Lock";
|
||||
condition = "call ExAd_fnc_canGrindLock";
|
||||
action = "_this spawn ExAd_fnc_grindLock";
|
||||
};
|
||||
|
||||
class RestoreLock : ExileAbstractAction
|
||||
{
|
||||
title = "Restore Lock";
|
||||
condition = "_object call ExAd_fnc_canRestoreLock";
|
||||
action = "_this spawn ExAd_fnc_restoreLock";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
@ -25,4 +25,23 @@
|
||||
</Key>
|
||||
</Container>
|
||||
</Package>
|
||||
<Package name="Grinding">
|
||||
<Container name="Notifications">
|
||||
<Key ID="STR_ExAd_GRINDING_NOTI_BROKE">
|
||||
<Original>Your grinder broke, get a new one before you can continue.</Original>
|
||||
</Key>
|
||||
<Key ID="STR_ExAd_GRINDING_NOTI_EMPTY_BAT">
|
||||
<Original>Find some batteries to get the grinder to work.</Original>
|
||||
</Key>
|
||||
<Key ID="STR_ExAd_GRINDING_NOTI_PROGRESS">
|
||||
<Original>I think I'm getting through.</Original>
|
||||
</Key>
|
||||
<Key ID="STR_ExAd_GRINDING_NOTI_FINISHED">
|
||||
<Original>You have broken the code lock.</Original>
|
||||
</Key>
|
||||
<Key ID="STR_ExAd_GRINDING_NOTI_RESTORED">
|
||||
<Original>You've changed the look</Original>
|
||||
</Key>
|
||||
</Container>
|
||||
</Package>
|
||||
</Project>
|
||||
|
Loading…
Reference in New Issue
Block a user