XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > StarCraft (только чтение)> Галактическая академия
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

 
Тонг

offline
Опыт: 15,315
Активность:
Окно счетчика изменяемого размера
дано:
от 1 до 9 игроков
необходима панель на которой отображалось бы количество убийств (героев) каждого из игроков
вопрос - как делать
Проблема:
если делать просто по умолчанию на 9 игроков то получается здоровая такая дура
Варианты
  1. смотреть сколько игроков в игре и в зависимости от этого делать 9 разных окон с разным наполнением и разными константами.
  2. Изменять размеры окна (задать размер диалогового окна), удалить не существующие элементы. Красивее но возможны глюки тк игроки определены изначально если мы делаем соответственно свободно используемыми будут не работать некоторые тригеры)
  3. ?
Вопрос в ту же копилку каким тригером по вашему мнению необходимо (лучше всего) обновлять текст в окне?

Отредактировано Nething, 21.09.2010 в 14:15.
Старый 21.09.2010, 12:31
H
hello world
offline
Опыт: 130,725
Активность:
Чем же?
Пуская цикл k от 1 до 9
Создать МБ
Создать надпись "Убийства n"
Создать надпист "Смерти n"
Показать МБ игроку (k)

Отредактировано Nething, 21.09.2010 в 14:15.
Старый 21.09.2010, 14:00
lentinant
Скучно
offline
Опыт: 42,216
Активность:
второй пункт, просто не удалять, а прятать ненужные элементы, тогда триггеры, требующие их, не будут выдавать ошибку
lentinant добавил:
обновлять текст стандартно - каждую сотую (или какую-то там) часть секунды менять надпись каждого лейбла, или, чтобы меньше грузило, при смерти юнита смотреть, герой ли это, и, если да, засчитать ему плюс смерть, а убившему - плюс фраг
Старый 21.09.2010, 14:20
Тонг

offline
Опыт: 15,315
Активность:
таак...
окно с 1м счетчиком
Win kills
События
Игра - Инициализация карты
Локальные переменные
Условия
Действия
Окно диалога - Создать Модальный диалоговое окно размером (100, 100) в (0, 0), связанное с Правый экрана
Переменная - Установить DialInterWindRpg[9] = (Последний созданный диалог)
Окно диалога - Показать DialInterWindRpg[9] для (Все игроки)
Окно диалога - Создать метку для диалога DialInterWindRpg[9] с размерами 50 и 50, привязанную к Левый верхний со смещением (25, 25), текстом " " цвета Белый и появлением текста false в течение 2.0.
Переменная - Установить QElem[0] = (Последний созданный объект диалога)
Обновление текста:
Update Win Kills
События
Единица - Любая боевая единица начинает атаку
Локальные переменные
Условия
(Атакующая боевая единица) == UnitGrup[(Изменяемый игрок)]
Действия
Окно диалога - Использовать (Преобразовать (Kills[(Изменяемый игрок)]) в текст) как текст QElem[0] для Player
Переменная Kills - обновляется отдельным тригером.
Тонг добавил:
Фишка в том что оно не работает. хотя по логике должно.
Если у меня не верная логика объясните в чем я не прав. заранее спасибо.
Тонг добавил:
спасибо Nething за правки и соблюдение норм русского языка в моих постах.
Старый 21.09.2010, 15:32
H
hello world
offline
Опыт: 130,725
Активность:
обновлять текст стандартно - каждую сотую (или какую-то там) часть секунды менять надпись
каждого лейбла, или, чтобы меньше грузило, при смерти юнита смотреть, герой ли это, и, если да,
засчитать ему плюс смерть, а убившему - плюс фраг
так не делай, меняй значение при убийстве/смерти. Т.е только тогда когда оно меняется.
Фишка в том что оно не работает. хотя по логике должно.
не должно.
Если у меня не верная логика объясните в чем я не прав. заранее спасибо.
Во первых ты создаешь один диалог для 9 игрока, а обновляешь текст 0 у всех игроков.
Замени9 на k, к сделай циклом, и 0 тоже поменяй на k
Старый 21.09.2010, 15:44
lentinant
Скучно
offline
Опыт: 42,216
Активность:
Ahelhot:
при смерти юнита смотреть, герой ли это, и, если да, засчитать ему плюс смерть, а убившему - плюс фраг
так не делай, меняй значение при убийстве/смерти. Т.е только тогда когда оно меняется.
вроде бы одно и то же
Старый 21.09.2010, 17:50
H
hello world
offline
Опыт: 130,725
Активность:
Нет.
Твой метод обновляет каждые n секунд ( постоянные расчеты ) + запаздывание обновления. Допустим если секунду поставить, то статистика может изменится до секунды позже.
Мой метод, никаких лишних расчетов + моментальное обновление после изменения очка
минус один, каждый раз после изменения нужно специальное действие на обновление таблицы.
Короче для ленивых твой метод лучше.
Старый 21.09.2010, 18:05
Тонг

offline
Опыт: 15,315
Активность:
я туплю извините.
давайте для начала 1н счетчик.
который просто показывает переменную Х и обновляется.
Старый 21.09.2010, 20:13
lentinant
Скучно
offline
Опыт: 42,216
Активность:
Ahelhot, в моем первом посте два варианта, с периодическим обновлением только первый, второй - изменение данных после смерти героя. Второй идет после слова "или"
Старый 21.09.2010, 21:05
Тонг

offline
Опыт: 15,315
Активность:
lentinant,
Будьте любезны тригер.
Копипастом.
Старый 22.09.2010, 14:04
lentinant
Скучно
offline
Опыт: 42,216
Активность:
как-то так. Диалог кривоват, но не в том суть. Для большего количества игроков, увеличь количество лейблов и размер массива. Если есть какие вопросы - обращайся
Прикрепленные файлы
Тип файла: sc2map 2.SC2Map (175.1 Кбайт, 11 просмотров )
Старый 22.09.2010, 16:57
Тонг

offline
Опыт: 15,315
Активность:
Спасибо. После переделки работает идеально.
Старый 23.09.2010, 18:51

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 22:04.