Обновление строк мультиборда
|
|
roman412 | Дата: Среда, 02 Июля 2014, 08:54:28 | Сообщение # 1 |
3 уровень
Группа: Проверенные
Сообщений: 56
Награды: 0
Репутация: 20
Блокировки:
| У меня есть мультибоард построенный следующим образом:
Есть целочисленная переменная - массив (killer_massive). В начале игры присваиваю переменным от 1 до 12 значение ноль. (Дальше в них буду записываться значения об убийствах игроков) //фиолетовая рамка А также, при инициализации вычисляется количество играющих игроков и записывается в переменную (players_count) //синяя рамка ---- В следующем триггере выполняется создание самой доски: Красным цветом: Создаётся мультибоард с параметрами "Колонки = 2" "Строки = Кол-во игроков + 3" (Т.к. там ещё будет информация о кланах и победе) Первая колонка, первая строка = Клан 1 (устанавливаю текст) напротив текста - количество убийств клана 1. Дальше устанавливаю последнюю строчку мультибоарда, с информацией о победе. (В информации - переменная, которая будет задана при начале игры) Дальше в синем цвете идёт цикл: Берем всех игроков -> если "игрок играет" и если "взятый игрок из первого клана (т.е. проверка: красный, синий, фиолетовый, и т.д.)" то выполнить действия: Установить имя взятого игрока в строку 'n', и прибавить к счётчику n единицу. (Изначально, 'n'= 2, соответственно, нумерация игроков будет происходить со второй строчки, т.е. как мне и нужно) Если же игрок не соответствует условию Первый клан, то: Устанавливается надпись "Клан 2" и количество убийств напротив, а также, чтобы счётчик n после указания текста второго клана больше не повышался, отнимаем от него единицу каждый раз, при прохождении этой ветки цикла. Также, переменной n_s приваевается значение n на данном этапе, которое будет обозначать кол-во игроков за первый клан. ---- Дальше второй цикл, для второго клана: Значению по 'n', ставим названия игроков второго клана. ---- Дальше, ставим значения переменных из цикла убийств, прямо напротив имён игроков. (Синяя рамка) Для первого и второго кланов .(n_b, это локальный счётчик данного цикла) Далее, устанавливаем остальные параметры, и на этом создание мультибоарда закончено. ---- В следующем триггере происходит обработка убийств: Бовая единица умирает, и убившему её игроку в массиве к его убийствам добавляется единичка. И далее нужно обновить значение мультиборда конкретно для этого игрока. Весь вопрос в том, что у меня строчки в мультиборде не привязаны к игроку, соответственно я не знаю какую строчку в какой момент нужно обновлять. Написанный мной вариант работает только в случае, если игрок-красный, игрок-синий, и т.п. зашли в правильном порядке. В остальных ситуациях единичка будет добавлятся не тому игроку. ---- Вот как должен выглядеть мультибоард: ---- Вот наработка карты: test.w3x ---- Огромная просьба, помогите. А то замучался уже с этой доской.
|
|
|
|
SirNikolas | Дата: Среда, 02 Июля 2014, 10:18:45 | Сообщение # 2 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| Цитата roman412 ( ) Установить имя взятого игрока в строку 'n', Установить PlayerRow[индекс взятого игрока] = n.Цитата roman412 ( ) и прибавить к счётчику n единицу.
После этого обращаешься к строчкам через массив PlayerRow.Добавлено (02 Июля 2014, 10:18:45) ---------------------------------------------
Цитата roman412 ( ) "взятый игрок из первого клана (т.е. проверка: красный, синий, фиолетовый, и т.д.)" Вместо пяти проверок можно просто написать "индекс взятого игрока <= 5".
|
|
|
|
roman412 | Дата: Среда, 02 Июля 2014, 10:50:29 | Сообщение # 3 |
3 уровень
Группа: Проверенные
Сообщений: 56
Награды: 0
Репутация: 20
Блокировки:
| PlayerRow - это переменная-массив типа игрок? Добавлено (02 Июля 2014, 10:50:29) ---------------------------------------------
Цитата SirNikolas ( ) После этого обращаешься к строчкам через массив PlayerRow. Можно пример? Не выспался, никак не могу сообразить.
|
|
|
|
SirNikolas | Дата: Среда, 02 Июля 2014, 14:04:09 | Сообщение # 4 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| Цитата roman412 ( ) PlayerRow - это переменная-массив типа игрок? Цитата SirNikolas ( ) Установить PlayerRow[индекс взятого игрока] = n. Нет, у нее должен быть такой тип, чтобы в нее можно было записать n.
|
|
|
|
roman412 | Дата: Четверг, 03 Июля 2014, 10:06:28 | Сообщение # 5 |
3 уровень
Группа: Проверенные
Сообщений: 56
Награды: 0
Репутация: 20
Блокировки:
| А, понял. На процессе присваивания имён и значений отследить позицию каждого игрока, просто записав её в массив? И потом обращаться... Хм, спасибо. Приду с работы - отпишусь как получилось.
Добавлено (03 Июля 2014, 09:56:58) --------------------------------------------- Переделал для PlayerRow, обновление заработало правильно, большое спасибо.
Появилась другая проблема, иногда при обновлении убийств оранжевого игрока (6-го по счёту, он стоит на стыке двух кланов) его убийства записываются сразу во все строки. Т.е. всем игрокам и кланам. что это может быть?Добавлено (03 Июля 2014, 10:06:28) --------------------------------------------- test.w3x
Сообщение отредактировал roman412 - Четверг, 03 Июля 2014, 10:00:25 |
|
|
|
SirNikolas | Дата: Четверг, 03 Июля 2014, 10:47:15 | Сообщение # 6 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| Загрузи на другой хостинг, пожалуйста, у меня этот не видит. Либо скинь триггеры текстом (правка - конвертировать в текст), потому что скрины у меня работают через раз.
|
|
|
|
roman412 | Дата: Четверг, 03 Июля 2014, 11:59:52 | Сообщение # 7 |
3 уровень
Группа: Проверенные
Сообщений: 56
Награды: 0
Репутация: 20
Блокировки:
| Посмотрел, что все здесь пользуются rghost. test.w3x Надеюсь, этот работает.
|
|
|
|
SirNikolas | Дата: Четверг, 03 Июля 2014, 14:07:15 | Сообщение # 8 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| http://rghost.ru/56704774
|
|
|
|
roman412 | Дата: Пятница, 04 Июля 2014, 05:24:41 | Сообщение # 9 |
3 уровень
Группа: Проверенные
Сообщений: 56
Награды: 0
Репутация: 20
Блокировки:
| Огромное спасибо! Протестировал с AI, всё работает. Это просто замечательно! Тема исчерпана.
|
|
|
|