Перемотка времени относительно одного героя
|
|
KopBpuK | Дата: Суббота, 08 Сентября 2012, 19:28:12 | Сообщение # 1 |
6 уровень
Группа: Проверенные
Сообщений: 167
Награды: 0
Репутация: 166
Блокировки:
| Мне срочно нужна ульта Nerubian Weaver (из ДОТЫ), я даже не знаю как мне быстро и без особых усилий сотворить это. Если есть у кого-нибудь наработка, пожалуйста скиньте, буду очень благодарен! Заранее спасибо!
Warcraft 3 4ever! <3
|
|
|
|
[SeKtOR] | Дата: Суббота, 08 Сентября 2012, 19:30:17 | Сообщение # 2 |
Группа: Проверенные
Сообщений: 1143
Награды: 0
Репутация: 1168
Блокировки:
| Ты хотьбы её описал, тут не все задроты в доту
|
|
|
|
KopBpuK | Дата: Суббота, 08 Сентября 2012, 19:49:37 | Сообщение # 3 |
6 уровень
Группа: Проверенные
Сообщений: 167
Награды: 0
Репутация: 166
Блокировки:
| Quote (|SeKtOR|) тут не все задроты в доту Я думал в ДОТУ играли все!
Кароче, когда герой активирует способность, то он возвращается на место, там где был 5 сек. назад, с таким же кол-вом хп как и было 5 сек назад.
Warcraft 3 4ever! <3
|
|
|
|
Hexing | Дата: Суббота, 08 Сентября 2012, 19:52:21 | Сообщение # 4 |
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
| Quote (KopBpuK) Я думал в ДОТУ играли все!
Кароче, когда герой активирует способность, то он возвращается на место, там где был 5 сек. назад, с таким же кол-вом хп как и было 5 сек назад. такую штуку делали миллион раз, даже помню был такой топик, щас сделаю
|
|
|
|
[SeKtOR] | Дата: Суббота, 08 Сентября 2012, 20:38:46 | Сообщение # 5 |
Группа: Проверенные
Сообщений: 1143
Награды: 0
Репутация: 1168
Блокировки:
| Тебе jass вариант пойдёт или только gui?
|
|
|
|
KopBpuK | Дата: Суббота, 08 Сентября 2012, 22:21:55 | Сообщение # 6 |
6 уровень
Группа: Проверенные
Сообщений: 167
Награды: 0
Репутация: 166
Блокировки:
| гуи, я искал сдесь, но не нашел нароботки, там с массивами работать нид, а я не умею...
Warcraft 3 4ever! <3
|
|
|
|
Pebbles | Дата: Суббота, 08 Сентября 2012, 22:56:21 | Сообщение # 7 |
7 уровень
Группа: Проверенные
Сообщений: 258
Награды: 0
Репутация: 1335
Блокировки:
| GUI
Yabba Dabba Doo!
Сообщение отредактировал Pebbles - Суббота, 08 Сентября 2012, 22:57:19 |
|
|
|
Hexing | Дата: Воскресенье, 09 Сентября 2012, 05:48:25 | Сообщение # 8 |
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
| Pebbles, не муи же, но и автор не про, так что сойдёт, не буду делать
|
|
|
|
SirNikolas | Дата: Воскресенье, 09 Сентября 2012, 07:42:32 | Сообщение # 9 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| Требуется JASS NewGen Pack последней версии.Code library_once G { constant group G = CreateGroup(); }
scope TimeLapse { include "cj_types_priv.j";
define { private SPELL = 'A000'; private EFFECT1 = "Abilities\\Spells\\NightElf\\Blink\\BlinkCaster.mdl"; private EFFECT2 = "Abilities\\Spells\\NightElf\\Blink\\BlinkTarget.mdl"; private PERIOD = 1.; private TIME(lvl) = 5.; private BUFFER_SIZE = 5;//TIME(maxLvl) / PERIOD }
private struct TimeLapse { unit u; real x[BUFFER_SIZE]; real y[BUFFER_SIZE]; real l[BUFFER_SIZE]; real m[BUFFER_SIZE];
void scan() { x[0] = GetWidgetX(u); y[0] = GetWidgetY(u); l[0] = GetWidgetLife(u); m[0] = GetUnitState(u, UNIT_STATE_MANA); } };
private void Associate(unit u) { TimeLapse tl = TimeLapse.create(); tl.u = u; tl.scan(); for (int i = 1; i < BUFFER_SIZE; i++) { tl.x[i] = tl.x[0]; tl.y[i] = tl.y[0]; tl.l[i] = tl.l[0]; tl.m[i] = tl.m[0]; } if tl == 1 { TimerStart(CreateTimer(), PERIOD, true, \ lambda void() { TimeLapse tl = 1; do { int i = BUFFER_SIZE; whilenot --i <= 0 { tl.x[i] = tl.x[i - 1]; tl.y[i] = tl.y[i - 1]; tl.l[i] = tl.l[i - 1]; tl.m[i] = tl.m[i - 1]; } tl.scan(); } whilenot tl.u == null; } ); } }
callback onUnitSpellEffect(SPELL) { unit u = GetTriggerUnit(); TimeLapse tl = 1; whilenot u == tl.u { tl++; } int i = R2I(TIME(GetUnitAbilityLevel(u, SPELL)) / PERIOD) - 1; DestroyEffect(AddSpecialEffect(EFFECT1, GetWidgetX(u), GetWidgetY(u))); SetUnitX(u, tl.x[i]); SetUnitY(u, tl.y[i]); SetWidgetLife(u, tl.l[i]); SetUnitState(u, UNIT_STATE_MANA, tl.m[i]); DestroyEffect(AddSpecialEffect(EFFECT2, tl.[i], tl.y[i])); flush locals; }
callback onHeroSkill(SPELL) { if GetLearnedSkillLevel() == 1 { Associate(GetTriggerUnit()); } }
callback onInit() { for (unit u; UnitsInRect(bj_mapInitialPlayableArea) use G) { if GetUnitAbilityLevel(u, SPELL) > 0 { Associate(u); } } } }
|
|
|
|
Hexing | Дата: Воскресенье, 09 Сентября 2012, 09:05:49 | Сообщение # 10 |
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
| SirNikolas, структуры зло, и вы прекрасно это понимаете, тогда зачем?
|
|
|
|
KopBpuK | Дата: Воскресенье, 09 Сентября 2012, 15:02:31 | Сообщение # 11 |
6 уровень
Группа: Проверенные
Сообщений: 167
Награды: 0
Репутация: 166
Блокировки:
| скажи пожалуйста сколько переменных нужно, ну и какие, а то баюсь ошибиться.Добавлено (09 Сентября 2012, 15:00:49) --------------------------------------------- Ой тупанул сори. Добавлено (09 Сентября 2012, 15:02:31) --------------------------------------------- Но возникает другой вопрос, карта на подобии арены, всех геров тпшает в другое место, там а если ульту юзануть, то гер-то тпшница обратно, как это можно обойти? или тогда все время на протяжении всего раунда тпшать(чтоб небыло таких вот багов)
Warcraft 3 4ever! <3
|
|
|
|
Naturekid | Дата: Воскресенье, 09 Сентября 2012, 15:10:53 | Сообщение # 12 |
Группа: Заблокированные
Сообщений: 4982
Награды: 3
Репутация: 3347
Блокировки:
| поставь условие - boolean - point is in region - точка возврата не в регионе "Раздевалка"
|
|
|
|
KopBpuK | Дата: Воскресенье, 09 Сентября 2012, 15:13:08 | Сообщение # 13 |
6 уровень
Группа: Проверенные
Сообщений: 167
Награды: 0
Репутация: 166
Блокировки:
| И еще 1 вопросик Как можно изменить время запоминания точек, не 5 сек, а например 7 или даже 10 сек. где нужно менять значение.
Warcraft 3 4ever! <3
|
|
|
|
Naturekid | Дата: Воскресенье, 09 Сентября 2012, 15:18:06 | Сообщение # 14 |
Группа: Заблокированные
Сообщений: 4982
Награды: 3
Репутация: 3347
Блокировки:
| KopBpuK, очевидно же - меняй -5 на -7 или -10, а в другом триггеревезде где 5 - меняй на другое. Pebbles, молодчина.
|
|
|
|
KopBpuK | Дата: Четверг, 13 Сентября 2012, 15:41:49 | Сообщение # 15 |
6 уровень
Группа: Проверенные
Сообщений: 167
Награды: 0
Репутация: 166
Блокировки:
| Спасибо, я просто начинаю только осваиваться в гуи и вообще в картостроении, а Pebbles, и вправду помог очень сильно спасибО! Добавлено (13 Сентября 2012, 15:41:49) --------------------------------------------- Возникла проблема!В триггере написано "(Здоровье of (Паладин 0000) и т.д. , а если героя нужно сначало выбрать а не чтоб он уже был, вместо "паладин000" что нужно вписатЬ? а то не работает, на что нужно поменять, если вот я выбрал героя в таверне и играю им а не герой уже на карте, подскажите плз
Warcraft 3 4ever! <3
|
|
|
|
Naturekid | Дата: Четверг, 13 Сентября 2012, 16:03:50 | Сообщение # 16 |
Группа: Заблокированные
Сообщений: 4982
Награды: 3
Репутация: 3347
Блокировки:
| KopBpuK, Занеси его в переменную типа "боевая единица" и замени палладин на эту единицу.
|
|
|
|
[SeKtOR] | Дата: Четверг, 13 Сентября 2012, 16:06:05 | Сообщение # 17 |
Группа: Проверенные
Сообщений: 1143
Награды: 0
Репутация: 1168
Блокировки:
| Naturekid,
|
|
|
|
Naturekid | Дата: Четверг, 13 Сентября 2012, 16:09:12 | Сообщение # 18 |
Группа: Заблокированные
Сообщений: 4982
Награды: 3
Репутация: 3347
Блокировки:
| Ну ка на каhttp://rghost.ru/40340157 Добавлено (13 Сентября 2012, 16:09:12) --------------------------------------------- [SeKtOR],
|
|
|
|
KopBpuK | Дата: Четверг, 13 Сентября 2012, 19:48:26 | Сообщение # 19 |
6 уровень
Группа: Проверенные
Сообщений: 167
Награды: 0
Репутация: 166
Блокировки:
| спасибо, ты лучший:DD
Warcraft 3 4ever! <3
|
|
|
|