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

Принятый ответ

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

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

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

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