[Support] DZGM

Okay, I just updated to 1.8.4.1 and it seems to be working. Check to make sure the key you are attempting to use is not in their blocked list. In dayz_code\compile\keyboard.sqf:
Code:
[[  DIK_F9, DIK_F10, DIK_F11,
        DIK_F8,DIK_F7,DIK_F6,DIK_F5,DIK_F4,
        DIK_F3,DIK_F2,DIK_F1,DIK_0,DIK_9,
        DIK_8,DIK_7,DIK_6,DIK_5,DIK_4], _block] call _addArray;
If you wanted to use one of those keys anyway you could subtract it from the keyboard_keys array or copy the whole keyboard.sqf to your mission and make the edits you want.



Nothing is particularly different between vanilla, overwatch and epoch that should affect the group saving after death. If there is a problem with that feature it is most likely present on all mods. TBH I did not test it very well. When I added it I only had one person to test with. There may be problems with the method I did not think of when dealing with large groups on an active server. I have it installed on Epoch and 1.8.4.1 servers and my friend @Royal also runs it on 1.8.4.1. Other than that I rely on the feedback here to let me know if there are any issues.

There must be at least one group member left alive in the group for it to work. Also you must have a body on the server that was not hidden or deleted. So if you join a group, log out without dying and then log back in you will have no group. There are probably other limitations I did not think of. If you IM me when you have time to test with a group of 4-5 then maybe we can isolate the problem. First though I would make sure you have the latest version of all the files, followed the latest install directions and checked both RPTs for errors. I have made a lot of changes over the last few months.
Royal was who I was referring to as well.
The scenario would be as follows... you me and another guy join a group. I stay alive the entire time and never die. You die and when you respawn we are no longer in a group. Or randomly you become group leader even though I was group leader and neither of us have died. It's also not 100% of the time, more like 90% of the time. Its hard for me to test the newest version because I don't really have a reliable group of friends to help me test on a test server.
 
The way they have keyboard.sqf set up it makes a big array called keyboard_keys which is 256 elements long. Each element is code that corresponds to the dik keycode hex value based on the order it is in the array like:
[{code to run},{code to run},{code to run}, ... ]
[ 0x01 , 0x02 , 0x03 , ... ]

So this:
Code:
keyboard_keys set [DIK_RWIN,{code}];
Selects element # 0xDC which also corresponds to key 0xDC. and sets its value to the code we want to run.

Then they add the keyboard.sqf file as one big keydown event handler. So every time you press a key it executes keyboard.sqf which essentially does this:
Code:
_code = keyboard_keys select _dikCode;
if (!isNil "_code") then {
    call _code;
};

So this should work for left control:
Code:
#include "\ca\editor\Data\Scripts\dikCodes.h"
keyboard_keys set [DIK_LCONTROL,{if (dialog) then {closeDialog 0;groupManagementActive = false;} else {execVM "dzgm\loadGroupManagement.sqf";};_handled = true;}];

They initialize it in compiles.sqf with this:
Code:
init_keyboard = {
    waituntil {!(isNull (findDisplay 46))};
    keyboard_keys = nil;
    [controlNull, 1, false,false,false] call compile preprocessFileLineNumbers (MISSION_ROOT+'keyboard.sqf');
};
So that needs to be defined on the client. Then in init.sqf they run it:
Code:
onPreloadFinished "diag_log [diag_tickTime, 'onPreloadFinished']; if (!isNil 'init_keyboard') then { [] spawn init_keyboard; }; dayz_preloadFinished = true;";
Make sure you also have the keyboard.sqf in your mission root.

If you have all of that in check I'm not sure what the issue might be. Make sure your antihack isn't removing the keydown event handler (infistar does). Both Windows keys work for me. It shouldn't be an issue with conflicting keybinds because when you do the set command on the keyboard_keys element it is overwriting the original value that keyboard_keys set in there.
My keyboard and a lot of other peoples keyboards from what I've been told don't even have a right windows key so that is the reason I'm trying to change it. I've even tried adding it all directly into keyboard.sqf following how they do it in their. Now that you say it tho, it could be the antihack. I'll check if I have it resetting key bindings and checking for keydown in it to see if that is messing it up.
 
@DangerRuss - Ok. The leader should only change if the group leader dies. Then the next person left alive in the group automatically assumes leadership. I will message Royal to test further when he has time. Hopefully we can reproduce it so I can figure out what the problem is.
Feel free to contact me as well, I know him fairly well and we can test on my overwatch test server if you like. Vanilla dayz and overwatch are on different files I believe.
 
I have problem, if someone is in Group I can't see him on the ESP Map in infistar admin-tool I don't see nickname only red circle without nickname, how can I change this?
 
I have problem, if someone is in Group I can't see him on the ESP Map in infistar admin-tool I don't see nickname only red circle without nickname, how can I change this?
This is discussed very early on in the support thread, and alternative ESP's are provided in the release thread
 
Hi guys! I'm another one who did not show any menu on the right mouse button or any key on the keyboard, my mod is the epoch 1.0.5.1 with infistar 343E.

The only thing that has changed is that now shows the location of my dead bodies.
I have reviewed all several times already and do not know what to do, deactivated the infistar for testing and still the same thing. Someone help me please?
 
Sorry DangerRuss but I can't find good ESP and fix to this, I change actual dzgmAdminESPicons file to:

Code:
    adminESPicons =
    {
        xdistance = 2500;
        if (isNil "adminxtags") then
        {
            adminxtags = 0;
            fn_esp =
            {
                disableSerialization;
                if (isNil "BIS_fnc_3dCredits_n") then {BIS_fnc_3dCredits_n = 2733;};
                BIS_fnc_3dCredits_n cutRsc ["rscDynamicText", "PLAIN"];
                BIS_fnc_3dCredits_n = BIS_fnc_3dCredits_n + 1;
                _ctrl = ((uiNamespace getvariable "BIS_dynamicText") displayctrl 9999);
                _ctrl ctrlShow true; _ctrl ctrlEnable true; _ctrl ctrlSetFade 0;
                _unit = _this select 0;
                while {(alive _unit) && ((player distance _unit) < xdistance) && (adminxtags == 1)} do
                {
                    _pos = [(getPosATL _unit) select 0, (getPosATL _unit) select 1, ((getPosATL _unit) select 2) + 2];
                    _pos2D = worldToScreen _pos;
                    if (count _pos2D > 0) then
                    {
                        _ctrl ctrlSetPosition [(_pos2D select 0) - (safezoneW / 2), (_pos2D select 1), safezoneW, safezoneH];
                        _text = parseText format ["<t size='0.35' color='#FFFFFF'>%1 (%2m)</t>", name _unit, round (player distance _unit)];
                        _ctrl ctrlSetStructuredText _text;
                        _ctrl ctrlCommit 0;
                    };
                    uiSleep 0.01;
                };
                _ctrl ctrlShow false;
                _ctrl ctrlEnable false;
            };
        };
        if (adminxtags == 0) then
        {
            adminxtags = 1;
            hint "ESP Enabled";
            _a = [];
            while {adminxtags == 1} do
            {
                _count = count ((position player) nearEntities [["AllVehicles"], xdistance]);
                {
                    if (((_x in _a) && !(alive _x)) or ((_x in _a) && ((player distance _x) > xdistance))) then {_a = _a - [_x];};
                    if ((_x != player) && (getPlayerUID _x != "") && (name _x != "") && !(_x in _a) && ((player distance _x) < xdistance)) then
                    {
                        _a = _a + [_x];
                        [_x] spawn fn_esp;
                        uiSleep 1;
                    };
                } forEach playableUnits;
                waitUntil {_count != count ((position player) nearEntities [["AllVehicles"], xdistance])};
            };
        }
        else
        {
            adminxtags = 0;
            hint "ESP Disabled";
        };
    };


But still if someone is in group I can't see him on the map. Sorry for my english I'm from Poland ;)
 
If the list is empty for non-admins it means playableUnits command is still broken on your server. Make sure you did the infistar steps correctly.


That ESP script is dynamic text only. It does not include map markers. Infistar has a separate map markers script you can enable in combination with that.



Check your client RPT for errors. Also post your ui_selectSlot.sqf and extra_rc.hpp.


//private ["_control","_button","_parent","_group","_pos","_item","_conf","_name","_cfgActions","_numActions","_height","_menu","_config","_type","_script","_outputOriented","_compile","_array","_outputClass","_outputType"];
disableSerialization;
_control = _this select 0;
_button = _this select 1;
_parent = findDisplay 106;

if (carryClick) then {carryClick = false;};

if (_button == 1) then {
private ["_conf","_name","_compile","_height","_item"];
_group = _parent displayCtrl 6902;

_pos = ctrlPosition _group;

_item = gearSlotData _control;
if (mouseOverCarry) then {
_item = DayZ_onBack;
carryClick = true;
};

_pos set [0,((_this select 2) + 0.46)];
_pos set [1,((_this select 3) + 0.07)];

_conf = configFile >> "cfgMagazines" >> _item;
if (!isClass _conf) then {
_conf = configFile >> "cfgWeapons" >> _item;
};
_name = getText(_conf >> "displayName");

_cfgActions = _conf >> "ItemActions";
_numActions = (count _cfgActions);
_height = 0;

//Populate Menu
for "_i" from 0 to (_numActions - 1) do
{
_menu = _parent displayCtrl (1600 + _i);
_menu ctrlShow true;
_config = (_cfgActions select _i);
_type = getText (_config >> "text");
_script = getText (_config >> "script");
_outputOriented = getNumber (_config >> "outputOriented") == 1;
_height = _height + (0.025 * safezoneH);
_compile = format["_id = '%2' %1;",_script,_item];
uiNamespace setVariable ['uiControl', _control];
if (_outputOriented) then {
/*
This flag means that the action is output oriented
the output class will then be transferred to the script
and the type used for the name
*/
_array = getArray (_config >> "output");
_outputClass = _array select 0;
_outputType = _array select 1;
_name = getText (configFile >> _outputType >> _outputClass >> "displayName");
_compile = format["_id = ['%2',%3] %1;",_script,_item,_array];
};
_erc_cfgActions = (missionConfigFile >> "ExtraRc" >> _item);
_erc_numActions = (count _erc_cfgActions);
if (isClass _erc_cfgActions) then {
for "_j" from 0 to (_erc_numActions - 1) do
{
_menu = _parent displayCtrl (1600 + _j + _numActions);
_menu ctrlShow true;
_config = (_erc_cfgActions select _j);
_text = getText (_config >> "text");
_script = getText (_config >> "script");
_height = _height + (0.025 * safezoneH);
uiNamespace setVariable ['uiControl', _control];
_menu ctrlSetText _text;
_menu ctrlSetEventHandler ["ButtonClick",_script];
};
};
_menu ctrlSetText format[_type,_name];
_menu ctrlSetEventHandler ["ButtonClick",_compile];
};
_pos set [3,_height];

//hint format["Obj: %1 \nHeight: %2\nPos: %3",_item,_height,_grpPos];

_group ctrlShow true;
ctrlSetFocus _group;
_group ctrlSetPosition _pos;
_group ctrlCommit 0;
};

And my Extra_RC.hpp is:

class ExtraRc {
class ItemRadio {
class GroupManagement {
text = "Group Management";
script = "execVM 'dzgm\loadGroupManagement.sqf'";
};
};
};
 
Last edited:
//private ["_control","_button","_parent","_group","_pos","_item","_conf","_name","_cfgActions","_numActions","_height","_menu","_config","_type","_script","_outputOriented","_compile","_array","_outputClass","_outputType"];
disableSerialization;
_control = _this select 0;
_button = _this select 1;
_parent = findDisplay 106;

if (carryClick) then {carryClick = false;};

if (_button == 1) then {
private ["_conf","_name","_compile","_height","_item"];
_group = _parent displayCtrl 6902;

_pos = ctrlPosition _group;

_item = gearSlotData _control;
if (mouseOverCarry) then {
_item = DayZ_onBack;
carryClick = true;
};

_pos set [0,((_this select 2) + 0.46)];
_pos set [1,((_this select 3) + 0.07)];

_conf = configFile >> "cfgMagazines" >> _item;
if (!isClass _conf) then {
_conf = configFile >> "cfgWeapons" >> _item;
};
_name = getText(_conf >> "displayName");

_cfgActions = _conf >> "ItemActions";
_numActions = (count _cfgActions);
_height = 0;

//Populate Menu
for "_i" from 0 to (_numActions - 1) do
{
_menu = _parent displayCtrl (1600 + _i);
_menu ctrlShow true;
_config = (_cfgActions select _i);
_type = getText (_config >> "text");
_script = getText (_config >> "script");
_outputOriented = getNumber (_config >> "outputOriented") == 1;
_height = _height + (0.025 * safezoneH);
_compile = format["_id = '%2' %1;",_script,_item];
uiNamespace setVariable ['uiControl', _control];
if (_outputOriented) then {
/*
This flag means that the action is output oriented
the output class will then be transferred to the script
and the type used for the name
*/
_array = getArray (_config >> "output");
_outputClass = _array select 0;
_outputType = _array select 1;
_name = getText (configFile >> _outputType >> _outputClass >> "displayName");
_compile = format["_id = ['%2',%3] %1;",_script,_item,_array];
};
_erc_cfgActions = (missionConfigFile >> "ExtraRc" >> _item);
_erc_numActions = (count _erc_cfgActions);
if (isClass _erc_cfgActions) then {
for "_j" from 0 to (_erc_numActions - 1) do
{
_menu = _parent displayCtrl (1600 + _j + _numActions);
_menu ctrlShow true;
_config = (_erc_cfgActions select _j);
_text = getText (_config >> "text");
_script = getText (_config >> "script");
_height = _height + (0.025 * safezoneH);
uiNamespace setVariable ['uiControl', _control];
_menu ctrlSetText _text;
_menu ctrlSetEventHandler ["ButtonClick",_script];
};
};
_menu ctrlSetText format[_type,_name];
_menu ctrlSetEventHandler ["ButtonClick",_compile];
};
_pos set [3,_height];

//hint format["Obj: %1 \nHeight: %2\nPos: %3",_item,_height,_grpPos];

_group ctrlShow true;
ctrlSetFocus _group;
_group ctrlSetPosition _pos;
_group ctrlCommit 0;
};

And my Extra_RC.hpp is:

class ExtraRc {
class ItemRadio {
class GroupManagement {
text = "Group Management";
script = "execVM 'dzgm\loadGroupManagement.sqf'";
};
};
};
ui_selectslot.sqf:
Code:
//private ["_control","_button","_parent","_group","_pos","_item","_conf","_name","_cfgActions","_numActions","_height","_menu","_config","_type","_script","_outputOriented","_compile","_array","_outputClass","_outputType"];
disableSerialization;
_control = _this select 0;
_button = _this select 1;
_parent = findDisplay 106;

if (carryClick) then {carryClick = false;};

if (_button == 1) then {
    private ["_conf","_name","_compile","_height","_item"];
    _group = _parent displayCtrl 6902;

    _pos = ctrlPosition _group;

    _item = gearSlotData _control;
    if (mouseOverCarry) then {
        _item = DayZ_onBack;
        carryClick = true;
    };

    _pos set [0,((_this select 2) + 0.46)];
    _pos set [1,((_this select 3) + 0.07)];

    _conf = configFile >> "cfgMagazines" >> _item;
    if (!isClass _conf) then {
        _conf = configFile >> "cfgWeapons" >> _item;
    };
    _name = getText(_conf >> "displayName");

    _cfgActions = _conf >> "ItemActions";
    _numActions = (count _cfgActions);
    _height = 0;

    //Populate Menu
    for "_i" from 0 to (_numActions - 1) do
    {
        _menu = _parent displayCtrl (1600 + _i);
        _menu ctrlShow true;
        _config = (_cfgActions select _i);
        _type = getText (_config >> "text");
        _script = getText (_config >> "script");
        _outputOriented = getNumber (_config >> "outputOriented") == 1;
        _height = _height + (0.025 * safezoneH);
        _compile = format["_id = '%2' %1;",_script,_item];
        uiNamespace setVariable ['uiControl', _control];
        if (_outputOriented) then {
            /*
                This flag means that the action is output oriented
                the output class will then be transferred to the script
                and the type used for the name
            */
            _array = getArray (_config >> "output");
            _outputClass = _array select 0;
            _outputType = _array select 1;
            _name = getText (configFile >> _outputType >> _outputClass >> "displayName");
            _compile = format["_id = ['%2',%3] %1;",_script,_item,_array];
        };
       

        _menu ctrlSetText format[_type,_name];
        _menu ctrlSetEventHandler ["ButtonClick",_compile];
    };
    _erc_cfgActions = (missionConfigFile >> "ExtraRc" >> _item);
    _erc_numActions = (count _erc_cfgActions);
    if (isClass _erc_cfgActions) then {
    for "_j" from 0 to (_erc_numActions - 1) do
        {
            _menu =  _parent displayCtrl (1600 + _j + _numActions);
            _menu ctrlShow true;
            _config =  (_erc_cfgActions select _j);
            _text =  getText (_config >> "text");
            _script =  getText (_config >> "script");
            _height = _height + (0.025 * safezoneH);
            uiNamespace setVariable ['uiControl', _control];
            _menu ctrlSetText _text;
            _menu ctrlSetEventHandler ["ButtonClick",_script];
        };
    };
    _pos set [3,_height];

    //hint format["Obj: %1 \nHeight: %2\nPos: %3",_item,_height,_grpPos];

    _group ctrlShow true;
    ctrlSetFocus _group;
    _group ctrlSetPosition _pos;
    _group ctrlCommit 0;
};

The portion you added to this file needs to be moved down a little bit like mine.
 
ui_selectslot.sqf:
Code:
//private ["_control","_button","_parent","_group","_pos","_item","_conf","_name","_cfgActions","_numActions","_height","_menu","_config","_type","_script","_outputOriented","_compile","_array","_outputClass","_outputType"];
disableSerialization;
_control = _this select 0;
_button = _this select 1;
_parent = findDisplay 106;

if (carryClick) then {carryClick = false;};

if (_button == 1) then {
    private ["_conf","_name","_compile","_height","_item"];
    _group = _parent displayCtrl 6902;

    _pos = ctrlPosition _group;

    _item = gearSlotData _control;
    if (mouseOverCarry) then {
        _item = DayZ_onBack;
        carryClick = true;
    };

    _pos set [0,((_this select 2) + 0.46)];
    _pos set [1,((_this select 3) + 0.07)];

    _conf = configFile >> "cfgMagazines" >> _item;
    if (!isClass _conf) then {
        _conf = configFile >> "cfgWeapons" >> _item;
    };
    _name = getText(_conf >> "displayName");

    _cfgActions = _conf >> "ItemActions";
    _numActions = (count _cfgActions);
    _height = 0;

    //Populate Menu
    for "_i" from 0 to (_numActions - 1) do
    {
        _menu = _parent displayCtrl (1600 + _i);
        _menu ctrlShow true;
        _config = (_cfgActions select _i);
        _type = getText (_config >> "text");
        _script = getText (_config >> "script");
        _outputOriented = getNumber (_config >> "outputOriented") == 1;
        _height = _height + (0.025 * safezoneH);
        _compile = format["_id = '%2' %1;",_script,_item];
        uiNamespace setVariable ['uiControl', _control];
        if (_outputOriented) then {
            /*
                This flag means that the action is output oriented
                the output class will then be transferred to the script
                and the type used for the name
            */
            _array = getArray (_config >> "output");
            _outputClass = _array select 0;
            _outputType = _array select 1;
            _name = getText (configFile >> _outputType >> _outputClass >> "displayName");
            _compile = format["_id = ['%2',%3] %1;",_script,_item,_array];
        };
      

        _menu ctrlSetText format[_type,_name];
        _menu ctrlSetEventHandler ["ButtonClick",_compile];
    };
    _erc_cfgActions = (missionConfigFile >> "ExtraRc" >> _item);
    _erc_numActions = (count _erc_cfgActions);
    if (isClass _erc_cfgActions) then {
    for "_j" from 0 to (_erc_numActions - 1) do
        {
            _menu =  _parent displayCtrl (1600 + _j + _numActions);
            _menu ctrlShow true;
            _config =  (_erc_cfgActions select _j);
            _text =  getText (_config >> "text");
            _script =  getText (_config >> "script");
            _height = _height + (0.025 * safezoneH);
            uiNamespace setVariable ['uiControl', _control];
            _menu ctrlSetText _text;
            _menu ctrlSetEventHandler ["ButtonClick",_script];
        };
    };
    _pos set [3,_height];

    //hint format["Obj: %1 \nHeight: %2\nPos: %3",_item,_height,_grpPos];

    _group ctrlShow true;
    ctrlSetFocus _group;
    _group ctrlSetPosition _pos;
    _group ctrlCommit 0;
};

The portion you added to this file needs to be moved down a little bit like mine.

My God! Thank U! Many thanks for the help! Is working like magic! Tks ebay! tks Inkko!
 
Also by using ui_selectslot and extra_rc EXACTLY as im asked, its still not working haha. Anything else that could be stopping it working? :eek:
 
Also by using ui_selectslot and extra_rc EXACTLY as im asked, its still not working haha. Anything else that could be stopping it working? :eek:
Do you have the ui_selectslot changed to the mission file one in your custom compiles? Aswell the extra_rc included in the description.ext? Also try using the ui_selectslot.sqf i posted in my previous post.
 
Last edited:
ebay,

Do you believe i can have this...

Code:
"currentInvites" addPublicVariableEventHandler {publicVariable "currentInvites";};

...inside broadcaster.sqf instead of this...

Code:
while {true} do {
    waitUntil {!isNil "currentInvites"};
    _currentInvites = str(currentInvites);
    publicVariable "currentInvites";
    waitUntil {(_currentInvites) != str(currentInvites)};
};
 
If the list is empty for non-admins it means playableUnits command is still broken on your server. Make sure you did the infistar steps correctly.


That ESP script is dynamic text only. It does not include map markers. Infistar has a separate map markers script you can enable in combination with that.



Check your client RPT for errors. Also post your ui_selectSlot.sqf and extra_rc.hpp.

i deleted whis in infistar
infi 343d

playableUnits = [player]; (two occurrences)
lbsetpicture='no';
lbSetData='no';
createMarkerLocal='no';
setMarkerTextLocal='no';
setMarkerTypeLocal='no';
setMarkerColorLocal='no';

Find and delete these from the FNCRestored check (_FRC):
'lbsetpicture',
'lbSetData',
'createMarkerLocal',
'setMarkerTextLocal',
'setMarkerTypeLocal',
'setMarkerColorLocal',

+ and
Close Dialogs ? */ _CUD = false;
 
Back
Top