История изменений
Исправление LightDiver, (текущая версия) :
Ага, спасибо, мне уже подсказали. Очень странная конструкция, как по мне. Ведь мы в начале строки объект уже указали. И тут вдруг нам надо указывать его еще раз в скобках. Ну такое…
Первый вариант блока у меня выходи вот такой:
function mostraKrtM1x1(signalKrt)
if signalKrt=="Show" then
jj=20
j=394
for i=0,16 do
iconRis:configure(i,545,350)
iconRisText:configure(i,9.1,6,0,0,i)
iconRis[i]:SetPoint("BOTTOMLEFT", jj, j)
jj=jj+9.1
end
jj=20
j=394-6
for i=64,80 do
iconRis:configure(i,545,350)
iconRisText:configure(i,9.1,6,0,0,i)
iconRis[i]:SetPoint("BOTTOMLEFT", jj, j)
jj=jj+9.1
end
elseif signalKrt=="Hide" then
for i=0,16 do
iconRisText[i][signalKrt](iconRisText[i])
end
for i=64,80 do
iconRisText[i][signalKrt](iconRisText[i])
end
end
end
Но это хрень. Слишком громоздко. Второй вариант такой:
function mostraKrtM11x11(signalKrt)
if signalKrt=="Show" then
ranges = {{1, 16}, {65, 80},{129,144},{193,208},{257,272},{321,336},{385,400},{449,464}}
j=394
for range,value in pairs(ranges) do
jj=20
for rangeT=value[1],value[2] do
print (rangeT)
iconRis:configure(rangeT,545,350)
iconRisText:configure(rangeT,9.1,6,0,0,rangeT)
iconRis[rangeT]:SetPoint("BOTTOMLEFT", jj, j)
jj=jj+9.1
end
j=j-6
end
else
end
end
Но я хочу через формулу. То есть высчитывать старт строки и конец строки для блоков формулой. Сейчас выходит что то вроде такого:
for i=1,8 do print((64 * (i - 1) + 1) .. ', ' .. (64 * (i - 1) + 16)) end
То есть начало строки (64 * (i - 1) + 1), конец строки (64 * (i - 1) + 16)
Второй блок будет идти конец строки+16 итд.. теперь я думаю как просчитать удобнее остальные блоки и как на основе этого сделать функцию.
Люто до скрежета в зубах мешает старт с единицы, а не с нуля. Это жуть.
тут еще один косяк. Если я вставляю скрытие кусков сразу в цикл, где их рисуют, это не работает. посмотри на мой первый пример. Там я скрываю отдельными циклами. Меня это нервирует. Не понимаю почему так.
Исправление LightDiver, :
Ага, спасибо, мне уже подсказали. Очень странная конструкция, как по мне. Ведь мы в начале строки объект уже указали. И тут вдруг нам надо указывать его еще раз в скобках. Ну такое…
Первый вариант блока у меня выходи вот такой:
function mostraKrtM1x1(signalKrt)
if signalKrt=="Show" then
jj=20
j=394
for i=0,16 do
iconRis:configure(i,545,350)
iconRisText:configure(i,9.1,6,0,0,i)
iconRis[i]:SetPoint("BOTTOMLEFT", jj, j)
jj=jj+9.1
end
jj=20
j=394-6
for i=64,80 do
iconRis:configure(i,545,350)
iconRisText:configure(i,9.1,6,0,0,i)
iconRis[i]:SetPoint("BOTTOMLEFT", jj, j)
jj=jj+9.1
end
elseif signalKrt=="Hide" then
for i=0,16 do
iconRisText[i][signalKrt](iconRisText[i])
end
for i=64,80 do
iconRisText[i][signalKrt](iconRisText[i])
end
end
end
Но это хрень. Слишком громоздко. Второй вариант такой:
function mostraKrtM11x11(signalKrt)
if signalKrt=="Show" then
ranges = {{1, 16}, {65, 80},{129,144},{193,208},{257,272},{321,336},{385,400},{449,464}}
j=394
for range,value in pairs(ranges) do
jj=20
for rangeT=value[1],value[2] do
print (rangeT)
iconRis:configure(rangeT,545,350)
iconRisText:configure(rangeT,9.1,6,0,0,rangeT)
iconRis[rangeT]:SetPoint("BOTTOMLEFT", jj, j)
jj=jj+9.1
end
j=j-6
end
else
end
end
Но я хочу через формулу. То есть высчитывать старт строки и конец строки для блоков формулой. Сейчас выходит что то вроде такого:
for i=1,8 do print((64 * (i - 1) + 1) .. ', ' .. (64 * (i - 1) + 16)) end
То есть начало строки (64 * (i - 1) + 1), конец строки (64 * (i - 1) + 16)
Второй блок будет идти конец строки+16 итд.. теперь я думаю как просчитать удобнее остальные блоки и как на основе этого сделать функцию.
Люто до скрежета в зубах мешает старт с единицы, а не с нуля. Это жуть.
Исходная версия LightDiver, :
Ага, спасибо, мне уже подсказали. Очень странная конструкция, как по мне. Ведь мы в начале строки объект уже указали. И тут вдруг нам надо указывать его еще раз в скобках. Ну такое…
Первый вариант блока у меня выходи вот такой:
function mostraKrtM1x1(signalKrt)
if signalKrt=="Show" then
jj=20
j=394
for i=0,16 do
iconRis:configure(i,545,350)
iconRisText:configure(i,9.1,6,0,0,i)
iconRis[i]:SetPoint("BOTTOMLEFT", jj, j)
jj=jj+9.1
end
jj=20
j=394-6
for i=64,80 do
iconRis:configure(i,545,350)
iconRisText:configure(i,9.1,6,0,0,i)
iconRis[i]:SetPoint("BOTTOMLEFT", jj, j)
jj=jj+9.1
end
elseif signalKrt=="Hide" then
for i=0,16 do
iconRisText[i][signalKrt](iconRisText[i])
end
for i=64,80 do
iconRisText[i][signalKrt](iconRisText[i])
end
end
end
Но это хрень. Слишком громоздко. Второй вариант такой:
function mostraKrtM11x11(signalKrt)
if signalKrt=="Show" then
ranges = {{1, 16}, {65, 80},{129,144},{193,208},{257,272},{321,336},{385,400},{449,464}}
j=394
for range,value in pairs(ranges) do
jj=20
for rangeT=value[1],value[2] do
print (rangeT)
iconRis:configure(rangeT,545,350)
iconRisText:configure(rangeT,9.1,6,0,0,rangeT)
iconRis[rangeT]:SetPoint("BOTTOMLEFT", jj, j)
jj=jj+9.1
end
j=j-6
end
else
end
end
Но я хочу через формулу. То есть высчитывать старт строки и конец строки для блоков формулой. Сейчас выходит что то вроде такого:
for i=1,8 do print((64 * (i - 1) + 1) .. ', ' .. (64 * (i - 1) + 16)) end
То есть начало строки (64 * (i - 1) + 1), конец строки (64 * (i - 1) + 16)
Второй блок будет идти конец строки+16 итд.. теперь я думаю как просчитать удобнее остальные блоки и как на основе этого сделать функцию.