Данная система даёт сбой если юнит типа пехотинец был в очереде, а денег не хватает.
То есть я могу бесконечно нанимать их, даже при нехватки денег. Есть идеи как решить?
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
19
3 недели назад
0
Похожие вопросы:

ответ
Закрываем вопрос, причина была в снятой галочке про "включение локальных данных"
Лучший вариант: Datamanager+EnableLocalFiles
ответ
Все функции прелоада замена на рид/врайт мемхака, и в любом случае проверь права администратора для варкрафта, например JNGP точно запущен с правами админа и всё норм, права на запись есть, а если вар запускаешь с обычными, то у него не будет прав для записи, файл прелоада не создасться как и writestring и дальше всё поедет...
MKDimon, Запусти от админа, отпишись
ответ
ладно. заработало.
не рабочий вариант
call SaveInteger(Hash,GetHandleId(GetTriggerUnit()),5555, CurrentNumberOfSettlement) в одном триггере сохраняем
set CurrentNumberOfSettlement = LoadInteger(Hash,GetHandleId(GetTriggerUnit()),5555) в другом триггере для проверки выгружаем
рабочий вариант
local integer id = GetHandleId(GetTriggerUnit())
call SaveInteger(Hash,id,5555, CurrentNumberOfSettlement) в одном триггере сохраняем
set CurrentNumberOfSettlement = LoadInteger(Hash,id,5555) в другом триггере для проверки выгружаем
Короче вернул обратно локалки, и все заработало. И почему первый вариант не работал. Ладно будут искать подводные камни. Наверное после чистой оптимизации что-то перестало работать. эх... придеться посравнивать. похоже старый код где то мб лучше. только времени потратил на методы тыка.
ответ
События на воскрешения юнита нет. Можно попробовать при касте воскрешения проверить всех мертвых юнитов вокруг кастера годных для воскрешения, а спустя 0.00 секунд проверить кто в группе мертвых ожил, хз. Тут только костылями выкручиваться либо делать свою систему воскрешения/воспользоваться южапи, если там есть соответствующая функция

или событие на воскрешение есть?

0
29
3 недели назад
0
Задай пехотинцу стоимость в РО.
Ответы (1)
0
27
3 недели назад
Отредактирован MpW
0
nazarpunk,
Я так понял, что бесплатные юниты не с проста, тк у автора собственная система ценника. Задай ему фиксированную цену в ро, и игрок не всегда сможет купить даже за скидку, и юнит не появится в бараках. Вот реализовал, точнее, это еще полдело, тк ивент триггера ловит только обучение, а не заказ всех юнитов в казарму. Надо с ивентом приказа для бараков ловить очередь. а теперь, он не может придумать как ограничить наем. Я предлагаю просто приказом отмены из очереди баракам удалять, если не прошел требование по ресурсам
0
1
3 недели назад
0
но есть 1 беда. Мне нужно чтобы высчитывалось ток с переменной. Система такая- Юнит нанимается следущий юнит стоит на 15 голды(+15 к переменной) больше и так бесконечно. При найме убийстве -15(-15 к переменной). И во время найма юнита из переменной отвечающий за золото игрока вычитается переменная цены юнита. И вариант задать пехотинцу цену в ро не работает ибо я не знаю способа воздействовать на цену юнита напрямую. Если знаешь подскажи пожалуйста
0
27
3 недели назад
Отредактирован MpW
0
Изменить никак стандартным способом. Не помню, можно ли изменять в рефоге цены, тк там тоже завезли функции, и если да, как там работает.
Можно либо фреймами, либо ujapi
Фреймы на рефордже: Ты просто переделываешь стандартный интерфейс, и меняешь кнопки. Но это большая работа, но я уже разжевал для новых верущих, все что остается практика. Ах, да там требует понимание хотя бы jass. Я что то в гуи не находил ни ивентов, ни команд, когда начинал. Это уже сейчас ввели. Хотч, если честно, может большой работы и не потребуется, написать какой-нибудь костыль, и визуально прикрыть дефолтный тултип с ценником, но заморачиваться не хочется
ujapi : сейчас там больше функции, и активно поаолняется. Возможно, там вам не нужно будет изучать фреймы, достаточно будет изменить цены напрямую, если нет, к автору. Тут тоже надо jass изучать
Ответы (1)
0
29
3 недели назад
Отредактирован nazarpunk
0
Возможно, там вам не нужно будет изучать фреймы, достаточно будет изменить цены напрямую, если нет, к автору.
В UjAPI завезли:
constant unitintegerfield UNIT_IF_GOLD_COST = ConvertUnitIntegerField('ugol')
0
27
3 недели назад
Отредактирован MpW
0
Данная система даёт сбой если юнит типа пехотинец был в очереде а денег не хватает
То есть я могу бесконечно нанимать их даже при не хватки денег. Есть идеи как решить?
Ну, ивент "начинает подготовку юнита". Это отслеживаем, когда начинается обучение юнита. А отследить последующих в очереди не удаться, только с помощью приказа, когда нанимаете бойца, бараки получают приказ. Приказ, еще можно отменить. Помню как то делал. Поищи приказ "отмена", не путай с приказом "стоп". При проверке, если у игрока нет ресурсов, то отдавай баракам приказ отмены, и последний в очереди отменяется. Если я там помню

0
18
3 недели назад
Отредактирован EugeAl
0
Я бы проще сделал, но не так красиво - поставил бы событие завершения производства, и если денег нет, то спрятать и удалить юнита и дать сообщение игроку что нибудь в духе "недостаточно средств для производства"
И ещё можно после события сразу отловить ид приказа самой казармы, и если он больше 0, то отдать приказ казарме отмена, но это не точно.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.