Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
  • Нужна помощь?

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

    Там вы можете купить
    всё что касается игровых серверов
  • Не хотите бан?

    Пожалуйста, ознакомьтесь с нашими правилами
    Не нарушайте порядок!
  • Продаёте или покупаете?

    Пользуйтесь услугами гаранта
    Мы сделаем вашу сделку безопасной
Kirik660

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

Рекомендованные сообщения

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах





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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

 

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

 

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

 

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

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

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

Изменено пользователем Ник (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

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

  

 

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 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. Как сделать выбор прорисовки не на карту а на бинокль и дальномер?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
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');";};
	};
};

 

Изменено пользователем Ник (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

После установки дальности и  травы сервер кикает. В логе 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"

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

После установки дальности и  травы сервер кикает. В логе 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"

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

ап

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
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}];"

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

 

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Похожие публикации

    • Автор: 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 v2.7 -конвертер в интернете, например: https://onecompiler.com/python2/3ycz55xew
      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. Получить результат
       

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
      [Альтернатива] Метод на основе PHP:
      <?php /** * This is how you get user id (bohemia id) like you see in .ADM files from steam id. */ $steam_id = "76514925976798981"; $user_id = base64url_encode(hash('sha256', $steam_id, true)); function base64url_encode($data) { $b64 = base64_encode($data); if ($b64 === false) { return false; } $url = strtr($b64, '+/', '-_'); return $url; } echo $user_id; [Альтернатива] Метод для javascript - node.js:
      var crypto = require('crypto'); var body = "76514925976798981"; var hash = crypto.createHash("sha256"); var hash_result = hash.update(body, 'utf8').digest('base64'); console.log(hash_result);  
      Как получить 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() Код для PHP:
      var crypto = require('crypto'); var body = "76514925976798981"; var hash = crypto.createHash("sha256"); var hash_result = hash.update(body, 'utf8').digest('base64'); console.log(hash_result); '2. Вставить в поле ввода UID(Steam64ID) ваш Steam64ID
      3. Нажать кнопку конвертирования или исполнить код, и получить в готовом виде Battleye GUID
       
      Возможно имеются и другие методы и наработки в получении данных идентификаторов более простыми методами, на других языках, либо автоматически. Я описал лишь известные мне.
      Все желающие могут добавить в комментариях свои способы конвертаций, возможно это поможет кому-либо.
    • Автор: vitacite
      Бесплатные проекты - "пацаны собрались и замутили сервачок" долго не живут.  В этом я убеждался много раз. Нет сначала на интузиазме эффективность неплохая, но затем все это затухает управляемость команды падает.  Начинаются вопросы - "а почему это должен делать я?",  отмазки "да я на даче сегодня", "да у меня командировка" и тд...  + кто-то должен спонсировать оплату сервера, антидудосов и прочей лобуды, а такого человека интерес тоже может пропасть в любой момент. А чтобы проект был хороший - кому-то надо реально "въебывать", как на второй работе, и  кому-то постоянно вливать туда бабло.
      Поэтому, лично я, считаю любой некоммерческий проект заранее проваленным!  Побегать недельку другую с друзьями это да. Что-то более серьезное, не тратьте свои силы и время! Как минимум на  тему сталкера я таких проектов видел 10 штук и в некоторых даже сам поучаствовал. Начиналось все амбициозно и даже набирало онлайн до 100 человек. Но заканчивалось все одинаково 3-4 месяца и с десято скучающих тел, на безлюдном сервере.  С точки зрения администации, игроки ведут себя как проститутки, бегая с сервера на сервер, друзья перешли, или потому что на том добавили новый прикольный скрип, или прикольную тачку, или тут плохой пинг, а там хороший, или админ козел забанил за читы и тд.  а все эти приколюхи требуют денег, а игровое сообщество не очень расположено их платить за некачественный контент. Да и сама администрация достаточно быстро забивает и расслабляется.
      (я сейчас не говорю о конкретном проекте, скорее это собирательный образ халявы).
       
      А теперь по-существу.  Так сколько должен стоить контент с хотя бы приемлемым качеством?  

      Свое мнение я написал ниже.
       
       
      Спасибо за внимание.
       
      А что думаете Вы напишите ниже в комментариях!
       
       
    • Автор: DrTauren
      Как всем известно, сегодня, 19 сентября разработчики DayZ Standalone официально опубликовали документацию серверов Dayz, а также предоставили возможность скачать файлы для запуска сервера DayZ. Ниже прилагается перевод официальной документации этих самых файлов с форума DayZ, а также документация касательно других файлов, которых нет в официальной документации. Пользуйтесь на здоровье 
       
      Скачать серверные файлы через Steam: steam://rungameid/223350
      На данный момент присутствует ошибка с невозможностью скачать файлы сервера, если на вашем аккаунте Steam отсутствует купленная DayZ.
       
      P.S. Если у вас есть чем заполнить эту статью, обязательно пишите мне в лс 
    • Автор: 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
       
  • Наш выбор

×
×
  • Создать...

Важная информация

Используя этот сайт, вы автоматически обязуетесь соблюдать наши Правила и Политика конфиденциальности.
Чтобы сделать этот веб-сайт лучше, мы разместили cookies на вашем устройстве. Вы можете изменить свои настройки cookies, в противном случае мы будем считать, что вы согласны с этим.