You have to have it. It's a hidden folder, requiring you to search hidden files or show hidden files in windows explorer.
Unless the wrong crewman class is defined in the configs, I don't know where the error is coming from.
I've rewritten the script with comments.
private ["_veh", "_vehtyp", "_cfg", "_sidcfg", "_numSide", "_goodSide", "_posDepot", "_turcfg", "_main", "_sub", "_i", "_mt", "_st", "_driver", "_slots", "_filled", "_needed", "_type", "_group", "_nomen", "_ranks", "_unit", "_rank"];
_veh = _this;
if((local player) && (player in crew _veh)) then {
_vehtyp = typeOf _veh;
//get real side from config (side command will only return occupant's side)
_cfg = configFile >> "CfgVehicles" >> _vehtyp;
_numSide = getNumber(_cfg >> "side");
_goodSide = false;
switch (side player) do {
case west: {
if(_numSide == 1) then {
_goodSide = true;
if((getMarkerType "mrkDepot") == "") then {_posDepot = getMarkerPos "respawn_west"} else {_posDepot = getMarkerPos "mrkDepot"};
} else {player groupChat "You can't request crew for an enemy tank."};
};
case east: {
if(_numSide == 0) then {
_goodSide = true;
if((getMarkerType "mrkDepotR") == "") then {_posDepot = getMarkerPos "respawn_east"} else {_posDepot = getMarkerPos "mrkDepotR"};
} else {player groupChat "You can't request crew for an enemy tank."};
};
case default {
player groupChat "No crew available for your side.";
};
};
if(_goodSide) then {
//count number of turrets including commander and subturrets
_turcfg = _cfg >> "turrets";
_main = count _turcfg;
_sub = 0;
for "_i" from 0 to _main-1 do {
_mt = (_turcfg select _i);
_st = _mt >> "turrets";
_sub = _sub + count _st;
};
//get a total, include driver
_driver = 1;
_slots = _main + _sub + _driver;
//current occupants
_filled = count(crew _veh);
_needed = _slots - _filled;
if(_needed > 0) then {
//get crewman class from config
_type = getText (_cfg >> "crew");
_group = group player;
//only allow enough crew to fill two tanks
if((_type countType units _group) < (_slots * 2)) then {
//get display name i.e. "Crewman"
_nomen = getText (configFile >> "CfgVehicles" >> _type >> "displayName");
player groupChat ("Requesting " + str _needed + " " + _nomen + " from Depot.");
sleep 3;
_ranks = ["PRIVATE","CORPORAL","SERGEANT"];
for "_x" from 1 to _needed do {
_unit = _group createUnit [_type, _posDepot, [], 0, "NONE"];
_unit setSkill (0.6 + random 0.4);
_rank = _ranks select (floor(random(count _ranks)));
_unit setRank _rank;
_unit doMove _posDepot;
};
} else {player groupChat "Crew limit exceeded.";};
} else {player groupChat "You already have a full crew.";};
};
};
Maybe someone who has ArmA1 and the I44 addon, can look at the script, which can be used outside of an addon as well i.e. as a trigger, and troubleshoot further.
As an addon:
http://www.mediafire.com/file/jzjymzk5wey/tcp_tcrew.pboHowever, I think you need to look into alternatives to UserAction. I've learned that it can overwrite other custom user actions (added from other addons). It should probably be called using CBA Extended Eventhandlers.