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

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

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

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

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

Изменение получаемой человечности за помощь другим игрокам

Все привет :)
Задался мыслью как изменить получаемое количество хюманити за помощь игрокам ( кровь, обезбол, бинты, морфин ) на своем сервере.
Решил покапаться в дейз коде и нашел папочку medicine, в которой находятся "скрипты" подобных взаимодействий. Внутри лежит "контрольный" фаил player_useMeds.sqf , который направляет к остальным файлам медикаментов. Перенес контрольный и 4 других фаила ( кровь, обезбол, морфин, бинты ) в свою папочку со скриптами. В compiles.sqf прописал новый адрес к контрольному фаилу, а в контрольном фаиле новые адреса к тем четырем другим фаилам, в которых позже было изменено количество даваемого хюманити.

Вроде все должно было заработать, но хюманити не изменилось, люди не могут потреблять антибиотики и тд.

Прошу помочь :) потом запилю красивый гаид)

P.S. Если подобная тема есть на форуме - прошу не пинать, честно искал)
P.S.2 Прошу прощения за бессвязную речь, 3 бессонных ночи -_-

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

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


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

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

  • 0

1. Это не нужно - (оставь как было).

    player_useMeds =            compile preprocessFileLineNumbers "scripts\medical\player_useMeds.sqf";

2. Нужный тебе файл - fn_damageActions.sqf

3. Файл compiles.sqf  - измени путь к нему(к п.2) на свой.

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


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





  • 0

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

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


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

Ап. Проблему так и не решил, сейчас скину то, как все прописано.

 

Корень:

8VaMS.png  

Папка Scripts:  ( всё помещено туда, имхо так проще и глаза не мозолит )

 

8VaNL.png

 

Папка Medical:

 

8VaOk.png

 

Соответственно редактировал compiles.sqf:

 

    fnc_usec_selfActions = compile preprocessFileLineNumbers "scripts\fn_selfActions.sqf";

 

    player_useMeds =            compile preprocessFileLineNumbers "scripts\medical\player_useMeds.sqf";
 
if (!isDedicated) then {
    player_build        = compile preprocessFileLineNumbers "scripts\snap_build\player_build.sqf";
    player_buildControls    = compile preprocessFileLineNumbers "scripts\snap_build\player_buildControls.sqf";
    snap_object        = compile preprocessFileLineNumbers "scripts\snap_build\snap_object.sqf";
};

 

 

и player_useMeds.sqf в папке Medical:

 

Бла бла бла...
 

switch (_item) do {
    case "ItemBandage": {
        _id = [0,0,0,[player]] execVM "scripts\medical\bandage.sqf";
    };
    case "ItemMorphine": {
        _id = [0,0,0,[player]] execVM "scripts\medical\morphine.sqf";
    };
    case "ItemPainkiller": {
        _id = [0,0,0,[player]] execVM "scripts\medical\painkiller.sqf";
    };
    case "ItemAntibiotic": {
        _id = [0,0,0,[player]] execVM "scripts\medical\antibiotics.sqf";
    };

бла бла бла...

 

 

Вроде делал все правильно, а нифига не работает! Как быть? :)

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


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

1. Это не нужно - (оставь как было).

    player_useMeds =            compile preprocessFileLineNumbers "scripts\medical\player_useMeds.sqf";

2. Нужный тебе файл - fn_damageActions.sqf

3. Файл compiles.sqf  - измени путь к нему(к п.2) на свой.

Благодарю, все работает)

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


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

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

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

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

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

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

Войти

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

Войти сейчас

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

    • Автор: GaspArt
      Добрый вечер ребята, я опять к вам с бедой)

      Пробовал сделать, чтобы после смерти игрока у него отнималось хюманити. Собсно пошаманил с player_death.sqd, замедово изменив путь в compiles и инфистаре. Добавил туда небольшой код:

       
      _body setVariable ["deathType",_method,true]; }; //////////// начало добавленного кода _DeadHumanity = player getVariable["humanity",0]; _DeadHumanity = _DeadHumanity - 100; player setVariable ["humanity", _DeadHumanity , true]; //////////// конец добавленного кода terminate dayz_musicH; terminate dayz_slowCheck;
      В итоге, после смерти хюманити отменяется, но спавнюсь с прежним количеством. 

      Гуглить гуглил - нашел только подобные же вопросы.

      В спавне\смерте вооообще не шарю. Вот собсно просьба помочь. Спасибо, ребят)
    • Автор: overkill
      Всем привет! Поставил систему 2,0, и все вроде бы хорошо, НО, иногда с банка у игроков пропадают деньги, а также бывают случаи что у игрока после рестарта или перезахода деньги уходят в минус! Решение с епохмода которое кидал GhostDZ, в темах ниже, не помогло!
       
      Помогите пожалуйста!
    • Автор: GaspArt
      Как изменить количество получаемого хьюманити за помощь игрокам
      1. Качаем прикрепленный файл, открываем папку с миссией
      2.а. Если миссия голая и в ней не имеется файла compiles.sqf, то просто скидываем все файлы в корень папки миссии и переходим к пункту настройки.
      2.б. Если compiles.sqf имеется, то добавляем в него строку:
      fnc_usec_damageActions = compile preprocessFileLineNumbers "$НАЗВАНИЕ ПАПКИ, В КОТОРОЙ ЛЕЖИТ COMPILES.SQF$\fn_damageActions.sqf";   
      ----------------------------------------------------------------------------------------------------------------
       
       
       
      Скидываем из папки scripts прикрепленного документа фаилы в папку с compiles.sqf
      ----------------------------------------------------------------------------------------------------------------
      3. Открываем fn_damageActions.sqf, через поиск находим блок с путями при помощи слов:" //Allow player to bandage ", и редактируем строки:
       
      //Allow player to bandage if(_injured and _hasBandage) then { r_action = true; _action = _unit addAction [localize "str_actions_medical_04", "$НАЗВАНИЕ ПАПКИ, В КОТОРОЙ ЛЕЖИТ COMPILES.SQF$\medical\bandage.sqf",[_unit], 0, true, true, "", ""]; r_player_actions set [count r_player_actions,_action]; }; //Allow player to give Epinephrine if(_unconscious and _hasEpi) then { r_action = true; _action = _unit addAction [localize "str_actions_medical_05", "$НАЗВАНИЕ ПАПКИ, В КОТОРОЙ ЛЕЖИТ COMPILES.SQF$\medical\epinephrine.sqf",[_unit], 0, true, true]; r_player_actions set [count r_player_actions,_action]; }; //Allow player to give Morphine if((_legsBroke or _armsBroke) and _hasMorphine) then { r_action = true; _action = _unit addAction [localize "str_actions_medical_06", "$НАЗВАНИЕ ПАПКИ, В КОТОРОЙ ЛЕЖИТ COMPILES.SQF$\medical\morphine.sqf",[_unit], 0, true, true, "", ""]; r_player_actions set [count r_player_actions,_action]; }; //Allow player to give Painkillers if(_inPain and _hasPainkillers) then { r_action = true; _action = _unit addAction [localize "str_actions_medical_07", "$НАЗВАНИЕ ПАПКИ, В КОТОРОЙ ЛЕЖИТ COMPILES.SQF$\medical\painkiller.sqf",[_unit], 0, true, true, "", ""]; r_player_actions set [count r_player_actions,_action]; }; //Allow player to transfuse blood if(_lowBlood and _hasBlood) then { r_action = true; _action = _unit addAction [localize "str_actions_medical_08", "$НАЗВАНИЕ ПАПКИ, В КОТОРОЙ ЛЕЖИТ COMPILES.SQF$\medical\transfusion.sqf",[_unit], 0, true, true, "", ""]; r_player_actions set [count r_player_actions,_action]; };  
       
       
       
      Настройка:
      1. Заходим в папку medical и откроем для примера фаил transfusion.sqf
      2. Внизу фаила будет блок:
      if (_finished) then { _unit setVariable["LastTransfusion",time,true]; _unit setVariable["USEC_lowBlood",false,true]; _num_removed = ([player,"ItemBloodbag"] call BIS_fnc_invRemove); if(_num_removed == 1) then { /* PVS/PVC - Skaronator */ PVDZE_send = [_unit,"Transfuse",[_unit,player]]; publicVariableServer "PVDZE_send"; [player,20] call player_humanityChange; }; } else { r_interrupt = false; player switchMove ""; player playActionNow "stop"; };   
      Число 20 означает сколько человечности дадут тому, кто переливал кровь. 
      По такой же системе редактируем другие фаилы.

      ---------------------------------------------------------------------------------------------
      Архив с фаилами: http://puu.sh/8WvuW.rar

      Для наглядности покажу, как по сути должно все выглядеть
       
      :

      Отдельное спасибо модератору NoNameUltima за помощь)

       
  • Наш выбор

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

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

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