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


Фотография

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


Лучший Ответ Schatten , 21 December 2020 - 18:41

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

!(_doubleWep isEqualTo [])
Перейти к сообщению


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

#1 OFFLINE   USide

USide

    Рядовой

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

Отправлено 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"]

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


Сообщение отредактировал USide: 21 December 2020 - 18:15

  • 0

#2 OFFLINE   Schatten

Schatten

    Капитан

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

Отправлено 21 December 2020 - 18:33

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


  • 0

#3 OFFLINE   USide

USide

    Рядовой

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

Отправлено 21 December 2020 - 18:36

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

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

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

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

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

Сообщение отредактировал USide: 21 December 2020 - 18:37

  • 0

#4 OFFLINE   Schatten

Schatten

    Капитан

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

Отправлено 21 December 2020 - 18:41   Лучший Ответ

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

!(_doubleWep isEqualTo [])

  • 1

#5 OFFLINE   USide

USide

    Рядовой

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

Отправлено 21 December 2020 - 18:46

 

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

!(_doubleWep isEqualTo [])

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


  • 0




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