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


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
Форум о Warcraft 3 » Раздел для картостроителей » Вопросы по картостроению » Здание производит ограниченное кол-во юнитов
Здание производит ограниченное кол-во юнитов
sumertДата: Четверг, 02 Апреля 2015, 07:45:07 | Сообщение # 1
10 уровень
Группа: Проверенные
Сообщений: 2330
Награды: 2
Репутация: 1094
Блокировки:
Нужна помощь с алгоритмом.
Хочу попробовать сделать так, чтобы здание производило ограниченное кол-во юнитов. Например, казармы могут создать только 5 пехотинцев. Когда один из них умирает, соответственно казарма делает еще одного, чтобы было 5.
Сложность в том, что казармы могут быть построены неограниченное кол-во раз.
Посоветуйте рациональный и просто способ, как это сделать.
У меня одна, но довольно глупая идея. Сделать создание юнитов через заклинание. Скажем, у здания 25 маны, каждое создание стоит 5 маны. Мана не восстанавливается. При создании юнита, заносить его в хеш-таблицу, и само здание, и через таймер периодически проверять, жив он или нет. Если мертв, добавить 5 маны зданию.
 

ВолчачкаДата: Четверг, 02 Апреля 2015, 14:53:42 | Сообщение # 2
САЙТ УМЕР ППЦ
Группа: Проверенные
Сообщений: 1361
Награды: 0
Репутация: 2165
Блокировки:
Цитата sumert ()
Нужна помощь с алгоритмом.
Хочу попробовать сделать так, чтобы здание производило ограниченное кол-во юнитов. Например, казармы могут создать только 5 пехотинцев. Когда один из них умирает, соответственно казарма делает еще одного, чтобы было 5.

Хочешь по 5 юнитов на казарму :D?
UnitCustomValue: Массив [CustomValue] = {1..2..3..4..5}; Лучше реализовать методом покупки - так легче блокировать(т.е. запрещать покупку юнита для данного здания):D
И да устанавливаем пехотинцам CustomValue CustomValue от казарм, чтобы их различать.


Сообщение отредактировал Волчачка - Четверг, 02 Апреля 2015, 14:58:38
 

sumertДата: Четверг, 02 Апреля 2015, 15:19:48 | Сообщение # 3
10 уровень
Группа: Проверенные
Сообщений: 2330
Награды: 2
Репутация: 1094
Блокировки:
Волчачка, а если это стратегия и казарм можно строить сколько хочешь? И не один игрок это будет делать.
 

ВолчачкаДата: Четверг, 02 Апреля 2015, 15:42:17 | Сообщение # 4
САЙТ УМЕР ППЦ
Группа: Проверенные
Сообщений: 1361
Награды: 0
Репутация: 2165
Блокировки:
sumert, лимит пищи же не даст нанять больше пехотагеров)))000

Добавлено (02 Апреля 2015, 15:42:17)
---------------------------------------------
Хотя можешь замутить второй массив на каждого игрока, в которым будет записываться общее кол-во пехотинцев; ИЛИ поставить лимит на казармы в В игроке макс юнитов такого типа КАЗАРМЫ 9 штук к примеру)))0

 

sumertДата: Четверг, 02 Апреля 2015, 16:02:30 | Сообщение # 5
10 уровень
Группа: Проверенные
Сообщений: 2330
Награды: 2
Репутация: 1094
Блокировки:
Волчачка нет. Мне так не надо.
Пехотинцы будут стоить 0 еды. У игроков будет ограничение на постройку зданий. И конкретно надо, чтобы казарма произвела макисмум лишь 5 пехотинцев. Никаких других лимитов не надо. Для меня это лишнее.
В принципе можно попробовать с массивами... Есть массив зданий, массив производимых юнитов и массив принадлежности юнитов к зданиям. Потом проверять, сколько юнитов определенной принадлежности и в зависимости от этого запрещать казарме производить или нет.
 

ВолчачкаДата: Четверг, 02 Апреля 2015, 19:43:14 | Сообщение # 6
САЙТ УМЕР ППЦ
Группа: Проверенные
Сообщений: 1361
Награды: 0
Репутация: 2165
Блокировки:
Цитата sumert ()
Волчачка нет. Мне так не надо.
Пехотинцы будут стоить 0 еды. У игроков будет ограничение на постройку зданий. И конкретно надо, чтобы казарма произвела макисмум лишь 5 пехотинцев. Никаких других лимитов не надо. Для меня это лишнее.
В принципе можно попробовать с массивами... Есть массив зданий, массив производимых юнитов и массив принадлежности юнитов к зданиям. Потом проверять, сколько юнитов определенной принадлежности и в зависимости от этого запрещать казарме производить или нет.

Там достаточно одного массива
и просто можно использовать Custom Value; Эта функа просто будет хранить число от 0 до max_array_size;
Ну можешь юзать два, если тебе надо от 0 до 8090)
F1,F2 = 0 B1 =0, B2 = 1;
сдыхает F1 M[F1.CV] = M[F1.CV] - 1
а если казарама создаёт M[B1.CV] = M[B1.CV] + 1
F1.CV = B1.CV
Лалка ты)))


Сообщение отредактировал Волчачка - Четверг, 02 Апреля 2015, 19:45:14
 

sumertДата: Четверг, 02 Апреля 2015, 20:16:47 | Сообщение # 7
10 уровень
Группа: Проверенные
Сообщений: 2330
Награды: 2
Репутация: 1094
Блокировки:
Волчачка, ты ведешь себя глупова-то. Как один массив будет отслеживать все казармы и всех юнитов, которые они производят? А потом еще и при смерти юнита точно определит, к каой казарме этот умерший принадлежал
 

ВолчачкаДата: Четверг, 02 Апреля 2015, 20:23:24 | Сообщение # 8
САЙТ УМЕР ППЦ
Группа: Проверенные
Сообщений: 1361
Награды: 0
Репутация: 2165
Блокировки:
Цитата sumert ()
Волчачка, ты ведешь себя глупова-то. Как один массив будет отслеживать все казармы и всех юнитов, которые они производят? А потом еще и при смерти юнита точно определит, к каой казарме этот умерший принадлежал

Я говорю о Custom Value он же Get\SetUnitUserData() - полезная вещь для такой операции, которую ты хочешь провернуть.
Допустим 1 казарма имеет 0
соответственно пехотагеры будет создаваться и им будет устанавливаться тот же индекс
казарма два имеет индекс 1
мы им тоже будет давать индекс если они построятся.

Barrack{0}F{00000} >>Barrack{1}F{11111}>>n+1
Даже индекс можно при смерти отслеживать)))00
 

Svanir2Дата: Пятница, 10 Апреля 2015, 08:14:30 | Сообщение # 9
2 уровень
Группа: Пользователи
Сообщений: 32
Награды: 0
Репутация: 2
Блокировки:
Скачай Unit Indexer с хива и делай вот такие вот триггеры:
Создаём переменную типа целочисленная(integer) с массивом. Назовём её Х. И ещё одну переменную типа Боевая еденица с массивом. Её назовём Y.
Далее первый триггер:
Событие: Завершает подготовку боевой еденицы
Условие: Подготовленный юнит = Пехотинец; Переключающий юнит = Казарма
Действие: Устаовить перемнную Х[обычное значение юнита(Переключающий юнит)] = Арифметика (Х[обычное значение юнита(Переключающий юнит)] + 1); Установить переменную Y[обычное значение юнита (подготовленный юнит)] = Переключающий юнит; Если Х[обычное значение юнита(Переключающий юнит)] = 5, то поставить переключающего юнита на паузу (ну это к примеру, как запретить обучение).
И второй:
Событие: Умирает
Условие: Умирающий юнит = Пехотинец
Действие: Установить переменную Х[обычное значение юнита(Y[обычное значение юнита(умирающий юнит)] = Арифметика (Х[обычное значение юнита(Y[обычное значение юнита(умирающий юнит)] - 1); Если Х[обычное значение юнита(Y[обычное значение юнита(умирающий юнит)] = 0, то снять Переключающий юнит с паузы (если ты воспользовался такой методикой).

Добавлено (10 Апреля 2015, 08:14:30)
---------------------------------------------
Упс, ошибся, в последней строчке будет: то снять Y[обычное значение юнита (умирающий юнит)] с паузы.
И простите пожалуйста за оффтоп. но как тут редактировать сообщения???

 

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

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