Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Нужна помощь?

    Создайте тему в соответствующем разделе
    Не нужно писать всё в чат!
  • Продаёте или покупаете?

    Пользуйтесь услугами гаранта
    Мы сделаем вашу сделку безопасной
  • Не хотите БАН?

    Пожалуйста, ознакомьтесь с нашими правилами
    Не нарушайте порядок
  • Загляните на торговую площадку

    Там вы можете купить
    Всё что касается игровых серверов
Kirik660

Повышение клиентского FPS Epoch 1.0.6

Recommended Posts

png&fsize=143953&hid=6b7c8c04df0d98048a0



Всем привет, пишу статью первый раз, так что не судите строго. В общем, мы будем давать игроку возможность настраивать дальность прорисовки и траву на нашем сервере.
За основу взят гайд старого эпоча по настройке дальности видимости.
Нам понадобятся:
1)Notepad++
2)PBOmanager

Первым делом вытаскиваем из dayz_code файлы: compiles.sqf и ui_selectSlot.sqf, закидываем их в папку custom в вашей миссии и меняем пути к этим файлам сначала в init.sqf:

 

Находим строку


call compile preprocessFileLineNumbers "\z\addons\dayz_code\init\compiles.sqf";


меняем ее на


call compile preprocessFileLineNumbers "custom\compiles.sqf";


Затем меняем путь к файлу ui_selectSlot.sqf в compiles.sqf:

 

Находим строку


player_selectSlot = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\ui_selectSlot.sqf";


меняем ее на


player_selectSlot = compile preprocessFileLineNumbers "custom\ui_selectSlot.sqf";


Займемся extra_rc. Во-первых нужно его подключить, для этого:

 

Открываем наш кастомный ui_selectSlot.sqf и находим этот код


_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];};
};



Теперь нужно создать в папке custom сам файл extra_rc.hpp и прописать нем:

 

class ExtraRc {
class ItemMap {
class gridinfo {
text = "Настройки травы"; script = "systemChat('Изменяйте настройки Травы под мощность своего ПК. ( Чем ниже настройки, тем выше фпс )');"; };
class grid10 { text = "Трава:Высоко"; script = "setTerrainGrid 10; systemChat('Качество травы установлено на: Высоко');"; };
class grid25 { text = "Трава: Нормально"; script = "setTerrainGrid 25; systemChat('Качество травы установлено на: Средне');"; };
class grid40 { text = "Трава: Низко"; script = "setTerrainGrid 40; systemChat('Качество травы установлено на: Низко');"; };
class grid50 { text = "Трава: Выкл."; script = "setTerrainGrid 50; systemChat('Трава отключена');"; };
}
};


Итак, с травой разобрались, теперь займемся прорисовкой.
Создаем 3 файла:
distance.hpp
distance.sqf
distancecontrol.sqf

В distance.hpp вставляем это:

 

class DistanceDialog
{
    idd = -1;
    movingenable = true;
    enableSimulation = true;
    class controlsBackground 
    {
        class ClassBackground: RscText
        {
            text = "";
            moving = true;
            x = .31 * safezoneW + safezoneX;
            y = .3 * safezoneH + safezoneY;
            w = .138504 * safezoneW;
            h = .325 * safezoneH;
            colorBackground[] = {.3,.3,.3,1};
            fixedWidth = 0;
        };
    };
    class Controls
    {
        class ClassSelect: RscText
        {
            text = "ВЫБЕРИТЕ ДАЛЬНОСТЬ";
            x = .31 * safezoneW + safezoneX;
            y = .26 * safezoneH + safezoneY;
            w = .138504 * safezoneW;
            h = .04025 * safezoneH;
            colorText[] = {1,1,1,1};
            colorBackground[] = {.384,.702,.886,.8};
            fixedWidth = 0;
            shadow = 1;
            sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * .6)";
        };
        class ClassList
        {
            idc = 8888;
            x = .31 * safezoneW + safezoneX;
            y = .303 * safezoneH + safezoneY;
            w = .138504 * safezoneW;
            h = .25 * safezoneH;
            autoScrollDelay = 5;
            autoScrollRewind = 0;
            autoScrollSpeed = -1;
            colorSelect[] = {};
            colorSelectBackground[] = {.5,.5,.5,1};
            colorText[] = {.88,.88,.88,1};
            font = "Zeppelin32";
            maxHistoryDelay = 1;
            rowHeight = 0;
            class ScrollBar
            {
                arrowEmpty = "\ca\ui\data\arrow_up_ca.paa";
                arrowFull = "\ca\ui\data\arrow_up_ca.paa";
                border = "\ca\ui\data\ui_border_scroll_ca.paa";
                color[] = {.5,.5,.5,.5};
                colorActive[] = {.5,.5,.5,.3};
                colorDisabled[] = {.5,.5,.5,.1};
                shadow = 0;
                thumb = "";
            };
            sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
            soundSelect[] = {"",.1,1};
            style = 16;
            type = 5;
        };
        class ClassButton
        {
            idc = 8889;
            text = "ПРИМЕНИТЬ";
            x = .324 * safezoneW + safezoneX;
            y = .567 * safezoneH + safezoneY;
            w = .109 * safezoneW;
            h = .044 * safezoneH;
            action = "call DistanceSelected;";
            borderSize = 0;
            colorBackground[] = {.4,.4,.4,1};
            colorBackgroundActive[] = {.5,.5,.5,1};
            colorBackgroundDisabled[] = {.2,.2,.2,1};
            colorBorder[] = {.88,.88,.88,1};        
            colorDisabled[] = {.2,.2,.2,1};
            colorFocused[] = {.4,.4,.4,1};
            colorShadow[] = {0,0,0,0};
            colorText[] = {1,1,1,1};
            font = "Zeppelin32";
            offsetPressedX = .002;
            offsetPressedY = .002;
            offsetX = .003;
            offsetY = .003;
            sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * .6)";
            soundClick[] = {"\ca\ui\data\sound\onclick",.07,1};
            soundEnter[] = {"\ca\ui\data\sound\onover",.09,1};
            soundEscape[] = {"\ca\ui\data\sound\onescape",.09,1};
            soundPush[] = {"\ca\ui\data\sound\new1",0,0};            
            style = 2;
            type = 1;
        };
    };
};


В distance.sqf вставляем это:

 

DistanceFill = {
    private ["_index"];
    disableSerialization;
    _distance = [
        ["200 m",200],
        ["400 m",400],
        ["600 m",600],
        ["800 m",800],
        ["1000 m",1000],
        ["1250 m",1250],
        ["1500 m",1500],
        ["1750 m",1750],
        ["2000 m",2000],
        ["2500 m",2500],
        ["3000 m",3000]
    ];
    lbClear 8888;
    {
        _index = lbAdd [8888,_x select 0];
        lbSetPicture [8888,_index,"\ca\ui\data\objective_complete_ca.paa"];
    } forEach _distance;
};
 
DistanceSelected = {
    private ["_text","_selected","_setdistancetext","_setdistance"];
    disableSerialization;
    _distance = [
        ["200 m",200],
        ["400 m",400],
        ["600 m",600],
        ["800 m",800],
        ["1000 m",1000],
        ["1250 m",1250],
        ["1500 m",1500],
        ["1750 m",1750],
        ["2000 m",2000],
        ["2500 m",2500],
        ["3000 m",3000]
    ];
    _text=lbText[8888,(lbCurSel 8888)];
    {if(_text==(_x select 0))then{_selected=_x;};}forEach _distance;
    _setdistancetext = _selected select 0;
    _setdistance = _selected select 1;
    
    setViewDistance _setdistance; 
    systemChat format ["ViewDistance: %1",_setdistancetext];
    closeDialog 0;    
};


В distancecontrol.sqf вставляем это:

 

createDialog "DistanceDialog";call DistanceFill;



Теперь подключим эти файлы.
1) Открываем init.sqf и в самый конец добавим:

[] execVM "spawn\distance.sqf";


2) Открываем description.ext и в самый низ добавляем:

#include "spawn\distance.hpp"


3) Снова открываем extra_rc.hpp и добавляем этот код на любой предмет (лучше добавлять на предмет из стартового набора, так игрок сможет легко пользоваться нашим скриптом, у меня это, например, миникарта):

class viewdistance {text = "Дальность прорисовки";script = "execVM ""custom\distanced.sqf"";"}


Вот что должно получиться в файле extra_rc.hpp:

 

 

class ExtraRc {
class ItemMap{
class viewdistance {
text = "Дальность прорисовки";script = "execVM ""custom\distanced.sqf"";"
}
class gridinfo {
text = "Настройки травы";script = "systemChat('Изменяйте настройки Травы под мощность своего ПК. ( Чем ниже настройки, тем выше фпс )');";};
class grid10 {text = "Трава:Высоко";script = "setTerrainGrid 10; systemChat('Качество травы установлено на: Высоко');";};
class grid25 {text = "Трава: Нормально";script = "setTerrainGrid 25; systemChat('Качество травы установлено на: Средне');";};
class grid40 {text = "Трава: Низко";script = "setTerrainGrid 40; systemChat('Качество травы установлено на: Низко');";};
class grid50 {text = "Трава: Выкл.";script = "setTerrainGrid 50; systemChat('Трава отключена');";};
}
};



Ну и теперь нажимая на миникарту мы можем выбирать качество травы и, нажав на кнопку "Дальность прорисовки", будет всплывать окно с выбором дальности прорисовки.
На этом все, благодарю за внимание, надеюсь вы оцените.

 


S7mxJxObg4E.jpg

Share this post


Link to post
Share on other sites



У игроков fps хоть немного но выше станет. Разве это не оптимизация?

Share this post


Link to post
Share on other sites

У игроков fps хоть немного но выше станет. Разве это не оптимизация?

На клиенте он итак будет нормальный если ПК не дно или еще чего. Сервер все так же будет захлебываться. И мне кажется просто отключить траву можно уж всяко проще без кучи файлов и HPP. Тогда и динамичную погоду отключайте, если траву убрали.

Share this post


Link to post
Share on other sites

Что-то оптимизации как таковой не сильно много увидел, да и не назвать это оптимизацией  :smile: Это просто способ вслегка выглянуть из фпс`ной задницы некоторым людям при помощи скриптов... То есть выбор меньшего зла из двух, но не оптимизация вовсе.

Share this post


Link to post
Share on other sites

Да зачем такие сложности с вытащить оттуда, вставить туда, изменить кучу файлов там и т.д.

Есть способ гораздо проще.

 

1. Заходим в init.sqf в вашей миссии и ищем строку

call compile preprocessFileLineNumbers "\z\addons\dayz_code\init\compiles.sqf";

под ней вставляем

call compile preprocessFileLineNumbers "overwrites\init.sqf";

2. Качаем архив и распаковываем в папку с миссией

 

3. В папке overwrites в файле config.sqf настраиваем что вам угодно на что вам угодно.

overwrites.rar

Share this post


Link to post
Share on other sites

 

На клиенте он итак будет нормальный если ПК не дно или еще чего. Сервер все так же будет захлебываться. И мне кажется просто отключить траву можно уж всяко проще без кучи файлов и HPP. Тогда и динамичную погоду отключайте, если траву убрали.

С каких пор в 1.0.6 завезли клиентский FPS? Для сравнения моя карточка 650ti свободно тянула 1051 в 60-70 FPS, а вот новая 980ti(!!!!!!) 20-30 FPS. И не понял в чем сервер будет захлебыватся?

Share this post


Link to post
Share on other sites

крафт журнал группы прилипание вектор 

так засрали фпс? или дело еще хуже?

печ 680 было 60 стало 40-50 а если пк ламповый или страше то в минус уйдет

для большинства 1.0.6 это роскошь ((((

Share this post


Link to post
Share on other sites

 

С каких пор в 1.0.6 завезли клиентский FPS? Для сравнения моя карточка 650ti свободно тянула 1051 в 60-70 FPS, а вот новая 980ti(!!!!!!) 20-30 FPS. И не понял в чем сервер будет захлебыватся?

Рассказал как у меня в данный момент. Серьезно. Моя днищеноутская видеокарта 610м как держала 30-40, так и держит, но вот серверный проседает после 1 часа. Хотя мне не критично. Мне лишь потестить пару скриптов надо и все.

Share this post


Link to post
Share on other sites

Рассказал как у меня в данный момент. Серьезно. Моя днищеноутская видеокарта 610м как держала 30-40, так и держит, но вот серверный проседает после 1 часа. Хотя мне не критично. Мне лишь потестить пару скриптов надо и все.

Cобираешься сервер на 1.0.6 пилить?

Share this post


Link to post
Share on other sites

Хлопцы, всех с наступающим Новым Годом!

 

По теме - серверный ФПС падает наполовину после переключения на 106 и это на тестовом сервере без игроков.

 

Не по теме - а имеется ли уже антихак под 106 или нет?

Share this post


Link to post
Share on other sites

Хлопцы, всех с наступающим Новым Годом!

 

По теме - серверный ФПС падает наполовину после переключения на 106 и это на тестовом сервере без игроков.

 

Не по теме - а имеется ли уже антихак под 106 или нет?

да, от 2-го декабря под 1.0.6

Share this post


Link to post
Share on other sites

На клиенте он итак будет нормальный если ПК не дно или еще чего. Сервер все так же будет захлебываться. И мне кажется просто отключить траву можно уж всяко проще без кучи файлов и HPP. Тогда и динамичную погоду отключайте, если траву убрали.

 как в этой  версии отключить  траву и пагоду ?

Share this post


Link to post
Share on other sites

как в этой версии отключить траву и пагоду ?

В init.sqf параметр setTerrainGrid 25; измени на 50

В этом же файле закоментируй или удали execVM "\z\addons\dayz_code\system\DynamicWeatherEffects.sqf";

PS: ФПС поднять это не поможет

Edited by Ник (see edit history)

Share this post


Link to post
Share on other sites

Я не очень понял, но мне кажется что в этой версии добавили шейдеры какие-то или я ошибаюсь. Картина яркая, не такая как раньше. Как будто sweetfx поставили)

Share this post


Link to post
Share on other sites

если запустить с параметром -skipIntro , то яркой картинки не будет.

Share this post


Link to post
Share on other sites

 

Вот что должно получиться в файле extra_rc.hpp: Скрытый текст

  

 

В гайде скобку здесь добавь плиз. text = "Дальность прорисовки";script = "execVM ""custom\distanced.sqf"";"  

Думаю я не последний, кто тупым копипастом напоролся на эту ошибку  :bad:  :wink:

Share this post


Link to post
Share on other sites
В 19.12.2016 в 17:43, Kirik660 сказал:

3) Снова открываем extra_rc.hpp и добавляем этот код на любой предмет (лучше добавлять на предмет из стартового набора, так игрок сможет легко пользоваться нашим скриптом, у меня это, например, миникарта):


class viewdistance {text = "Дальность прорисовки";script = "execVM ""custom\distanced.sqf"";"}

 

 

В 19.12.2016 в 17:43, Kirik660 сказал:

Вот что должно получиться в файле extra_rc.hpp:

  Скрыть содержимое

 



class ExtraRc {
class ItemMap{
class viewdistance {
text = "Дальность прорисовки";script = "execVM ""custom\distanced.sqf"";"
}
class gridinfo {
text = "Настройки травы";script = "systemChat('Изменяйте настройки Травы под мощность своего ПК. ( Чем ниже настройки, тем выше фпс )');";};
class grid10 {text = "Трава:Высоко";script = "setTerrainGrid 10; systemChat('Качество травы установлено на: Высоко');";};
class grid25 {text = "Трава: Нормально";script = "setTerrainGrid 25; systemChat('Качество травы установлено на: Средне');";};
class grid40 {text = "Трава: Низко";script = "setTerrainGrid 40; systemChat('Качество травы установлено на: Низко');";};
class grid50 {text = "Трава: Выкл.";script = "setTerrainGrid 50; systemChat('Трава отключена');";};
}
};

 

вот как у меня :


class ExtraRc {
class ItemMap{
class viewdistance {
    {text = "Дальность прорисовки";script = "execVM ""custom\distanced.sqf"";"
    }
class gridinfo {
text = "Настройки травы";script = "systemChat('Изменяйте настройки Травы под мощность своего ПК. ( Чем ниже настройки, тем выше фпс )');";};
class grid10 {text = "Трава:Высоко";script = "setTerrainGrid 10; systemChat('Качество травы установлено на: Высоко');";};
class grid25 {text = "Трава: Нормально";script = "setTerrainGrid 25; systemChat('Качество травы установлено на: Средне');";};
class grid40 {text = "Трава: Низко";script = "setTerrainGrid 40; systemChat('Качество травы установлено на: Низко');";};
class grid50 {text = "Трава: Выкл.";script = "setTerrainGrid 50; systemChat('Трава отключена');";};
}
};

 

не происходит никаких манипуляций с картой в инвентаре 
P.S. Как сделать выбор прорисовки не на карту а на бинокль и дальномер?

Share this post


Link to post
Share on other sites
7 часов назад, GreenPathos сказал:

P.S. Как сделать выбор прорисовки не на карту а на бинокль и дальномер?

class ExtraRC {
	class Binocular {
		class viewdistanceTitle {text = "Выберите дальность:";script = "systemChat('Изменить дальность прорисовки. Выберите расстояние.');";};
		class distance500m {text = "400m";script = "setViewDistance 400; systemChat('Установлена дальность: 400');";};
		class distance800m {text = "800m";script = "setViewDistance 800; systemChat('Установлена дальность: 800');";};
		class distance1000m {text = "1000m";script = "setViewDistance 1000; systemChat('Установлена дальность: 1000');";};
		class distance1250m {text = "1250m";script = "setViewDistance 1250; systemChat('Установлена дальность: 1250');";};
		class distance1500m {text = "1500m";script = "setViewDistance 1500; systemChat('Установлена дальность: 1500');";};
		class distance2000m {text = "2000m";script = "setViewDistance 2000; systemChat('Установлена дальность: 2000'); systemChat('Внимание! Большая дальность прорисовки может заметно снизить FPS');";};
		class distance2500m {text = "2500m";script = "setViewDistance 2500; systemChat('Установлена дальность: 2500'); systemChat('Внимание! Большая дальность прорисовки может заметно снизить FPS');";};
		class distance3000m {text = "3000m";script = "setViewDistance 3000; systemChat('Установлена дальность: 3000'); systemChat('Внимание! Большая дальность прорисовки может заметно снизить FPS');";};
	};
	class Binocular_Vector {
		class viewdistanceTitle {text = "Выберите дальность:";script = "systemChat('Изменить дальность прорисовки. Выберите расстояние.');";};
		class distance500m {text = "400m";script = "setViewDistance 400; systemChat('Установлена дальность: 400');";};
		class distance800m {text = "800m";script = "setViewDistance 800; systemChat('Установлена дальность: 800');";};
		class distance1000m {text = "1000m";script = "setViewDistance 1000; systemChat('Установлена дальность: 1000');";};
		class distance1250m {text = "1250m";script = "setViewDistance 1250; systemChat('Установлена дальность: 1250');";};
		class distance1500m {text = "1500m";script = "setViewDistance 1500; systemChat('Установлена дальность: 1500');";};
		class distance2000m {text = "2000m";script = "setViewDistance 2000; systemChat('Установлена дальность: 2000'); systemChat('Внимание! Большая дальность прорисовки может заметно снизить FPS');";};
		class distance2500m {text = "2500m";script = "setViewDistance 2500; systemChat('Установлена дальность: 2500'); systemChat('Внимание! Большая дальность прорисовки может заметно снизить FPS');";};
		class distance3000m {text = "3000m";script = "setViewDistance 3000; systemChat('Установлена дальность: 3000'); systemChat('Внимание! Большая дальность прорисовки может заметно снизить FPS');";};
	};
};

 

Edited by Ник (see edit history)

Share this post


Link to post
Share on other sites

После установки дальности и  травы сервер кикает. В логе scripts.log пишет следующее:

26.07.2017 05:11:13: Fockus (xxx.xxx.xxx.xxx:2304) 4957bd57ebefd523a4fb88191ed9fda0 - #25 "00],
["2500 m",2500],
["3000 m",3000]
];
_text=lbText[8888,(lbCurSel 8888)];
{if(_text==(_x select 0))then{_selected=_x;};}forEa"

Как исправить?

Share this post


Link to post
Share on other sites

После установки дальности и  травы сервер кикает. В логе scripts.log пишет следующее:

26.07.2017 05:11:13: Fockus (xxx.xxx.xxx.xxx:2304) 4957bd57ebefd523a4fb88191ed9fda0 - #25 "00],
["2500 m",2500],
["3000 m",3000]
];
_text=lbText[8888,(lbCurSel 8888)];
{if(_text==(_x select 0))then{_selected=_x;};}forEa"

Как исправить?

ап

Share this post


Link to post
Share on other sites
1 час назад, RedLink сказал:

фильтры сами покажи хоть. scripts.txt

Сорян

 

Стандартные под 1061

//new2
5 allDead !"} count allDead;\n\n\nif (dayz_oldBodyCount > _bodyCount) then {"
5 allGroups !"publicVariableServer \"PVDZ_Server_UpdateGroup\";\n};\n} count allGroups;"
5 allMissionObjects !"[_x,2,0,false,false] spawn BIS_Effects_Burn;\n};\n} count allMissionObjects \"SpawnableWreck\";"
5 allowDammage
5 allUnits !"} count allUnits;\nlbSort _playerList;" !"if (getPlayerUID _x == _this) exitWith {\n_player = _x;\n};\n} count allUnits;" !"owner _x publicVariableClient \"PVDZ_groupInvite\";\n};\n} count allUnits;"
5 attachTo !"(_variation * 2)) - _variation)];\n_bolt attachTo [_hitObject,_val,_hitMemoryPt];" !"player playActionNow \"PutDown\";\nuiSleep 2;\n_flare attachTo [player,[0,0,0],\"granat2\"];" !"tchmove \"ainjpfalmstpsnonwrfldnon_carried_still\";\n_dragee attachto [_unit,[-0.2, 0.2, 0]];" !"_source setDropInterval 0.02;\n_point attachTo [_unit,_modelPos,_wound];" !" attachto [_v,[0,0,0],\"destructionEffect" !"publicVariable \"PVDZ_drg_RaDrag\";\n\n_dragee attachto [_unit,[0.1, 1.01, 0]];" !="_l1 attachTo [_lh,[0,0,0],\"light\"];" !"_objectHelper attachTo [player,_offset];" !"_object attachTo [player,_offset];\n\n_position = getPosATL _object;" !="_vehicle attachTo [_liftHeli,[0,0,-7]];" !="_obj attachTo [_axis];" !"_objectSnapGizmo attachTo [_object,[_x select 0,_x select 1,_x select 2]];" !="_vehicle attachTo [_towTruck,[1.3,-2,2.3]];" !"localize \"STR_EPOCH_ACTIONS_ATTACHTOHELI\","
5 buttonSetAction
5 callExtension
5 closeDisplay !"'closeDisplay'" !"closeDisplay 0" !"closeDisplay 2" !"if (!isNil \"closeDisplay\") then {"
5 createAgent !="_agent = createAgent [_type, _position, [], _radius, \"CAN_COLLIDE\"];" !="_agent = if (_type == \"Pastor\") then {createAgent [_type, _Pos, [], 0, \"NONE\"]} else {createAgent [_type, _Pos, [], 0, \"FORM\"]};" !="_dog = createAgent [_type, _Pos, [], 0, \"NONE\"];"
5 createDialog !="_region = createDialog \"RscDisplaySpawnSelecter\";" !="_gender = createDialog 'RscDisplayGenderSelect';" !="_dialog = createDialog \"bloodTest\";" !="createDialog 'RscDisplayCraftingMenu';" !="createDialog \"DAYZ_PADLOCK\";" !"createDialog 'horde_journal_" !"Z_ResetContainer = true;\ncreateDialog \"AdvancedTrading\";" !"createDialog \"DoorManagement\";\ncall DoorNearbyHumans;" !="createDialog \"ComboLockUI\";" !"createdialog \"PlotManagement\";\ncall PlotNearbyHumans;" !"_trader_data = (_this select 3);\n\n_dialog = createdialog \"TraderDialog\";" !"_ok = createdialog \"KeypadUI\";" !"EpochDeathBoardLoad = {\ncreatedialog \"EpochDeathBoardDialog\";" !="if(DZE_doorManagement) then {createdialog \"DoorAccess\";} else {createdialog \"ComboLockUI\";};" !"\ndisableSerialization;\ncreateDialog \"DZ_GroupDialog\";"
5 createDisplay
5 createMarker !"\"createMarkerLocal\"," !"rcreateMarkerLocal" !"if (isnil 'BIS_GITA_fnc_createMarkers' || false) then {" !"_marker = createMarkerLocal [format[\"groupMember"
5 createUnit !="_newUnit = _group createUnit [_class,respawn_west_original,[],0,\"NONE\"];" !="BIS_MPF_logic = BIS_MPF_dummygroup createUnit [\"Logic\", [1000,10,0], [], 0, \"NONE\"];"
5 createVehicleLocal !="_object = (_x select 1) createVehicleLocal [0,0,0];" !="_plant = _x createVehicleLocal (getMarkerPos \"center\");" !="_point = \"Logic\" createVehicleLocal getPosATL _unit;" !"_object = _type createVehicleLocal [0,0,0];" !="_obj = _class createVehicleLocal (getMarkerpos \"respawn_west\");" !" = \"#lightpoint\" createVehicleLocal " !" = \"#particlesource\" createVehicleLocal " !="_object = _ghost createVehicleLocal getMarkerpos \"respawn_west\";" !="_cursorTarget = _upgrade createVehicleLocal getMarkerpos \"respawn_west\";" !="_sign = \"Sign_arrow_down_large_EP1\" createVehicleLocal [0,0,0];" !"_obj = \"Sign_sphere10cm_EP1\" createVehicleLocal [0,0,0];" !="_objectSnapGizmo = \"Sign_sphere10cm_EP1\" createVehicleLocal [0,0,0];" !"_object2 = _ghost2 createVehicleLocal [0,0,0];\nhideObject _object;"
5 ctrlAddEventHandler
5 ctrlRemoveAllEventHandlers
5 ctrlSetPosition !="_control ctrlSetPosition [_posX, _posY];" !"3,_h]};\n_control ctrlsetposition _pos;" !="_control ctrlSetPosition [0, (_y + _deltaY)];" !="_disp_ctrl ctrlSetPosition [_posX, _posY];" !="_control ctrlSetPosition _grpPos;" !="_group ctrlSetPosition _pos;" !="_control ctrlSetPosition [_controlPos select 0, _controlPos select 1, _controlPos select 2, 0.03921 * _lines];" !="((uiNamespace getVariable 'DAYZ_GUI_waiting') displayCtrl 1400) ctrlSetPosition _sandLevel;" !="_delayControl ctrlSetPosition [0, _pos];" !="_icon ctrlSetPosition [(_screen select 0),(_screen select 1),.99,.65];"
5 deleteMarker !"} count allDead;\n\n\nif (dayz_oldBodyCount > _bodyCount) then {"
5 displayAddEventHandler !"bis_fnc_halo_keydown_eh = (finddisplay 46) displayaddeventhandler [\"keydown\",\"_this call bis_fnc_halo_keydown;\"];"
5 displayRemoveAllEventHandlers
5 displaySetEventHandler
5 enableEnvironment
5 groupIcon
5 hideObject !"rhideObject" !"\"hideObject\"" !"_object2 = _ghost2 createVehicleLocal [0,0,0];\nhideObject _object;"
5 lbCurSel !"_selectedUserIndex = lbCurSel _lbUsersControl;" !="profileNamespace setVariable ['streamerMode',(lbCurSel (_this select 0))];" !"_index = lbCurSel _lbcontrol;\n_selectedItem" !"_selected = lbCurSel _list;\n_classname = _list lnbData [_selected, 2];" !="_friendName = _userList lbText (lbCurSel _userList);" !")] call Z_" !"(lbCurSel 7421) call Z_fillCategoryList" !"] call Door" !"] call Plot" !"[(lbCurSel 12001)] " !="[(lbCurSel 21000), ((ctrlParent (_this select 0)) displayCtrl 21001)] spawn EpochDeathBoardClick;" !"((ctrlParent (_this select 0)) closeDisplay 2);" !="_uid = _playerList lbData (lbCurSel _playerList);" !"_myGroup lbData (lbCurSel _myGroup);"
5 lbSet !"_lbUsersControl lbSetColor [_x, [1,0,0,1]];" !"\n_control lbSetColor [_x, _color];\n};" !"_weaponsLBSetFocus" !="(_this select 0) displayCtrl 140 lbSetCurSel (profileNamespace getVariable ['streamerMode',0]);" !="(_display displayCtrl 105) lbSetColor [_i, [0.06, 0.05, 0.03, 1]];" !" [7421," !"lbSetPicture [7422, _index" !"lbSetPicture [7402, _index" !"lbSetPicture [7401, _index" !="_userList lbSetData [(lbSize _userList) -1,_friendUID];" !" [TraderDialogItemList, _index, " !"_myGroup lbSetData [_index,getPlayerUID _x];"
5 menu !"_menu = _parent displayCtrl (1600 + _i);\n_menu ctrlShow " !="createDialog 'RscDisplayCraftingMenu';" !"BIS_fnc_commsMenu" !"BIS_fnc_kbMenu" !"BIS_fnc_createmenu" !"call gear_ui_offMenu;" !"dayz_inflame_showMenu" !"\"showCommandingMenu\", " !"rshowCommandingMenu" !"menu_" !"use action menu to " !"\"_menu\",\"_menu1\"" !"PVDZE_plr_TradeMenu" !"fn_gearMenuChecks" !"fn_pauseMenuChecks"
5 onMapSingleClick
5 playableUnits !"for [{_y=0},{_y < count(playableUnits)},{_y=_y+1}] do {" !"typeName player == \"OBJECT\" && {(player in playableUnits" !"AND {((alive _x) AND {((vehicle _x) distance _obj < 150)})}} count playableUnits)}) then {" !="_local = { _unit distance _x < _dis; } count playableUnits <= 1;" !"if (!_isOk) exitWith {false};\nuiSleep 0.001;\n} forEach playableUnits;" !"ManagementMustBeClose) then { player nearEntities [\"CAManBase\", 10] } else { playableUnits };"
5 selectPlayer !"addSwitchableUnit dayz_originalPlayer;\nsetPlayable dayz_originalPlayer;\nselectPlayer dayz_originalPlayer;" !"addSwitchableUnit _newUnit;\nsetPlayable _newUnit;\nselectPlayer _newUnit;"
5 serverCommand !="_character = if (serverCommandAvailable \"#kick\") then { call sched_tg_follow } else { player };" !"serverCommand (\"#vote kick \" + _selectedName);"
5 setDamage !"([4654,9595,0] nearestObject 145259) setDamage 1;\n([4654,9595,0] nearestObject 145260) setDamage 1;" !"if (_entity isKindOf \"Animal\") then {\n_entity setDamage 1;" !"player setDamage 1;\n\nif (dayz_onBack != \"\") then {\n_body addWeapon dayz_onBack;" !"if(\"\" == typeOf _tree) then {\n_tree setDamage 1;\n};" !"if (_ent isKindOf \"Animal\" || _ent isKindOf \"zZombie_base\") then {\n_ent setDamage 1;"
5 setDammage
5 SetEventHandler !"\n_menu ctrlSetEventHandler [\"ButtonClick\",_compile];\n};" !"inGameUISetEventHandler [\"Action\",\"false\"];"
5 setMarkerAlpha
5 setMarkerBrush
5 setMarkerColor !",if (_vehicle == _x) then {name _x} else {_vehicle call dayz_getCrew}];\n_marker setMarkerColorLocal \"ColorGreen\";"
5 setMarkerDir
5 setMarkerPos !"\"setMarkerPosLocal\"," !"rsetMarkerPosLocal"
5 setMarkerShape
5 setMarkerSize
5 setMarkerText !",if (_vehicle == _x) then {name _x} else {_vehicle call dayz_getCrew}];\n_marker setMarkerColorLocal \"ColorGreen\";"
5 setMarkerType !",if (_vehicle == _x) then {name _x} else {_vehicle call dayz_getCrew}];\n_marker setMarkerColorLocal \"ColorGreen\";"
5 setPosASL !="_unit setPosAsl [(_position select 0), (_position select 1), (LHA_height+1)];" !="_flame setPosASL [_pos select 0,_pos select 1,(_pos select 2)+0.2];" !="_fire setPosASL _location;" !"_objectHelper setPosASL _position;\n} else {" !"_b0x1337 setPosASL (getPosASL player);\n} else {" !"_obj setPosASL [_center select 0, _a, _b];" !"_objectSnapGizmo setPosASL " !"_para setposasl [\n" !"_thingy setPosASL (ATLToASL _pos);\n} else {"
5 setTerrainGrid !"if (dayz_REsec == 1) then {call compile preprocessFileLineNumbers \""
5 setUnitRecoilCoefficient
5 setVehicle !"if(_status) then {\n_vehicle setVehicleLock \"LOCKED\";\n} else {\n_vehicle setVehicleLock \"UNLOCKED\";\n};"
5 setViewDistance
5 sideLogic !"publicVariable \"BIS_MPF_logic\";"
5 switchCamera !"\"switchCamera\", " !"rswitchCamera" !="player switchCamera (Dayz_constructionContext select 2);" !"player switchCamera _currentCamera;\nif (_currentWpn !="
5 toString !"_animCheck = toString ([(_animStateArray select 0),(_animStateArray select 1)" !="_skinToModel = toString (_finalArray);" !="{_textArrayTemp = _textArrayTemp + [tostring [_x]]} foreach _line;" !="_cmpt = toString _cmpt;" !="_objName = toLower(toString(_objName));" !"if (toString _hayArr != _needle) then {" !="_type = toString _typeA;" !="_anim4 = toString _anim4;" !"{(count _stance>17)}) then {toString [_stance select 17]}" !"BIS_fnc_timeToString" !"02, if (typeName _name == \"ARRAY\") then {toString _name} else {_name}];"

 

Share this post


Link to post
Share on other sites

1-е.. ошибка что-то вообще никак не относится к стандартному скрипту про траву. По крайней мере этот код я не вижу в RC

_text=lbText[8888,(lbCurSel 8888)]; {if(_text==(_x select 0))then{_selected=_x;};}forEa"

 

2-е. фильтры у тебя стоят от чистого эпоча, т.е. Инфистара нету?

3-е. выложи полный лог серверной части.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By 123new
      Вижу крайне много любопытных вопросов по поводу идентификаторов игрока в игре. Что же, разжую для не знающих немного.
       
      В игре есть следующие типы идентификаторов:
      1. Steam64ID идентификатор профиля игрока (на пиратках его UID называют), примерно такой: 765475....65 (17 цифр).
      2. Так называемый мною, BIS ID - uid из окна (консоли) сервера игры и ADM-файлов логов сервера, который пишется самой игрой
      3. Battleye GUID игрока.
       
      Первый идентификатор (Steam64ID) на ПК является прямым идентификатором стим-профиля игрока, уникальным у каждого игрока. Т.е. публичным идентификатором вашего профиля для большинства стим-игр (например, Counter-Strike).
      Второй идентификатор (BIS ID) является определенной хеш-суммой, полученной из Steam64ID посредством конвертации сначала в sha256, а затем в base64. Спасибо за это разъяснение и пример кода-конвертации авторам игры на своем официальном форуме.
      Третий идентификатор (Battleye GUID) является публичным идентификатором Battleye античита, получаемый также из Steam64ID поcредством получения его хеш-суммы MD5. Этот же идентификатор есть в логах сервера от Battleye, в любых RCON-приложениях (DART, BEC и т.п.), также его можно конвертировать самим.
       
      Так вот, как же получить Steam64ID:
      1. Зайти на любой ресурс, предназначенный для сбора таких данных. например на: https://steamid.io/
      2. Ввести ссылку на ваш стим-профиль
      3. Получить результат из кучи данных, одно поле из которых и будет содержать ваш Steam64ID
       
      Как получить BIS ID:
      1. Открыть любой Phyton-конвертер в интернете, например: https://www.tutorialspoint.com/execute_python_online.php
      2. Ввести в него следующий код:
      # Hello World program in Python from hashlib import sha256 from base64 import b64encode def construct_bi_uid(steam_id): hashed = sha256() hashed.update(str(steam_id)) return b64encode(hashed.digest()) print construct_bi_uid(76514925976798981) 3. заменить 76514925976798981 на ваш Steam64ID
      4. Отправить код в исполнение, нажав Execute.
      5. Получить результат

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
       
      Как получить Battleye GUID:
      1. Открыть любой ресурс с готовой формой конвертирования, например:
      https://armstalker.com/guid/
      https://dayzrussia.com/f/index.php?pages/dayzguid/
      либо написать свою, на основе данных, предложенных на странице Github
      https://gist.github.com/chris579/53053b6d6438df9a9718c23c0d6bbd69
      Оставлю ниже лишь код для Phyton:
      # Thanks to gunlinux import md5 steamid=76514925976798981 temp = "" for i in range(8): temp += chr((steamid & 0xFF)) steamid >>= 8 m = md5.new("BE"+temp) print m.hexdigest() 2. Вставить в поле ввода UID(Steam64ID) ваш Steam64ID
      3. Нажать кнопку конвертирования или исполнить код, и получить в готовом виде Battleye GUID
       
      Возможно имеются и другие методы и наработки в получении данных идентификаторов более простыми методами, на других языках, либо автоматически. Я описал лишь известные мне.
      Все желающие могут добавить в комментариях свои способы конвертаций, возможно это поможет кому-либо.
    • By DrTauren
      Как всем известно, сегодня, 19 сентября разработчики DayZ Standalone официально опубликовали документацию серверов Dayz, а также предоставили возможность скачать файлы для запуска сервера DayZ. Ниже прилагается перевод официальной документации этих самых файлов с форума DayZ, а также документация касательно других файлов, которых нет в официальной документации. Пользуйтесь на здоровье 
       
      Скачать серверные файлы через Steam: steam://rungameid/223350
      На данный момент присутствует ошибка с невозможностью скачать файлы сервера, если на вашем аккаунте Steam отсутствует купленная DayZ.
       
      P.S. Если у вас есть чем заполнить эту статью, обязательно пишите мне в лс 
    • By Serdce
      Ссылка на первоисточник - https://github.com/BrettNordin/Exile
      Я всего лишь перевёл
      Собственно переходим по ссылке, и скачиваем архив.
      Для тех, кто не знает как качать с хаба скрин 
      И так, едем дальше
      Скачанный архив распаковываем в удобное место для работы,
      Идём в ваш @ExileServer, там нас интересуют файлы - extDB2.dll , extDB2.so , extDB2-conf.ini , XM8.dll , XM8.so Удаляем эти файлы
      Далее идём в @ExileServer которую мы скачали, всё её содержимое копируем в аналогичную папку на сервере.
      Теперь идём в вашу MPmissions и там распаковываем вашу миссию "Exile.название карты",
      Туда мы копируем содержимое папки Exile.MapName из архива,
      Далее открываем ваш config.cpp и ищем там class CfgExileCustomCode 
      В него мы добавляем - #include "CfgExileCustomCode.cpp"
      Должно получится так
      Запаковываем обратно)
      Ну и теперь из архива мы копируем tbbmalloc.dll, tbbmalloc_x64.dll в папку расположения вашего Arma3_server.exe
      Не забываем поменять в вашем файле запуска сервера с arma3server.exe на arma3server_x64.exe 
      Ну и финишная прямая, открываем вашу базу данных ( желательно с название exile ) и добавляем файл Exile_Database_Update_64x.sql
      Далее настройте под себя ваш extdb3-conf.ini
       
    • By paranoyk
      Камрад   Alex39   сделал пару видео для начала кто хочет создать свою карту

      Начало видео уроков по созданию карты для DayZ Standalone

       
      Выбор с чего начать
       
      Тестовый проект
       
×
×
  • Create New...

Important Information

By using this site, you automaticly agree to our Guidelines and Privacy Policy.
We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.