Сейчас 04:08:05 Пятница, 27 декабря, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: PUVer, SirNikolas, Ty3uK  
[Статья] Как правильно настроить "Дамми юнита"
UZzipДата: Вторник, 14 Декабря 2010, 19:54:15 | Сообщение # 1
7 уровень
Группа: Проверенные
Сообщений: 352
Награды: 0
Репутация: 83
Блокировки:
[Статья] Как правильно настроить "Дамми юнита"

Кто такой дамми?

Дамми - это юнит которым не может управлять игрок, но которым можно управлять с помощью триггеров и иногда ИИ(Искусственный интелект). Эти юниты используются чаще всего для применения GUI или Jass способностей.

Как правильно настроить дамми?

1. Зайдите в PO(Редактор объектов F6). Создайте новую боевую единицу. Например скопируйте стрелка у Альянса. Но ни когда не берите за основу рабочего.
2. Теперь нужно его правильно настроить:


  • Если вам нужен дамми для применения заклинания, то нужно убрать у него атаку, чтобы после применения своей способности и до момента когда он удалится дамми не атаковал врагов.

  • Следующее действие: мы убираем тень у дамми, ведь его ни должно быть видно.

  • У dummy юнита так же нужно убрать файл модели. Чтобы это сделать нужно изменить строку: Графика файл модели и написать там любой текст (главное чтоб он не соответствовал ни одной модели. Я написал ;;;.mdl)

  • Чтогбы дамми своевольно не передвигался установим ему скорость на 0

  • А для того чтобы он своевременно применял заклинание даём ему большую скорость поворота.

  • Чтобы дамми создавался в любой области на карте (например на воде или на заблокированной местности) зделаем его Летающим.

  • Чтобы наш дамми не мешал для прохода остальным юнитам сделаем его минимально широким.

  • Теперь самое главное. Делаем юнита не выделяемым для игрока добавляем ему способность "москиты". Юнит становится неуязвимым и его нельзя будет выбрать. Некоторые считают что дамми юниту нужно давать способность "неуязвимый(нейтральный)" чтобы его нельзя было убить например магией, но это не так. Потому что способность "москиты" уже делает юнита абсолютно неуязвимым.
    P.S. Способность москиты можно дать только в PO(Редактор объектов F6). Триггерно её добавить нельзя.

  • Чтобы с помощью нашего дамми не открывалось дополнительное поле зрение - установим его на 0

  • Чтобы дамми не занимал потребление пищи (и не занимал место отведённое для войск) делаем следующее:


Так же советую удалить все возможные параметры. Чем меньше у дамми параметров - тем меньше нагрузка на систему при его создании.(с.) Есть ещё один нюанс с маной. Можно установить её на максимум и при его создании триггером ставить значение на 100%. Но я советую давать дамми скил который не использует маны для применения.

Как сделать чтобы dummy применил способность?


  • События
    Боевая единица - Событие Завершает применение способности

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

  • Действия
    Создаём дамми.
    Устанавливаем ему таймер истечения 1 секунды вполне достаточно для применения допустим волны силы.
    Добавляем ему способность которую он должен применить.
    Устанавливаем ей тот же левл который и у юнита кастера.
    Приказываем дамми применить нужную способность.

    В действиях все способности разделены на 4 группы:

    • Цель юнит
    • Цель точка (игровой карты)
    • Цель декорация
    • Без указания цели

    В зависимости от этих условий, действие для приказа нужно искать в своей категории.

Автор: Zip
Версия: 0.2

Сообщение отредактировал UZzip - Среда, 15 Декабря 2010, 23:33:19
 

[san9]Дата: Вторник, 14 Декабря 2010, 19:58:08 | Сообщение # 2
10 уровень
Группа: Проверенные
Сообщений: 1500
Награды: 1
Репутация: 286
Блокировки:
Quote (UZzip)
Чтобы наш дамми не мешал для прохода остальным юнитам сделаем его минимально широким.

Это не обязательно.
И вабще, вроде была уже статья.


 

UZzipДата: Вторник, 14 Декабря 2010, 20:04:47 | Сообщение # 3
7 уровень
Группа: Проверенные
Сообщений: 352
Награды: 0
Репутация: 83
Блокировки:
[san9], Это нужно для того что бы на одном месте могло стоять много дамми.
Жаль статьи в поиске не нашел.
 

[san9]Дата: Вторник, 14 Декабря 2010, 20:15:34 | Сообщение # 4
10 уровень
Группа: Проверенные
Сообщений: 1500
Награды: 1
Репутация: 286
Блокировки:
Quote (UZzip)
Это нужно для того что бы на одном месте могло стоять много дамми.

Ну если для того чтобы в редакторе ставить то да. В игре они не будут иметь физ размер.


 

incomeДата: Вторник, 14 Декабря 2010, 21:02:43 | Сообщение # 5
3 уровень
Группа: Заблокированные
Сообщений: 63
Награды: 0
Репутация: 20
Блокировки:
Quote
Я написал ;;;.mdl)

по-моему, проще зажать шифт и поставить _ , хотя кому как удобнее.
Quote
P.S. Способность москиты можно дать только в PO(Редактор объектов F6). Триггерно её добавить нельзя.

UnitAddAbility(WhichUnit,'Aloc') ?


Не ошибается только тот, кто ничего не делает
 

KartohaДата: Среда, 15 Декабря 2010, 00:04:12 | Сообщение # 6
10 уровень
Группа: Ветераны
Сообщений: 2851
Награды: 1
Блокировки:
Quote (UZzip)
Создайте новую боевую единицу. Например скопируйте стрелка у Альянса. Но ни когда не берите за основу рабочего.

Почему это не выбирать рабочего? Самый подходящий юнит для создания дамми - светлячок. У него нет атак, у него нет тени. Его минимально настроить нужно.
Quote (UZzip)
У dummy юнита так же нужно убрать файл модели. Чтобы это сделать нужно изменить строку: Графика файл модели и написать там любой текст (главное чтоб он не соответствовал ни одной модели. Я написал ;;;.mdl)

У дамми нужно ставить файл модели
Разрушаемые объекты - стена подъемника
а не всякие там ;;;.mdl
 

[san9]Дата: Среда, 15 Декабря 2010, 01:25:31 | Сообщение # 7
10 уровень
Группа: Проверенные
Сообщений: 1500
Награды: 1
Репутация: 286
Блокировки:
Quote (Kartoha)
Разрушаемые объекты - стена подъемника

И зачем же?


 

Banzay89Дата: Среда, 15 Декабря 2010, 10:45:18 | Сообщение # 8
9 уровень
Группа: Проверенные
Сообщений: 858
Награды: 1
Репутация: 77
Блокировки:
омг.. юнит с москитами не мешает проходимости
 

FkoFFДата: Среда, 15 Декабря 2010, 11:49:30 | Сообщение # 9
Группа: Заблокированные
Сообщений: 4356
Награды: 1
Репутация: 1413
Блокировки:
к слову. Автор - у дамми нужно так же удалить тень, и удалить ВСЕ возможные параметры. Чем меньше у него параметров - тем меньше нагрузка на систему при его создании. Так же нужно дать достаточно много маны. и скорость поворота поставить на 3.0, тогда он будет поворачиватья мгновенно и не будет задержки перед даммикастом.

 

sumertДата: Среда, 15 Декабря 2010, 13:24:53 | Сообщение # 10
10 уровень
Группа: Проверенные
Сообщений: 2330
Награды: 2
Репутация: 1094
Блокировки:
Quote (FkoFF)
Автор - у дамми нужно так же удалить тень

Читай внимательно
Quote (UZzip)
Следующее действие: мы убираем тень у дамми, ведь его ни должно быть видно.
 

[stebashka]Дата: Среда, 15 Декабря 2010, 13:36:24 | Сообщение # 11
пути и нити разными бывают
Группа: Библиотекари
Сообщений: 4719
Награды: 5
Блокировки:
Если бы еще эту статью смотрели, а не задавали кучу вопросов по настройке дамми, цены бы ей не было

 

sumertДата: Среда, 15 Декабря 2010, 13:59:47 | Сообщение # 12
10 уровень
Группа: Проверенные
Сообщений: 2330
Награды: 2
Репутация: 1094
Блокировки:
Кстати, иногда используется такой прием. Создается триггер событие: юнит умирает. Затем создается локальная переменная, которая присваевается умершему юниту. Затем Wait. И Remove(локальная перменная).
при этом у дамми бнита ставится 30 хп и отрицательный реген. В итоге, если дамми юнит случайно не был удален, то он вскоре умрет и удалиться. Конечно, каждый по-разному заботиться об удалении дамми-юнитов, но все же в статье об этом надо было сказать.
 

FkoFFДата: Среда, 15 Декабря 2010, 14:57:38 | Сообщение # 13
Группа: Заблокированные
Сообщений: 4356
Награды: 1
Репутация: 1413
Блокировки:
sumert, кретинизм. Дамми юниту надо давать таймер жизни. А умирающих юнитов негероев должен удалять триггер через таймер. Вейты, напомню - могут дать баг и юнит останется висеть в памяти.

 

sumertДата: Среда, 15 Декабря 2010, 15:25:15 | Сообщение # 14
10 уровень
Группа: Проверенные
Сообщений: 2330
Награды: 2
Репутация: 1094
Блокировки:
FkoFF, как говориться, инициатива наказуема. Можешь поточнее описать, а то не сильно понятно?
 

FkoFFДата: Среда, 15 Декабря 2010, 15:57:56 | Сообщение # 15
Группа: Заблокированные
Сообщений: 4356
Награды: 1
Репутация: 1413
Блокировки:
действие на GUI

Боевая единица - add expiration timer

ну и доп. триггер

function removeunittimed takes nothing returns nothing
local timer t = GetExpiredTimer()
local unit u = LoadUnitHandle(udg_Hash, GetHandleId(t), 1)
call RemoveUnit(u)
call FlushChildHashtable(udg_Hash, GetHandleId(t))
call DestroyTimer(t)
set t = null
set u = null
endfunction

function RemUT takes unit u, real time returns nothing
local timer t = CreateTimer()

call SaveUnitHandle(udg_Hash, GetHandleId(t), 1, u)

call TimerStart(t, time, false, function removeunittimed)

set t = null
endfunction

и в любом триггере делаешь событие - юнит умирает, проверка на героя и запускаешь call RemUT(GetTriggerUnit(), 10) и через 10 секунд юнит будет уничтожен.


 

[san9]Дата: Среда, 15 Декабря 2010, 16:04:02 | Сообщение # 16
10 уровень
Группа: Проверенные
Сообщений: 1500
Награды: 1
Репутация: 286
Блокировки:
Quote (FkoFF)
действие на GUI


:D


 

sumertДата: Среда, 15 Декабря 2010, 16:09:12 | Сообщение # 17
10 уровень
Группа: Проверенные
Сообщений: 2330
Награды: 2
Репутация: 1094
Блокировки:
FkoFF, cпс, взял на заметку.
 

FkoFFДата: Среда, 15 Декабря 2010, 17:06:17 | Сообщение # 18
Группа: Заблокированные
Сообщений: 4356
Награды: 1
Репутация: 1413
Блокировки:
[san9], ты кретин или прикидываешься? действие на гуи я написал выше, а скрипт - удаление юнитов из игры а не убийство. Оно не зависит никак от дамми.

 

UZzipДата: Среда, 15 Декабря 2010, 23:26:24 | Сообщение # 19
7 уровень
Группа: Проверенные
Сообщений: 352
Награды: 0
Репутация: 83
Блокировки:
Обновил статью. Спасибо FkoFF, за 9 пост
 

[san9]Дата: Четверг, 16 Декабря 2010, 00:30:21 | Сообщение # 20
10 уровень
Группа: Проверенные
Сообщений: 1500
Награды: 1
Репутация: 286
Блокировки:
Quote (FkoFF)
[san9], ты кретин или прикидываешься?

Ну не так прочитал. Зачем оскорбления? Ты неадекват?




Сообщение отредактировал [san9] - Четверг, 16 Декабря 2010, 00:30:37
 

FkoFFДата: Четверг, 16 Декабря 2010, 03:24:44 | Сообщение # 21
Группа: Заблокированные
Сообщений: 4356
Награды: 1
Репутация: 1413
Блокировки:
[san9], Уу, дружок, я таки как раз адекват, а слово "кретин" не является нецензурным или же оскорбительным.

 

Banzay89Дата: Четверг, 16 Декабря 2010, 04:48:19 | Сообщение # 22
9 уровень
Группа: Проверенные
Сообщений: 858
Награды: 1
Репутация: 77
Блокировки:
Quote
call RemoveUnit(u)

зло >.<
зачем вообще ремувать даммика? даешь таймер истечения и все. а после разложения костей ( 88 сек ) он благополучно удаляеться сам О.О

 

FkoFFДата: Четверг, 16 Декабря 2010, 06:40:35 | Сообщение # 23
Группа: Заблокированные
Сообщений: 4356
Награды: 1
Репутация: 1413
Блокировки:
Banzay89, если он занесен хоть в одну переменную - он не удалится.

 

Banzay89Дата: Четверг, 16 Декабря 2010, 13:07:55 | Сообщение # 24
9 уровень
Группа: Проверенные
Сообщений: 858
Награды: 1
Репутация: 77
Блокировки:
FkoFF, а при чем тут переменная? в переменных ведь просто хранится информация нужного нам типа (хэндл юнита, интеджер итд)

Сообщение отредактировал Banzay89 - Четверг, 16 Декабря 2010, 13:09:40
 

SirNikolasДата: Четверг, 16 Декабря 2010, 13:45:20 | Сообщение # 25
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
[Статья]"Даммикаст", или "Как сделать заклинания лучше"

 

  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Copyright © 2006 - 2024 Warcraft3FT.info При копировании материалов c сайта ставьте, пожалуйста, активную обратную ссылку на нас • Design by gReeB04ki ©
Хостинг от uCoz