Есть три точки(rect=точка): A, B и C. При входе в одну из точек, героя тпшит к другой точке. В данный момент, тп происходит так: вошел в A, тпшнуло в A, B или C. А нужно, чтобы было так: вошел в A, тпшнуло в B или C. Собственно вопрос заключается скорее в том, как исключить ту точку, в которой находится герой в данный момент.
Код
local location RTPpoint set RTPpoint = GetRectCenter(udg_RandomTP[GetRandomInt(1, 3)]) call SetUnitPositionLoc( GetTriggerUnit(), GetRectCenter(udg_RandomTP[GetRandomInt(1, 3)]) ) call PanCameraToTimedLocForPlayer( GetOwningPlayer(GetTriggerUnit()), GetUnitLoc(GetTriggerUnit()), 0.50 )
Решения, в которых понадобится jngp не предлагать Да сохранит Аллах того, кто предложит решение на ГУИ.
Добавлено (10 Июня 2015, 15:00:37) --------------------------------------------- И еще, не могу в common.j найти функцию типа DestroyDialogButton. Подобная есть? Либо как сделать так, чтобы установить кнопке диалога(Button[1], например) значение на null. Может udg_Button[1] = null сканает?
Добавлено (10 Июня 2015, 15:03:15) ---------------------------------------------
ЦитатаSamedy_ ()
Может udg_Button[1] = null сканает?
Реально сканало)
Сообщение отредактировал Samedy_ - Среда, 10 Июня 2015, 14:23:38
Добавлено (10 Июня 2015, 15:36:44) ---------------------------------------------
ЦитатаKaotika ()
DestroyDialogButton
нельзя уничтожать Бутоны.
Добавлено (10 Июня 2015, 15:42:23) ---------------------------------------------
Добавлено (10 Июня 2015, 15:50:36) ---------------------------------------------
ЦитатаSamedy_ ()
И еще, не могу в common.j найти функцию типа DestroyDialogButton. Подобная есть? Либо как сделать так, чтобы установить кнопке диалога(Button[1], например) значение на null. Может udg_Button[1] = null сканает? :D
я бы использовал это:
Очищаем диалог, дальше создаём его (опять) с нужными бутонами
Тискаю клаву... остальных пока некогда!
Сообщение отредактировал Kaotika - Среда, 10 Июня 2015, 15:52:02
Очищаем диалог, дальше создаём его (опять) с нужными бутонами
Да, я в итоге так и сделал)
ЦитатаKaotika ()
(location=точка)
Я имел в виду, что у меня в качестве точки задан рект.
ЦитатаKaotika ()
проверяй условием
Я не догоняю каким. Точки-то рандомные.
Добавлено (10 Июня 2015, 16:57:40) --------------------------------------------- Есть конечно вариант делать Вошел в А и если рандом равно 1, то тп к B, а если рандом равно 2, то тп к C... Но ведь должен быть другой способ, да?
Если нужно, то сделаю только на jass. а то париться на гуи не хочется
Если это не сложно - сделай, потому что я додуматься не могу. Если затрудняет (на jass) подтолкни меня, скажи от какой функции первоначально бежать, я постараюсь сам сделать)
Вот мой вариант http://rghost.ru/8y9tjRvn2 Ну вариант с локалками не получилось реализовать в одном триггере, потому что он должен быть в текстовом виде, а если делать через Custom Script будут условия глючить. Вариант с глобалками понятней, но если одновременно в области (хоть в одну, хоть в разные, главное одновременно) зайдут несколько юнитов, то шанс бага будет расти из за возможности перезаписать глобальные переменные, и расти он будет пропорционально увеличению количества одновременно входящих юнитов.
Ну вариант с локалками не получилось реализовать в одном триггере, потому что он должен быть в текстовом виде
Так не велика беда. Считай, ты дал мне домашнее задание))) Спасибо, буду разбираться. Вот еще такой вопрос, почему не работает вот это: local unit hu set hu = GetOwningPlayer(GetTriggerUnit()) == Player(0) set udg_unit = hu call ShowUnitHide(udg_unit) и как сделать правильно?
Сообщение отредактировал Samedy_ - Четверг, 11 Июня 2015, 00:50:41
Эм, на вопрос "как сделать правильно" я ответить не могу, так как я даже не понимаю чего ты пытался добиться второй строчкой кода. Почему не работая, объясняю: Ты объявляешь переменную типа "юнит" (local unit hu) , потом пытаешь в переменную типа юнит записать ИГРОКА. Функция GetOwningPlayer вернёт владельца юнита GetTriggerUnit(). Понимаешь в чем ошибка? И да, это ещё что такое "== Player(0)" ? Или это что бы показать мне какого игрока вернёт функция? Потому что если сделать так в карте, то... в общем, два знака присваивания(==) в коде означают "равенство", использовать это можно только в условии.
И да, я кажись понял, если ты хочешь "показать" юнита GetTriggerUnit(), то почему бы не сделать это вот так
local unit hu = GetTriggerUnit() call ShowUnit(hu, false) set udg_unit = hu set hu = null
В таком случае ведь не скроется юнит именно игрока 0 или 1. Я делал через выбор всех юнитов игрока, но понял что это не то, что нужно. Юниты скрываются через n секунд после инициализации, а после определенного условия снова появляются.
Брат, переходи на Jass New Gen Pack и работай с jass'ом - понравится
Я создавал уже тему, где описывал почему не могу его использовать. Я чуть ли не каждый день пытаюсь что-то сделать, но карты созданные там все время крашатся в мультиплеере.
Ух-ты, я даже не знал что можно так условия использовать. Теперь понимаю, почему говорят, что без jassa ничего не сделать.) спасибо)
Грубо говоря, то что тут сделано можно и на ГУИ сделать
Добавлено (11 Июня 2015, 17:38:37) --------------------------------------------- Можно условие и вверх кинуть, но так сделал на случай использования циклов
Сообщение отредактировал Наклз - Четверг, 11 Июня 2015, 17:37:11