| 
				
				Как сделать возрождение (revival) Нейтрально-враждебных?
				 | 
				
			  | 
| BuHHu-nyX | Дата: Пятница, 03 Июля 2009, 19:23:36 | Сообщение # 26 |  
| 
 50 уровень Превед медвед 
Группа: Ветераны 
Сообщений: 1941 
Награды:  2 
Репутация:  437 
Блокировки:    
 
 | Можно сделать очень просто. Создать один триггер, в котором:   Событие: Юнит умирает   Условие: Владелец(Умирающий юнит) равно Нейтрально-Враждебный   Действие: Тут уже можно через локальные, а можно и через массивную переменную. Я напишу через массивную переменную. Понадобится еще одна переменная целочисленная. +Поинт.  Установить Int = (Int + 1)   Установить Unit[Int] = Умирающий юнит   Установить Point[Int] = Позиция(Unit[Int])   Ждать 30 секунд   Создать юнита в области <0000gen> тип юнита(Unit[Int]) и т.д.   Установить Unit[Int] = Нет боевой еденицы   CS: call RemoveLocation(udg_Point[udg_Int])   Установить Int = 0.00   По идее так. Писал сразу тут. -) Можно и на КС. 
  
 |  
|   | 
 |   
  | 
| Snyppi-killer | Дата: Пятница, 03 Июля 2009, 19:29:51 | Сообщение # 27 |  
7 уровень
 
Группа: Проверенные 
Сообщений: 344 
Награды:  0 
Репутация:  42 
Блокировки:    
 
 | Помогите! Мне нуно чтоб они не воскрешались а просто сдыхет воин и на его месте появляется такой-же
 |  
|   | 
 |   
  | 
| akolit | Дата: Пятница, 03 Июля 2009, 19:32:38 | Сообщение # 28 |  
 
3 уровень
 
Группа: Пользователи 
Сообщений: 59 
Награды:  0 
Репутация:  10 
Блокировки:    
 
 | Событие-боевая единица умирает   Действие   Создать боевую единицу-тип(triggering unit) position of triggering unit 
  
Принципы-это тот архимедов рычаг, с помощью которого можно сдвинуть землю. 
 |  
|   | 
 |   
  | 
| Zagar | Дата: Пятница, 03 Июля 2009, 20:04:45 | Сообщение # 29 |  
7 уровень
 
Группа: Проверенные 
Сообщений: 397 
Награды:  0 
Репутация:  75 
Блокировки:    
 
 | BuHHu-nyX, а рабоатет ли?   я убиваю одного:   Int=0.00+1   Unit [1]=Который сдох   Point [1]=Позиция[1]   прошло 20 секунд я убиваю второго:   Int=1.00+1   Unit [2]=Погибший №2   Point [2]=Позиция[2]   Прошло еще 10 секунд:   Создается 1 Тип юнита (Умирающий юнит) для Нейтрально-враждебного в позиции Point [1] и т.п.   Unit [????(какой?)]=Нет единицы   Int=0,00   и на 36 секунде я юбиваю подряд двоих и они записываються соответственно в Unit[Int=1] и Unit[Int=2]..получаеться первый наш второй вообще не появится    ладно ладно признаю не проверял)но надо   
  
Хочешь сидеть на шее?Раздвигай ноги!Сомнения?...лучше не думай 
 |  
|   | 
 |   
  | 
| BuHHu-nyX | Дата: Пятница, 03 Июля 2009, 20:06:37 | Сообщение # 30 |  
| 
 50 уровень Превед медвед 
Группа: Ветераны 
Сообщений: 1941 
Награды:  2 
Репутация:  437 
Блокировки:    
 
 | Zagar, проверь. Если не пашет, попробую на локальных тебе заскринить.
  
 |  
|   | 
 |   
  | 
| MaSer | Дата: Пятница, 03 Июля 2009, 22:47:04 | Сообщение # 31 |  
| 
 Котобог 
Группа: Стримеры 
Сообщений: 3574 
Награды:  13 
Блокировки:    
 
 | Quote (Dragon93) MaSer, переменная = ссылка ты таким образом теряешь ссылку на объект...     Иди учи матчасть и не неси бред.Добавлено (03-07-2009, 22:47) --------------------------------------------- То же самое на вашем ущербном гуи. 
  
 |  
|   | 
 |   
  | 
| DragoN | Дата: Пятница, 03 Июля 2009, 22:48:29 | Сообщение # 32 |  
 
Инквизитор 
Группа: Стримеры 
Сообщений: 4348 
Награды:  7 
Репутация:  2776 
Блокировки:    
 
 | MaSer, дааа,ты не исправим...   Чтож, немного теории:   Переменная - это ссылка на определенный игровой объект, но обнуление переменой не значит, что и удалится объект по ссылке из переменой, объект нужно удалять отдельно (ДО(!) обнуления переменой) с помощью специальной функции, т.к. иначе после обнуление переменой ссылка на объект потеряется, и его нельзя будет удалить.   К примеру, эффекты удаляются с помощью DestroyEffect   Юниты: RemoveUnit   Декорации: RemoveDestructable   Точки: RemoveLocation   Триггеры: DestroyTrigger   Таймеры: DestroyTimer   и т.д.   Правда некоторые объекты не удаляются... т.е. DestroyTrigger не полностью удаляет триггер... перед этим еще нужно удалить все его действия выключить подождать секунду и потом удалить и обнулить.
  
El Psy Congroo 
 |  
|   | 
 |   
  | 
| SkeletoN12 | Дата: Пятница, 03 Июля 2009, 22:50:07 | Сообщение # 33 |  
3 уровень
 
Группа: Заблокированные 
Сообщений: 53 
Награды:  0 
Репутация:  -8 
Блокировки:    
 
 | http://depositfiles.com/files/ncfu6l1dn   ВОТ ВОСКРЕШЕНИЕ МОБОВ КАЖДЫЕ 10 СЕК 
  
<b>Alice</b>, из за тебя пропадает смысл в паролях, а так же постоянно будет требоваться пинать админа...(Enforcer) 
 |  
|   | 
 |   
  | 
| MaSer | Дата: Пятница, 03 Июля 2009, 22:50:43 | Сообщение # 34 |  
| 
 Котобог 
Группа: Стримеры 
Сообщений: 3574 
Награды:  13 
Блокировки:    
 
 | Quote (Dragon93) дааа,ты не исправим.     А ты бездарен по ходу   Quote (Dragon93) Переменная - это ссылка на определенный игровой объект, но обнуление переменой не значит, что и удалится объект по ссылке из переменой, объект нужно удалять отдельно (ДО(!) обнуления переменой) с помощью специальной функции, т.к. иначе после обнуление переменой ссылка на объект потеряется, и его нельзя будет удалить.     Тебе никто не говорил, что если удалить что-то оно не будет работать, ммм?
  
 |  
|   | 
 |   
  | 
| DragoN | Дата: Пятница, 03 Июля 2009, 23:01:31 | Сообщение # 35 |  
 
Инквизитор 
Группа: Стримеры 
Сообщений: 4348 
Награды:  7 
Репутация:  2776 
Блокировки:    
 
 | Quote (MaSer) Тебе никто не говорил, что если удалить что-то оно не будет работать, ммм?     я это знаю,но надо удалять вовремя(я же писал что надо отловить момент,когда закончит работать нужная функция   Quote (MaSer) А ты бездарен по ходу     по себе не судят...
  
El Psy Congroo 
 |  
|   | 
 |   
  | 
| MaSer | Дата: Пятница, 03 Июля 2009, 23:02:43 | Сообщение # 36 |  
| 
 Котобог 
Группа: Стримеры 
Сообщений: 3574 
Награды:  13 
Блокировки:    
 
 | Quote (Dragon93) я это знаю,но надо удалять вовремя(я же писал что надо отловить момент,когда закончит работать нужная функция     Она закончит работать, когда закончится игра. Сам триггер инициализации удалять смысла нету. Их не удаляют.
  
 |  
|   | 
 |   
  | 
| DragoN | Дата: Пятница, 03 Июля 2009, 23:05:39 | Сообщение # 37 |  
 
Инквизитор 
Группа: Стримеры 
Сообщений: 4348 
Награды:  7 
Репутация:  2776 
Блокировки:    
 
 | MaSer, но он будет во время работы мапы сидеть в память,при каждом респе создаёться и не убираеться такой триг => утечки,а утечки в большом кол-ве вызывают лаги...
  
El Psy Congroo 
 |  
|   | 
 |   
  | 
| MaSer | Дата: Пятница, 03 Июля 2009, 23:17:28 | Сообщение # 38 |  
| 
 Котобог 
Группа: Стримеры 
Сообщений: 3574 
Награды:  13 
Блокировки:    
 
 | Quote (Dragon93) MaSer, но он будет во время работы мапы сидеть в память,при каждом респе создаёться и не убираеться такой триг => утечки,а утечки в большом кол-ве вызывают лаги...     Читай код. Он создается один раз.
  
 |  
|   | 
 |   
  | 
| DragoN | Дата: Пятница, 03 Июля 2009, 23:28:01 | Сообщение # 39 |  
 
Инквизитор 
Группа: Стримеры 
Сообщений: 4348 
Награды:  7 
Репутация:  2776 
Блокировки:    
 
 | MaSer, а респ понадобиться 1 раз?
  
El Psy Congroo 
 |  
|   | 
 |   
  | 
| MaSer | Дата: Пятница, 03 Июля 2009, 23:37:44 | Сообщение # 40 |  
| 
 Котобог 
Группа: Стримеры 
Сообщений: 3574 
Награды:  13 
Блокировки:    
 
 | Dragon93, там ивент один на всех юнитов 13го игрока. Читай внимательно.
  
 |  
|   | 
 |   
  | 
| nekron_013 | Дата: Суббота, 04 Июля 2009, 10:34:11 | Сообщение # 41 |  
3 уровень
 
Группа: Проверенные 
Сообщений: 69 
Награды:  0 
Репутация:  10 
Блокировки:    
 
 | БАМ, вообшето этот триггер может действовать на всех юнитов одновременно.. Добавлено (04-07-2009, 10:34) --------------------------------------------- Но воскрешатся они будут там где погибли.. 
 |  
|   | 
 |   
  | 
| MaSer | Дата: Суббота, 04 Июля 2009, 14:33:05 | Сообщение # 42 |  
| 
 Котобог 
Группа: Стримеры 
Сообщений: 3574 
Награды:  13 
Блокировки:    
 
 | Кстати нет, в моем гуишном варианте маленький баг (: Править не буду - правьте сами +)
  
 |  
|   | 
 |   
  | 
| DragoN | Дата: Воскресенье, 05 Июля 2009, 18:28:00 | Сообщение # 43 |  
 
Инквизитор 
Группа: Стримеры 
Сообщений: 4348 
Награды:  7 
Репутация:  2776 
Блокировки:    
 
 | MaSer,ладно,думаю ты бред вряд ли напишешь     раз уж для жнгп то:   Code    library resp initializer Res_Init   //Globals   globals     private gamecache cache = InitGameCache("map")     private real timeout = 30.//Timeout for ressurect     private real array UXS     private 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   private 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 
   private 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 g = null - не уверен,нужно ли...        set t = null   endfunction 
   endlibrary    хотя это и на scope можно заменить ^^   так же вроде надо обнулять локалку g... 
  
El Psy Congroo 
 |  
|   | 
 |   
  | 
| БАМ | Дата: Воскресенье, 05 Июля 2009, 18:51:11 | Сообщение # 44 |  
10 уровень
 
Группа: КоМодераторы 
Сообщений: 2490 
Награды:  5 
Репутация:  1223 
Блокировки:    
 
 | Quote (nekron_013) вообшето этот триггер может действовать на всех юнитов одновременно  Да, извини, невнимательно просмотрел событие.
 |  
|   | 
 |   
  | 
| STAWR | Дата: Пятница, 10 Июля 2009, 16:24:18 | Сообщение # 45 |  
7 уровень
 
Группа: Проверенные 
Сообщений: 387 
Награды:  0 
Репутация:  3 
Блокировки:    
 
 | Задача и впрямь сложная
 |  
|   | 
 |   
  | 
| Пейн | Дата: Пятница, 10 Июля 2009, 17:06:14 | Сообщение # 46 |  
7 уровень
 
Группа: Заблокированные 
Сообщений: 349 
Награды:  0 
Репутация:  57 
Блокировки:    
 
 | В игровых константах пробывал искать ?!
  
<b>Alice</b>, из за тебя пропадает смысл в паролях, а так же постоянно будет требоваться пинать админа...(Enforcer) 
 |  
|   | 
 |   
  | 
| Devil-Boy | Дата: Воскресенье, 16 Августа 2009, 13:50:55 | Сообщение # 47 |  
6 уровень
 
Группа: Пользователи 
Сообщений: 162 
Награды:  0 
Репутация:  2 
Блокировки:    
 
 | Можно поступить так - но это потребует занять обычное значение умирающего юнита.   Тригер № 1   Событие   - время прошло 0.01   Действия   -Отряд - Выбрать каждого юнита в (юниты пренадлежщие Нейтрально враждебнвй) и сделать действия:   --Если   Условия   выбраный юнит здание не равно да   выбраный юнит герой не равно да   (можно внести типы или отметить те юниты которые не должны перерождаться)   --то   Действия   Установить преременную ПЕРЕМЕННАЯ 1 (целочисленная) = ПЕРЕМЕННАЯ 1+1   Боевая единаица - установить обычное значание для (Выбраный юнит) на ПЕРЕМЕННАЯ 1   -Отряд - Выбрать каждого юнита в (юниты пренадлежщие Нейтрально враждебнвй) и сделать действия:   --Если   Условия   выбраный юнит здание не равно да   выбраный юнит герой не равно да   (можно внести типы или отметить те юниты которые не должны перерождаться)   --то   Действия   Установить переменную ПЕРЕМЕННАЯ 2 Массив(Обычное значение юнита(Выбраный юнит)) (Точка) = позиция выбраный юнит   И Тригер №2   Событие   -Боевая единица - Умирает   -Боевая единица - Меняет владельца   Условия   Владелец (Переключающий юнит) равно Нетрально враждебный   Действие   Ждать (время респауна (у меня 30 сек в RPG))   Создать 1 - Тип юнита (переключающий юнит)) для нейтрально враждебный в ПЕРЕМЕННАЯ 2 (масив Обычное значаение юнита(переключающий юнит)   Боевая ед. - установить обычное значение для (последний созданный юнит) на (обычное значение умирающий юнит)   Боевая tl. - установить обычное значение для умирющий юнит на 0.  Уф ну вот так! 
  
Нас здесь двое - Devil & Boy 
 |  
|   | 
 |   
  | 
| Zagar | Дата: Воскресенье, 16 Августа 2009, 17:00:10 | Сообщение # 48 |  
7 уровень
 
Группа: Проверенные 
Сообщений: 397 
Награды:  0 
Репутация:  75 
Блокировки:    
 
 | Devil-Boy, это что получаеться? это каждую милисекунду, все нейтралы записываются в массив одной переменной,а также их позиция..это я понял, а последний триг так и остался непонятным.умирает какой-то нейтрал.создается такой же.только в какой позиции то???далее ваще даже, вникнуть не мог
  
Хочешь сидеть на шее?Раздвигай ноги!Сомнения?...лучше не думай 
 |  
|   | 
 |   
  | 
| warIker | Дата: Воскресенье, 16 Августа 2009, 18:00:56 | Сообщение # 49 |  
7 уровень
 
Группа: Проверенные 
Сообщений: 356 
Награды:  0 
Репутация:  91 
Блокировки:    
 
 | -Castro- класно тока у мну триггеры на англ.))))
  
([ Ландшафт - 9/10]+[ GUI - 9/10]+[ Jass - 2/10]+[ Креатив - 9/10])/4 =  29/40  ТЫК! :3 
 |  
|   | 
 |   
  | 
| Akama | Дата: Воскресенье, 16 Августа 2009, 18:18:12 | Сообщение # 50 |  
7 уровень
 
Группа: Заблокированные 
Сообщений: 263 
Награды:  0 
Репутация:  27 
Блокировки:    
 
 | Лично я ресаю так: Ну например мне нужно реснуть волка нейтрально-враждебного. Я создаю территорию где его нужно реснуть и делаю триггер:   Событие:   Боевая единица - A unit Умирает   Условие:   (Unit-type of (Triggering unit)) ровно Волк   Действие:   Wait *через сколько сек реснуть* seconds   Боевая единица - Create 1 Волк for Нейтрально-враждебный at (Random point in *территория где ресаются волки*) facing Стандартная ориентация зданий degrees
  
<b>Alice</b>, из за тебя пропадает смысл в паролях, а так же постоянно будет требоваться пинать админа...(Enforcer) 
 |  
|   | 
 |   
  |