Столб дыма Спецэффект
|
|
sacar777 | Дата: Четверг, 02 Июня 2011, 14:24:47 | Сообщение # 1 |
7 уровень
Группа: Проверенные
Сообщений: 416
Награды: 0
Репутация: 35
Блокировки:
| Видел в какой то карте, что когда юзаешь спел, то Юнит отталкивает другого и создается на протяжение всего пути (на которое отлетает юнит) столб дыма или земли, вообщем любого спец эффекта. Все сделано было через триггер Для каждого () Сделать... подскажите, как так сделать не пользовался ни разу этим тригом...
Legion
Герои: 10% Ландшафт: 30% Предметы: 10% Баланс:80% Код:70% Общая готовность: 10% Бета Тест карты выявил 4 довольно простых бага.
|
|
|
|
romaN-1998 | Дата: Четверг, 02 Июня 2011, 14:40:35 | Сообщение # 2 |
10 уровень
Группа: Проверенные
Сообщений: 1368
Награды: 0
Репутация: 10
Блокировки:
| Триггер no1:
-----События: --Юнит приводит способность в действие ----Условия: --Способность РАВНО "отталкивание" ----Действия: Set t = Цель заклинания Включить триггер no2 Wait N секунд (длительность) Выключить триггер no2 Custom Script: set udg_t = null
Триггер no2: -----События: --Каждые 0.NN секунд (скорость отталкивания 1) ----Условия ----Действия: Set tp = Позиция (t) Двигать t мгновенно в (tp) со смещением N точек (скорость отталкивния 2) в направлении ((Направление лица t) - 180) Создать спецэффект "пыль" на tp Custom Script: call RemoveLocation(udg_tp) Custom Script: set udg_tp = null
Спрашивай если чё непонятно!
Сообщение отредактировал romaN-1998 - Четверг, 02 Июня 2011, 14:41:01 |
|
|
|
BuРyC | Дата: Четверг, 02 Июня 2011, 14:50:31 | Сообщение # 3 |
3 уровень
Группа: Пользователи
Сообщений: 74
Награды: 0
Репутация: -27
Блокировки:
| http://rghost.ru/9050861 Добавлено (02-06-2011, 14:50) --------------------------------------------- http://warcraft3ft.info/load/kartostroenie/narabotki/physik_knokback_system_v1_1/43-1-0-9312
|
|
|
|
romaN-1998 | Дата: Четверг, 02 Июня 2011, 14:50:45 | Сообщение # 4 |
10 уровень
Группа: Проверенные
Сообщений: 1368
Награды: 0
Репутация: 10
Блокировки:
| BuРyC, ты бесишь, я уже написал как сделать, автор ничего не ответил, ты уже своё выкладываешь.
|
|
|
|
BuРyC | Дата: Четверг, 02 Июня 2011, 14:54:11 | Сообщение # 5 |
3 уровень
Группа: Пользователи
Сообщений: 74
Награды: 0
Репутация: -27
Блокировки:
| http://warcraft3ft.info/forum/29-24458-1 Добавлено (02-06-2011, 14:51) ---------------------------------------------
Quote (romaN-1998) я уже написал как сделать Quote (romaN-1998) Wait N секунд (длительность) Добавлено (02-06-2011, 14:52) ---------------------------------------------
Quote (romaN-1998) Set tp = Позиция (t) Двигать t мгновенно в (tp) со смещением N точек (скорость отталкивния 2) в направлении ((Направление лица t) - 180) Добавлено (02-06-2011, 14:53) --------------------------------------------- romaN-1998, Ты этого хотел? Добавлено (02-06-2011, 14:54) ---------------------------------------------
Quote (romaN-1998) Создать спецэффект "пыль" на tp А где же DestroyEffect
|
|
|
|
romaN-1998 | Дата: Четверг, 02 Июня 2011, 14:55:18 | Сообщение # 6 |
10 уровень
Группа: Проверенные
Сообщений: 1368
Награды: 0
Репутация: 10
Блокировки:
| Quote (BuРyC) Wait N секунд (длительность)
avtorfffuuu что не так? Quote (BuРyC) Set tp = Позиция (t) Двигать t мгновенно в (tp) со смещением N точек (скорость отталкивния 2) в направлении ((Направление лица t) - 180)
avtorfffuuu здесь что не так?Quote (BuРyC) Создать спецэффект "пыль" на tp А где же DestroyEffect не обязательно
|
|
|
|
[DS] | Дата: Четверг, 02 Июня 2011, 15:00:31 | Сообщение # 7 |
9 уровень
Группа: Проверенные
Сообщений: 1116
Награды: 0
Репутация: 527
Блокировки:
| Как не объязательно, ты остовляешь утечки.
|
|
|
|
BuРyC | Дата: Четверг, 02 Июня 2011, 15:02:41 | Сообщение # 8 |
3 уровень
Группа: Пользователи
Сообщений: 74
Награды: 0
Репутация: -27
Блокировки:
| Quote (romaN-1998) не обязательно Ага, если хочешь себе видеокарту спалить то тогда не обязательно.Quote (romaN-1998) что не так? Wait корявый и бажный при игре по мультиплэеру. Quote (romaN-1998) здесь что не так? Точки в разы медленее координат и даже Quote (romaN-1998) call RemoveLocation(udg_tp) не спасает от утечки + Quote (BuРyC) со смещением N точек (скорость отталкивния 2) в направлении ((Направление лица t) - 180) утекающая неудалённая точка
|
|
|
|
romaN-1998 | Дата: Четверг, 02 Июня 2011, 15:06:41 | Сообщение # 9 |
10 уровень
Группа: Проверенные
Сообщений: 1368
Награды: 0
Репутация: 10
Блокировки:
| Quote (BuРyC) Wait корявый и бажный при игре по мультиплэеру. wait нормальный, если использовать > 2.00 секунд
ты так помешан на утечках
|
|
|
|
BuРyC | Дата: Четверг, 02 Июня 2011, 15:10:39 | Сообщение # 10 |
3 уровень
Группа: Пользователи
Сообщений: 74
Награды: 0
Репутация: -27
Блокировки:
| Quote (romaN-1998) ты так помешан на утечках Ты дал ему утечный код с переодическим событием. Так можно через 10 мин из карты выходить уже из за лагов.
|
|
|
|
DeadJass | Дата: Четверг, 02 Июня 2011, 15:18:29 | Сообщение # 11 |
7 уровень
Группа: Проверенные
Сообщений: 447
Награды: 0
Репутация: 30
Блокировки:
| Quote (romaN-1998) ты так помешан на утечках Утечки зло. Если ты не понял то ты просто нуб в картостоее ибо нормаль и уважающий себя картостроитель в первую очередь делает карту играбельной. В твоем же случаии на 20 минуте вар зависнет или вылетит с фаталл еррор.
^ кликабельно Archers Of The Island v1.8 - на стадии завершения
|
|
|
|
FkoFF | Дата: Четверг, 02 Июня 2011, 15:23:01 | Сообщение # 12 |
Группа: Заблокированные
Сообщений: 4356
Награды: 1
Репутация: 1413
Блокировки:
| Quote (romaN-1998) мгновенно в (tp) со смещением N точек (скорость отталкивния 2) в направлении ((Направление лица t) - 180) утечная точка Quote (BuРyC) Ага, если хочешь себе видеокарту спалить то тогда не обязательно. не сожжет, там в память идет утечка а не в видюху ) Quote (romaN-1998) wait нормальный, если использовать > 2.00 секунд ты так помешан на утечках кто тебе солгал? Вейт вообще бажный, а то что он вытворяет с памятью - вообще ад и погибель (фактически - тормозит весь поток в течении действия).
|
|
|
|
DeadJass | Дата: Четверг, 02 Июня 2011, 15:26:11 | Сообщение # 13 |
7 уровень
Группа: Проверенные
Сообщений: 447
Награды: 0
Репутация: 30
Блокировки:
| romaN-1998, насчет вейта. Сделай цикл какойнибудь с вейтом и посмотри что у тебя будет с памятью через минут 5-10Добавлено (02-06-2011, 15:26) --------------------------------------------- sacar777, а вообще лучше делать так. Просто создовай в том же цикле где идет движение юнита спецефект в координатах отталкиваемого юнита.
^ кликабельно Archers Of The Island v1.8 - на стадии завершения
|
|
|
|
[DS] | Дата: Четверг, 02 Июня 2011, 15:26:36 | Сообщение # 14 |
9 уровень
Группа: Проверенные
Сообщений: 1116
Награды: 0
Репутация: 527
Блокировки:
| FkoFF, у меня есть такая система наз-ся PolledWait2 может глянешь мб он норм будет.
|
|
|
|
DeadJass | Дата: Четверг, 02 Июня 2011, 15:27:23 | Сообщение # 15 |
7 уровень
Группа: Проверенные
Сообщений: 447
Награды: 0
Репутация: 30
Блокировки:
| Лучше использовать таймеры и не мучить мозг ни себе ни людям.
^ кликабельно Archers Of The Island v1.8 - на стадии завершения
|
|
|
|
BuРyC | Дата: Четверг, 02 Июня 2011, 15:27:36 | Сообщение # 16 |
3 уровень
Группа: Пользователи
Сообщений: 74
Награды: 0
Репутация: -27
Блокировки:
| Quote (FkoFF) не сожжет, там в память идет утечка а не в видюху ) Не знаю как иам в твоей теории, но у меня личный опыт
|
|
|
|
FkoFF | Дата: Четверг, 02 Июня 2011, 15:29:13 | Сообщение # 17 |
Группа: Заблокированные
Сообщений: 4356
Награды: 1
Репутация: 1413
Блокировки:
| Quote (|DS|) FkoFF, у меня есть такая система наз-ся PolledWait2 может глянешь мб он норм будет. эээ, не представляю каким образом можно остановить поток без тотальной перегрузки потока.Добавлено (02-06-2011, 15:29) ---------------------------------------------
Quote (BuРyC) Не знаю как иам в твоей теории, но у меня личный опыт не удаленный спецэффект == объект висящий в памяти, не более. А то что видюха пострадала - явно не от варкрафта (хотя если у тебя была Voodoo, тогда этот вариант еще возможен)
|
|
|
|
[DS] | Дата: Четверг, 02 Июня 2011, 15:29:45 | Сообщение # 18 |
9 уровень
Группа: Проверенные
Сообщений: 1116
Награды: 0
Репутация: 527
Блокировки:
| ща накалякаю
|
|
|
|
BuРyC | Дата: Четверг, 02 Июня 2011, 15:34:27 | Сообщение # 19 |
3 уровень
Группа: Пользователи
Сообщений: 74
Награды: 0
Репутация: -27
Блокировки:
| FkoFF, у меня был старый pentium 4 с слабой видюхой, я там только в вар и играл, я тогда не только не знал джаса, я и в гуи еле разбирался. И после 5месячного истязания над компом не удалёнными спецэфектами, комп ласты склеил. Пришлось похоранить
|
|
|
|
FkoFF | Дата: Четверг, 02 Июня 2011, 15:36:20 | Сообщение # 20 |
Группа: Заблокированные
Сообщений: 4356
Награды: 1
Репутация: 1413
Блокировки:
| Quote (BuРyC) не удалёнными спецэфектами, комп ласты склеил. Пришлось похоранить повторюсь - от эффектов в варе видюха сгореть не могла. Процессор и память - легко, а видюха = нет. И это не теория, нагрузка на видеокарту варкрафтом не превышает 100 мб. вообще ни при каких обстоятельствах.
|
|
|
|
BuРyC | Дата: Четверг, 02 Июня 2011, 15:40:48 | Сообщение # 21 |
3 уровень
Группа: Пользователи
Сообщений: 74
Награды: 0
Репутация: -27
Блокировки:
| Возможно он, но суть в том что при проигрование 3D объектов, на экране начинали появляться короткие зелёные линии, и их становилось со временем всё больше, а в итоге вылетал дез скрин. Сам монитор работал нормально так что лини были не из за него, а проблема была именно в сис. блоке.
|
|
|
|
[DS] | Дата: Четверг, 02 Июня 2011, 15:42:17 | Сообщение # 22 |
9 уровень
Группа: Проверенные
Сообщений: 1116
Награды: 0
Репутация: 527
Блокировки:
| function PolledWait2 takes real duration returns nothing local real timeRemaning local real st = TimerGetElapsed(gametime)
if duration > 0. then loop set timeRemaning = duration - TimeGetElepsed(gametime) + st exitwhen timeRemaning <= 0 if timeRemaning > 2.00 then call TriggerSleepAction(0.1 * timeRemaning) else call TriggerSleepAction(0.0) endif endloop endif endfunction
|
|
|
|
BuРyC | Дата: Четверг, 02 Июня 2011, 15:44:05 | Сообщение # 23 |
3 уровень
Группа: Пользователи
Сообщений: 74
Награды: 0
Репутация: -27
Блокировки:
| Quote (|DS|) TimerGetElapsed Это что?
|
|
|
|
FkoFF | Дата: Четверг, 02 Июня 2011, 15:51:06 | Сообщение # 24 |
Группа: Заблокированные
Сообщений: 4356
Награды: 1
Репутация: 1413
Блокировки:
| Code function PolledWait2 takes real duration returns nothing local real timeRemaning local real st = TimerGetElapsed(gametime)
if duration > 0. then loop set timeRemaning = duration - TimeGetElepsed(gametime) + st exitwhen timeRemaning <= 0 if timeRemaning > 2.00 then call TriggerSleepAction(0.1 * timeRemaning) else call TriggerSleepAction(0.0) endif endloop endif endfunction
Code function PolledWait takes real duration returns nothing local timer t local real timeRemaining
if (duration > 0) then set t = CreateTimer() call TimerStart(t, duration, false, null) loop set timeRemaining = TimerGetRemaining(t) exitwhen timeRemaining <= 0
// If we have a bit of time left, skip past 10% of the remaining // duration instead of checking every interval, to minimize the // polling on long waits. if (timeRemaining > bj_POLLED_WAIT_SKIP_THRESHOLD) then call TriggerSleepAction(0.1 * timeRemaining) else call TriggerSleepAction(bj_POLLED_WAIT_INTERVAL) endif endloop call DestroyTimer(t) endif endfunction
[DS], найди десять отличий. На самом деле TriggerSleepAction и есть тот бажный шоздвездец фрагмент который вообще противопоказанно использовать. Он перегружает память, страшным образом.
|
|
|
|
[DS] | Дата: Четверг, 02 Июня 2011, 16:08:38 | Сообщение # 25 |
9 уровень
Группа: Проверенные
Сообщений: 1116
Награды: 0
Репутация: 527
Блокировки:
| нет отличий)) Добавлено (02-06-2011, 16:08) --------------------------------------------- тогда лучше таймерами пользоватся
|
|
|
|