XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
Gold_Opex

offline
Опыт: 2,749
Активность:
Копирование юнита
Можно ли триггерно копировать юнита?(Не создать копию, а продублировать)
Старый 25.11.2008, 22:18
DFlyer
<3 MJ
offline
Опыт: 42,879
Активность:
Ну так создай иллюзию? Что в ней не устраивает?

DFlyer добавил:
Ну или примерно так:
Код:
function CreateUnitCopy takes unit u returns unit
    local unit copy = CreateUnit(GetOwningPlayer(u),GetUnitTypeId(u),GetUnitX(u)+20,GetUnitY(u)+20,270  .00)
    call SetUnitState(copy,UNIT_STATE_LIFE,GetUnitState(u,UNIT_STATE_LIFE))
    call SetUnitState(copy,UNIT_STATE_MANA,GetUnitState(u,UNIT_STATE_MANA))
    //...
    //ну и другие параметры юнита, которые нужно скопировать
    //...
    return copy
endfunction
Старый 25.11.2008, 22:54
Fakov
Viva la Fa
offline
Опыт: 102,058
Активность:
DFlyer иллюзия не может пользоваться предметами, выбрасывать и подбирать их. А так-может через кэш? Занести все параметры юнита туда и потом создать на этой основе нового юнита
Старый 25.11.2008, 22:58
Van Damm
wait... what?
offline
Опыт: 22,268
Активность:
Fakov, а смысл? никакого.

Тогда уже делать, как предложил флаер
Старый 25.11.2008, 23:01
Gold_Opex

offline
Опыт: 2,749
Активность:
Цитата:
Сообщение от DFlyer
Ну так создай иллюзию? Что в ней не устраивает?

DFlyer Мне не подходит иллюзия, т.к. она не может пользоваться магией(((
Я хотел сделать заклинание типа, копируешь вражеского юнита со всеми его заклинаниями, на некоторое время, после чего копия ремувится.
Старый 25.11.2008, 23:39
JimALIEN
вдупляет sc2 editor
offline
Опыт: 7,176
Активность:
Ну если в мапе тока такие иллюзии, то в игровых константах вродь есть графа разрешающая илюзиям абилы юзать.
Старый 26.11.2008, 00:07
DFlyer
<3 MJ
offline
Опыт: 42,879
Активность:
Gold_Opex
Ну отловить "типа юнита" не проблема - GetUnitTypeId().
Установить ему жизни/ману - по желанию - SetUnitState().
Если юнитов с заклинаниями много - придётся делать базу данных, какие абилы есть у какого типа юнита.
Старый 26.11.2008, 00:22
Scorched

offline
Опыт: 7,912
Активность:
DFlyer, если заклинания заданы наперед в РО, то базы данных не понадобятся
Старый 26.11.2008, 12:41
Van Damm
wait... what?
offline
Опыт: 22,268
Активность:
Scorched, а выставлять уровни заклинаний, если это герой?
Старый 26.11.2008, 12:42
Scorched

offline
Опыт: 7,912
Активность:
Van Damm, зачем пудрить мозги автору, может, речь не о героях вовсе. Он пока не написал
Старый 26.11.2008, 13:11
Gold_Opex

offline
Опыт: 2,749
Активность:
Цитата:
Сообщение от JimALIEN
Ну если в мапе тока такие иллюзии, то в игровых константах вродь есть графа разрешающая илюзиям абилы юзать.

Вопрос ко всем: Это реально?
Старый 26.11.2008, 18:49
Van Damm
wait... what?
offline
Опыт: 22,268
Активность:
а проверить самому?
Старый 26.11.2008, 18:58
RPGamer
учу jass...
offline
Опыт: 2,085
Активность:
в константах такого нету
Старый 26.11.2008, 18:58
Gold_Opex

offline
Опыт: 2,749
Активность:
Вообщем ясно.Полность скопировать юнита, со всеми способностями, и предметами (если это герой)
очень геморно. Я то думал это можно сделать через буфер(
Старый 26.11.2008, 19:11
DFlyer
<3 MJ
offline
Опыт: 42,879
Активность:
Gold_Opex
Ничего тебе не ясно, я так думаю...
Полностью скопировать юнита не геморно. Для всего нужного есть команды.

DFlyer добавил:
Блин, щас я сделаю тебе пример. Даже на ГУИ.
Старый 26.11.2008, 19:46
Gold_Opex

offline
Опыт: 2,749
Активность:
DFlyer Буду очень признателен.
Старый 26.11.2008, 19:50
Nightmare

offline
Опыт: 7,122
Активность:
Я тоже.

Nightmare добавил:
Буду благодарен))
Старый 26.11.2008, 20:11
DFlyer
<3 MJ
offline
Опыт: 42,879
Активность:
Вот. Для теста кастовать паладином "Благодать". Сделал копирование юнита, установку такого же кол-ва хп и маны, а так же копию предметов. Всё остальное уже можно подшлифовать самому (установка зарядов в предметах, например).

И кстати, я-таки сделал на джаззе, так гораздо проще и быстрее. Для меня.

PS: вся функция по копированию юнита находится в CustomCode'е карты.

PPS: для тех, кому лень качать мапу, выложу код здесь
» function CreateUnitCopy()
Код:
function CreateUnitCopy takes unit target returns unit
    local real unitX = GetUnitX(target)
    local real unitY = GetUnitY(target)
    local item itm
    local unit copy = CreateUnit(GetOwningPlayer(target),GetUnitTypeId(target),unitX+GetRandomReal(10.  ,30.),unitY+GetRandomReal(10.,30.),270.)
    local integer i=0
    call SetUnitState(copy,UNIT_STATE_LIFE,GetUnitState(target,UNIT_STATE_LIFE))
    call SetUnitState(copy,UNIT_STATE_MANA,GetUnitState(target,UNIT_STATE_MANA))
    if IsUnitType(target,UNIT_TYPE_HERO) then
        call SetHeroLevel(copy,GetHeroLevel(target),false)
        loop
            exitwhen i>=5
            set itm = CreateItem(GetItemTypeId(UnitItemInSlot(target,i)),unitX,unitY)
            call UnitAddItem(copy,itm)
            call SetItemCharges(itm,GetItemCharges(UnitItemInSlot(target,i)))
            set i=i+1
        endloop   
    endif
    set itm=null
    return copy
endfunction
Прикрепленные файлы
Тип файла: w3x UnitCopy.w3x (12.2 Кбайт, 16 просмотров )

Отредактировано DFlyer, 27.11.2008 в 00:18.
Старый 26.11.2008, 20:50
Gold_Opex

offline
Опыт: 2,749
Активность:
DFlyer Спс, ты сделал даже больше чем нужно.(копировать героев я не планировал)
Вот только один нюанс - как сделать копию вызываемым юнитом, желательно с индикатором таймлоста.
Старый 26.11.2008, 21:25
DFlyer
<3 MJ
offline
Опыт: 42,879
Активность:
Чтоб сделать юнита "вызванным", используй функцию
Код:
native UnitApplyTimedLife takes unit whichUnit, integer buffId, real duration returns nothing

buffId бывают такие:
Цитата:
BUan Dead revival
Bapl Disease Cloud
BEfn Nature violence
BTLF Standard
Bhwd Healing spells protection
Brai Dead Revival
BHwe Water Elemental
Старый 26.11.2008, 21:44
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 10:44.