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
GhostDZ

[ГАЙД] Build Vectors-вращение предметов стройки. Только для P4L 2.34 и выше

Recommended Posts

З.Ы. Как-то давно я психанул и удалил все свои гайды. Пришло время вернуть все на места своя :)

 

Вращение и наклон предметов для стройки.

Как сделать:

 

Скачаем это https://github.com/strikerforce/DayzBuildVectors

 

Все что в папке P4L_Snap_Replacements зальем в папку Custom (внимательно изучите все файлы во всех папках, если у вас стоит SC 2.0 или 3.0 или любой другой скрипт использующий sqf файлы из папки замены нужно перенести изменения из ваших файлов в новые)

 

1. Открываем server_monitor.sqf

 

Ищем:

if (!_wsDone) then {
    if (count _worldspace >= 1) then { _dir = _worldspace select 0; };
    _pos = [getMarkerPos "center",0,4000,10,0,2000,0] call BIS_fnc_findSafePos;
    if (count _pos < 3) then { _pos = [_pos select 0,_pos select 1,0]; };
    diag_log ("MOVED OBJ: " + str(_idKey) + " of class " + _type + " to pos: " + str(_pos));
};

Ниже добавляем:

_vector = [[0,0,0],[0,0,0]];
_vecExists = false;
_ownerPUID = "0";   
if (count _worldspace >= 3) then{
    if(count _worldspace == 3) then{
            if(typename (_worldspace select 2) == "STRING")then{
                _ownerPUID = _worldspace select 2;
            }else{
                 if(typename (_worldspace select 2) == "ARRAY")then{
                    _vector = _worldspace select 2;
                    if(count _vector == 2)then{
                        if(((count (_vector select 0)) == 3) && ((count (_vector select 1)) == 3))then{
                            _vecExists = true;
                        };
                    };
                };                  
            };

    }else{
        //Was not 3 elements, so check if 4 or more
        if(count _worldspace == 4) then{
            if(typename (_worldspace select 3) == "STRING")then{
                _ownerPUID = _worldspace select 3;
            }else{
                if(typename (_worldspace select 2) == "STRING")then{
                    _ownerPUID = _worldspace select 2;
                };
            };


            if(typename (_worldspace select 2) == "ARRAY")then{
                _vector = _worldspace select 2;
                if(count _vector == 2)then{
                    if(((count (_vector select 0)) == 3) && ((count (_vector select 1)) == 3))then{
                        _vecExists = true;
                    };
                };
            }else{
                if(typename (_worldspace select 3) == "ARRAY")then{
                    _vector = _worldspace select 3;
                    if(count _vector == 2)then{
                        if(((count (_vector select 0)) == 3) && ((count (_vector select 1)) == 3))then{
                            _vecExists = true;
                        };
                    };
                };
            };

        }else{
            //More than 3 or 4 elements found
            //Might add a search for the vector, ownerPUID will equal 0
        };
    };
}; 

Далее ищем:

_object setVariable ["ObjectID", _idKey, true];

Ниже добавляем (если есть дописывать не надо):

_object setVariable ["ownerPUID", _ownerPUID, true];

Ищем:

_object setdir _dir;

Ниже добавляем:

if(_vecExists)then{
    _object setVectorDirAndUp _vector;
}; 

Ищем:

if (DZE_GodModeBase) then {

Сразу над добавляем:

_object setVariable["memDir",_dir,true];

2. Далее двигаемся в server_functions.sqf

 

Находим:

dayz_objectUID2 = {

И всю эту функция заменяем на:

dayz_objectUID2 = {
    private["_position","_dir","_key","_element","_vector","_set","_vecCnt","_usedVec"];
    _dir = _this select 0;
    _key = "";
    _position = _this select 1;

    if((count _this) == 2) then{
        {
            _x = _x * 10;
            if ( _x < 0 ) then { _x = _x * -10 };
            _key = _key + str(round(_x));
        } count _position;
        _key = _key + str(round(_dir));
    }else{
        _vector = [];
        _usedVec = false;
        {
            _element = _x;
            if(typeName _element == "ARRAY") then{
                _vector = _element;
                if((count _vector) == 2)then{
                    if(((count (_vector select 0)) == 3) && ((count (_vector select 1)) == 3))then{
                            {
                                _x = _x * 10;
                                if ( _x < 0 ) then { _x = _x * -10 };
                                _key = _key + str(round(_x));
                            } count _position;

                            _vecCnt = 0;
                            {
                                _set = _x;
                                {
                                    _vecCnt = _vecCnt + (round (_x * 100));

                                } foreach _set;

                            } foreach _vector;
                            if(_vecCnt < 0)then{
                                _vecCnt = ((_vecCnt * -1) * 3);
                            };
                            _key = _key + str(_vecCnt);
                            _usedVec = true;
                    };
                };
            };
        } count _this;

        if!(_usedVec) then{
                {
                    _x = _x * 10;
                    if ( _x < 0 ) then { _x = _x * -10 };
                    _key = _key + str(round(_x));
                } count _position;
                _key = _key + str(round(_dir));
        };


    };
    _key
};

Далее рекомендуется установить вот это: http://epochmod.com/forum/index.php?/topic/15813-release-v104-precise-base-building-persistent-bases-after-restart-updated-021114/ - но не обязательно

 

3. Идем в наш compile.sqf

 

И сразу под первым player_build = добавляем:

fnc_SetPitchBankYaw =       compile preprocessFileLineNumbers "Custom\BuildVectors\fnc_SetPitchBankYaw.sqf";
DZE_build_vector_file =         "Custom\BuildVectors\build_vectors.sqf";
build_vectors =                 compile preprocessFileLineNumbers DZE_build_vector_file;

Перемещаемяся в init.sqf и под DZE_BuildOnRoads вставляем:

DZE_noRotate = []; //Предметы которые нельзя вращать. ПР: DZE_noRotate = ["ItemVault"]
DZE_vectorDegrees = [0.01, 0.1, 1, 5, 15, 45, 90];
DZE_curDegree = 45; //Стартовый угол наклона
DZE_dirWithDegrees = true; //При нажатии Q&E, использовать другие углы наклона

Дабы избежать ошибок в клиентском логе, откройте свой veriables.sqf и в AllowdActions добавте:

s_player_toggleDegree = -1;
s_player_toggleDegrees=[];
degreeActions = -1;
s_player_toggleVector = -1;
s_player_toggleVectors=[];
vectorActions = -1;

 

 

4. Далее, встаем со стула, стучим в шаманско-админский бубен 3 раза, ставим мне +

 

Установка закончена, не выполнив 4-й пункт скрипт не заработает :biggrin:

Edited by GhostDZ (see edit history)

Share this post


Link to post
Share on other sites



в  server_monitor.sqf  нужно найти if (DZE_GodModeBase) then { ,а что если нет данной строки??

Share this post


Link to post
Share on other sites

в  server_monitor.sqf  нужно найти if (DZE_GodModeBase) then { ,а что если нет данной строки??

в стоковом сервере есть

Share this post


Link to post
Share on other sites

в стоковом сервере есть

у меня не стоковый))без этой строки никак?)

 

в стоковом сервере есть

может подскажите пожалуйста в какую область её можно добавить?

Share this post


Link to post
Share on other sites

У меня на сервере установлен уже Snap Pro 1.4

Если установлю этот скрипт, работать будет!?

 

135647.png

Share this post


Link to post
Share on other sites

У меня на сервере установлен уже Snap Pro 1.4

Если установлю этот скрипт, работать будет!?

 

 

 

Вам нужно внимательно, аккуратно, любя совместить файлы из архива с тему что у вас уже есть

Share this post


Link to post
Share on other sites

Установил по инструкции (ПУНКТ 4 Тоже выполнил)

При стройке появляется инструкция (типа нажмите Q\E для поворота), а в scroll меню нету функции включения прилипания и "Повернуть Объект на "N" градусов

В чем может быть проблема 

 

135647.png

Share this post


Link to post
Share on other sites

Установил по инструкции (ПУНКТ 4 Тоже выполнил)

При стройке появляется инструкция (типа нажмите Q\E для поворота), а в scroll меню нету функции включения прилипания и "Повернуть Объект на "N" градусов

В чем может быть проблема 

Вариантов уйма, от проверки скролл меню в инфи

До неправильных compile и fn_selfaction

Вы на чистый сервер ставили?

Share this post


Link to post
Share on other sites

 

Спасибо.

Антихак я выключил, это ничего не изменило.

 

Сейчас обратил внимание на приписку в названии темы "Только для P4L 2.34

и выше" и меня осинило, может нужно поставить что-то что всем этим руководит

так сказать?Этот P4L, или внутри архива\инструкции и так всё было уже?

эта версия именно под p4l. если вы его не используете, соответственно и ставить вам это не надо.

Share this post


Link to post
Share on other sites

 

После установки, перестали работать сейфы, даже через админку, меню не появляется, кто-нибудь сталкивался?

P4L ставил по этому гайду

http://epochmod.com/forum/index.php?/topic/11042-release-a-plot-for-life-v25-keep-your-buildables-on-death-take-plot-ownership/

Build Vectors по этому гайду

fn_selfactions смотрите

в клиентский лог смотрите. там всё будет.

Edited by dimquea (see edit history)

Share this post


Link to post
Share on other sites
 

поправьте гайд.

"2.34 и выше" - не корректно, с 2.5 работать не будет.

Share this post


Link to post
Share on other sites

с 2.5 работает прекрасно

Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

как бы намекает.

Share this post


Link to post
Share on other sites

Я пытался ставить с 2.5, в процессе установки ошибок скорее всего не было, так как все действия по установке я скрупулёзно повторил 6 раз, на своей и на чистой сборках, результат описан выше.

 

я устанавливал VB на все версии P4L, ушел с версии 2.5 только потому что не работает KeyChange а его переписывать влом

Share this post


Link to post
Share on other sites

Да.

Эта проблема возникла не только у него. Установил поверх снапа 1.4 если не ошибаюсь. И возникла таже самоя проблема антихак купленый на оф сайте, функция AllowedActions выключена по умолчанию. Устонавливал без дополнительного. Щас занемаюсь этой проблемой, если найду ошибку, дам всем исправленую версию

Share this post


Link to post
Share on other sites

Кривой гайд. или Скрипт. Все работает, А СНАП НЕ ПАШЕТ. Я его добавил в меню скрол но он не заработал, пытаюсь исправить...

Share this post


Link to post
Share on other sites

Кривой гайд. или Скрипт. Все работает, А СНАП НЕ ПАШЕТ. Я его добавил в меню скрол но он не заработал, пытаюсь исправить...

Все рабочее ибо мною проверялось по этому гайду. Скролл меню инфи блочит по умолчанию. В AHconfig.sqf отключите проверку скролла или исключите.

Share this post


Link to post
Share on other sites

Все рабочее ибо мною проверялось по этому гайду. Скролл меню инфи блочит по умолчанию. В AHconfig.sqf отключите проверку скролла или исключите.

Да отключена эта функция. Если она отключена значит она отключена. Исключение тут не поможет.

 

Доказательство :

/*  Check Actions ?       */ /* _CSA = false; */	/* true or false */	/* this checks mousewheel actions */

И если вы сами не покупали никогда инфистар то не нужно говорить что там какие-то функции включены либо не включены по умолчанию.

У меня по умолчанию строка была точно такая же только без знаков "Каментариев"  

 

/* Знаки которые компелятор распознает как знаки закомментированный текст  */

Это можно найти в любой книге программирования на коде C++ c# на первых 20 страницах.
Подведем итог! 
 
Исключения функции - Actions не помогло.

 

9302581_m.jpg

Edited by aleksejbirula (see edit history)

Share this post


Link to post
Share on other sites

Да отключена эта функция. Если она отключена значит она отключена. Исключение тут не поможет.

 

Доказательство :

/*  Check Actions ?       */ /* _CSA = false; */	/* true or false */	/* this checks mousewheel actions */

И если вы сами не покупали никогда инфистар то не нужно говорить что там какие-то функции включены либо не включены по умолчанию.

У меня по умолчанию строка была точно такая же только без знаков "Каментариев"  

 

/* Знаки которые компелятор распознает как знаки закомментированный текст  */

Это можно найти в любой книге программирования на коде C++ c# на первых 20 страницах.
Подведем итог! 
 
Исключения функции - Actions не помогло.

 

9302581_m.jpg

Учить кодингу меня не надо, побольше вас знаю.

У инфи по разному, что-то включено, а что-то нет + у меня каждая версия инфи есть и я вкурсе всех его изменений и т.п. Я сказал вам возможный ответ по шаблону.

Лог Клиента смотрели на Ошибки?

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 magliner
      Привет ! Ну вот моя история с вопросом в конце.. Я фанат Дэйз ванилы черноруси, заколебало сидеть на бездушных серверах со слабой админкой и терять лут от софтеров, решил создать под свои скромные запросы около ванильный сервер.. Нашел хорошего исполнителя, быстро и четко запустили отладили и ВОТ я имею СВОЙ сервер.. клас! вечер восторга и изучения
      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
    • By SemKa1407
      Ссылка на архив: https://disk.yandex.ru/d/WmYW5AcZozGSiA
      Инструкция, написанная на коленке, есть в архиве (для полных нулей).
    • By Troy1
      Всем привет. Подскжите ну или помогите пожалуйста решить вопрос.
      Вопрос звучит так. На сервере есть трейдер зоны и базы игроков. 
      Если в течение определённого времени, на пример 1 - 2 часа с машиной не кто не взаимодействует и машина не находится в зоне трейдера или на теретории базы, то машина отлетает в гараж или на штраф стоянку.
      На сервере используется TraderPlus.
       
      Есть такие решения у кого?
      За ранние благодарю.
    • By radical
      Доброго времени суток! Хотел вот поинтересоваться, плюс по возможности чтобы растолковали что к чему.
      Суть вопроса: хочу на сервер сделать те же самые ванильные вещи, но, кхм, размер клеточек у ванильных по меньше прописать, чтоб в инвентаре поместились. Как это сделать я примерно понял, config.cpp я поправлю, но встал вопрос ребром:  но кроме этого файла, что надо делать. Вопросов много появляется, а в интернете информацию сложно накопать. Решил попросить помощи у знающих людей.
      1. По возможности хотелось бы от начала до конца увидеть весь путь изменения одного ванильного предмета
      2. Из просьбы что выше появляется вопрос: с остальными ванильными предметами такое же решение делать? ( Это при условии, если тема 1 решится)
       
      P.S. Если будут какие то файлы, ссылки, да даже просто объяснения, это меня сдвинет с мёртвой точки, а то завис)
    • By fedotovyasha
      Где можно достать карту в очень высоком разрешении, все в интернете такого себе качества. Хочу сделать свою карту
  • 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.