Сейчас 11:57:29 Пятница, 29 марта, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
Форум о Warcraft 3 » Раздел для картостроителей » Вопросы по картостроению » Передача урона (Нужна помощь)
Передача урона
NewN1ckNameДата: Воскресенье, 21 Апреля 2013, 13:51:29 | Сообщение # 1
1 уровень
Группа: Пользователи
Сообщений: 3
Награды: 0
Репутация: 0
Блокировки:
Мне надо передать базовый урон от одного юнита другому (скопировать). Типа у 1го было 54-55 урона у другого 12-15 и другому нада сделать как у первого, как это сделать?
 

UbeRДата: Воскресенье, 21 Апреля 2013, 14:08:23 | Сообщение # 2
5 уровень
Группа: Проверенные
Сообщений: 133
Награды: 0
Репутация: 148
Блокировки:
Только через Jass. Увы, я не владею им. Попроси опытных кодеров

http://warcraft3ft.info/forum/26-45754
 

ModdyДата: Воскресенье, 21 Апреля 2013, 14:09:08 | Сообщение # 3
4 уровень
Группа: Проверенные
Сообщений: 96
Награды: 0
Репутация: 30
Блокировки:
триггеры и переменные в помощь

Добавлено (21 Апреля 2013, 14:09:08)
---------------------------------------------

Цитата (UbeR)
Только через Jass

не согласен, хотя..
 

UbeRДата: Воскресенье, 21 Апреля 2013, 14:18:06 | Сообщение # 4
5 уровень
Группа: Проверенные
Сообщений: 133
Награды: 0
Репутация: 148
Блокировки:
Цитата (Moddy)
не согласен


Насколько я знаю, отслеживать урон в GUI нельзя... Или можно?


http://warcraft3ft.info/forum/26-45754
 

Wc3MapmakerДата: Воскресенье, 21 Апреля 2013, 14:34:28 | Сообщение # 5
3 уровень
Группа: Проверенные
Сообщений: 47
Награды: 0
Репутация: 31
Блокировки:
UbeR, можно отслеживать я делал способности где требуется отслеживание урона
 

UbeRДата: Воскресенье, 21 Апреля 2013, 14:37:44 | Сообщение # 6
5 уровень
Группа: Проверенные
Сообщений: 133
Награды: 0
Репутация: 148
Блокировки:
Wc3Mapmaker, именно НЕ НАНЕСЕННЫЙ УРОН, а БАЗОВЫЙ УРОН ЮНИТА?

http://warcraft3ft.info/forum/26-45754
 

BlackFoxДата: Воскресенье, 21 Апреля 2013, 15:02:22 | Сообщение # 7
3 уровень
Группа: Проверенные
Сообщений: 52
Награды: 0
Репутация: 25
Блокировки:
NewN1ckName, метод замены и база клонов тебе в помощь.

SirNikolas падёт в неравном бою с брутфорсом, Alice.
 

UbeRДата: Воскресенье, 21 Апреля 2013, 15:23:24 | Сообщение # 8
5 уровень
Группа: Проверенные
Сообщений: 133
Награды: 0
Репутация: 148
Блокировки:
Цитата (BlackFox)
метод замены


Слишком примитивно.

Цитата (BlackFox)
база клонов


Не знаю о таком, можно поподробнее, пожалуйста?


http://warcraft3ft.info/forum/26-45754
 

DaroДата: Воскресенье, 21 Апреля 2013, 15:28:36 | Сообщение # 9
6 уровень
Группа: Проверенные
Сообщений: 217
Награды: 0
Репутация: 105
Блокировки:
Цитата (UbeR)

Насколько я знаю, отслеживать урон в GUI нельзя... Или можно?

Геройский точно можно


 

BlackFoxДата: Воскресенье, 21 Апреля 2013, 15:29:47 | Сообщение # 10
3 уровень
Группа: Проверенные
Сообщений: 52
Награды: 0
Репутация: 25
Блокировки:
Смотри старый тип того же юнита с 12-15 на тот же вид юнита, но другой тип, только у него будет 54-55.
Я о такой замене.
Код
function ReplaceUnitBJ takes unit whichUnit, integer newUnitId, integer unitStateMethod returns unit

     local unit    oldUnit = whichUnit

     local unit    newUnit

     local boolean wasHidden

     local integer index

     local item    indexItem

     local real    oldRatio

     // If we have bogus data, don't attempt the replace.

     if (oldUnit == null) then

         set bj_lastReplacedUnit = oldUnit

         return oldUnit

     endif

     // Hide the original unit.

     set wasHidden = IsUnitHidden(oldUnit)

     call ShowUnit(oldUnit, false)

     // Create the replacement unit.

     if (newUnitId == 'ugol') then

         set newUnit = CreateBlightedGoldmine(GetOwningPlayer(oldUnit), GetUnitX(oldUnit), GetUnitY(oldUnit), GetUnitFacing(oldUnit))

     else

         set newUnit = CreateUnit(GetOwningPlayer(oldUnit), newUnitId, GetUnitX(oldUnit), GetUnitY(oldUnit), GetUnitFacing(oldUnit))

     endif

     // Set the unit's life and mana according to the requested method.

     if (unitStateMethod == bj_UNIT_STATE_METHOD_RELATIVE) then

         // Set the replacement's current/max life ratio to that of the old unit.

         // If both units have mana, do the same for mana.

         if (GetUnitState(oldUnit, UNIT_STATE_MAX_LIFE) > 0) then

             set oldRatio = GetUnitState(oldUnit, UNIT_STATE_LIFE) / GetUnitState(oldUnit, UNIT_STATE_MAX_LIFE)

             call SetUnitState(newUnit, UNIT_STATE_LIFE, oldRatio * GetUnitState(newUnit, UNIT_STATE_MAX_LIFE))

         endif

         if (GetUnitState(oldUnit, UNIT_STATE_MAX_MANA) > 0) and (GetUnitState(newUnit, UNIT_STATE_MAX_MANA) > 0) then

             set oldRatio = GetUnitState(oldUnit, UNIT_STATE_MANA) / GetUnitState(oldUnit, UNIT_STATE_MAX_MANA)

             call SetUnitState(newUnit, UNIT_STATE_MANA, oldRatio * GetUnitState(newUnit, UNIT_STATE_MAX_MANA))

         endif

     elseif (unitStateMethod == bj_UNIT_STATE_METHOD_ABSOLUTE) then

         // Set the replacement's current life to that of the old unit.

         // If the new unit has mana, do the same for mana.

         call SetUnitState(newUnit, UNIT_STATE_LIFE, GetUnitState(oldUnit, UNIT_STATE_LIFE))

         if (GetUnitState(newUnit, UNIT_STATE_MAX_MANA) > 0) then

             call SetUnitState(newUnit, UNIT_STATE_MANA, GetUnitState(oldUnit, UNIT_STATE_MANA))

         endif

     elseif (unitStateMethod == bj_UNIT_STATE_METHOD_DEFAULTS) then

         // The newly created unit should already have default life and mana.

     elseif (unitStateMethod == bj_UNIT_STATE_METHOD_MAXIMUM) then

         // Use max life and mana.

         call SetUnitState(newUnit, UNIT_STATE_LIFE, GetUnitState(newUnit, UNIT_STATE_MAX_LIFE))

         call SetUnitState(newUnit, UNIT_STATE_MANA, GetUnitState(newUnit, UNIT_STATE_MAX_MANA))

     else

         // Unrecognized unit state method - ignore the request.

     endif

     // Mirror properties of the old unit onto the new unit.

     //call PauseUnit(newUnit, IsUnitPaused(oldUnit))

     call SetResourceAmount(newUnit, GetResourceAmount(oldUnit))

     // If both the old and new units are heroes, handle their hero info.

     if (IsUnitType(oldUnit, UNIT_TYPE_HERO) and IsUnitType(newUnit, UNIT_TYPE_HERO)) then

         call SetHeroXP(newUnit, GetHeroXP(oldUnit), false)

         set index = 0

         loop

             set indexItem = UnitItemInSlot(oldUnit, index)

             if (indexItem != null) then

                 call UnitRemoveItem(oldUnit, indexItem)

                 call UnitAddItem(newUnit, indexItem)

             endif

             set index = index + 1

             exitwhen index >= bj_MAX_INVENTORY

         endloop

     endif

     // Remove or kill the original unit.  It is sometimes unsafe to remove

     // hidden units, so kill the original unit if it was previously hidden.

     if wasHidden then

         call KillUnit(oldUnit)

         call RemoveUnit(oldUnit)

     else

         call RemoveUnit(oldUnit)

     endif

     set bj_lastReplacedUnit = newUnit

     return newUnit

endfunction


SirNikolas падёт в неравном бою с брутфорсом, Alice.
 

BorodachДата: Воскресенье, 21 Апреля 2013, 17:02:12 | Сообщение # 11
9 уровень
Группа: Проверенные
Сообщений: 930
Награды: 0
Репутация: 422
Блокировки:
NewN1ckName, Ну или создание библиотеки с уроном каждого юнита. А потом разницу изменять

Karamba
 

BlackFoxДата: Воскресенье, 21 Апреля 2013, 18:59:10 | Сообщение # 12
3 уровень
Группа: Проверенные
Сообщений: 52
Награды: 0
Репутация: 25
Блокировки:
А проще через способность "повышение атаки".

SirNikolas падёт в неравном бою с брутфорсом, Alice.
 

BorodachДата: Воскресенье, 21 Апреля 2013, 19:10:07 | Сообщение # 13
9 уровень
Группа: Проверенные
Сообщений: 930
Награды: 0
Репутация: 422
Блокировки:
BlackFox, Я о том же

Karamba
 

BlackFoxДата: Воскресенье, 21 Апреля 2013, 19:19:47 | Сообщение # 14
3 уровень
Группа: Проверенные
Сообщений: 52
Награды: 0
Репутация: 25
Блокировки:
Цитата (NewN1ckName)
54-55 урона у другого 12-15

Как видно, ещё и кость меняем. Не только базовую атаку. Можно через исследования.


SirNikolas падёт в неравном бою с брутфорсом, Alice.
 

Форум о Warcraft 3 » Раздел для картостроителей » Вопросы по картостроению » Передача урона (Нужна помощь)
  • Страница 1 из 1
  • 1
Поиск:

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