Сейчас 20:25:22 Суббота, 4 мая, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
Форум о Warcraft 3 » Раздел для картостроителей » Вопросы по картостроению » Бессмертный юнит
Бессмертный юнит
SreziДата: Четверг, 12 Декабря 2013, 20:16:49 | Сообщение # 1
7 уровень
Группа: Проверенные
Сообщений: 414
Награды: 0
Репутация: 116
Блокировки:
Аналог спелла Dazzle. Дота.
Сам спелл: "Shallow Grave"
Shallow Grave prevents any damage from killing the targetted hero.
Смысл спелла таков: Юнит не может умереть в течение N-ого времени.
Любой урон, который мог бы убить/добить юнита, оставляет ему лишь 1 хп.
Пример:
Юнит [А] со здоровьем 14/200 получает урон, равных 25ед.
14-25=-11
Здоровье юнита опустилось ниже 0, значит он считается мёртвым, но нам нужно, чтобы он был жив. А значит как то нужно опередить это событие и сделать здоровье юнита равное единице.
Буду благодарен, если поможете.


Нет места чести на войне,
Враг церемониться не будет,
Убей его любым путём,
Ведь победителей не судят.
 

[SeKtOR]Дата: Четверг, 12 Декабря 2013, 20:28:28 | Сообщение # 2
Группа: Проверенные
Сообщений: 1143
Награды: 0
Репутация: 1168
Блокировки:
Сия код сделает юнита для которого сделано событие на получение урона бессмертным
Код

globals
constant integer hp_abil = 'A000' // Способность на основе талисмана жизни(та который макс хп повышает) со значение 100000(максимальный урон который может получить юнит за раз)
endglobals

function RemoveAbil takes nothing returns nothing
local timer t = GetExpiredTimer()
local integer h = GetHandleId(t)
call UnitRemoveAbility(LoadUnitHandle(udg_Hash, h, 1), hp_abil)
call FlushChildHashtable(udg_Hash, h)
call DestroyTimer(t)
set t = null
endfunction

function onDamage takes unit damaged, real dmg returns nothing
local real life = GetWidgetLife(damaged)
local timer t
if(dmg > life and dmg > GetUnitState(damaged, UNIT_STATE_MAX_LIFE)) then
set t = CreateTimer()
call SaveAgentHandle(udg_Hash, GetHandleId(t), damaged)
call TimerStart(t, .0, false, function RemoveAbil)
call UnitAddAbility(damaged, hp_abil)
set t = null
else
call SetWidgetLife(damaged, life + dmg)
endif
endfunction




Сообщение отредактировал [SeKtOR] - Четверг, 12 Декабря 2013, 20:40:34
 

SreziДата: Четверг, 12 Декабря 2013, 20:34:01 | Сообщение # 3
7 уровень
Группа: Проверенные
Сообщений: 414
Награды: 0
Репутация: 116
Блокировки:
Благодарю, сейчас же протестирую его

Нет места чести на войне,
Враг церемониться не будет,
Убей его любым путём,
Ведь победителей не судят.
 

[SeKtOR]Дата: Четверг, 12 Декабря 2013, 20:41:03 | Сообщение # 4
Группа: Проверенные
Сообщений: 1143
Награды: 0
Репутация: 1168
Блокировки:
*Исправил код писалось по памяти D:

Добавлено (12 Декабря 2013, 20:41:03)
---------------------------------------------
Оффтоп:




Сообщение отредактировал [SeKtOR] - Четверг, 12 Декабря 2013, 20:42:01
 

SreziДата: Четверг, 12 Декабря 2013, 20:41:36 | Сообщение # 5
7 уровень
Группа: Проверенные
Сообщений: 414
Награды: 0
Репутация: 116
Блокировки:
Цитата [SeKtOR] ()
Неужели ты решил новую версию Millenium ORPG делать?


Давно уже делаю)


Нет места чести на войне,
Враг церемониться не будет,
Убей его любым путём,
Ведь победителей не судят.
 

[SeKtOR]Дата: Четверг, 12 Декабря 2013, 20:42:34 | Сообщение # 6
Группа: Проверенные
Сообщений: 1143
Награды: 0
Репутация: 1168
Блокировки:
Жаль мой друг не дожил, ему так карта нравилась и он так яро хотел продолжения)

 

SreziДата: Четверг, 12 Декабря 2013, 20:45:06 | Сообщение # 7
7 уровень
Группа: Проверенные
Сообщений: 414
Награды: 0
Репутация: 116
Блокировки:
Цитата [SeKtOR] ()
Жаль мой друг не дожил, ему так карта нравилась и он так яро хотел продолжения)


:D хаха, умер что-ли?

Я ошибки в коде сам исправил, теперь пытаюсь настроить всякие фишки, например, чтобы хп могло падать до 1 хп:)


Нет места чести на войне,
Враг церемониться не будет,
Убей его любым путём,
Ведь победителей не судят.
 

[SeKtOR]Дата: Четверг, 12 Декабря 2013, 20:46:55 | Сообщение # 8
Группа: Проверенные
Сообщений: 1143
Награды: 0
Репутация: 1168
Блокировки:
Да нет, тут своя история с кучей неожиданных поворотов)

Добавлено (12 Декабря 2013, 20:46:55)
---------------------------------------------
Исправь

Код
if(dmg > life and dmg > GetUnitState(damaged, UNIT_STATE_MAX_LIFE)) then

на
Код
if(dmg > life) then

И по сути должно падать до 1 хп как в доте...


 

SreziДата: Четверг, 12 Декабря 2013, 20:46:55 | Сообщение # 9
7 уровень
Группа: Проверенные
Сообщений: 414
Награды: 0
Репутация: 116
Блокировки:
Цитата [SeKtOR] ()
Да нет, тут своя история с кучей неожиданных поворотов)


ясн.

Чёт твоя штука вообще весь урон блочит:D


Нет места чести на войне,
Враг церемониться не будет,
Убей его любым путём,
Ведь победителей не судят.
 

[SeKtOR]Дата: Четверг, 12 Декабря 2013, 20:47:08 | Сообщение # 10
Группа: Проверенные
Сообщений: 1143
Награды: 0
Репутация: 1168
Блокировки:
http://warcraft3ft.info/forum/22-53945-1662973-16-1386866815
Тык тыже просил бессмертного)




Сообщение отредактировал [SeKtOR] - Четверг, 12 Декабря 2013, 20:47:28
 

SreziДата: Четверг, 12 Декабря 2013, 20:47:54 | Сообщение # 11
7 уровень
Группа: Проверенные
Сообщений: 414
Награды: 0
Репутация: 116
Блокировки:
Цитата [SeKtOR] ()
http://warcraft3ft.info/forum/22-53945-1662973-16-1386866815
Тык тыже просил бессмертного)


ахаха, а полубессмертного?:D


Нет места чести на войне,
Враг церемониться не будет,
Убей его любым путём,
Ведь победителей не судят.
 

[SeKtOR]Дата: Четверг, 12 Декабря 2013, 20:50:07 | Сообщение # 12
Группа: Проверенные
Сообщений: 1143
Награды: 0
Репутация: 1168
Блокировки:
Исправь условие и всё должно быть как вы желаете, если нет опиши что не так :D

Добавлено (12 Декабря 2013, 20:50:07)
---------------------------------------------
Кстати оптимизируй в карте мой спелл у жреца(тот который дядьки с мечём и крыльями вроде) на аое хил, я тогда был нупкой и он крайне кривой по реализации), когда он стоит и создаются молнии и всех хилит кто поблизости...




Сообщение отредактировал [SeKtOR] - Четверг, 12 Декабря 2013, 20:50:52
 

SreziДата: Четверг, 12 Декабря 2013, 20:50:28 | Сообщение # 13
7 уровень
Группа: Проверенные
Сообщений: 414
Награды: 0
Репутация: 116
Блокировки:
Цитата [SeKtOR] ()
Исправь условие и всё должно быть как вы желаете, если нет опиши что не так


Как исправить то условие) я уже 3 часа с этой системой вожусь)


Нет места чести на войне,
Враг церемониться не будет,
Убей его любым путём,
Ведь победителей не судят.
 

[SeKtOR]Дата: Четверг, 12 Декабря 2013, 20:51:49 | Сообщение # 14
Группа: Проверенные
Сообщений: 1143
Награды: 0
Репутация: 1168
Блокировки:
Напомни своё имя в скайпе ты у меня до сих пор там есть, но я хз где именно)

 

SreziДата: Четверг, 12 Декабря 2013, 20:51:56 | Сообщение # 15
7 уровень
Группа: Проверенные
Сообщений: 414
Награды: 0
Репутация: 116
Блокировки:
Цитата [SeKtOR] ()
Кстати оптимизируй в карте мой спелл у жреца(тот который дядьки с мечём и крыльями вроде) на аое хил, я тогда был нупкой и он крайне кривой по реализации), когда он стоит и создаются молнии и всех хилит кто поблизости...


Давно твоего меча нету:D давно всё переделано и переклёпано) давно поправлено и оптимизировано:D


Нет места чести на войне,
Враг церемониться не будет,
Убей его любым путём,
Ведь победителей не судят.
 

[SeKtOR]Дата: Четверг, 12 Декабря 2013, 20:52:12 | Сообщение # 16
Группа: Проверенные
Сообщений: 1143
Награды: 0
Репутация: 1168
Блокировки:
А ну ты меня удалил...

 

SreziДата: Четверг, 12 Декабря 2013, 20:52:24 | Сообщение # 17
7 уровень
Группа: Проверенные
Сообщений: 414
Награды: 0
Репутация: 116
Блокировки:
Цитата [SeKtOR] ()
Напомни своё имя в скайпе ты у меня до сих пор там есть, но я хз где именно)


я имел ввиду про модельку, а скил твой ещё на месте, оба причём.

Скайп Sfrienzail


Нет места чести на войне,
Враг церемониться не будет,
Убей его любым путём,
Ведь победителей не судят.
 

[SeKtOR]Дата: Четверг, 12 Декабря 2013, 20:54:44 | Сообщение # 18
Группа: Проверенные
Сообщений: 1143
Награды: 0
Репутация: 1168
Блокировки:
Ну добавил, принимай D:

 

SreziДата: Четверг, 12 Декабря 2013, 20:54:59 | Сообщение # 19
7 уровень
Группа: Проверенные
Сообщений: 414
Награды: 0
Репутация: 116
Блокировки:
Цитата [SeKtOR] ()
Ну добавил, принимай D:


ок


Нет места чести на войне,
Враг церемониться не будет,
Убей его любым путём,
Ведь победителей не судят.
 

AllOneTheDarkДата: Суббота, 14 Декабря 2013, 10:27:45 | Сообщение # 20
2 уровень
Группа: Проверенные
Сообщений: 30
Награды: 0
Репутация: 15
Блокировки:
Я вроде делал это так: отслеживал получение урона и устанавливал здоровье получающего урон юнита как *полученный урон + 1*. Правда, если у него максимальное количество ХП меньше получаемого урона, то не действует ._.
 

Форум о Warcraft 3 » Раздел для картостроителей » Вопросы по картостроению » Бессмертный юнит
  • Страница 1 из 1
  • 1
Поиск:

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