Jump to content


Photo

Error in expression и сопутствующие ошибки


Best Answer Schatten , 21 December 2020 - 18:41

USide, я не знаю, как этот код должен работать. Я предполагаю, что раньше _doubleWep могла быть только строкой, но потом стала массивом, а проверка осталась для строки, поэтому, как вариант, можно переделать проверку на такую:

!(_doubleWep isEqualTo [])
Go to the full post


  • Please log in to reply
4 replies to this topic

#1 OFFLINE   USide

USide

    Рядовой

  • Пользователи
  • 10 posts

Posted 21 December 2020 - 18:14

Подскажите пожалуйста,ловлю такие ошибки:

17:03:12 "[DUAL EXS LoadCustom] []"
17:03:12 Error in expression <ustom] %1", _doubleWep];
if (_doubleWep != "") then
{
_player setVariable ["brpv>
17:03:12   Error position: <!= "") then
{
_player setVariable ["brpv>
17:03:12   Error !=: Type Array, expected Number,String,Not a Number,Object,Side,Group,Text,Config entry,Display (dialog),Control,Network Object,Team member,Task,Location
17:03:12 File custom_code\server_code\DB3\ExileServer_object_player_database_load.sqf..., line 114
17:03:12 Error in expression <ustom] %1", _doubleWep];
if (_doubleWep != "") then
{
_player setVariable ["brpv>
17:03:12   Error position: <!= "") then
{
_player setVariable ["brpv>
Идет на эти строки:
_doubleWep = _data select 47;
diag_log format["[DUAL EXS LoadCustom] %1", _doubleWep];
if (_doubleWep != "") then {
    _player setVariable["brpvp_weapon_4", _doubleWep, true];
};

В БД поле(select 47) указанно как текст и имеет такое содержимое:

["MMG_02_sand_F","muzzle_snds_338_sand","acc_pointer_IR","optic_Arco",["130Rnd_338_Mag",61],[],"bipod_01_F_snd"]

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


Edited by USide, 21 December 2020 - 18:15.

  • 0

#2 OFFLINE   Schatten

Schatten

    Капитан

  • Пользователи
  • 1844 posts

Posted 21 December 2020 - 18:33

USide, _doubleWep -- это, как ты написал, массив, который, как приведено в сообщении об ошибке, ты пытаешься сравнить со строкой.


  • 0

#3 OFFLINE   USide

USide

    Рядовой

  • Пользователи
  • 10 posts

Posted 21 December 2020 - 18:36

USide, _doubleWep -- это, как ты написал, массив, который, как приведено в сообщении об ошибке, ты пытаешься сравнить со строкой.

То есть мне надо проверку сделать под массив,аля:
 

if (!isnil "_doubleWep") then {
    _player setVariable["brpvp_weapon_4", _doubleWep, true];
};

Или я не правильно понимаю функции проверки?)
Или так?

(count _doubleWep== 0){массив пустой}

Edited by USide, 21 December 2020 - 18:37.

  • 0

#4 OFFLINE   Schatten

Schatten

    Капитан

  • Пользователи
  • 1844 posts

Posted 21 December 2020 - 18:41   Best Answer

USide, я не знаю, как этот код должен работать. Я предполагаю, что раньше _doubleWep могла быть только строкой, но потом стала массивом, а проверка осталась для строки, поэтому, как вариант, можно переделать проверку на такую:

!(_doubleWep isEqualTo [])

  • 1

#5 OFFLINE   USide

USide

    Рядовой

  • Пользователи
  • 10 posts

Posted 21 December 2020 - 18:46

 

USide, я не знаю, как этот код должен работать. Я предполагаю, что раньше _doubleWep могла быть только строкой, но потом стала массивом, а проверка осталась для строки, поэтому, как вариант, можно переделать проверку на такую:

!(_doubleWep isEqualTo [])

Это я пишу проверку для новой строки под скрипт двух основных оружий.То которое "убираем" сохраняет свое состояние в базе,а то которое там было,вешаем пользователю.И так по кругу)По этому там всегда должен быть массив,видимо просто я не оч разобрался в строках


  • 0




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