Всем привет, возникла необходимость на карте сделать бои на арене.
Пока что присутствует 4 игрока и 3 разных полей для арены. На каждой арене по 2 области, я в инициализации обозначил их как location[1] и так до 6.
При выборе персонажа, ему (персонажу) присваивается переменная Fighter[], в индексе указывается номер игрока-владельца.
На стадии, когда у меня должна быть арена, я рандомлю 2 номера от 1 до 4, ставлю условие, что Player(i[1]) и Player(i[2]) равно играют, в противном случае - запустить этот триггер перерандомливания заного. По итогу у меня не работает это условие и номера 3, 4 его проходят, хотя тестирую карту с игроком красным и синим, т.е. должны проходить комбинации номеров 1, 2, либо 2 и 1 соответственно, но этого не происходит.
Скрины прилагаю.
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
19
2 года назад
0
Похожие вопросы:

ответ
quq_CCCP:
Спасибо, понял что надо создавать форс единожды, чтобы утечек не было
Мдаа уж, оказывается все дело в том, что забыл поставить исходные позиции другим игрокам, хорошо хоть проверить догадался, засиделся за редактором
ответ
ScorpioT1000, мне кажется, регионы он там не должен создавать =) вот точки да, а регионы же обычно берут из ныне существующих регионов. если создадим его в редакторе, его же и указывают в функции. ниче не создает.
такая гуи-команда странная, не помню такую в boolean. Типа ПРОВЕРКА что все юниты группы в регионе?

в скрине мб локалки не обнулены. там BJ-функции, раскрой и посмотри нет ли их. пример
советовал бы строить по-другому конструкцию.
если честно, не понятно, что за карту ты скинул. я тебе просто пример оптимизации на гуи показал. Но не решения ваших проблем. на jass этого бы не потребовалось, ибо на гуи приходится изворачиваться из-за ограничении команд и утечности bj-функции. там группы утекают, где-то не обнуляют/не удаляют.

Я короче более менее понял вашу ситуацию. 4триггер у вас не будет работать из-за переменной. там надо в фильтре вместо Picked unit ставить Matching Unit. С 4 примером я кажется ошибся. Там у меня по другому работает: выделяю всех из группы и нахожу рандомного юнита, а надо выделить вокруг гг, которые состоят в группе.
ответ
Так есть действие в блоке иначе.
ответ
Я условия проверил, и они работают. ну она работает от случая к случаю. Что-то изменяю, и пашет. Вношу изменения снова, не работает. вернее, часть условия работает верно.
Пример, есть 4 игрока:
  1. красный (собственно я) => несколько юнитов могут не двигаться, а остальные разбегаются
  2. синий (подконтрольный союзник) => несколько юнитов могут не двигаться, а остальные разбегаются
  3. голубой враг
  4. фиолетовый нейтральный
все войска кроме подвижных подконтрольных являются как бы препятствием

пример, я сделал все работало. кроме синего неподвижных юнитов, решил в условиях похимичить, и сломал, короче, перестали работать: теперь, на голубого не работает. иногда не пашет на друкгих.

забавно но факт: тут бывает где то в условиях обрывается поток, и поэтому не работает что то. что делать то? условие как бы нужное, ну раз не пашет, надо понять причину
--если этот юниты подконтрольны частично
local flag1=GetPlayerAlliance(PlaYer, pp, ALLIANCE_SHARED_CONTROL)
 --если этот юниты подконтрольны полностью
local flag2=GetPlayerAlliance(PlaYer, pp, bj_ALLIANCE_ALLIED_ADVUNITS)
--если игрок нейтральный
--local flag3=GetPlayerAlliance(PlaYer, pp, ALLIANCE_PASSIVE)

продвинутый контроль не нужен, только обычного достаточно. В редакторе его не включить, нужно частичный и только потом открывается полный. Также и через триггеры. Думаю, что достаточно проверять частичное, иначе продвинутый обрывает поток
flag2=GetPlayerAlliance(PlaYer, pp, bj_ALLIANCE_ALLIED_ADVUNITS)
короче, еле еле решил проблему

0
27
2 года назад
0
а то что игрок может сам против себя попасться это задумано?
0
1
2 года назад
0
rsfghd, условие же есть i[1] не равно i[2]
0
27
2 года назад
0
Gaymer, а в чём прикол потом ставить i[2] не равно i[1]?

типа если поменять местами числа как-то логика сломается?

отобрази на отдельной карте проблему и скинь сюда если не сложно
0
1
2 года назад
0
rsfghd, нет, логика не сломается. Просто я не знаю почему не работает, поэтому делаю хоть что-то.
Загруженные файлы
0
18
2 года назад
0
В карте код отличается нежели нежели на скрине. По описанию играть должны оба игрока, но проверка кривая и на скринах и в карте.
screen
Потом перезапуск триггера для рандома вызывает вылеты из игры, поэтому поставил wait, демонстрация в примере 1. Но из за этого ломается код который должен перемещать юнитов на арену, поскольку wait откладывает выполнение кода на время.
Короче говоря если нужно перебрать случайные числа, для этого существует такая конструкция как цикл. В GUI у вас нет возможности в полной мере использовать циклы. Либо пишите на jass, либо используйте пользовательский скрипт - пример 2. Однако по мере развития карты вы будете часто сталкиваться с тем, что тех или иных возможностей на GUI нет, поэтому рекомендую изначально писать на jass/vjass с подсветкой синтаксиса, которая встроена в редактор JNGP
2
28
2 года назад
Отредактирован PT153
2
В GUI у вас нет возможности в полной мере использовать циклы.
Для генерации случайных чисел хватит.
0
18
2 года назад
0
Для генерации случайных чисел хватит.
Нет
2
28
2 года назад
2
Vlod, ты плохо знаком с функционалом GUI.
0
18
2 года назад
0
PT153, в подкрепление своих слов приложи пожалуйста карту которая решает на GUI описанную в вопросе задачу, если ты действительно хорошо знаком с функционалом GUI
Чтобы оставить комментарий, пожалуйста, войдите на сайт.