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


Фотография

Работа со строкой


Лучший Ответ NoNameUltima , 09 March 2018 - 21:25

Alex_86 , слеш убери в начале \

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


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

#1 OFFLINE   Alex_86

Alex_86

    Рядовой

  • Пользователи
  • 23 сообщений
  • Откуда:Russia

Отправлено 04 March 2018 - 21:37

значит надо мне создать 15 групп и чтобы не писать мне 15 строк (group1 =createGroup resistance;) я могу прикрутить их создание к счетчику while или for , только ни как не пойму как число подставить к слову... 

 

что-то вроде этого:

for "_i" from 1 to 15 do  {

 

_group+ str(_i) =createGroup resistance;

 

};

но в редакторе бьет ошибку. А у меня на этом принципе много завязано. Заранее спасибо.


Сообщение отредактировал Alex_86: 04 March 2018 - 21:40

  • 0

#2 OFFLINE   vlad333000

vlad333000

    Полковник

  • Пользователи
  • 3224 сообщений
  • Откуда:Кострома

Отправлено 04 March 2018 - 22:02

Alex_86 , чем вас массивы не устроили?
_groups = [];
for “_i” from 0 to 9 do {
  _groups pushBack (createGroup WEST);
};

  • 0

#3 OFFLINE   Alex_86

Alex_86

    Рядовой

  • Пользователи
  • 23 сообщений
  • Откуда:Russia

Отправлено 04 March 2018 - 22:23

Alex_86 , чем вас массивы не устроили?

_groups = [];
for “_i” from 0 to 9 do {
  _groups pushBack (createGroup WEST);
};

Впринципе подойдет, хоть в массиве и будет все записано  как _groups=[_groups, _groups,_groups...]  но можно будет выцепить по индексу, а что делать например с массивом?

 

_boec17 select _i createUnit [getMarkerPos "mar1", group1]; выдает ошибку после _boec17


_boec17=["CUP_I_TK_GUE_Mechanic", "CUP_I_TK_GUE_Soldier_TL", "CUP_I_TK_GUE_Demo" ....]


  • 0

#4 OFFLINE   Alex_86

Alex_86

    Рядовой

  • Пользователи
  • 23 сообщений
  • Откуда:Russia

Отправлено 04 March 2018 - 22:50

вопрос решил через switch


  • 0

#5 OFFLINE   ReXcOr

ReXcOr

    Ст.сержант

  • Пользователи
  • 264 сообщений
  • Откуда:Moscow

Отправлено 04 March 2018 - 23:14

Если всё-таки понадобится через строку, могут помочь compile и format.
К сожалению я сейчас не смогу скинуть пример, тк зашёл с телефона, но должно выглядеть примерно так:
_stroka = compile format [“unit%1”,_i];
  • 0

#6 OFFLINE   Alex_86

Alex_86

    Рядовой

  • Пользователи
  • 23 сообщений
  • Откуда:Russia

Отправлено 04 March 2018 - 23:37

Если всё-таки понадобится через строку, могут помочь compile и format.
К сожалению я сейчас не смогу скинуть пример, тк зашёл с телефона, но должно выглядеть примерно так:
_stroka = compile format [“unit%1”,_i];

спасибо теперь буду знать куда копать


  • 0

#7 OFFLINE   vlad333000

vlad333000

    Полковник

  • Пользователи
  • 3224 сообщений
  • Откуда:Кострома

Отправлено 05 March 2018 - 00:01

Впринципе подойдет, хоть в массиве и будет все записано  как _groups=[_groups, _groups,_groups...]  но можно будет выцепить по индексу

Что бл**? _groups это ссылка на массив, никаких там ссылок самого на себя в жизни не будет.
_groups = [];                       //_groups == []
_groups pushBack 1;                 //_groups == [1]
_groups pushBack 2;                 //_groups == [1, 2]
_groups pushBack "Hello World! #1"; //_groups == [1, 2, "Hello World! #1"]
_myVar = "Hello World! #2";         //_groups == [1, 2, "Hello World! #1"]
_groups pushBack _myVar;            //_groups == [1, 2, "Hello World! #1", "Hello World! #2"]
_myVar = "Hello World! #3";         //_groups == [1, 2, "Hello World! #1", "Hello World! #2"]
_groups pushBack _myVar;            //_groups == [1, 2, "Hello World! #1", "Hello World! #2", "Hello World! #3"]
_groups pushBack _groups;           //_groups == [1, 2, "Hello World! #1", "Hello World! #2", "Hello World! #3", _groups] и ошибка при попытке это вывести на экран т. к. команда вывода зациклится из-за рекурсивной связи

а что делать например с массивом?

Да делайте что хотите, какие проблемы? Например вывести на экран значение массива по строчно:
private _myArray1 = []; 
private _myArray2 = [1, 2, 3, 4]; 
{ 
  _myArray1 pushBack format ["INDEX: %1; VALUE: %2;", _forEachIndex, _x]; 
} forEach _myArray2; 
hint (_myArray1 joinString toString [92,110]);

_stroka = compile format [“unit%1”,_i];

С локальными переменными вообще не прокатит ни один трюк по изменению их имени и определения значения, если эту переменную нужно использовать в текущей области видимости. Да и вообще это выглядит больше как издевательство над человеком читающий данный код

Сообщение отредактировал vlad333000: 05 March 2018 - 00:09

  • 0

#8 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 сообщений
  • Откуда:РФ

Отправлено 05 March 2018 - 04:27

0 = 0 spawn {
	private _varName = "global_var_group_resistance_";
	for "_i" from 1 to 15 do  {
		_group = createGroup resistance;
		missionNamespace setVariable [format["%1%2", _varName, _i], _group];
		// далее создаём бойцов в группе
	};
};

// В результате получаем набор глобальных
// переменных ссылающихся на созданные группы
global_var_group_resistance_1
...
global_var_group_resistance_15

  • 0

#9 OFFLINE   Alex_86

Alex_86

    Рядовой

  • Пользователи
  • 23 сообщений
  • Откуда:Russia

Отправлено 09 March 2018 - 00:03

 

Впринципе подойдет, хоть в массиве и будет все записано  как _groups=[_groups, _groups,_groups...]  но можно будет выцепить по индексу

Что бл**? _groups это ссылка на массив, никаких там ссылок самого на себя в жизни не будет.
_groups = [];                       //_groups == []
_groups pushBack 1;                 //_groups == [1]
_groups pushBack 2;                 //_groups == [1, 2]
_groups pushBack "Hello World! #1"; //_groups == [1, 2, "Hello World! #1"]
_myVar = "Hello World! #2";         //_groups == [1, 2, "Hello World! #1"]
_groups pushBack _myVar;            //_groups == [1, 2, "Hello World! #1", "Hello World! #2"]
_myVar = "Hello World! #3";         //_groups == [1, 2, "Hello World! #1", "Hello World! #2"]
_groups pushBack _myVar;            //_groups == [1, 2, "Hello World! #1", "Hello World! #2", "Hello World! #3"]
_groups pushBack _groups;           //_groups == [1, 2, "Hello World! #1", "Hello World! #2", "Hello World! #3", _groups] и ошибка при попытке это вывести на экран т. к. команда вывода зациклится из-за рекурсивной связи

а что делать например с массивом?

Да делайте что хотите, какие проблемы? Например вывести на экран значение массива по строчно:
private _myArray1 = []; 
private _myArray2 = [1, 2, 3, 4]; 
{ 
  _myArray1 pushBack format ["INDEX: %1; VALUE: %2;", _forEachIndex, _x]; 
} forEach _myArray2; 
hint (_myArray1 joinString toString [92,110]);

_stroka = compile format [“unit%1”,_i];

С локальными переменными вообще не прокатит ни один трюк по изменению их имени и определения значения, если эту переменную нужно использовать в текущей области видимости. Да и вообще это выглядит больше как издевательство над человеком читающий данный код

 

да не нервничайте вы так. нервные клетки как известно не востанавливаются.


  • 0

#10 OFFLINE   Alex_86

Alex_86

    Рядовой

  • Пользователи
  • 23 сообщений
  • Откуда:Russia

Отправлено 09 March 2018 - 00:10

Есть такая строка

 

 if (MAXMUD_1 in trig1) then {hint "все окей ";} else {hint "Нe все окей ";};

 

бот находится в триггере, а срабатывает " hint "Нe все окей "  . почему?


  • 0

#11 OFFLINE   vlad333000

vlad333000

    Полковник

  • Пользователи
  • 3224 сообщений
  • Откуда:Кострома

Отправлено 09 March 2018 - 00:30

бот находится в триггере, а срабатывает " hint "Нe все окей "  . почему?

object1 in object2 == объект 1 сиди в объекте 2 (В машине на сиденье), а т. к. триггер это не машина/танк/самолет, то и сидеть в нем невозможно, поэтому данная команда возвращает false
нужно использовать

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание

или

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание


Сообщение отредактировал vlad333000: 09 March 2018 - 00:31

  • 0

#12 OFFLINE   Alex_86

Alex_86

    Рядовой

  • Пользователи
  • 23 сообщений
  • Откуда:Russia

Отправлено 09 March 2018 - 00:34

 

бот находится в триггере, а срабатывает " hint "Нe все окей "  . почему?

object1 in object2 == объект 1 сиди в объекте 2 (В машине на сиденье), а т. к. триггер это не машина/танк/самолет, то и сидеть в нем невозможно, поэтому данная команда возвращает false
нужно использовать

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание

или

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание

 

понял просто на просторах инета нашел вот это :

 player in thislist

    Условие на нахождения игрока в триггере, в данном случае это условие записывается в сам триггер, если же хотите использовать в скрипте, то нужно записывать так: player in Trigger_Name где: Trigger_Name - имя триггера.
 
а как в скрипте для list прописать конкретный триггер я не понял.

inArea то что нужно. Спасибо


  • 0

#13 OFFLINE   vlad333000

vlad333000

    Полковник

  • Пользователи
  • 3224 сообщений
  • Откуда:Кострома

Отправлено 09 March 2018 - 00:37

понял просто на просторах инета нашел вот это :  player in thislist     Условие на нахождения игрока в триггере, в данном случае это условие записывается в сам триггер, если же хотите использовать в скрипте, то нужно записывать так: player in Trigger_Name где: Trigger_Name - имя триггера.

Теперь кидайте этот источник в черный список, если там на такой банальщине фигню выдали

а как в скрипте для list прописать конкретный триггер я не понял.

-_- учите скриптописание (Программирование):

object in list trigger;

Сообщение отредактировал vlad333000: 09 March 2018 - 00:38

  • 0

#14 OFFLINE   Alex_86

Alex_86

    Рядовой

  • Пользователи
  • 23 сообщений
  • Откуда:Russia

Отправлено 09 March 2018 - 00:44

 

понял просто на просторах инета нашел вот это :  player in thislist     Условие на нахождения игрока в триггере, в данном случае это условие записывается в сам триггер, если же хотите использовать в скрипте, то нужно записывать так: player in Trigger_Name где: Trigger_Name - имя триггера.

Теперь кидайте этот источник в черный список, если там на такой банальщине фигню выдали

а как в скрипте для list прописать конкретный триггер я не понял.

-_- учите скриптописание (Программирование):

object in list trigger;

Вот на практике и учусь, а без шишек оно ни куда.:)


  • 0

#15 OFFLINE   Alex_86

Alex_86

    Рядовой

  • Пользователи
  • 23 сообщений
  • Откуда:Russia

Отправлено 09 March 2018 - 21:18

Всем привет. Объясните почему если я создаю в корне где лежит миссия папку и закидываю туда скрипт, то он не работает                                               (player execvm "\patrul\tal_zev.sqf";).А если я запускаю этот же скрипт из корня то он работает (player execvm "tal_zev.sqf";)...?


  • 0

#16 OFFLINE   NoNameUltima

NoNameUltima

    Сержант

  • Пользователи
  • 189 сообщений
  • Откуда:SPB

Отправлено 09 March 2018 - 21:25   Лучший Ответ

Alex_86 , слеш убери в начале \


  • 0

#17 OFFLINE   vlad333000

vlad333000

    Полковник

  • Пользователи
  • 3224 сообщений
  • Откуда:Кострома

Отправлено 09 March 2018 - 21:25

Alex_86 , а вы пробовали убрать "\" вначале?
  • 0

#18 OFFLINE   NoNameUltima

NoNameUltima

    Сержант

  • Пользователи
  • 189 сообщений
  • Откуда:SPB

Отправлено 09 March 2018 - 21:29


понял просто на просторах инета нашел вот это : player in thislist

Это sqm

class Item3
        {
            position[]={6573,0,14158};
            a=1000;
            b=1000;
            activationBy="WEST";
            repeating=1;
            interruptable=1;
            age="UNKNOWN";
            name="RadZone1";
            expCond="(vehicle player) in thislist;";
............

  • 0

#19 OFFLINE   Alex_86

Alex_86

    Рядовой

  • Пользователи
  • 23 сообщений
  • Откуда:Russia

Отправлено 09 March 2018 - 21:31

Получилось. Спасибки :clapping:


  • 0




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