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
  • 0
hekut144

Вопрос относительно добавления новых медикометов

Хочу добавить новый бинт (с шансом заражения) В compiles.sqf изменил путь к player_useMeds, в player_useMeds.sqf добавил case с новым итемом и новым путем перевязки (бинта), дублирую файл перевязки (бинта), в меню действий ПКМ по предмету добавил вызыв скрипта перевязки (бинта), в данном скрипте изменил используемый (удаляемый предмет), короче итог в том что предмет удаляется кровотечение не прекращается 

 

server_sendToClient.sqf играет роль какую-то там есть case который ссылается на publicEH.sqf?

Edited by hekut144 (see edit history)

Share this post


Link to post
Share on other sites

12 answers to this question

Recommended Posts

  • 0

1. Ты вот в этот скрипт нихрена не добавил diag_log, а что ты хочешь в РПТ увидеть? - Ты добавь после каждого действия хоть какой то вывод.

Если ты хочешь стандарт использовать и не вникать, то этого пункта достаточно, и дальше можно не читать.

 

2. Сам скрипт (я так понимаю стандартный), убог и печален.... Отсюда совет -

Возьми не это дерьмо, а хотя бы сам -

\z\addons\dayz_code\medical\publicEH\medBandaged.sqf

т.е. копирни, то что в нем. Там конкретно лечение.

Ну а если нужны проверочки, задержечки и т.п., то совмести.

Это конечно, если тебе не влом, и ты не абы как пишешь.

3.  

if(_num_removed == 1) then {

 

        if (vehicle player != player) then {

            _display = findDisplay 106;

            _display closeDisplay 0;

        };   

Нафига оно?

4.  

PVDZE_send = [_unit,"Bandage",[_unit,player]];

            publicVariableServer "PVDZE_send";
            [player,20] call player_humanityChange;
 
Давать 20 хумы за бинт на кореша?))
Бинты - грязь. Герой\Бандит за 5 минут игры обеспечены.
 
P.S. В целом, скрипт лечения бинтом, это 8 строк кода.
+ твое заражение, шансовое, еще 1 строка, если с настройками шансов и т.п. пусть 3 строки.
Остальное - проверки, типа - Не в тачке ли персонаж и т.п.


r_player_injured    =    false;
"dynamicBlur" ppEffectAdjust [0]; "dynamicBlur" ppEffectCommit 5;        
r_player_handler    =    false;
if (r_player_blood == r_player_bloodTotal) then
    {player setVariable["USEC_lowBlood",false,true];};
_display                =    uiNamespace getVariable 'DAYZ_GUI_display';
_control                =    _display displayCtrl  1303;
_control ctrlShow false;
dayz_sourceBleeding =    objNull;
{player setVariable[_x, false, true];} forEach USEC_woundHit;
player setVariable ["USEC_injured", false, true];
 

Это лечение для персонажа.

Для друга и т.п. можно дополнить.

Share this post


Link to post
Share on other sites



  • 0

Еще один олень, задаю вопрос, в положенном для вопросов разделе, высказываю предположение, он мне говорит посмотреть, интересно откуда я вообще упомянул файл, дайте ка подумаем, наверное я смотрел его, сейчас мне тыкать будут относительно оскорблений, нет это не оскорбление, а такой же не увожительный ответ как и поступил мне, если бы было понятно и понятно было что на что ссылается я бы и создавал топик

Edited by hekut144 (see edit history)

Share this post


Link to post
Share on other sites
  • 0

ты в bandage.sqf заменил в строчке

_num_removed = ([player,"ItemBandage"] call BIS_fnc_invRemove);

ItemBandage на класс своего предмета?

Share this post


Link to post
Share on other sites
  • 0

Да, после этого и стал пропадать иной предмет, но кровотечение не прекращается, пытался даже со стандартными предметами из эпоча



в архивах dayz_code и dayz_server искал по ключ слову bandage, нашел уйму упоминаний, вот понять не могу что за что цепляется и что нужно продублировать
 

мне вообще кажется что должно хватать файла bandage.sqf

Edited by hekut144 (see edit history)

Share this post


Link to post
Share on other sites
  • 0

1. Я чет не понял - что значит новый бинт - это новый объект? Он как то по другому выглядит? На нем другая надпись? Или это тот же самый бинт, только шанс заражения добавить надо?

2. Если тот же самый бинт, то нахрена там воротить какой то бред, если достаточно добавить в мед. функцию бинта шанс на заражение, и само заражение согласно шансу.

3. Ну ты тут можешь еще на рассказать, много чего... скрипт то лечения бинта где?

4. Диагностика - diag_log добавлена? - Сам скрипт лечения срабатывает? Или ты на авось тут строчишь - мб у тебя и скрипт то не срабатывает. Где РПТ то?

 

P.S. Все эти пункты можно было бы и избежать, и гораздо быстрее все сделать, если бы ты озаботился доп. сообщениями в РПТ, и сразу бы расписал тут, как и что, заодно приложив РПТ.

Share this post


Link to post
Share on other sites
  • 0

Еще один олень, задаю вопрос, в положенном для вопросов разделе, высказываю предположение, он мне говорит посмотреть, интересно откуда я вообще упомянул файл, дайте ка подумаем, наверное я смотрел его, сейчас мне тыкать будут относительно оскорблений, нет это не оскорбление, а такой же не увожительный ответ как и поступил мне, если бы было понятно и понятно было что на что ссылается я бы и создавал топик

лол. олень тут ты, если не способен понять такие простые вещи.

Share this post


Link to post
Share on other sites
  • 0

Возникла идея добавить новый предмет по аналогии бинта который будет останавливать кровотечение но будет иметь шанс заражения (обычный бинт не затрагивать), я вытянул из клиента епоча файл bandage.sqf, в нем изменил удаляемый предмет, в меню действий ПКМ добавил пункт перевязки, при нажатии на данный пункт срабатывает мой новый bandage.sqf в котором прописано удаление предмета, новый предмет удаляется, анимация перевязки проходит (анимация medic которая в bandage.sqf) но кровотечение не прекращается 

Edited by hekut144 (see edit history)

Share this post


Link to post
Share on other sites
  • 0

3. Ну ты тут можешь еще на рассказать, много чего... скрипт то лечения бинта где?


4. Диагностика - diag_log добавлена? - Сам скрипт лечения
срабатывает? Или ты на авось тут строчишь - мб у тебя и скрипт то не
срабатывает. Где РПТ то?

 

Будем по 2 вопроса в сутки)

Share this post


Link to post
Share on other sites
  • 0

bandage.sqf:

 

 

// bleed.sqf
 
private ["_started","_finished","_animState","_isMedic","_id","_unit","_display"];
 
disableserialization;
 
_unit = (_this select 3) select 0;
 
call fnc_usec_medic_removeActions;
r_action = false;
 
if (vehicle player == player) then {
    //not in a vehicle
    player playActionNow "Medic";
};
 
[1,1] call dayz_HungerThirst;
 
r_interrupt = false;
_animState = animationState player;
r_doLoop = true;
_started = false;
_finished = false;
[player,"bandage",0,false] call dayz_zombieSpeak;
while {r_doLoop} do {
    _animState = animationState player;
    _isMedic = ["medic",_animState] call fnc_inString;
    if (_isMedic) then {
        _started = true;
    };
    if (_started && !_isMedic) then {
        r_doLoop = false;
        _finished = true;
    };
    if (r_interrupt) then {
        r_doLoop = false;
    };
    if (vehicle player != player) then {
        sleep 3;
        r_doLoop = false;
        _finished = true;
    };
    sleep 0.1;
};
r_doLoop = false;
 
if (_finished) then {
 
    _num_removed = ([player,"ItemTrashToiletpaper"] call BIS_fnc_invRemove);
    if(_num_removed == 1) then {
 
        if (vehicle player != player) then {
            _display = findDisplay 106;
            _display closeDisplay 0;
        };    
 
        if ((_unit == player) || (vehicle player != player)) then {
            //Self Healing
            _id = [player,player] execVM "\z\addons\dayz_code\medical\publicEH\medBandaged.sqf";
            dayz_sourceBleeding =    objNull;
        } else {
            /* PVS/PVC - Skaronator */
            PVDZE_send = [_unit,"Bandage",[_unit,player]];
            publicVariableServer "PVDZE_send";
            [player,20] call player_humanityChange;
        };
 
        {_unit setVariable[_x,false,true];} count USEC_woundHit;
        _unit setVariable ["USEC_injured",false,true];
 
    };
} else {
    r_interrupt = false;
    if (vehicle player == player) then {
        [objNull, player, rSwitchMove,""] call RE;
        player playActionNow "stop";
    };
};

 

 

 

ArmA2OA.RPT:

http://pastebin.com/Kt3FSCXf

 

arma2oaserver.RPT:

http://pastebin.com/jXCcV5Th

 

Действительно ошибки есть, почему-то не додумался глянуть логи, не могли бы вы пожалуйста подсказать пожалуйста как исправить, менял лишь итем от стандартного скрипта

Добавить diag_log в начало и конце файла? Мол подгрузка и загрузка окончена? Скрипт я считаю срабатывает, т.к. проходит анимация и удаляется предмет

Добавил diag_log в начало и конец файла в логах появилось

"Идет загрузка кастумного файла перевязки" и "Загрузка кастумного файла перевязки успешно закончена"

И уйма ерроров в логах:

"Идет загрузка кастумного файла перевязки"
Error in expression <lay"];
 
disableserialization;
 
_unit = (_this select 3) select 0;
 
call fnc_usec>
  Error position: <_this select 3) select 0;
 
call fnc_usec>
  Error Undefined variable in expression: _this
File mpmissions\__CUR_MP.Chernarus\medical\bandage.sqf, line 8
"[АнтиХак] - [Клиент]: 04012015IAHAT342 - Успешно загружен на клиенте ID1983 (13.707)"
"[АнтиХак] - [RandVar]: randvar1 создал randvar27 за (13.707)"
Error in expression <tNumber(configFile >> "CfgMagazines" >> _loot >> "count");
if(_loot_count>1) the>
  Error position: <_loot >> "count");
if(_loot_count>1) the>
  Error Undefined variable in expression: _loot
File z\addons\dayz_code\compile\zombie_generate.sqf, line 100
Error in expression <CLChances select _index;
_loot = _array select (_weights select (floor(random (c>
  Error position: <select (_weights select (floor(random (c>
  Error Zero divisor
File z\addons\dayz_code\compile\zombie_generate.sqf, line 98
Error in expression <tNumber(configFile >> "CfgMagazines" >> _loot >> "count");
if(_loot_count>1) the>
  Error position: <_loot >> "count");
if(_loot_count>1) the>
  Error Undefined variable in expression: _loot
File z\addons\dayz_code\compile\zombie_generate.sqf, line 100
Error in expression <CLChances select _index;
_loot = _array select (_weights select (floor(random (c>
  Error position: <select (_weights select (floor(random (c>
  Error Zero divisor
File z\addons\dayz_code\compile\zombie_generate.sqf, line 98
Warnings in z\addons\dayz_communityassets\models\can_unlabeled_clean_empty.p3d:shadow(1000)
Warnings in z\addons\dayz_communityassets\models\can_boneboy_clean_empty.p3d:shadow(1000)
Error in expression <er,20] call player_humanityChange;
};
 
{_unit setVariable[_x,false,true];} count>
  Error position: <_unit setVariable[_x,false,true];} count>
  Error Undefined variable in expression: _unit
File mpmissions\__CUR_MP.Chernarus\medical\bandage.sqf, line 69
Error in expression < call player_humanityChange;
};
 
{_unit setVariable[_x,false,true];} count USEC_>
  Error position: <setVariable[_x,false,true];} count USEC_>
  Error Type Nothing, expected Bool
File mpmissions\__CUR_MP.Chernarus\medical\bandage.sqf, line 69
Error in expression <106;
_display closeDisplay 0;
};    
 
if ((_unit == player) || (vehicle player != p>
  Error position: <_unit == player) || (vehicle player != p>
  Error Undefined variable in expression: _unit
File mpmissions\__CUR_MP.Chernarus\medical\bandage.sqf, line 58
Warning: z\addons\dayz_communityassets\models\razor.p3d:0 Error while trying to generate ST for points: 214, 349, 208
Error in expression <e[_x,false,true];} count USEC_woundHit;
_unit setVariable ["USEC_injured",false,>
  Error position: <_unit setVariable ["USEC_injured",false,>
  Error Undefined variable in expression: _unit
File mpmissions\__CUR_MP.Chernarus\medical\bandage.sqf, line 70
"Загрузка кастумного файла перевязки успешно закончена"

Edited by hekut144 (see edit history)

Share this post


Link to post
Share on other sites
  • 0

Спасибо большое, попробую, попытался стандартный medBandaged.sqf действий никаких не происходит т.е. кровь не остановилась

Попробовал ваш, кровотечение прекратилось, огромное спасибо!

Edited by hekut144 (see edit history)

Share this post


Link to post
Share on other sites
  • 0

Выскакивала ошибка то ли с _display то ли _control, думал нужно добавить сверху:

private ["_control","_display"];

изменений нет, ошибка осталась, добавил удаление предмета:

_num_removed = ([player,"ItemTrashToiletpaper"] call BIS_fnc_invRemove);

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

 

и так же пытаюсь добавить инфекцию, но инфекция не срабатывает 

player setVariable["USEC_infected",true,true];

 

С инфекцией разобрался, даже с процентами, вообщем не могу решить след. проблему при исп. нового бинта вылазит окно со следующим содержанием:

Variable '_display' does not support serialization. Call 'disableSerialization' in the current script (maybe 'mpmissions\__CUR_MP.Chernarus\medical\bandage.sqf') if you need to use it.

Ошибку тоже исправил, осталось лишь как-то сделать закрытия ПКМ меню после использовования, либо не могли бы вы пожалуйста подсказать часть кода для закрытия инвентаря

Все, всем спасибо, разобрался сам

Edited by hekut144 (see edit history)

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

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