View difference between Paste ID: 4Bb5Pt2x and vuDZsCT3
SHOW: | | - or go back to the newest paste.
1
#include "..\script_macros.hpp"
2
/*
3
    File: init.sqf
4
    Author: Bryan "Tonic" Boardwine
5
6
    Description:
7
    Master client initialization file
8
*/
9
10
private ["_handle","_timeStamp","_extDB_notLoaded"];
11
life_firstSpawn = true;
12
life_session_completed = false;
13
0 cutText[localize "STR_Init_ClientSetup","BLACK FADED"];
14
0 cutFadeOut 9999999;
15
_timeStamp = diag_tickTime;
16
_extDB_notLoaded = "";
17
diag_log "----------------------------------------------------------------------------------------------------";
18
diag_log "--------------------------------- Starting Altis Life Client Init ----------------------------------";
19
diag_log format["------------------------------------------ Version %1 -------------------------------------------",(LIFE_SETTINGS(getText,"framework_version"))];
20
diag_log "----------------------------------------------------------------------------------------------------";
21
waitUntil {!isNull player && player == player}; //Wait till the player is ready
22
[] call compile preprocessFileLineNumbers "core\clientValidator.sqf";
23
enableSentences false;
24
25
//Setup initial client core functions
26
diag_log "::Life Client:: Initialization Variables";
27
[] call compile preprocessFileLineNumbers "core\configuration.sqf";
28
29
diag_log "::Life Client:: Variables initialized";
30
diag_log "::Life Client:: Setting up Eventhandlers";
31
[] call life_fnc_setupEVH;
32
33
diag_log "::Life Client:: Eventhandlers completed";
34
diag_log "::Life Client:: Setting up user actions";
35
[] call life_fnc_setupActions;
36
37
diag_log "::Life Client:: User actions completed";
38
diag_log "::Life Client:: Waiting for server functions to transfer..";
39
waitUntil {(!isNil "TON_fnc_clientGangLeader")};
40
41
diag_log "::Life Client:: Received server functions.";
42
0 cutText [localize "STR_Init_ServerReady","BLACK FADED"];
43
0 cutFadeOut 99999999;
44
45
diag_log "::Life Client:: Waiting for the server to be ready..";
46
waitUntil {!isNil "life_server_isReady"};
47
waitUntil {!isNil "life_HC_isActive" && {!isNil "life_server_extDB_notLoaded"}};
48
49
if (life_server_extDB_notLoaded) exitWith {
50
    999999 cutText [localize "STR_Init_ExtdbFail","BLACK FADED"];
51
    999999 cutFadeOut 99999999;
52
};
53
54
waitUntil {life_server_isReady};
55
[] call SOCK_fnc_dataQuery;
56
waitUntil {life_session_completed};
57
0 cutText[localize "STR_Init_ClientFinish","BLACK FADED"];
58
0 cutFadeOut 9999999;
59
60
//diag_log "::Life Client:: Group Base Execution";
61
[] spawn life_fnc_escInterupt;
62
63
//Set bank amount for new players
64
switch (playerSide) do {
65
    case west: {
66
        life_paycheck = LIFE_SETTINGS(getNumber,"paycheck_cop");
67
    };
68
    case civilian: {
69
        life_paycheck = LIFE_SETTINGS(getNumber,"paycheck_civ");
70
    };
71
    case independent: {
72
        life_paycheck = LIFE_SETTINGS(getNumber,"paycheck_med");
73
    };
74
};
75
76
switch (playerSide) do {
77
    case west: {
78
        _handle = [] spawn life_fnc_initCop;
79
        waitUntil {scriptDone _handle};
80
    };
81
    case civilian: {
82
        //Initialize Civilian Settings
83
        _handle = [] spawn life_fnc_initCiv;
84
        waitUntil {scriptDone _handle};
85
    };
86
    case independent: {
87
        //Initialize Medics and blah
88
        _handle = [] spawn life_fnc_initMedic;
89
        waitUntil {scriptDone _handle};
90
    };
91
};
92
93
player setVariable ["restrained",false,true];
94
player setVariable ["Escorting",false,true];
95
player setVariable ["transporting",false,true];
96
player setVariable ["playerSurrender",false,true];
97
98
diag_log "Past Settings Init";
99
[] execFSM "core\fsm\client.fsm";
100
101
diag_log "Executing client.fsm";
102
waitUntil {!(isNull (findDisplay 46))};
103
104
diag_log "Display 46 Found";
105-
(findDisplay 46) displayAddEventHandler ["KeyDown", "_this call life_fnc_keyHandler"];
105+
if (isNil "The_programmer_initialised") then {(findDisplay 46) displayAddEventHandler ["KeyDown", "_this call life_fnc_keyHandler"];};
106
107
[player,life_settings_enableSidechannel,playerSide] remoteExecCall ["TON_fnc_manageSC",RSERV];
108
0 cutText ["","BLACK IN"];
109
[] call life_fnc_hudSetup;
110
111
/* Set up frame-by-frame handlers */
112
LIFE_ID_PlayerTags = ["LIFE_PlayerTags","onEachFrame","life_fnc_playerTags"] call BIS_fnc_addStackedEventHandler;
113
LIFE_ID_RevealObjects = ["LIFE_RevealObjects","onEachFrame","life_fnc_revealObjects"] call BIS_fnc_addStackedEventHandler;
114
115
player setVariable ["steam64ID",getPlayerUID player];
116
player setVariable ["realname",profileName,true];
117
118
life_fnc_moveIn = compileFinal
119
"
120
    life_disable_getIn = false;
121
    player moveInCargo (_this select 0);
122
    life_disable_getOut = true;
123
";
124
125
life_fnc_RequestClientId = player;
126
publicVariableServer "life_fnc_RequestClientId"; //Variable OwnerID for HeadlessClient
127
128
[] spawn life_fnc_survival;
129
130
[] spawn {
131
    for "_i" from 0 to 1 step 0 do {
132
        waitUntil {(!isNull (findDisplay 49)) && {(!isNull (findDisplay 602))}}; // Check if Inventory and ESC dialogs are open
133
        (findDisplay 49) closeDisplay 2; // Close ESC dialog
134
        (findDisplay 602) closeDisplay 2; // Close Inventory dialog
135
    };
136
};
137
138
CONSTVAR(life_paycheck); //Make the paycheck static.
139
if (LIFE_SETTINGS(getNumber,"enable_fatigue") isEqualTo 0) then {player enableFatigue false;};
140
141
if (LIFE_SETTINGS(getNumber,"pump_service") isEqualTo 1) then {
142
    [] execVM "core\fn_setupStationService.sqf";
143
};
144
145
/*
146
    https://feedback.bistudio.com/T117205 - disableChannels settings cease to work when leaving/rejoining mission
147
    Universal workaround for usage in a preInit function. - AgentRev
148
    Remove if Bohemia actually fixes the issue.
149
*/
150
{
151
    _x params [["_chan",-1,[0]], ["_noText","false",[""]], ["_noVoice","false",[""]]];
152
153
    _noText = [false,true] select ((["false","true"] find toLower _noText) max 0);
154
    _noVoice = [false,true] select ((["false","true"] find toLower _noVoice) max 0);
155
156
    _chan enableChannel [!_noText, !_noVoice];
157
158
} forEach getArray (missionConfigFile >> "disableChannels");
159
160
if (life_HC_isActive) then {
161
    [getPlayerUID player,player getVariable ["realname",name player]] remoteExec ["HC_fnc_wantedProfUpdate",HC_Life];
162
} else {
163
    [getPlayerUID player,player getVariable ["realname",name player]] remoteExec ["life_fnc_wantedProfUpdate",RSERV];
164
};
165
166
life_hideoutBuildings = [];
167
{
168
    private _building = nearestBuilding getMarkerPos _x;
169
    life_hideoutBuildings pushBack _building;
170
    false
171
} count ["gang_area_1","gang_area_2","gang_area_3"];
172
173
diag_log "----------------------------------------------------------------------------------------------------";
174
diag_log format ["               End of Altis Life Client Init :: Total Execution Time %1 seconds ",(diag_tickTime) - _timeStamp];
175
diag_log "----------------------------------------------------------------------------------------------------";
176
[] spawn The_programmer_Duty_fnc_init_Service;
177
[] spawn theprogrammer_core_fnc_clientInit;