Добрый день, возможно ли реализовать такое, есть нейтральный юнит у которого есть возможность грейдить атаку и защиту у всех рас, но вот загвоздка, в интерфейсе отображается только тот грейд которые в редакторе указаны сверху. Хочется сделать чтобы триггерно проверялось какая раса заказала юнита и делала отображение улучшений расы игрока

Принятый ответ

Steal nerves, насколько я понимаю, автору вопроса нужно совсем другое - он хочет чтобы у юнита было одновременно несколько улучшений на атаку, не важно откуда они берутся и даже не важно могут ли они быть активны одновременно. А проблема вся в циферке уровня улучшения на иконке атаки, которая начинает себя некорректно вести когда на атаку влияет больше одного улучшения.

можно просто исследование других рас насильно через триггер давать
Или создать копию улучшения для нейтралов и выдавать его триггерно при изучении родного, а циферку у юнита завязать именно на это улучшение. (одно улучшение для нейтралов, выдавать при изучении любого из соответствующих ему рассовых улучшений).
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
26
5 лет назад
0
Можно описать на конкретном и подробном примере, а то в общих чертах не особо понял?

В частности не понял, как осуществляются грейды. Любой игрок может грейдить любые расы игроков, может грейдить только себя, может грейдить лишь определённого игрока, а не всех игроков этой расы?

Вообще не понял:
в интерфейсе отображается только тот грейд которые в редакторе указаны сверху

Имеется ввиду раса игрока по выбранному где-то юниту:
чтобы триггерно проверялось какая раса заказала юнита
0
1
5 лет назад
0
Допустим наняли тролля в лагере наемников, Если его нанял альянс и делает грейд на атаку то единичка отображается в интерфейсе под атакой, если его наняла Орда, то при грейде атака добавляется но единичка не ставиться, вот эту проблему хочу решить
0
28
5 лет назад
0
Demon_Dante:
Допустим наняли тролля в лагере наемников, Если его нанял альянс и делает грейд на атаку то единичка отображается в интерфейсе под атакой, если его наняла Орда, то при грейде атака добавляется но единичка не ставиться, вот эту проблему хочу решить
Надо прописать все возможные грейды у юнита в редакторе объектов.
Так как тролль дальний воин, есть смысл пописывать только улучшения для дальнего боя.
0
27
5 лет назад
Отредактирован MpW
0
Demon_Dante, все равно как-то туманно.
можно сделать через продажу войск. Вы же в нейтральном магазине (доме-юните) хотите грейдить? Когда кто-то покупает dummy-юнита, можно узнать владельца. А следом и узнаем и принадлежность расы игрока, и к какому союзу и прочее. Можно еще произвести звук: "Исследование завершено!" а исследование можно изучить триггерно, там просто есть комманда "установить лв исследования"
0
24
5 лет назад
0
Demon_Dante, насколько я знаю - это правило отображения никак не лечится, только разными юнитами делать с разными наборами улучшений и заменять на нужного после покупки. Возможно мемхак что-то умеет на эту тему, но не факт.
0
27
5 лет назад
Отредактирован MpW
0
пробовал ранее потестить. чтобы один игрок видел в этом магазине свои грейды (юнитов), другой другие (других юнитов), так не получится. В норм плане, но только 4-ый вариант мб.
вот примеры
  1. GetLocalPlayer() + добавление в магазин юнитов. Это приводит к десинку, норм показывает в начале разных юнитов в магазине, но как только кто-то покупает - приводит к десинку.
код
    local integer id
    if GetLocalPlayer() == Player(0) then
        set id = 'hfoo' //пехотинец
    elseif GetLocalPlayer() == Player(1) then
        set id = 'ogru' //бугай
    endif
    call AddUnitToStockBJ( id, gg_unit_n000_0001, 0, 1 )
  1. GetLocalPlayer() + ShowUnit. Пробовал разные магазины наделать, для каждого игрока свой магазин. Расставляем все эти рынки в одну точку (удаляем всем магазинам текстуру пути, лишь у одного должна быть. Иначе блокируют стройку, и друг на друга не поставишь здания). И каждый должен видеть свой. Но как бы GetLocalPlayer() и ShowUnit несовместимы, сразу же приводит к десинку.
код
//market1, market2 - магазины 1 и 2
    if GetLocalPlayer() == Player(0) then
        call ShowUnit(market2, false)
    elseif GetLocalPlayer() == Player(1) then
        call ShowUnit(market1, false)
    endif
  1. можно запретить тренировать войска или проводить исследования. Как это сделать? Это в триггерах в разделе игрок можно поставить лимит данного типа юнита на ноль.
У одного игрока может быть запрещен, то у другого игрока показан. Однако, этот лимит распространяется на тренировку (не найм). Хотел поставить эту идею на покупку юнитов, но попутал обучением. Не распространяется на найм Короче, еще есть такая фишка что чужой игрок не увидит ваших юнитов, для этого нужно полный контроль отдать ему. Аналогично, и у исследовании (вроде там тоже в разделе игрок есть макс лимит технологии, точно не тестил).
В редакторе есть ограничение: в редакторе в бараках в поле "обучено войск" макс указать можно 12 типов юнитов, но по-настоящему можно тысячи типов юнитов добавить через shift. этот вариант работает у игрока, если барак принадлежит ему. Или этот контроль за бараком должен быть расшарен (однако с этим могут быть проблемы: контроль то общий, но невозможно заставить чужой барак тренировать юнита, если у владельца барака нет ресурсов)
  1. возможно смесь вариантов 2 и 3 - это с разными магазинами, только переключаешь выбор на нужный магазин. Есть событие - игрок выделяет юнита. это единственный рабочий вариант
3
1
5 лет назад
3
Steal nerves:
Demon_Dante, все равно как-то туманно.
можно сделать через продажу войск. Вы же в нейтральном магазине (доме-юните) хотите грейдить? Когда кто-то покупает dummy-юнита, можно узнать владельца. А следом и узнаем и принадлежность расы игрока, и к какому союзу и прочее. Можно еще произвести звук: "Исследование завершено!" а исследование можно изучить триггерно, там просто есть комманда "установить лв исследования"
Всем спасибо, сам не допер что можно просто исследование других рас насильно через триггер давать
0
24
5 лет назад
Отредактирован prog
0
Steal nerves, насколько я понимаю, автору вопроса нужно совсем другое - он хочет чтобы у юнита было одновременно несколько улучшений на атаку, не важно откуда они берутся и даже не важно могут ли они быть активны одновременно. А проблема вся в циферке уровня улучшения на иконке атаки, которая начинает себя некорректно вести когда на атаку влияет больше одного улучшения.

можно просто исследование других рас насильно через триггер давать
Или создать копию улучшения для нейтралов и выдавать его триггерно при изучении родного, а циферку у юнита завязать именно на это улучшение. (одно улучшение для нейтралов, выдавать при изучении любого из соответствующих ему рассовых улучшений).
Принятый ответ
Чтобы оставить комментарий, пожалуйста, войдите на сайт.