Перейти к содержимому


Фотография

extDB3 сохранить и загрузить вещи в ящик.


Лучший Ответ ganspette , 19 February 2023 - 07:00

Всё заработало! Поменял местами _objName и _objInvWeapon.

Перейти к сообщению


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 4

#1 OFFLINE   ganspette

ganspette

    Рядовой

  • Пользователи
  • 13 сообщений

Отправлено 18 February 2023 - 09:38

Привет всем!
Столкнулся вот с такой проблемой: создал сервер, подключил extDB3, всё работает для игрока. Сохранение игрока, снаряжения, координат и прочего. Так же и загружвется всё нормально. Но вот в ящик запихать не могу вещи с БД, да и из БД в ящик не получается загрузить.
Вот так пытаюсь это сделать:

private ["_result","_objName","_items","_backpack","_magazine","_weapons"];
_objName = "nato1";
_result = "extDB3" callExtension format["0:777:SELECT objInvItem,objInvBackpack,objInvMagazine,objInvWeapon FROM objects WHERE objName='%1'",_objName];

_items =  _result select 0; 
_backpack = _result select 1; 
_magazine = _result select 2;
_weapons = _result select 3;
 
{ 
    _objName addItemCargoGlobal [_x, (_items select 1) select _forEachIndex]; 
} forEach (_items select 0);  
{ 
    _objName addBackpackCargo [_x, (_backpack select 1) select _forEachIndex]; 
} forEach (_backpack select 0);
{ 
    _objName addMagazineCargo [_x, (_magazine select 1) select _forEachIndex]; 
} forEach (_magazine select 0);
{ 
    _objName addWeaponCargo [_x, (_weapons select 1) select _forEachIndex]; 
} forEach (_weapons select 0);  

Подскажите пожалуйста что не так делаю?


  • 0

#2 OFFLINE   Schatten

Schatten

    Капитан

  • Пользователи
  • 1824 сообщений

Отправлено 18 February 2023 - 15:33

ganspette, _objName -- это название ящика, как видно из названия переменной, а не сам ящик.


  • 0

#3 OFFLINE   ganspette

ganspette

    Рядовой

  • Пользователи
  • 13 сообщений

Отправлено 18 February 2023 - 18:08

ganspette, _objName -- это название ящика, как видно из названия переменной, а не сам ящик.

Вот так получилось загрузить в ящик вещи из БД:
 

private ["_getSun","_objName","_objInvItem","_objInvBackpack","_objInvMagazine","_objInvWeapon"];
_objName = cccp1; 
_getSun = ((call compile ("Extdb3" callExtension format ["0:%1:loadSun:%2", 777, _objName])) select 1) select 0;
_items =  _getSun select 0; 
_backpack = _getSun select 1; 
_magazine = _getSun select 2;
_weapons = _getSun select 3;
 
{ 
    _objName addItemCargoGlobal [_x, (_items select 1) select _forEachIndex]; 
} forEach (_items select 0);  
{ 
    _objName addBackpackCargo [_x, (_backpack select 1) select _forEachIndex]; 
} forEach (_backpack select 0);
{ 
    _objName addMagazineCargo [_x, (_magazine select 1) select _forEachIndex]; 
} forEach (_magazine select 0);
{ 
    _objName addWeaponCargo [_x, (_weapons select 1) select _forEachIndex]; 
} forEach (_weapons select 0); 

cccp1 - это имя ящика прописано в самом ящике на карте. 
Но вот теперь встал вопрос, почему не сохраняет вещи в БД:
 

private ["_objName","_objInvItem","_objInvBackpack","_objInvMagazine","_objInvWeapon"]; 
_objName = cccp1;
_objInvItem = getItemCargo _objName; 
_objInvBackpack = getBackpackCargo _objName; 
_objInvMagazine = getMagazineCargo _objName; 
_objInvWeapon = getWeaponCargo _objName; 
"Extdb3" callExtension format  ["0:%1:saveSun:%2:%3:%4:%5:%6",777, _objName, _objInvItem, _objInvBackpack, _objInvMagazine, _objInvWeapon];
diag_log _objName;
diag_log _objInvItem;
diag_log _objInvBackpack;
diag_log _objInvMagazine;
diag_log _objInvWeapon;
[saveSun]
Return InsertID = false
Prepared Statement = true

SQL1_1 = UPDATE
SQL1_2 =     objects
SQL1_3 = SET
SQL1_4 =     objInvItem = ?,
SQL1_5 =     objInvBackpack = ?,
SQL1_6 =     objInvMagazine = ?,
SQL1_7 =     objInvWeapon = ?
SQL1_8 = WHERE
SQL1_9 =     objName = ?
SQL1_10 = LIMIT 1

SQL1_INPUTS = 1,2,3,4,5 

Вот custom.ini

В RPT сервера пишет правильно, но не сохраняет:

16:52:55 cccp1
16:52:55 [[],[]]
16:52:55 [[],[]]
16:52:55 [[],[]]
16:52:55 [[],[]]

Сообщение отредактировал ganspette: 18 February 2023 - 18:13

  • 0

#4 OFFLINE   Schatten

Schatten

    Капитан

  • Пользователи
  • 1824 сообщений

Отправлено 19 February 2023 - 00:34

ganspette, тип ящика выведи в RPT-файл.


  • 0

#5 OFFLINE   ganspette

ganspette

    Рядовой

  • Пользователи
  • 13 сообщений

Отправлено 19 February 2023 - 07:00   Лучший Ответ

Всё заработало! Поменял местами _objName и _objInvWeapon.


  • 0




Яндекс.Метрика