Сейчас 04:18:09 Суббота, 30 ноября, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
Не могу решить задачу: выбор игроками одной из сторон
aster32Дата: Четверг, 18 Ноября 2010, 00:21:03 | Сообщение # 1
1 уровень
Группа: Пользователи
Сообщений: 12
Награды: 0
Репутация: 0
Блокировки:
Здравствуйте. Во время создании карты столкнулся с одной проблемой. Бился с ней долго и упорно, но у самого пока ничего не получилось. Вопрос стоит такой: после загрузки карты у игрока есть возможность принять одну из сторон, но в одной из команд может быть только 1 игрок, а в другой все остальные; при выборе стороны высвечивается диалоговое окошко с выбором; не могу сделать так, чтобы в одной из команд был только 1 игрок в том случае, если за эту команду хочет играть больше 1 человека. Я условно так представляю как это реализовать: нужно срандомить какие-либо переменные тем игрокам которые хотят играть за эту команду и у кого большее число, тот и будет играть за нее, а кому не "повезло", того должно кинуть за другую команду ( с реализацией такой идеи возникли проблемы ).

Использую обычный редактор Wacraft III , который идет вместе с игрой. ( обновление игры одно из последних )

 

FkoFFДата: Четверг, 18 Ноября 2010, 00:41:55 | Сообщение # 2
Группа: Заблокированные
Сообщений: 4356
Награды: 1
Репутация: 1413
Блокировки:
При выборе несколькими игроками той стороны где может быть всего один игрок - выдавай рандомное число. По окончанию голосования сравнивай числа и отправляй в изгнание того игрока у которого большее\меньшее значение.

в чем проблема?

показываем диалог, игрок проголосовал - присваиваем игроку рандомное число 1-100.

Запускаем таймер на нужное количество секунд. Если количество игроков в группе игроков желавших играть за одиночку равно нулю - отправлять случайного игрока в изгнание, в противном случае (количество равно 1) = отправлять в изгнание единственного проголосовавшего игрока. Если количество больше 1 то отправлять того у кого самое большое число.

Добавлено (18-11-2010, 00:41)
---------------------------------------------
функция на выявление большего числа:

for each integer x from 1 to (max) do actions:
if
number[x] > winner
set winner = x
else

winner - целочисленная которая дает ссылку на индекс самого большого числа в массиве number

эдентично можно делать и с

Здоровье юнита(unit[x]) > Здоровье юнита(unit[winner)

set winner = x


 

aster32Дата: Пятница, 19 Ноября 2010, 00:43:26 | Сообщение # 3
1 уровень
Группа: Пользователи
Сообщений: 12
Награды: 0
Репутация: 0
Блокировки:
спасибо за быстрый ответ, очень помогли =) Почти разобрался ^^
 

  • Страница 1 из 1
  • 1
Поиск:

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