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

Добавление новой функции в server_updateObject.sqf (не обновляет информацию в бд)

Помогите пожалуйста, добавил новую функцию, не хочет сохранять данные в базу (обновлять)

Часть скрипта:
PVDZE_veh_Update = [_object,"all2"];
publicVariableServer "PVDZE_veh_Update";

server_updateObject.sqf (case):

case "all2": {
        call _object_position2;
        };

server_updateObject.sqf (func):

_object_position2 = {
    private["_worldspace","_fuel","_key"];
    _worldspace = _object call serializeExtendedObjectData;
    
    diag_log "_worldspace";
    diag_log _worldspace;
    
    _fuel = 0;
    if (_object isKindOf "AllVehicles") then {
        _fuel = fuel _object;
    };

    diag_log "_fuel";
    diag_log _fuel;
    
    _key = format["CHILD:305:%1:%2:%3:",_objectID,_worldspace,_fuel];
    
    diag_log "_key";
    diag_log _key;
    
    //diag_log ("HIVE: WRITE: "+ str(_key));
    _key call server_hiveWrite;
    
    diag_log "_key";
    diag_log _key;
};

Данные генерируются для записи верно, но записи нет, ошибок тоже нет..

Edited by hekut144 (see edit history)

Share this post


Link to post
Share on other sites

8 answers to this question

Recommended Posts

  • 0

Подскажите пожалуйста в чем у меня проблема\ошибка?

Share this post


Link to post
Share on other sites



  • 0

Нашел проблему, _objectID = 0, скрипт не знает кому апдейтить данные, но момент один для моих строений (новых) используется кастумный (snap+vector и куча всякой хрени) плеер_байлд, вроде он для обычных обьектов пишет _objectID, как решить проблему можно?

Edited by hekut144 (see edit history)

Share this post


Link to post
Share on other sites
  • 0

Нет, вру в базе есть ObjectID но функция не считывает(хотя ее и нет в функции - считывания), выдает 0 
6:07:15 "_objectID: 0"
и ключ _key
6:07:15 "_key: CHILD:305:0:[19.7298,"[6554.269531,7262.731445,0.53299]",[1,0,[],[],[]],"76561198049704275",[1,2,[],[],[]]]:0:"

Помогите пожалуйста составить _key для считывания данных из таблицы object_data столбца objectID или как это дело реализовать

Edited by hekut144 (see edit history)

Share this post


Link to post
Share on other sites
  • 0

Подскажите пожалуйста как считать _ObjectID обьекта?

Share this post


Link to post
Share on other sites
  • 0

_ObjectID = _object getVariable['ObjectID','0'];

Не выдает, все так же ноль, вписал в функцию и в приват функции

Edited by hekut144 (see edit history)

Share this post


Link to post
Share on other sites
  • 0

_ObjectID = _object getVariable['ObjectID','0'];

Не выдает, все так же ноль, вписал в функцию и в приват функции

А как ты назначаешь то обжИД при создании объекта?

Share this post


Link to post
Share on other sites
  • 0

Уже все решил, считывал по uid обьекта из бд и брал оттуда objectid



Теперь пытаюсь сделать скрипт открытия\закрытия инвенторя (дабы при закрытом вехайле не показывался инвентарь)

Share this post


Link to post
Share on other sites
  • 0

Уже все решил, считывал по uid обьекта из бд и брал оттуда objectid

 

Теперь пытаюсь сделать скрипт открытия\закрытия инвенторя (дабы при закрытом вехайле не показывался инвентарь)

Велосипед.

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 Sovest2
      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.

      Подготовка
      Для начала нам понадобится подключить кастомный player_death.sqf в compiles.sqf
      Делается это следующим образом:
      В compiles.sqf заменить строку 
      player_death = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_death.sqf"; на
      player_death = compile preprocessFileLineNumbers "*ВАШ ПУТЬ*\player_death.sqf";  
      Если у вас стоит инфистар,то необходимо заменить строку в AH.sqf
      _death = compile preprocessFileLineNumbers '\z\addons\dayz_code\compile\player_death.sqf'; на
      _death = compile preprocessFileLineNumbers '*ВАШ ПУТЬ*\player_death.sqf';  
      В вашем кастомном player_death.sqf необходимо заменить 
      _array = _this; if (count _array > 0) then { _source = _array select 0; _method = _array select 1; if ((!isNull _source) && (_source != player)) then { _canHitFree = player getVariable ["freeTarget",false]; _isBandit = (player getVariable["humanity",0]) <= -2000; _punishment = _canHitFree || _isBandit; //if u are bandit || start first - player will not recieve humanity drop _humanityHit = 0; if (!_punishment) then { //i'm "not guilty" - kill me && be punished _myKills = ((player getVariable ["humanKills",0]) / 30) * 1000; _humanityHit = -(2000 - _myKills); _kills = _source getVariable ["humanKills",0]; _source setVariable ["humanKills",(_kills + 1),true]; PVDZE_send = [_source,"Humanity",[_source,_humanityHit,300]]; publicVariableServer "PVDZE_send"; } else { //i'm "guilty" - kill me as bandit _killsV = _source getVariable ["banditKills",0]; _source setVariable ["banditKills",(_killsV + 1),true]; }; }; _body setVariable ["deathType",_method,true]; }; на
      _array = _this; if (count _array > 0) then { _source = _array select 0; _method = _array select 1; if ((!isNull _source) && (_source != player)) then { [player,_source]execVM "*ВАШ ПУТЬ*\humanityChange.sqf"; [player,_source]execVM "*ВАШ ПУТЬ*\kill_msg_send.sqf"; }; _body setVariable ["deathType",_method,true]; }; Отображение ника убийцы(Kill message)
       
      Создаем файл и закидываем в миссию файл kill_msg_send.sqf
      С содержанием
      private ["_victim","_killer","_vehicle","_weapon","_pic"]; _victim = _this select 0; _killer = _this select 1; _killerName = name _killer; _victimName = name _victim; _vehicle = typeOf (vehicle _killer); _weapon = currentWeapon _killer; if ((getText (configFile >> "CfgVehicles" >> _vehicle >> "vehicleClass")) in ["CarW","Car","CarD","Armored","Ship","Support","Air","ArmouredW","ArmouredD","SupportWoodland_ACR","AllVehicles"]) then { _pic = gettext(configFile >> 'CfgVehicles' >> _vehicle >> 'picture'); } else { _pic = gettext(configFile >> 'cfgWeapons' >> _weapon >> 'picture'); }; _kill_txt = format ["<t align='left' size='0.5'>%1 </t>",_victimName]; _kill_txt = _kill_txt + format ["<img size='1.0' align='left' image='%1'/>",_pic]; _kill_txt = _kill_txt + format ["<t align='left' size='0.5'> %1 </t>",_killerName]; PVDZE_send = [player,"kill_message",[_kill_txt]]; publicVariableServer "PVDZE_send";  
      Далее,нам необходимо отредактировать файл server_sendToClient.sqf ,которой находится в директории сервера
      И добавить после
      case "tagFriendly": { PVDZE_plr_FriendRQ = _arraytosend; _owner publicVariableClient "PVDZE_plr_FriendRQ"; }; Это
      case "kill_message": { custom_kill_message_show = _arraytosend; publicVariable "custom_kill_message_show"; }; Теперь необходимо создать файл kill_msg_show.sqf в папке с вашей миссией
      с содержимым
      private ["_pos","_i"]; arr_kill = ["","","","","",""]; fnc_kill_message = { private ["_finaltxt"]; _finaltxt = _this select 0; for[{_i = 0},{(_i<6)},{_i = _i +1}] do { if((arr_kill select _i) == "") then { arr_kill set [_i,_finaltxt]; [_i] execVM "*ВАШ ПУТЬ*\kill_msg_delete.sqf"; _i = count(arr_kill); }; }; }; "custom_kill_message_show" addPublicVariableEventHandler {(_this select 1) call fnc_kill_message;}; while {true} do { _pos = 0.01; _layout = 1001; { [_x,[safezoneX + 0.01 * safezoneW,2.0],[safezoneY + _pos * safezoneH,0.3],5,0.5,0,_layout] spawn BIS_fnc_dynamicText; _pos = _pos + 0.021; _layout = _layout + 1; } ForEach arr_kill; sleep 1; }; Создать файл kill_msg_delete.sqf с 
      private["_pos"]; _pos = _this select 0; sleep 10; arr_kill set [_pos,""];  
      И вставить в init.sqf после строки
      _playerMonitor = [] execVM "custom\player_monitor.sqf"; строку
      execVM "*ВАШ ПУТЬ*\kill_msg_show.sqf"; Осталось только добавить
      custom_kill_message_show В первую строку файла publicvariable.txt
       
      Все,отображение ника убийцы готово!
       
       
      Изменение человечности за убийство Бандита\Героя
      создать файл humanityChange.sqf с содержимым
      private ["_victim","_killer","_myKills","_humanity","_killerHumanity","_isKillerBandit","_isBandit","_humanityHit","_kills","_killerGunner"]; _victim = _this select 0; _killer = _this select 1; _humanity = _victim getVariable["humanity",0]; _killerHumanity = _killer getVariable["humanity",0]; _isKillerBandit = (_killerHumanity) < 0 ; _isBandit = (_humanity) < 0; _humanityHit = 0; _myKills = 0; _killerVehicle = vehicle _killer; if(((!_isBandit) && _isKillerBandit) || (_isBandit && (!_isKillerBandit))) then { _myKills = round((_humanity) / 10); }; if(!_isBandit) then { _myKills = (_myKills + 200); _kills = _killer getVariable ["humanKills",0]; _killer setVariable ["humanKills",(_kills + 1),true]; } else { _myKills = (_myKills - 200); _kills = _killer getVariable ["banditKills",0]; _killer setVariable ["banditKills",(_kills + 1),true]; }; _killerGunner = gunner _killerVehicle; if(!isNil"_sourceGunner") then { _killer = _killerGunner; }; _humanityHit = _myKills * (-1); PVDZE_send = [_killer,"Humanity",[_killer,_humanityHit,300]]; publicVariableServer "PVDZE_send"; Изменение Человечности готово!
       
      Плюсы Всего этого:
      Отображение ника убийцы теперь работает всегда и корректно.(Если убивают с техники или с одного выстрела).
    • By misha123
      Здравствуйте хотел добавить крафты на сервер. Но не знаю как это сделать. Кто знает как добавить крафты подскажите пожалуйста скрипт. Хочется разнообразить сервер.
      Спасибо за внимание
    • By etojeflexx
      Доброго времени суток, хотел узнать, как можно подключать дополнительные постройки (допустим построенный город) к основной карте, чтобы не захламлять объектами основной файл миссии? 
    • By Nerve
      Всем добра!
      Подскажите пожалуйста, как добавить кастомных торговцев на Exile?
      Использую редактор m3e_3den от Maca.
      Здания есть а трейдера нет =(

      Добавил вот это в initPlayerLocal
      private _traders = [ ["Exile_Trader_SpecialOperations",[46.6963,1594.77,0.00111437],77.218,"Exile_Trader_SpecialOperations","WhiteHead_21"], ["Exile_Trader_SpecialOperations",[2304.91,15313.6,-0.00616455],133.922,"Exile_Trader_SpecialOperations","WhiteHead_16"], ["Exile_Trader_SpecialOperations",[3957.81,11601.5,-0.000762939],29.1087,"Exile_Trader_SpecialOperations","WhiteHead_15"], ["Exile_Trader_SpecialOperations",[11437.7,11361.8,0.00534058],267.483,"Exile_Trader_SpecialOperations","GreekHead_A3_09"], ["Exile_Trader_SpecialOperations",[6331.58,7702.21,0.00143433],286.613,"Exile_Trader_SpecialOperations","WhiteHead_10"], ["Exile_Trader_Aircraft",[11787.9,12829.8,0.00143433],113.69,"Exile_Trader_Aircraft","GreekHead_A3_09"] ]; { private _trader = [ _x select 0, _x select 4, ["HubStanding_idle1"], _x select 1, _x select 2 ] call ExileClient_object_trader_create; _trader setVariable ["ExileTraderType", _x select 3]; } forEach _traders;  
  • 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.