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


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
Форум о Warcraft 3 » Раздел для картостроителей » Вопросы по картостроению » Помогите с волнами зомби
Помогите с волнами зомби
MOHCTEPДата: Четверг, 18 Октября 2012, 19:26:19 | Сообщение # 1
2 уровень
Группа: Пользователи
Сообщений: 27
Награды: 0
Репутация: -10
Блокировки:
Помогите пожалуйста с волнами зомби как сделать через тиггеры если можно киньте наработку просто не очень хочется создавать на каждую волну юнитов например у первой волны 100 хп а у следующей 105 и мне ради этого делать нового юнита не хочется ведь есть другой способ ну представьте например так хотя бы 30 волн делать ты проклянёшь всё вокруг их делать ну вообщем помогите.

Тормоз тоже механизм
 

СкарДата: Четверг, 18 Октября 2012, 19:39:36 | Сообщение # 2
5 уровень
Группа: Пользователи
Сообщений: 116
Награды: 0
Репутация: 12
Блокировки:
ну так сделай зомби героями, и с каждой новой волной добавляй им по 1 единице силы
только в константах поменять не забудь 1 ед. = 5 хп или как тебе нужно...


Если боишься - не делай, если делаешь - не бойся...
 

[SeKtOR]Дата: Четверг, 18 Октября 2012, 20:12:56 | Сообщение # 3
Группа: Проверенные
Сообщений: 1143
Награды: 0
Репутация: 1168
Блокировки:
Через предметную способность можно менять макс. хп

 

СкарДата: Четверг, 18 Октября 2012, 20:15:14 | Сообщение # 4
5 уровень
Группа: Пользователи
Сообщений: 116
Награды: 0
Репутация: 12
Блокировки:
Так это ему опять же придется создавать миллион таких способностей, а он от этого убежать хочет

Если боишься - не делай, если делаешь - не бойся...
 

[SeKtOR]Дата: Четверг, 18 Октября 2012, 20:17:39 | Сообщение # 5
Группа: Проверенные
Сообщений: 1143
Награды: 0
Репутация: 1168
Блокировки:
Никто не отменял
trollface
P.S. Ещё как вариант call SetUnitState(whichUnit, UNIT_STATE_MAX_LIFE) только вроде функция криво робит




Сообщение отредактировал [SeKtOR] - Четверг, 18 Октября 2012, 20:18:15
 

SirNikolasДата: Пятница, 19 Октября 2012, 11:49:23 | Сообщение # 6
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Quote (|SeKtOR|)
call SetUnitState(whichUnit, UNIT_STATE_MAX_LIFE)
Нельзя.


 

vov68Дата: Пятница, 19 Октября 2012, 12:17:25 | Сообщение # 7
10 уровень
Группа: Проверенные
Сообщений: 1329
Награды: 3
Блокировки:
смотри у близов в карте - замок Скиби.

учи первоисточники, они всегда под рукой. :D


Зачем делать для других новые карты...
... лучше устроить коту божественный почесон. :)
 

[SeKtOR]Дата: Пятница, 19 Октября 2012, 13:15:11 | Сообщение # 8
Группа: Проверенные
Сообщений: 1143
Награды: 0
Репутация: 1168
Блокировки:
Quote (SirNikolas)
Нельзя.

Why?
P.S. Естественно не проверял, последствия использования




Сообщение отредактировал [SeKtOR] - Пятница, 19 Октября 2012, 13:15:59
 

СкарДата: Пятница, 19 Октября 2012, 13:21:04 | Сообщение # 9
5 уровень
Группа: Пользователи
Сообщений: 116
Награды: 0
Репутация: 12
Блокировки:
Quote (|SeKtOR|)
Why?


я так думаю, потому что максимальное значение здоровья не изменяется триггерно?


Если боишься - не делай, если делаешь - не бойся...
 

MOHCTEPДата: Пятница, 19 Октября 2012, 17:27:11 | Сообщение # 10
2 уровень
Группа: Пользователи
Сообщений: 27
Награды: 0
Репутация: -10
Блокировки:
я видел в карте зомби арена рус скрипт отдельно для зомби но я с ним не разобрался там был очень длинный скрипт и в юнитах всего 1 зомби ну и я посмотрел ваши предложения всем конечно спасибо за отзывчивость но мне этого не получится избежать я буду делать каждого юнита отдельно да и к томуже мне так проще будет и кстати по поводу замка скиби интересная идея я сейчас посмотрю.....

Тормоз тоже механизм
 

SirNikolasДата: Суббота, 20 Октября 2012, 13:52:19 | Сообщение # 11
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Quote (Скар)
я так думаю, потому что максимальное значение здоровья не изменяется триггерно?
Вот так напрямую - нельзя. Можно добавлением спсобности от "Талисмана здоровья". Подробнее.


 

Brut@lusДата: Суббота, 20 Октября 2012, 18:27:03 | Сообщение # 12
Группа: Заблокированные
Сообщений: 2496
Награды: 1
Репутация: 924
Блокировки:
Code

function SetUnitMaxLife takes unit u, real life returns nothing
   local real r = life - GetUnitState(u, UNIT_STATE_MAX_LIFE)
   if r > 0. then
     if r > 1000. then
       loop
         call UnitAddAbility(u, 'A005')
         call SetUnitAbilityLevel(u, 'A005', 0x05)
         call UnitRemoveAbility(u, 'A005')
         set r = r - 1000.
         exitwhen r < 1000.
       endloop
     endif
     if r > 100. then
       loop
         call UnitAddAbility(u, 'A005')
         call SetUnitAbilityLevel(u, 'A005', 0x04)
         call UnitRemoveAbility(u, 'A005')
         set r = r - 100.
         exitwhen r < 100.
       endloop
     endif
     if r > 10. then
       loop
         call UnitAddAbility(u, 'A005')
         call SetUnitAbilityLevel(u, 'A005', 0x03)
         call UnitRemoveAbility(u, 'A005')
         set r = r - 10.
         exitwhen r < 10.
       endloop
     endif
     if r > 1. then
       loop
         call UnitAddAbility(u, 'A005')
         call SetUnitAbilityLevel(u, 'A005', 0x02)
         call UnitRemoveAbility(u, 'A005')
         set r = r - 1.
         exitwhen r < 1.
       endloop
     endif
   else
     if r < -1000. then
       loop
         call UnitAddAbility(u, 'A005')
         call SetUnitAbilityLevel(u, 'A005', 0x09)
         call UnitRemoveAbility(u, 'A005')
         set r = r + 1000.
         exitwhen r > -1000.
       endloop
     endif
     if r < -100. then
       loop
         call UnitAddAbility(u, 'A005')
         call SetUnitAbilityLevel(u, 'A005', 0x08)
         call UnitRemoveAbility(u, 'A005')
         set r = r + 100.
         exitwhen r > -100.
       endloop
     endif
     if r < -10. then
       loop
         call UnitAddAbility(u, 'A005')
         call SetUnitAbilityLevel(u, 'A005', 0x07)
         call UnitRemoveAbility(u, 'A005')
         set r = r + 10.
         exitwhen r > -10.
       endloop
     endif
     if r < -1. then
       loop
         call UnitAddAbility(u, 'A005')
         call SetUnitAbilityLevel(u, 'A005', 0x06)
         call UnitRemoveAbility(u, 'A005')
         set r = r + 1.
         exitwhen r > -1.
       endloop
     endif
   endif
endfunction

Где 'A005' ид спела на основе "Предмет: увеличение запаса здоровья" с уровнями:
1: +0 здоровья
2: -1
3: -10
4: -100
5: -1000
6: +1
7: +10
8: +100
9: +1000

By Skino


 

SirNikolasДата: Суббота, 20 Октября 2012, 18:34:08 | Сообщение # 13
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Quote (Brut@lus)
1: +0 здоровья
2: -1
3: -10
4: -100
5: -1000
6: +1
7: +10
8: +100
9: +1000
Лучше делать по степеням двойки (0, -1, -2, -4, -8, -16, -32, -64, -128, -256, 1, 2, 4, 8, 16, 32, 64, 128, 256).
BTW, код ужасен.


 

Brut@lusДата: Суббота, 20 Октября 2012, 18:40:19 | Сообщение # 14
Группа: Заблокированные
Сообщений: 2496
Награды: 1
Репутация: 924
Блокировки:
0_o
кстати да

я и не увидел. ну он не мой.

Добавлено (20 Октября 2012, 18:40:19)
---------------------------------------------
function SetUnitMaxLife takes unit u, real life returns nothing
local real r = life - GetUnitState(u, UNIT_STATE_MAX_LIFE)
if r > 1000. then
loop
call UnitAddAbility(u, 'A005')
call SetUnitAbilityLevel(u, 'A005', 0x05)
call UnitRemoveAbility(u, 'A005')
set r = r - 1000.
exitwhen r < 1000.
endloop
endif
if r > 100. then
loop
call UnitAddAbility(u, 'A005')
call SetUnitAbilityLevel(u, 'A005', 0x04)
call UnitRemoveAbility(u, 'A005')
set r = r - 100.
exitwhen r < 100.
endloop
endif
if r > 10. then
loop
call UnitAddAbility(u, 'A005')
call SetUnitAbilityLevel(u, 'A005', 0x03)
call UnitRemoveAbility(u, 'A005')
set r = r - 10.
exitwhen r < 10.
endloop
endif
if r > 1. then
loop
call UnitAddAbility(u, 'A005')
call SetUnitAbilityLevel(u, 'A005', 0x02)
call UnitRemoveAbility(u, 'A005')
set r = r - 1.
exitwhen r < 1.
endloop
endif
if r < -1000. then
loop
call UnitAddAbility(u, 'A005')
call SetUnitAbilityLevel(u, 'A005', 0x09)
call UnitRemoveAbility(u, 'A005')
set r = r + 1000.
exitwhen r > -1000.
endloop
endif
if r < -100. then
loop
call UnitAddAbility(u, 'A005')
call SetUnitAbilityLevel(u, 'A005', 0x08)
call UnitRemoveAbility(u, 'A005')
set r = r + 100.
exitwhen r > -100.
endloop
endif
if r < -10. then
loop
call UnitAddAbility(u, 'A005')
call SetUnitAbilityLevel(u, 'A005', 0x07)
call UnitRemoveAbility(u, 'A005')
set r = r + 10.
exitwhen r > -10.
endloop
endif
if r < -1. then
loop
call UnitAddAbility(u, 'A005')
call SetUnitAbilityLevel(u, 'A005', 0x06)
call UnitRemoveAbility(u, 'A005')
set r = r + 1.
exitwhen r > -1.
endloop
endif
endif
endfunction

даааа
жеееесть




Сообщение отредактировал Brut@lus - Суббота, 20 Октября 2012, 18:40:36
 

SirNikolasДата: Суббота, 20 Октября 2012, 18:42:10 | Сообщение # 15
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Это типа исправленный вариант? Под словом "ужасен" я имел в виду как раз эту портянку if'ов. В цикл их, или хотя бы в отдельную функцию.

 

Brut@lusДата: Суббота, 20 Октября 2012, 22:20:42 | Сообщение # 16
Группа: Заблокированные
Сообщений: 2496
Награды: 1
Репутация: 924
Блокировки:
нет это не исправленый. я и согласен, что с ифами аффтар намудрил

 

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

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