Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Need help?

    Create a topic in the appropriate section
    Don't write everything in the chat!
  • Take a look at the marketplace

    There you can buy
    everything related to game servers
  • Don't want a ban?

    Please read our rules
    Don't disturb the order!
  • Sell or buy?

    Use services of the guarantor
    We will make your deal safe
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



В каком месте это оптимизация 1.0.6?

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

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

нет. Это подмена понятий.

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 vitacite
      Бесплатные проекты - "пацаны собрались и замутили сервачок" долго не живут.  В этом я убеждался много раз. Нет сначала на интузиазме эффективность неплохая, но затем все это затухает управляемость команды падает.  Начинаются вопросы - "а почему это должен делать я?",  отмазки "да я на даче сегодня", "да у меня командировка" и тд...  + кто-то должен спонсировать оплату сервера, антидудосов и прочей лобуды, а такого человека интерес тоже может пропасть в любой момент. А чтобы проект был хороший - кому-то надо реально "въебывать", как на второй работе, и  кому-то постоянно вливать туда бабло.
      Поэтому, лично я, считаю любой некоммерческий проект заранее проваленным!  Побегать недельку другую с друзьями это да. Что-то более серьезное, не тратьте свои силы и время! Как минимум на  тему сталкера я таких проектов видел 10 штук и в некоторых даже сам поучаствовал. Начиналось все амбициозно и даже набирало онлайн до 100 человек. Но заканчивалось все одинаково 3-4 месяца и с десято скучающих тел, на безлюдном сервере.  С точки зрения администации, игроки ведут себя как проститутки, бегая с сервера на сервер, друзья перешли, или потому что на том добавили новый прикольный скрип, или прикольную тачку, или тут плохой пинг, а там хороший, или админ козел забанил за читы и тд.  а все эти приколюхи требуют денег, а игровое сообщество не очень расположено их платить за некачественный контент. Да и сама администрация достаточно быстро забивает и расслабляется.
      (я сейчас не говорю о конкретном проекте, скорее это собирательный образ халявы).
       
      А теперь по-существу.  Так сколько должен стоить контент с хотя бы приемлемым качеством?  

      Свое мнение я написал ниже.
       
       
      Спасибо за внимание.
       
      А что думаете Вы напишите ниже в комментариях!
       
       
    • By vitacite
      Вступление: 
      Бодрого дня комрады. Данный гайд расчитан на тех кто умеет пользоваться 3D Studio Max, умеет пользоваться Object Builder и хотя бы пытался делать собственные модели.  Я разбираюсь с этой темой с нуля,  у меня есть опыт создания стволов для Арма 3, но в Dayz, как выяснилось все совсем иначе. Статей будет видимо несколько ибо Богемия, это такая Богемия, что не важно какую игру она делает. Инструменты остаются кривожопыми, паралогичными и в целом непонятными.
       
      Начнем с полного нуля. Т.е. выбора модели и подготовки ее и текстур.
      1.  Модельный контент на самом деле ограничен в использовании. Отсюда за порт калаша из Арма 3 без учета авторских прав, может влететь не только в виде SteamBan-а вашего мода, но еще и за нарушение авторских прав.
      Поступим честно. Купим модель у автора на стоке.  В данном случае я выбрал модель АК12 я выбрал за внешний вид. Вот ссылка на саму модель. Заодно оцените сколько стоит труд моделлеров. 
      https://www.cgtrader.com/3d-models/military/gun/ak-12-m
       

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
       
      Кроме того эта модель имеет полный набор необходимых текстур (имеет карту теней, карту высот, нормали и прочее). Что позволит создать адекватный мультиматериал.  Правда все это не форматах Dayz SA (Арма 2), по переделать это не так сложно.
      Сразу скажу т.к. модель в игре будет смотреться несколько иначе.  Мне придется разобраться АК 12, чтобы выделить необходимые движущиеся части, курок, затвор, отделить магазин, прицелы, приклад в отдельные части. Так, как это используется в Dayz. Все это будет делаться в 3D макс. А так же сохранить в формате, который адекватно экспортируется в Dayz Object Builder.
      По мере прогресса, я буду выкладывать отчеты с подробным описанием действий. 
       
      Использованный софт:  изучение модели, для составление гайда (название селекшенов, лодов и тд.) проводилось с помощью программы Elitness из пакета Mikero tools  https://mikero.bytex.digital/Downloads. Подгонка моделей проводилась в бесплатной ученической версии 3DStudio Max, конверт текстур Photoshop, подгонка моделей Object Builder, конфиги писал в notepad  ++
       
      План действий такой. 
       
      Распил 3D модели в 3D макс на отдельные части (те, которые будут выделены в прокси, как отдельные предметы)
      Создание текстур и материалов (AS,SMDI,NOHQ) на базе приложенных в модели и подгонка материала.
      Создание селекшенов и лода memory
      Перемещение частей в прокси и подгонка их к базе.
      Создание model.cfg
      Создание config.cpp 
      Импорт всего этого добра в собственный
      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
       
       
       
       
       
       
       
       
      Изначально модель была не готова для конверсии. В первых, все части были собраны в одну представляя из себя нагромождение частей АК-12,  во-вторых пришлось делать Detoch частей модели например затвора, т.к. изначально он был представлен двумя несвязанными друг с другом полигонами, а у нас затвор - движующаяся часть.  В итоге скрыв лишние LOD-ы (они пока нам не нужны) и пересобрав там где надо запчасти. Получилась следующая картина.

       
      Я заранее выделил, как отдельные модели части которые будут подвергнуты анимации. А именно курок (base curok) и затвор basehutter. А также выгрузил в отдельную модель рамку прицела и приклад, чтобы подцепить к модели через прокси. Об этом расскажем отдельно. А планки Пиккатини сделал неснимаемыми (без них между прицелом и базой АК будет большой зазор). Так пришлось повозиться с место крепления съемного приклада, т.к. при разборе модели на зап.части там образовалась дыра.  Готовую модель требуется конвентировать в формат FBX.
       

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
       
       
       
       
       
       
       
       
      Выделяем только те части которые нами выбраны для моделирования и делаем export selected.
      В моем случае я подготовил папку
      P:\тегпроекта\weapons\firearms\AK12\source\ При сохранении чтобы все потом правильно экспортировалось, желательно выставить чекпоинты в открытых свитках, как на скриншоте, остальное оставить по умолчанию. 

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
       
      И обязательное условие формат для экспорта должен быть FBX 2010.  Не спрашивайте почему, это загадка для меня связанная с работой Object Builder, но в моем случае нормальный экспорт получается только в 2010 FBX.
      Так же отдельными моделями по такому же принципу выгружаем приклад и прицел и магазин(ы) автомата. Это отдельные модели которые мы будем цеплять через прокси.
       

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
       
       
       
       
       
       
       
       
      При импорте в Object Builder отключите чекпоинт на Sharp & Smoth edges (иначе все идет кубами) и Animation (ее просто нет), включите Prepare materials. 
      Полученный автомат загружается неправильно ориентированным в пространстве, незатекстуренным, но с готовыми к работе selection. 
       
      Сохраняем нашу модель под именем 
       
      P:\тегпроекта\weapons\firearms\AK12\ak12_base.p3d  И займемся конфигом.  
      Открываем notepad++ и создаем model.cfg следующего содержания 
      class CfgSkeletons { class Default; class ak12_base_skel : Default //название скелета { skeletonInherit = ""; isDiscrete = 1; SkeletonBones[]= { "magazine" ,"", //кости для анимации сменный магазин "trigger" ,"", //курок "bolt" ,"" //затвор }; }; }; class CfgModels { // BASE CLASS DEFINITIONS START class Default; class ak12_base:Default //цепляем скелет к нашей модели. { skeletonName="ak12_base_Skel"; sections[]= { "magazine" //выделяем сецию магазин }; class Animations { }; }; // BASE CLASS DEFINITIONS END }; Он базовый позже мы его дополним. Конфиг я планирую использовать от ванильного АК47, врядли он будет сильно отличается, от АК12. 
      По схожим прнципам копируем файлы с будующими прокси..
      Магазин на 30 патронов.
      ak12_magazine_30rnd.p3d Магазин под барабан 
      ak12_magazine_drum.p3d Прицельная рамка
      ak12_sight.p3d Съемный приклад
      ak12_stock.p3d 
      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
      Итоговый вид моего рабочего каталога.
      Пришло время занятся материалом для нашего АК.
      Архив содержит текстуры для базы АК12 в формате TGA (это кстати важно т.к. позволяет сохранять битность тестур, а там где мы работаем с материалами мы будем работать с каналами)
       
      AK12_Base_A.tga  - диффузная карта
      AK12_Base_AO.tga - окружение
      AK12_Base_MSA.tga - карта отражения
      AK12_Base_MT_AO_0_G.tga - карта металик, карта отражения, и окружение вместе.
      AK12_Base_N.tga - карта нормалей (тут пришлось заморочиться т.к. эта карта нормалей для OpenGL.  а в нашем случае карта нормалей нужна для Direct X.)
       

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
       
      Разницу можно увидет на скриншотте выше в левой части нормаль в OpenGl формате в правой части нормальн в DirectX формате. 

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
       
      В нашем случае я поменял красный и зеленый каналы, синий не тронул. 
      https://community.bistudio.com/wiki/Texture_Map_Types
      про разницу карты нормалей между openGL и директ X тут - 
      https://help.cc0textures.com/doku.php?id=usage:directx-opengl
       
      Для нормального материала нам понадобится карты AS и SMDI
      Создадим их AS из AO не меняем..
      Для SMDI берем родную текстуру 
      AK12_Base_MSA.tga и создаем SMDI  (как можно узнать из статьи выше карта SMDI хранит информацию в зеленом и синем канале игнорируя красный и альфу). Создаем пустую картинку аналогичных размеров и начинаем копирование нужных каналов.  Соответственно зеленый канал из оригинальной тестуры, я скопировал в синий канал новой текстуры SMDI, красный канал SMDI залил белым (0), а в зеленый канал скопировал текстуру из красного оригинального (содержащего блестяшки и сильно ее затенил).
      (скрин не влез из-за ограничений  800кб) но ничего продолжим ниже.
       
       
       
       
      Продолжение следует........
    • 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
       
  • Our picks

×
×
  • 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.