И ещё раз приветствую пользователей данного ресурса.
Создается диалог со всеми игроками (исключая выбирающего) в котором собственно нужно выбрать игрока.
Появилась проблема в том что я не знаю как передать/записать выбранного игрока в переменную. Т.к. кнопка не всегда будет совпадать с номером игрока.
И сразу хотелось бы задать сопутствующий/похожий вопрос. Т.к. выбор игрока может быть не только для эмбарго (в данном случае), но и для других резолюций. Посоветуйте как это можно оптимизировать

Первая проблема решается просто, ещё один массив PlayerIndex.
Set PlayerIndex[Buf_B] = Integer A

А ещё после цикла ячейка Buf_B пропускается, потому новая кнопка записывается в ячейку Buf_B + 1.
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
9
PT153:
Первая проблема решается просто, ещё один массив PlayerIndex.
Set PlayerIndex[Buf_B] = Integer A

А ещё после цикла ячейка Buf_B пропускается, потому новая кнопка записывается в ячейку Buf_B + 1.
Вторую часть не cовсем понял. Т.е. вы имеете ввиду что новая кнопка может перезаписать старую?
Но ведь создастся B кнопок? А последнюю я записываю в B +1
Obelick:
Можно использовать на цикл, а выбрать всех играющих игроков.
И я не знаю, можно ли показывать кнопки локально для каждого игрока. Если сначала один игрок откроет диалог, а затем через несколько секунд другой, то у первого он так же обновится. Я в своем случае не стал парится и показываю всех игроков, а уже на момент нажатия кнопки проверяю, что с собой игрок ничего не может сделать.
При таком подходе если допустим первый игрок не играет. В массиве под номером 0(или 1) не будет ничего записано. И это вроде бы повлияет потом на отслеживание нажатой кнопки?
28
Вторую часть не cовсем понял. Т.е. вы имеете ввиду что новая кнопка может перезаписать старую?
Нет.
Пусть играют игроки 1, 2, 6.
Buf_B = 0.
Игрок 1 играет? Да, создаём кнопку, записываем в массив[0] и увеличиваем Buf_B.
Buf_B = 1.
Игрок 2 играет? Да, создаём кнопку, записываем в массив[1] и увеличиваем Buf_B.
Buf_B = 2.
Игрок 3 играет? Нет, пропускаем. Аналогично с 4 и 5.
Игрок 6 играет? Да, создаём кнопку, записываем в массив[2] и увеличиваем Buf_B.
Buf_B = 3.
Игрок 7 играет? Нет, пропускаем. Аналогично с 8-11.
Создаём ещё одну кнопку и записываем её в ячейку (Buf_B + 1), то есть в массив[4]. массив[3] остаётся пустым.
9
PT153:
Вторую часть не cовсем понял. Т.е. вы имеете ввиду что новая кнопка может перезаписать старую?
Нет.
Пусть играют игроки 1, 2, 6.
Buf_B = 0.
Игрок 1 играет? Да, создаём кнопку, записываем в массив[0] и увеличиваем Buf_B.
Buf_B = 1.
Игрок 2 играет? Да, создаём кнопку, записываем в массив[1] и увеличиваем Buf_B.
Buf_B = 2.
Игрок 3 играет? Нет, пропускаем. Аналогично с 4 и 5.
Игрок 6 играет? Да, создаём кнопку, записываем в массив[2] и увеличиваем Buf_B.
Buf_B = 3.
Игрок 7 играет? Нет, пропускаем. Аналогично с 8-11.
Создаём ещё одну кнопку и записываем её в ячейку (Buf_B + 1), то есть в массив[4]. массив[3] остаётся пустым.
Получается будут пустые кнопки? Как этого избежать?
28
Получается будут пустые кнопки?
Будет пустая ЯЧЕЙКА.
Как этого избежать?
После цикла записывать сразу в ячейку (Buf_B).
23
При таком подходе если допустим первый игрок не играет. В массиве под номером 0(или 1) не будет ничего записано. И это вроде бы повлияет потом на отслеживание нажатой кнопки?
Смотри условие, там идет проверка, играет ли игрок. Если красного нет в игре - кнопка с его номером не будет создана. Будут созданы кнопки только существующих игроков.
Зачем дальше танцевать с бубном, если мой предложенный вариант подходит и работает?
24
Напомните, какая инфа у нас есть в варе? Номер нажатой кнопки в диалоге? Только сама нажатая кнопка? Диалог?
Прежде всего, создаем по диалогу на игрока, вместо одного общего диалога на всех и показываем каждому игроку свой диалог. Это позволит показывать каждому игроку свою версию диалога и не зависеть от того, кто и когда открывает диалог.
Дальше заводим массив, в который по номеру игрока и номеру кнопки пишем привязаного к этой кнопке игрока (номер кнопки плюс оффсет умноженый на номер игрока для которого открыт диалог) при открытии диалога.
При нажатии кнопки в диалоге получаем связаного с кнопкой игрока по тому-же индексу - номер кнопки плюс оффсет умноженый на номер игрока для которого открыт диалог.
Оффсет равен максимальному кол-ву кнопок в диалоге и в данном случае это максимальное кол-во игроков минус один.
Если вар вдруг сам не дает номер нажатой кнопки (я не помню дает ли), то перебор по массиву кнопок.
При желании, эту-же систему можно использовать с любыми диалогами, не только со списками игроков, с минимальными изменениями.
9
prog:
Напомните, какая инфа у нас есть в варе? Номер нажатой кнопки в диалоге? Только сама нажатая кнопка? Диалог?
Прежде всего, создаем по диалогу на игрока, вместо одного общего диалога на всех и показываем каждому игроку свой диалог. Это позволит показывать каждому игроку свою версию диалога и не зависеть от того, кто и когда открывает диалог.
Дальше заводим массив, в который по номеру игрока и номеру кнопки пишем привязаного к этой кнопке игрока (номер кнопки плюс оффсет умноженый на номер игрока для которого открыт диалог) при открытии диалога.
При нажатии кнопки в диалоге получаем связаного с кнопкой игрока по тому-же индексу - номер кнопки плюс оффсет умноженый на номер игрока для которого открыт диалог.
Оффсет равен максимальному кол-ву кнопок в диалоге и в данном случае это максимальное кол-во игроков минус один.
Если вар вдруг сам не дает номер нажатой кнопки (я не помню дает ли), то перебор по массиву кнопок.
При желании, эту-же систему можно использовать с любыми диалогами, не только со списками игроков, с минимальными изменениями.
Этот диалог в единственном числе нужен, а не для каждого
28
Если вар вдруг сам не дает номер нажатой кнопки (я не помню дает ли)
Можно получить, какая кнопка была нажата, кто кликнул и в каком диалоге.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.