я не говорил на основании чего будет строится линия,
перечитайте внимательнее, думаю разберётесь что я имел ввиду, там ничего особо сложного нет, пример:
_lin=[[{[_this select 0,_this select 0]},[0,'']],
[{[(_this select 1)+_this select 0,_this select 1]},['',10]],
[{[_this select 0,(_this select 0)+2]},[30,'' ]]
];_p=[20,5];
scopename's';if({_n=0;_n1=1;if(_x select 0 select 1 isequaltype 0)then{_n=1;_n1=0];
if(_x select 0 select _n>_p select _n)then{
if(_p call(_x select 1)select _n1>_p select _n1)
then{hint'_p righter|,upper _lin'}else{hint'_p lefter,|downer|on _lin'};
breakto's'};
true}foreach _lin)then{hint'_p out _lin 's boundaries'};
и набор действий для изменения линий ('скрипты можно заменить на arrayи с системой')
(помните что смысл поста в возможности а не том что это лучше)
Edited by Ilias, 22 September 2017 - 13:05.