Сейчас 10:42 Воскресенье, 14 марта, 2010 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Обои В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 3123»
Модератор форума: Dragon93 
Форум о Warcraft 3 » Раздел для картостроителей » Вопросы по картостроению » Как сделать возрождение (revival) Нейтрально-враждебных?
Как сделать возрождение (revival) Нейтрально-враждебных?
ZagarДата: Четверг, 02-07-2009, 22:32 | Сообщение # 1
7 уровень
Группа: Проверенные
Сообщений: 368
Награды: 0
Репутация: 51
Замечания: 0%
Мне надо сделать возрождение крипов с учетом того, чтобы они появлялись на том месте,где они стоят при загрузке карты....

Хочешь сидеть на шее?Раздвигай ноги!Сомнения?...лучше не думай
Я :
Играю за :
Но в душе я :


Сообщение отредактировал Zagar - Пятница, 03-07-2009, 00:21
 

MeckДата: Четверг, 02-07-2009, 22:39 | Сообщение # 2
8 уровень
Группа: Проверенные
Сообщений: 648
Награды: 0
Репутация: 35
Замечания: 0%
Zagar, ну можеш добавить им магию возрождения убрав перезарядку ману и ....
Либо занося в переменную и после создание на месте позиции юнита (твой юнит)

Добавлено (02-07-2009, 22:39)
---------------------------------------------
Meck, впринципе вопрос немного непонятно написан


 

ZagarДата: Четверг, 02-07-2009, 22:45 | Сообщение # 3
7 уровень
Группа: Проверенные
Сообщений: 368
Награды: 0
Репутация: 51
Замечания: 0%
Quote (Meck)
после создание на месте позиции юнита

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

Хочешь сидеть на шее?Раздвигай ноги!Сомнения?...лучше не думай
Я :
Играю за :
Но в душе я :
 

ХамягДата: Четверг, 02-07-2009, 22:45 | Сообщение # 4
The Ashbringer
Дядя инквизитор
Группа: Ветераны
Сообщений: 1935
Награды: 2
Репутация: 30
Замечания: 0%
Zagar, При загрузке карты нужно каждого из них (можно через массив) записать - где они находятся. А потом, когда это нужно, воскрешать и давать им положение, записанное в переменную.


 

ZagarДата: Четверг, 02-07-2009, 22:46 | Сообщение # 5
7 уровень
Группа: Проверенные
Сообщений: 368
Награды: 0
Репутация: 51
Замечания: 0%
Zak, а расписать? :)

Хочешь сидеть на шее?Раздвигай ноги!Сомнения?...лучше не думай
Я :
Играю за :
Но в душе я :
 

MeckДата: Четверг, 02-07-2009, 22:47 | Сообщение # 6
8 уровень
Группа: Проверенные
Сообщений: 648
Награды: 0
Репутация: 35
Замечания: 0%
Zagar, без понятия, так там нечего ненашол в тригере скорей всего только через переменную, ну а через переменную я думаю ты зделаеш.

 

ZagarДата: Четверг, 02-07-2009, 22:50 | Сообщение # 7
7 уровень
Группа: Проверенные
Сообщений: 368
Награды: 0
Репутация: 51
Замечания: 0%
Quote (Meck)
ну а через переменную я думаю ты зделаеш.
Quote (Zak)
записать - где они находятся.давать им положение, записанное в переменную.

это мне надо область для каждого создать?

Хочешь сидеть на шее?Раздвигай ноги!Сомнения?...лучше не думай
Я :
Играю за :
Но в душе я :
 

БАМДата: Четверг, 02-07-2009, 23:15 | Сообщение # 8
10 уровень
Группа: Модераторы
Сообщений: 1689
Награды: 3
Репутация: 390
Замечания: 0%
Zagar, нет, сохранить им в качестве переменной их стартовое местоположение, в ручную области создавать необязательно.
 

MeckДата: Четверг, 02-07-2009, 23:31 | Сообщение # 9
8 уровень
Группа: Проверенные
Сообщений: 648
Награды: 0
Репутация: 35
Замечания: 0%
Zagar, сделал только для одного нейтрального, для других нужно вписывать переменные, но у меня сейчас бошка неварит, на надеюсь поможет ЖМИ.

 

ZagarДата: Четверг, 02-07-2009, 23:43 | Сообщение # 10
7 уровень
Группа: Проверенные
Сообщений: 368
Награды: 0
Репутация: 51
Замечания: 0%
Meck, спасибо. Zak, БАМ, так?

вопрос снят с повестки дня.

Прикрепления: 4209216.jpg(48Kb) · 4858257.jpg(60Kb)


Хочешь сидеть на шее?Раздвигай ноги!Сомнения?...лучше не думай
Я :
Играю за :
Но в душе я :
 

-Castro-Дата: Пятница, 03-07-2009, 00:54 | Сообщение # 11
УГ продюссер
Группа: Проверенные
Сообщений: 1024
Награды: 2
Репутация: 265
Замечания: 0%
Zagar, если у тя мапа 256х256 и куча крипов ты их также в переменную заносить собираешься?

Аффтар, делай такой вот триггер

Получается каждые 30 сек создаются юниты в определенной области, если в ней юнитов нет




Сообщение отредактировал -Castro- - Пятница, 03-07-2009, 00:55
 

ХамягДата: Пятница, 03-07-2009, 01:47 | Сообщение # 12
The Ashbringer
Дядя инквизитор
Группа: Ветераны
Сообщений: 1935
Награды: 2
Репутация: 30
Замечания: 0%
Моя задумка как раз по требованиям. Да и в русских триггерах не шарю.


 

EnforcerДата: Пятница, 03-07-2009, 01:53 | Сообщение # 13
Энф
Смотрящий за порядком
Группа: Ветераны
Сообщений: 2649
Награды: 7
Репутация: 485
Замечания: 0%
Я бы как Кастро сделал, через области) Вроде когда то так и делал.

Регаемся на Фишкере и получаем бабло на телефон.
Искать меня в моем блоге.
По вопросам форума ко мне более не обращаться!
 

lZanozalДата: Пятница, 03-07-2009, 01:55 | Сообщение # 14
2 уровень
Группа: Пользователи
Сообщений: 25
Награды: 0
Репутация: 20
Замечания: 0%
Можно создать 2 массива (жалко нет динамических массивов)
1: Точка - Для сохранения позиции юнита
2: Боевая единица - для сохранения юнита
и 1 целочисленную переменную для нумерации юнита с начальным числом 1.

Создаем действие при инициализации
Одряд юниты такого игрока 1
__цикл
____Точка[число] = Позиция юнита репик юнит
____юнит[число] = репик юнит
____Число = число + 1;

далее в процессе смерти юнита проверяем зациклино его позицию в массиве
Событие: юнит умирает
Условие: юнит = принадлежит игрок 1
Действие:
for 1 to размер массива do {
__if ( Если юнит[А] )
подождать время (Wait) появление после смерти
создать боевая единица (Тип репик юнит) в точке (Точка[A])...
Юнит[А] = соданный юнит
else
нет действий
}

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

Добавлено (03-07-2009, 01:55)
---------------------------------------------
а и добавлю в методе ненужны области


Garena: ~|CFF010101bl
Проект: Затеряный остров - В поисках снежного человека = 48%
 

MaSerДата: Пятница, 03-07-2009, 02:37 | Сообщение # 15
Котобог
Учитель класса "Б" и "В"
Группа: Ветераны
Сообщений: 1768
Награды: 5
Репутация: 389
Замечания: 60%
Code
/Globals
globals
     gamecache cache = InitGameCache("map")
     real timeout = 30//Timeout for ressurect
     real array UXS
     real array UYS
endglobals
//RB
function U2I takes unit u returns integer
     return u
     return 0
endfunction

function I2U takes integer i returns unit
     return i
     return null
endfunction
//Resurrect system
function OnDie takes nothing returns nothing
     local unit u = GetDyingUnit()
     local integer id = GetUnitTypeId(u)
     local integer i = U2I(u)
     local integer nmb = GetStoredInteger(cache, "nmbs", I2S(i))
     call FlushStoredInteger(cache, "nmbs", I2S(i))
     call TriggerSleepAction(timeout)
     call RemoveUnit(u)
     set u = CreateUnit(Player(12), id, UXS[nmb], UYS[nmb], 0)
     call StoreInteger(cache, "nmbs", I2S(U2I(u)), nmb)
     set u = null
endfunction

function Res_Init takes nothing returns nothing
     local group g = CreateGroup()
     local unit u
     local integer i = 1
     local trigger t = CreateTrigger()
     call GroupEnumUnitsOfPlayer(g, Player(12), null)
     loop
         set u = FirstOfGroup(g)
         exitwhen u == null or i >= 8000
         set UXS[i] = GetUnitX(u)
         set UYS[i] = GetUnitY(u)
         call StoreInteger(cache, "nmbs", I2S(U2I(u)), i)
         call GroupRemoveUnit(g, u)
         set i = i + 1
     endloop
     call DestroyGroup(g)
     call TriggerRegisterPlayerUnitEvent(t, Player(12), EVENT_PLAYER_UNIT_DEATH, null)
     call TriggerAddAction(t, function OnDie)
     set t = null
endfunction

Должно работать. Не тестил, ибо все равно никто не воспользуется. Последнюю функцию запустить на нулевой секунде.

Сообщение отредактировал MaSer - Пятница, 03-07-2009, 02:43
 

-Castro-Дата: Пятница, 03-07-2009, 09:24 | Сообщение # 16
УГ продюссер
Группа: Проверенные
Сообщений: 1024
Награды: 2
Репутация: 265
Замечания: 0%
Quote (MaSer)
Должно работать. Не тестил, ибо все равно никто не воспользуется. Последнюю функцию запустить на нулевой секунде.

Глупо писать пример на Jass для человека который на триггерах не может сделать возрождение крипов :D

Добавлено (03-07-2009, 09:24)
---------------------------------------------

Quote (Enforcer)
Я бы как Кастро сделал, через области) Вроде когда то так и делал.

в доте так же сделано :D

 

ZagarДата: Пятница, 03-07-2009, 11:41 | Сообщение # 17
7 уровень
Группа: Проверенные
Сообщений: 368
Награды: 0
Репутация: 51
Замечания: 0%
Quote (-Castro-)
тя мапа 256х256 и куча крипов

нет карта маленькая,если честно когда много областей это тоже вариант, что лучше выбирать область или переменную?
Quote (-Castro-)
пример на Jass

Jass я конечно не знаю, но:
Quote (-Castro-)
не может сделать возрождение крипов :D

сделать я могу,вот мой окончательный вариант(ибо тот создает только один раз),но только спецэффект надо подобрать нужный:



Хочешь сидеть на шее?Раздвигай ноги!Сомнения?...лучше не думай
Я :
Играю за :
Но в душе я :


Сообщение отредактировал Zagar - Пятница, 03-07-2009, 11:58
 

nekron_013Дата: Пятница, 03-07-2009, 12:25 | Сообщение # 18
3 уровень
Группа: Проверенные
Сообщений: 63
Награды: 0
Репутация: 10
Замечания: 0%
Событие: юнит игрока нейтрально враждебный погиб.
Условие: (сам поставиш если надо)
Действие:создать юнита тип умерающий юнит 1шт поворот на сколько то градусов...

Помогу всем новичкам с триггерами, редактором объектов, импортом моделей и т.п. Пишите свои вопросы на icq 553237197
 

БАМДата: Пятница, 03-07-2009, 12:43 | Сообщение # 19
10 уровень
Группа: Модераторы
Сообщений: 1689
Награды: 3
Репутация: 390
Замечания: 0%
nekron_013, и ты будешь на каждого юнита отдельный триггер делать?
 

MaSerДата: Пятница, 03-07-2009, 13:05 | Сообщение # 20
Котобог
Учитель класса "Б" и "В"
Группа: Ветераны
Сообщений: 1768
Награды: 5
Репутация: 389
Замечания: 60%
Quote (-Castro-)
в доте так же сделано

В доте не также сделано
Quote (-Castro-)
Глупо писать пример на Jass для человека который на триггерах не может сделать возрождение крипов

То, что я написал, можно сделать почти в таком же виде и без джасса.
 

Dragon93Дата: Пятница, 03-07-2009, 13:39 | Сообщение # 21
In The Shadow
Группа: КоМодераторы
Сообщений: 2005
Награды: 4
Репутация: 419
Замечания: 0%
Quote (MaSer)
То, что я написал, можно сделать почти в таком же виде и без джасса.

угу,правда за исключением рб и стора интегеров(и ещё нескольких действий(создание локального трига к примеру))
ЗЫ: MaSer, а разве не нужно уничтожать триг t,для избежания утечек?(правда нужно будет ещё ждать,пока не закончит выполнение функция OnDie иначе эффекта вообще не буит...)

Я
Собственная сборка JNGP
Уважаемые посетители раздела картостроя,проектов и не только - модератор не робот,за всеми не уследит.Если вы увидели нарушение нажмите кнопку жалоба.Заранее благодарю


Сообщение отредактировал Dragon93 - Пятница, 03-07-2009, 13:39
 

MaSerДата: Пятница, 03-07-2009, 17:16 | Сообщение # 22
Котобог
Учитель класса "Б" и "В"
Группа: Ветераны
Сообщений: 1768
Награды: 5
Репутация: 389
Замечания: 60%
Quote (Dragon93)
ЗЫ: MaSer, а разве не нужно уничтожать триг t,для избежания утечек?(правда нужно будет ещё ждать,пока не закончит выполнение функция OnDie иначе эффекта вообще не буит.

Попробуй, уничтожь. Работать перестанет.
Quote (Dragon93)
угу,правда за исключением рб и стора интегеров(и ещё нескольких действий(создание локального трига к примеру))

Они заменяются на нелокальные триггеры, и кастом велью.
 

Dragon93Дата: Пятница, 03-07-2009, 17:54 | Сообщение # 23
In The Shadow
Группа: КоМодераторы
Сообщений: 2005
Награды: 4
Репутация: 419
Замечания: 0%
Quote (MaSer)
Попробуй, уничтожь. Работать перестанет

но ведь локальный триг останеться в памяти?

Я
Собственная сборка JNGP
Уважаемые посетители раздела картостроя,проектов и не только - модератор не робот,за всеми не уследит.Если вы увидели нарушение нажмите кнопку жалоба.Заранее благодарю
 

MaSerДата: Пятница, 03-07-2009, 17:55 | Сообщение # 24
Котобог
Учитель класса "Б" и "В"
Группа: Ветераны
Сообщений: 1768
Награды: 5
Репутация: 389
Замечания: 60%
Quote (Dragon93)
но ведь локальный триг останеться в памяти?

Quote (MaSer)
set t = null
 

Dragon93Дата: Пятница, 03-07-2009, 18:06 | Сообщение # 25
In The Shadow
Группа: КоМодераторы
Сообщений: 2005
Награды: 4
Репутация: 419
Замечания: 0%
MaSer, переменная = ссылка
ты таким образом теряешь ссылку на объект...

Я
Собственная сборка JNGP
Уважаемые посетители раздела картостроя,проектов и не только - модератор не робот,за всеми не уследит.Если вы увидели нарушение нажмите кнопку жалоба.Заранее благодарю
 

Форум о Warcraft 3 » Раздел для картостроителей » Вопросы по картостроению » Как сделать возрождение (revival) Нейтрально-враждебных?
Страница 1 из 3123»
Поиск:

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