Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
  • Нужна помощь?

    Создайте тему в соответствующем разделе
    Не нужно писать всё в чат!
  • Загляните на торговую площадку

    Там вы можете купить
    всё что касается игровых серверов
  • Не хотите бан?

    Пожалуйста, ознакомьтесь с нашими правилами
    Не нарушайте порядок!
  • Продаёте или покупаете?

    Пользуйтесь услугами гаранта
    Мы сделаем вашу сделку безопасной
  • 0
kenguru74

Правильный синтаксис компиляции строк

Приветствую сообщество!

 

Веду отладку..

Прошу подсказки по правильному синтаксису:

 

_itemNew = call compile format ["%1ТЕКСТ",_val];

В лог выводит нехватку точки с запятой. Или туплю, или одно из двух.

 

Ответ должен быть, например таким:

 

_itemNew = "80ТЕКСТ";

 

_val уже определён и является числом.

 

 

ЧЯДНТ?

 

Неужели так надо:

_itemNew = call compile format ["'%1' + 'ТЕКСТ'",_val]; 

 

?

 

Может вообще команда call compile тут и не нужна?  :smile:

Изменено пользователем kenguru74 (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Рекомендованные сообщения

  • 0

Думаю, нужно заюзать команду typeName , но пока не определил правильный синтаксис.. Ищу..

 

 

Нет. Всё перебил. Снимаю вопрос, т.к. в конфиге параметр буду сохранять напрямую без массива, и все массивы глобализовать.

Придётся попыхтеть - изменяя конфиги, но оно того стоит.

 

 

З.Ы. Привычка по минимуму вмешиваться в конфиги и всё локализовать сыграла со мной нынче злую шутку  :wink: Смелее надо быть! Но - с умом.. :smile:

Изменено пользователем kenguru74 (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
MagicByte MagicByte MagicByte
  • 0

Вроде работает такой код:

_itemNew = call compile format ["'%1' + 'ТЕКСТ'",_val]; 

Тему можно закрывать..

 

АПД.: Но не тут-то было! Зрим ниже.. :good:

Изменено пользователем kenguru74 (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

_itemNew = format["%1 ТЕКСТ",_val];

---

_itemNew = format['%1 ТЕКСТ',_val];

---

Впрочем, если ведешь отладку внутри констукции call() то могут понадобиться двойные ковычки для форматирования, например _itemNew = format[""%1 ТЕКСТ"",_val];

Изменено пользователем svalom (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

Да, вызывать компиляцию действительно излишне было, спасибо!

 

 

_itemNew = format["%1ТЕКСТ",_val];

 

Вариант форматирования работает норм.. :smile:

 

 

Вот ещё задачка стоит - выдернуть название массива из строкового значения внутри массива:

_Array_StringArray = ["_НАЗВАНИЕ_МАССИВА"];

Ответ нужен как:

 

_nameArray = _НАЗВАНИЕ_МАССИВА;

 

Забрать строкой могу так:

 

 

_StringArray = _Array_StringArray select 0;

 

Вопрос - как теперь избавиться от кавычек, чтобы получить из _StringArray  _nameArray 

 

Хелпните плииз?

Изменено пользователем kenguru74 (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

код в студию

Дак выше всё..

Словами объясню:

Из параметра (в виде массива) конфига читается название нужного для текущей задачи массива. Эти названия ессно локальны, а сами массивы перечислены выше в этом же скрипте.

 

Когда я увидел, что код не работает - начал выводить логи и понял, что нужное мне название массива приходит из конфига в виде строки, заключённой в массив._Array_StringArray - перевожу дословно: массив строки массива, я логичен так?  :wink: 

 

 

_Array_StringArray = ["_НАЗВАНИЕ_МАССИВА"];

 

Мне же нужно в ответе само название, а не строка или тем более не массив.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

Дак выше всё..

Словами объясню:

Из параметра (в виде массива) конфига читается название нужного для текущей задачи массива. Эти названия ессно локальны, а сами массивы перечислены выше в этом же скрипте.

 

Когда я увидел, что код не работает - начал выводить логи и понял, что нужное мне название массива приходит из конфига в виде строки, заключённой в массив._Array_StringArray - перевожу дословно: массив строки массива, я логичен так?  :wink: 

 

 

 

Мне же нужно в ответе само название, а не строка или тем более не массив.

 

MyArray = [10,10];

........

call compile ("_array = " + MyArray + ";");

в _array будет массив MyArray, и все действия с _array так же будут воздействовать на указанный массив.

 

Хотя, у тебя с формулировкой вопросов полный аут -

"Мне же нужно в ответе само название, а не строка или тем более не массив."

Так что надо то))))

Строку не надо, массив не надо))

Изменено пользователем NoNameUltima (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

Так что надо то))))

А надо было саму переменную (которая имела текущее название нужного массива), но я обратил внимание, что в конфигах все значения могут быть только трёх видов - строка, число, массив.. Поэтому и не работала команда getVariable, а getText, getArray, getNumber мне не подходили..

 

Пришлось представить значение в конфиге в виде числа, определяющего номер массива, которые кстати, я успешно глобализовал на клиенте. Так что - всё, что ни делается - к лучшему!  :wink:

У меня нет мусора в скриптах - в каждом по стопиццот одинаковых массивов, сам код всегда может получить доступ к ним - ибо они в variables.sqf теперь живут..

Изменено пользователем kenguru74 (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

А надо было саму переменную (которая имела текущее название нужного массива), но я обратил внимание, что в конфигах все значения могут быть только трёх видов - строка, число, массив.. Поэтому и не работала команда getVariable, а getText, getArray, getNumber мне не подходили..

 

Пришлось представить значение в конфиге в виде числа, определяющего номер массива, которые кстати, я успешно глобализовал на клиенте. Так что - всё, что ни делается - к лучшему!  :wink:

У меня нет мусора в скриптах - в каждом по стопиццот одинаковых массивов, сам код всегда может получить доступ к ним - ибо они в variables.sqf теперь живут..

Велосипед

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Похожие публикации

    • Автор: kenguru74
      Нужна помощь по работе с командой
      Стандартный синтаксис следующий:

      Object = createAgent [type, position, markers, placement, special]

      Parameters:

      [type, position, markers, placement, special]: Array

      type: String from CfgVehicles

      position: Array (Position format)

      markers: Array

      placement: Number radius

      special: String "None", or "Form"

      Return: Object

       
       
      Вики БИС говорит ,что:
       
      Теперь сам вопрос - где и каким образом прописывать маркеры и т.д. для рандомного спавна бота в одном из них?
       
      Я попробовал по-простому: сделал пару маркеров в mission.sqm , и их имена перечислил в массив маркеров юнита.
      Ошибка:
      Имя маркера неизвестно..
       
      ЧЯДНТ? (Что Я Делаю Не Так)?
       
      З.Ы. Нашёл аналогию в команде создания тачки:
      _veh = createVehicle ["2S6M_Tunguska", getMarkerPos "marker1",["marker2","marker3"], 0, "NONE"] Чо, так запилю, срастётся - как думаете? Ща пойду пробовать, делать неча. Охота пуще неволи.. 
  • Наш выбор

×
×
  • Создать...

Важная информация

Используя этот сайт, вы автоматически обязуетесь соблюдать наши Правила и Политика конфиденциальности.
Чтобы сделать этот веб-сайт лучше, мы разместили cookies на вашем устройстве. Вы можете изменить свои настройки cookies, в противном случае мы будем считать, что вы согласны с этим.