Суть достаточно проста, но делая на низком уровне GUI я столкнулся с проблемой при нескольких игроках.
В общем это квест на последовательное вхождение в зоны определённым игроком.
"Войди в эти зоны последовательно, сначала во вторую, потом в первую, и потом в третью. А если последовательность нарушается - смерть. Потом это всё меняется: Сначала 1 потом 2 потом 3.
При этом, если его проходят сразу 2-3 игрока, то у каждого должна соблюдаться своя последовательность

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

Получилось сделать только первую ступень с 1 регионом, не думайте, что я не читал то, что вы писали, для меня это немного сложновато, в общем для 1 игрока я сделал следующее.
Загруженные файлы
0
15
9 лет назад
0
Свои попытки?
2
21
9 лет назад
2
Вообще, как, например, я формулирую задачу для постановки в вц3 (если я ещё таковые формулирую), для начала надо ознакомится с возможностями движка, потом с тем как все это реализовано, разложить по полочкам, а после этого интерес к вц3 пропадает надо делать свою великую идею
0
25
9 лет назад
0
Если что, события можно добавлять сторонним триггером.
2
23
9 лет назад
2
Запили массив с последовательностями для каждого игрока и при событии проверяй нужный элемент массива.
0
3
9 лет назад
0
Мои попытки очень глупо выглядят, т.к. не знаю полноценную работу даже языка GUI и зачастую чтобы что-то написать тыкаюсь в слепую как собачка. Моя наработка - это создание трёх зон для каждого плеера и на каждую зону отдельно пишется событие с условием и действием, то бишь получается малокода в 1 триггере с овер99999 триггерми.
Я знаю только теоретическую часть Переменных и примерно представляю их работу, но на движке Вара реализовать это - я не могу. У меня это не получается.
После того как я начал реализовывать свою "наработку" я понял что только на это я убью часа 2. А ведь надо второй квест такой сварганить, поэтому я решил обратиться сюда и найти более универсальный поход к этой проблеме. При этом на различные варианты я тоже потратил не мало времени.
0
29
9 лет назад
0
Nerealist, xgm.guru/p/wc3/trigger_basics
Делается в 1 триггер и пару глобальных переменных
0
3
9 лет назад
0
Я смотрю все умные на советы, а набросать хоть часть кода или примерно как построить это на GUI текстом никто не может.
был бы это простой код было бы легче:
if "TrigUnit" enter in "region1";
kill this unit;
else
if "TrigUnit" enter in "region2";
kill this unit
else
if TrigUnit" enter in "region3";
move unit in "region 15";
Загруженные файлы
2
28
9 лет назад
Отредактирован nvc123
2
а зачем там массив
никто не делает тебе триггер ибо это "вопросы/ответы" а не "сделайте за меня триггер"
Nerealist, алгоритм прост
используем в качестве индекса номер игрока
я бы сделал бд и в результате весь квест уместился бы в 1 триггер
0
3
9 лет назад
0
nvc123, Ну хорошо, что ты подразумеваешь под БД? База данных плееров? UnitTrig[1] это и есть 1 плеер я хотел сначала закончить с ним. потом приступить к остальным... либо у меня в голове вообще не правильно выстраивается всё это.
Предположим ранее, я занёс юнита вошедшего в регион(другой регион) принадлежащий красному игроку в Массив UnitTrig[1] и так с каждым плеером, то бишь 12. Регионы и так константами являются их в массив не надо пихать, на мой взгляд.
Так а дальше то что? Я немного не представляю события, при котором всё это должно происходить. Потому что при входе в регион 1 не проверится условие на вход во 2ой и 3ий регион может просто кто разъяснит текстом? Разжуёт так скажем
2
28
9 лет назад
2
Nerealist, в бд храним последовательность входа в регионы для каждого игрока
1 триггеру можно дать несколько событий
надо действовать следующим образом
2 массива интов
в 1 храним последовательности(назовём его a)
во 2 храним какой по счёту регион для игрока(назовём его b)
номер игрока юнит которого вошёл в регион назовём c
тогда
int thisreg // номер региона в который вошёл юнит
if(a[(c*3)+b[c]]==thisreg){
b[c]++;
if(b[c]==3){
End(c); //квест пройден игроком с номером c
}
}else{
Kill(c); //квест провален игроком с номером c
}
0
23
9 лет назад
0
и так с каждым плеером, то бишь 12
Погугли, что такое цикл. И все твои 12 одинаковых манипуляций внезапно превратятся в 1.
0
28
9 лет назад
0
SomeFire, там нужен не цикл
там нужно заюзать в качестве индекса номер игрока
0
23
9 лет назад
0
nvc123, это смотря как он триггер напишет. Так и так нужно обращаться к какому-либо массиву. Хотя да, в данном случае я туплю. Стремно без практики.
Этот комментарий удален
0
3
9 лет назад
0
Получилось сделать только первую ступень с 1 регионом, не думайте, что я не читал то, что вы писали, для меня это немного сложновато, в общем для 1 игрока я сделал следующее.
Загруженные файлы
Принятый ответ
0
15
9 лет назад
0
построй 3или более баз для каждого игрока по 1
и пуст каждый проходит свою
0
3
9 лет назад
0
Не вариант) мне место на карте важно)
В общем из предоставленного выше кода, я сделаю 3 триггера для 1 игрока, итого это будет 33 триггера)
Если кто подскажет, как это можно будет оптимизировать, то очень буду рад)
Чтобы оставить комментарий, пожалуйста, войдите на сайт.