Лучшие проекты:

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]

  • Страница 1 из 1
  • 1
Модератор форума: farfacer, SaMuRa][  
Форум » Помощь World Editor » Картостроение, GUI и Jass » Если вы новичёк в создании спелов то прочитайте эту тему (Заметил одну важную ошибку которую повторяют многие новички)
Если вы новичёк в создании спелов то прочитайте эту тему
War3I4iДата: Среда, 01.01.2014, 14:25 | Сообщение # 1
Группа: Творец
Сообщений: 849
Награды: 19
Репутация: 1058
Статус: Offline
загрузка наград ...
И так ребятки, в последнее время на сайт пришли новые "спелостроители " и у них я наблюдаю одну и ту же ошибку в создании скилов. Их выложение наработки были посвящены Мадаре, а ошибку они допускали в скиле "Сусано". Скилл состоит в том, что бы создать дамми сусано и удалить его через 30 секунд. Но это GUI, и здесь используются глобальные переменные, и после двойной активации способности появится 2 дамми сусано, второй дамми пропадёт через 30 секунд, а вот первый - останется в игре навсегда. Именно по этому поводу хочу показать довольно-таки эффективный способ решения этой проблемы :

Для начала создадим тригер ( я назвал его Delete ), в нём сделаем простейшее событие - игрок нажимает на клавишу ESC (cinematic skipped). Затем создадим глобальную переменную типа "юнит" ( я назвал её UNIT )


Сделано! Теперь начинается самое сложное) А именно малое использование Jass'а :
Нам необходимо создать локальную (именно локальную а не глобальную) переменную. Для этого нам необходимо найти действие Custom Script (оно находится почти на начале всех действий) в строке custom script'а нужно вписать local "тип переменной" "название переменной" без кавычек, у нас получилось local unit a ( а - название переменной (англ. буква) ). Я видел что вы не используете  jass new gen pack поэтому вам обязательно нужно обьявлять эту локальную переменную в самом верху действия ( она должна быть первой из действий ). И так - мы создали!
 

Теперь создадим юнита-пехотинца ( не важно где ) и установим что наша глобальная переменная UNIT = последний созданный юнит, тоесть наша глобалка UNIT теперь "хранит" в себе нашего пехотинца которого мы потом удалим


Теперь нам наобходимо установить, что наша локальная переменная a будет равна нашей глобальной переменной UNIT, опять делает действие custom script, и там вводим : set a = udg_UNIT , мы установили что наша локалка a это тот же юнит что и глобалка UNIT, ( КО ВСЕМ ГЛОБАЛЬНЫМ ПЕРЕМЕННЫМ В Jass'e НЕОБХОДИМО ДЕЛАТЬ ПРИСТАВКУ udg_ , должно получится udg_ваша переменная )


Ну и конечно добавим одни из последних действий, а именно : Wait ( Ждать ) 5 секунд (можете поставить сколько хотите) и Remove Unit (удалить юнита) и здесь ставим нашу глобальную переменную UNIT


И так, мы добавили 2 действия и осталось последнее. Нам осталось установить, что наша глобальная переменная UNIT равна нашей локальной переменной a. Для этого снова используем custom script и там вводим : set udg_UNIT = a. Этот custom script обязательно нужно вставить между действиями Wait (Ждать) и Remove Unit (Удалить юнита). В итоге у вас должно получится вот такое : 


Вот и всё, мы достигли мини-муишности спела за счёт использования мини-джаса))) Прошу прощения за качество скринов ( скоро улучшу качество скринов ). Спасибо за просмотр)

P.S  Вот ссылка на уже готовый пример : 



 
LymixДата: Суббота, 22.02.2014, 11:02 | Сообщение # 2
Группа: Пользователи
Сообщений: 34
Награды: 0
Репутация: 0
Статус: Offline
загрузка наград ...
А не легче в начале триггера поставить условие "если сусаноо дамми жив то удалить дамми из игры", а не путать новичков которые хромают в гуи ещё и джассом?
 
War3I4iДата: Суббота, 22.02.2014, 14:58 | Сообщение # 3
Группа: Творец
Сообщений: 849
Награды: 19
Репутация: 1058
Статус: Offline
загрузка наград ...
Lymix, это конечно тоже вариант но я создал эту тему для разных типов скилов, а не только для этого сусано

 
lehanruДата: Понедельник, 29.09.2014, 19:36 | Сообщение # 4
Группа: Модераторы
Сообщений: 66
Награды: 4
Репутация: 43
Статус: Offline
загрузка наград ...
Есть еще способ попроще на ГУИ. Просто Боевая единица - добавить таймер истечения. И создать еще 1 триггер , в котором 
Событие: юнит умирает 
Условие: умирающий юнит = сусано 
Действие: удалить юнита из игры.
 
Форум » Помощь World Editor » Картостроение, GUI и Jass » Если вы новичёк в создании спелов то прочитайте эту тему (Заметил одну важную ошибку которую повторяют многие новички)
  • Страница 1 из 1
  • 1
Поиск: