Сейчас 10:38:54 Понедельник, 29 апреля, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
Форум о Warcraft 3 » Раздел для картостроителей » Вопросы по картостроению » Обновление строк мультиборда
Обновление строк мультиборда
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, всё работает. :o :o
Это просто замечательно!
Тема исчерпана.
avtoradolf
 

Форум о Warcraft 3 » Раздел для картостроителей » Вопросы по картостроению » Обновление строк мультиборда
  • Страница 1 из 1
  • 1
Поиск:

Copyright © 2006 - 2024 Warcraft3FT.info При копировании материалов c сайта ставьте, пожалуйста, активную обратную ссылку на нас • Design by gReeB04ki ©
Хостинг от uCoz