|
|
Модератор форума: Slon |
Форум РЕДАКТОР - ArmA 2 Operation Arrowhead Скрипты Рандомный респ строений (как это сделать ?) |
Рандомный респ строений |
› Четверг
› 28.07.2011
› 01:15
› Сообщение #
В очередной раз облазил весь форум в надежде найти нужное, а там одни и те-же вопросы как вызвать вертолет и посадить самолет...
Кто бы воть мне помог решить проблему... ситуация такая..: На респе стоят бойцы+техника к ним, сделать рандомный респ для этой группы не проблема, а вот рядом с ними находится небольшая типа база из пары радаров, передвижного генератора, кшм развернутой, пара сеток маскировочных и несколько земляных валов в итоге около 30 статических обьектов. Как бы мне их сдвинуть с места, что бы они рандомно респились вместе с ботами и техникой в одном месте в том положении в котором я их расставил в редакторе ? Я тут раздобыл кусок скрипта _pos = getMarkerPos format["crates%1",1+SerP_startSeed%4]; box1 setPos _pos; "crates" setMarkerPos _pos; _i = 1; { _x setPos [(_pos select 0) + _i,_pos select 1]; _i = _i + 1; } forEach [box2,box3,box4,box5,box6,box7]; этот текст позволяет рандомно респица ящикам вместе с группой ботов. У ботов 3 вейпоинта, а у ящиков 4 маркера. Проблема в том, что по словам одного товарища эти ящики рандомно отреспяца не в том положении в котором их расставили в редакторе. Первый ящик на который поставлен маркер отреспица рандомом, а остальные появятся в линейку в одном метре друг от друга. Такой вариант мне не подходит, так как мне нужно что бы предметы респились так как я их поставил в редакторе. Короч кто может или знает помогите...а то я уже не знаю что делать... |
› Четверг
› 28.07.2011
› 09:02
› Сообщение #
сначала надо запомнить как обекты распологались
_ps = markerPos "crates"; _px = _ps select 0; _py = _ps select 1; Basa_obj = [box1,box2,box3,box4,box5,box6,box7]; Basa_pos = []; - относительные координаты Basa_dir = []; - угол разворота { Basa_pos set [count Basa_pos, [(getPos _x select 0)-_px, (getPos _x select 1)-_py]; Basa_dir set [count Basa_dir,getDir _x] } forEach Basa_obj; и размещать относительно новой точки _mk = format["crates%1",1+SerP_startSeed]; _pos = MarkerPos _mk; _dr = MarkerDir _mk; _px = _pos select 0; _py = _pos select 1; "crates" setMarkerPos _pos; for "_i" from 0 to (count Basa_obj)-1 do { _ms = Basa_pos select _i; (Basa_obj select _i) setPos [(_ms select 0) + _px, (_ms select 1) + _py]; (Basa_obj select _i) setDir (_dr + (Basa_dir select _i)) } |
| |||
| |||
Чат сайта |