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


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: PUVer, SirNikolas, Ty3uK  
Форум о Warcraft 3 » Раздел для картостроителей » Вопросы по картостроению » Помогите пожалуйста разобраться в Spell
Помогите пожалуйста разобраться в Spell
BobaykaДата: Воскресенье, 19 Августа 2012, 16:05:04 | Сообщение # 1
6 уровень
Группа: Проверенные
Сообщений: 151
Награды: 0
Репутация: 465
Блокировки:
Помогите пожалуйста разобраться в Spell.
У меня есть способность которая при применение должна выполняется .
Герой применял способность и воспроизводит анимацию "рев", и у героя увеличивалось атака 9 ед , защита 2 ед, сила 8 ед, плюс увеличивалась скорость атаки на 30%.
На 5 секунд.
И с каждым уровнем все увеличивается на 5 ед(время тоже увеличивается)кроме скорости таки ,скорость атаки увеличивается на 1%
-
Я смог сделать только добавить атаку,защиту ,и силу
С увеличивалась скорость атаки на 30% проблема она добавляет способность, а не применяет ее сразу в действия.
А с каждым уровнем что бы все увеличивалось вообще не пойму как сделать такое .


Speed RUN v0.0.2
Delta Heavy – Get By
Red Hot Chili Peppers – Californication,
Fall Out Boy – Thnks Fr Th Mmrs
Panic! At The Disco – Hurricane
Carolina Liar – No More Secrets
Green Day – Boulevard Of Broken Dreams
Gorillaz – Feel Good inc,The Used – The Bird And The Worm


Сообщение отредактировал Bobayka - Воскресенье, 19 Августа 2012, 16:10:18
 

[SeKtOR]Дата: Воскресенье, 19 Августа 2012, 17:03:27 | Сообщение # 2
Группа: Проверенные
Сообщений: 1143
Награды: 0
Репутация: 1168
Блокировки:
Через if/then/else триггерно давать абилки и по окончанию удалять(ну те которые дают деф, атаку и т.п.)

 

BobaykaДата: Воскресенье, 19 Августа 2012, 17:09:44 | Сообщение # 3
6 уровень
Группа: Проверенные
Сообщений: 151
Награды: 0
Репутация: 465
Блокировки:
[SeKtOR], У меня так и есть только без if/then/else .

Speed RUN v0.0.2
Delta Heavy – Get By
Red Hot Chili Peppers – Californication,
Fall Out Boy – Thnks Fr Th Mmrs
Panic! At The Disco – Hurricane
Carolina Liar – No More Secrets
Green Day – Boulevard Of Broken Dreams
Gorillaz – Feel Good inc,The Used – The Bird And The Worm


Сообщение отредактировал Bobayka - Воскресенье, 19 Августа 2012, 17:34:35
 

[SeKtOR]Дата: Воскресенье, 19 Августа 2012, 18:08:08 | Сообщение # 4
Группа: Проверенные
Сообщений: 1143
Награды: 0
Репутация: 1168
Блокировки:
Ну как вариант тебе могу сделать или сказать:
1 триггер
Code
С: юнит кастанул абилку
У: абилка = твоя абилка
Д:
if уровень абилки = 1
Добавить все способности дающие бонусы(ну деф, атаку и т.д. для 1 лвла)
else
ничего
if уровень абилки = 2
Добавить все способности дающие бонусы(ну деф, атаку и т.д. для 2 лвла)
else
ничего
if уровень абилки = 3
Добавить все способности дающие бонусы(ну деф, атаку и т.д. для 3 лвла)
else
ничего

2 триггер
Code
С: юнит закончил юзание абилки(ну или таймер как тебе удобнее)
У: абилка = твоя абилка
Д:
if уровень абилки = 1
Удалить все способности дающие бонусы(ну деф, атаку и т.д. для 1 лвла)
else
ничего
if уровень абилки = 2
Удалить все способности дающие бонусы(ну деф, атаку и т.д. для 2 лвла)
else
ничего
if уровень абилки = 3
Удалить все способности дающие бонусы(ну деф, атаку и т.д. для 3 лвла)
else
ничего

P.S. Если попросиш наработку только jass
P.S.S. Вроде мой код, хоть как-то можно понять trollface




Сообщение отредактировал [SeKtOR] - Воскресенье, 19 Августа 2012, 18:09:16
 

BobaykaДата: Воскресенье, 19 Августа 2012, 18:21:33 | Сообщение # 5
6 уровень
Группа: Проверенные
Сообщений: 151
Награды: 0
Репутация: 465
Блокировки:
[SeKtOR], а зачем 2 триггер ? в один нельзя было? И что делать с безумием.
3 уровня? а как сделать "И с каждым уровнем все увеличивается на 5 ед(время тоже увеличивается)кроме скорости таки ,скорость атаки увеличивается на 1% ". То есть не делать новые предметы каждый раз с новыми значениями


Speed RUN v0.0.2
Delta Heavy – Get By
Red Hot Chili Peppers – Californication,
Fall Out Boy – Thnks Fr Th Mmrs
Panic! At The Disco – Hurricane
Carolina Liar – No More Secrets
Green Day – Boulevard Of Broken Dreams
Gorillaz – Feel Good inc,The Used – The Bird And The Worm


Сообщение отредактировал Bobayka - Воскресенье, 19 Августа 2012, 18:28:30
 

[SeKtOR]Дата: Воскресенье, 19 Августа 2012, 19:36:35 | Сообщение # 6
Группа: Проверенные
Сообщений: 1143
Награды: 0
Репутация: 1168
Блокировки:
Пффф, щас сделаю

Добавлено (19 Августа 2012, 19:36:35)
---------------------------------------------
http://rghost.ru/39877541
Сделал...
Нюансы trollface
1. Небольшой недостаток, после загрузки карты в центре создатся эффект, чтобы небыло лагов при первом касте(там же где и герой в моём примере)
2. Тебе придёться узнать, что такое равкод и с чем его едят(в триггере правь, там всё подписанно)
3. Нет никакого бафа в строке "Статус:", мне было впадлу искать способность без иконки, которая накладывает баф
4. Все бонусы редактируются в РО(Редакторе обьектов) найдёш там 4 негеройских способности
5. Возможно требует JNGP
6. Всё безутечно и оптимизированно idiot
7. Я требую + fynate
P.S. FUUUUU я забыл ты давал же свою карту, сорь :(




Сообщение отредактировал [SeKtOR] - Воскресенье, 19 Августа 2012, 19:56:44
 

BobaykaДата: Воскресенье, 19 Августа 2012, 20:05:30 | Сообщение # 7
6 уровень
Группа: Проверенные
Сообщений: 151
Награды: 0
Репутация: 465
Блокировки:
[SeKtOR],
А длительность ? 5с
И лаги остались


Speed RUN v0.0.2
Delta Heavy – Get By
Red Hot Chili Peppers – Californication,
Fall Out Boy – Thnks Fr Th Mmrs
Panic! At The Disco – Hurricane
Carolina Liar – No More Secrets
Green Day – Boulevard Of Broken Dreams
Gorillaz – Feel Good inc,The Used – The Bird And The Worm


Сообщение отредактировал Bobayka - Воскресенье, 19 Августа 2012, 20:11:43
 

[SeKtOR]Дата: Воскресенье, 19 Августа 2012, 20:28:04 | Сообщение # 8
Группа: Проверенные
Сообщений: 1143
Награды: 0
Репутация: 1168
Блокировки:
60 сек, лаги наверно из-за твоего кода...

Добавлено (19 Августа 2012, 20:27:59)
---------------------------------------------
По сабжу дай свою карту я посмотрю..

Добавлено (19 Августа 2012, 20:28:04)
---------------------------------------------
в лс


 

BobaykaДата: Воскресенье, 19 Августа 2012, 20:51:59 | Сообщение # 9
6 уровень
Группа: Проверенные
Сообщений: 151
Награды: 0
Репутация: 465
Блокировки:
[SeKtOR], а триггером нельзя было? а то с этими кодами не научишься

Speed RUN v0.0.2
Delta Heavy – Get By
Red Hot Chili Peppers – Californication,
Fall Out Boy – Thnks Fr Th Mmrs
Panic! At The Disco – Hurricane
Carolina Liar – No More Secrets
Green Day – Boulevard Of Broken Dreams
Gorillaz – Feel Good inc,The Used – The Bird And The Worm


Сообщение отредактировал Bobayka - Воскресенье, 19 Августа 2012, 20:56:19
 

[SeKtOR]Дата: Воскресенье, 19 Августа 2012, 21:30:27 | Сообщение # 10
Группа: Проверенные
Сообщений: 1143
Награды: 0
Репутация: 1168
Блокировки:
Я хз может было и можно но это 100500 глобалок и как минимум 13 триггеров(на всех 12 игроков) и засирание ещё больше памяти

Добавлено (19 Августа 2012, 21:28:54)
---------------------------------------------
Там всё до идиотизма просто, я тоже думал что jass это атские дебри, но почитав статьи это легко :D

Добавлено (19 Августа 2012, 21:30:27)
---------------------------------------------
пару тестов, 4-5 триггеров с говнокодом, статья про создание простого stomp спелла и всё просто




Сообщение отредактировал [SeKtOR] - Воскресенье, 19 Августа 2012, 21:29:09
 

BobaykaДата: Воскресенье, 19 Августа 2012, 21:31:54 | Сообщение # 11
6 уровень
Группа: Проверенные
Сообщений: 151
Награды: 0
Репутация: 465
Блокировки:
[SeKtOR], мне надо 2 игрока )

Добавлено (19 Августа 2012, 21:31:54)
---------------------------------------------
[SeKtOR],
Со ровно я пока триггерами поучусь


Speed RUN v0.0.2
Delta Heavy – Get By
Red Hot Chili Peppers – Californication,
Fall Out Boy – Thnks Fr Th Mmrs
Panic! At The Disco – Hurricane
Carolina Liar – No More Secrets
Green Day – Boulevard Of Broken Dreams
Gorillaz – Feel Good inc,The Used – The Bird And The Worm
 

SirNikolasДата: Понедельник, 20 Августа 2012, 07:23:50 | Сообщение # 12
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Quote (|SeKtOR|)
Небольшой недостаток, после загрузки карты в центре создатся эффект, чтобы небыло лагов при первом касте (там же где и герой в моём примере)
Зачем, если есть функция Preload(string)?


 

ExtrematorДата: Понедельник, 20 Августа 2012, 09:14:02 | Сообщение # 13
10 уровень
Группа: Проверенные
Сообщений: 3199
Награды: 0
Репутация: 1018
Блокировки:
Spell_1.w3x
 

BobaykaДата: Понедельник, 20 Августа 2012, 10:01:51 | Сообщение # 14
6 уровень
Группа: Проверенные
Сообщений: 151
Награды: 0
Репутация: 465
Блокировки:
Extremator, а в триггерах тут лаги нельзя убрать эти?

Speed RUN v0.0.2
Delta Heavy – Get By
Red Hot Chili Peppers – Californication,
Fall Out Boy – Thnks Fr Th Mmrs
Panic! At The Disco – Hurricane
Carolina Liar – No More Secrets
Green Day – Boulevard Of Broken Dreams
Gorillaz – Feel Good inc,The Used – The Bird And The Worm
 

[SeKtOR]Дата: Понедельник, 20 Августа 2012, 10:30:27 | Сообщение # 15
Группа: Проверенные
Сообщений: 1143
Награды: 0
Репутация: 1168
Блокировки:
Quote (SirNikolas)
Зачем, если есть функция Preload(string)?

Без понятия, я по гайду как-то делал спелл и с Preload и Destroy... не лагало




Сообщение отредактировал [SeKtOR] - Понедельник, 20 Августа 2012, 10:31:02
 

NaturekidДата: Понедельник, 20 Августа 2012, 11:00:59 | Сообщение # 16
Группа: Заблокированные
Сообщений: 4982
Награды: 3
Репутация: 3347
Блокировки:
Ребята я с вас в шоке, что вы так долго мусолите такой элементарный пример?..
Вот скрин

Вот карта
http://rghost.ru/39887340
всё прекрасно пашет для любого количества юнитов. На здоровье.

Добавлено (20 Августа 2012, 11:00:59)
---------------------------------------------
Если мешают подлаги призагрузке спсобностей - ставишь юнит на карту и даёшь ему эти способности, юнит в начале игры удаляешь.
Дать способности можно как вручную так и триггерно, если делаешь триггерно - то преобразовываешь триггер этот в текст и ставишь галочку "продолжается инициализация карты".
Вообщем залил ещё вариант, чтоб не подлагивало.
http://rghost.ru/39887701




Сообщение отредактировал Naturekid - Понедельник, 20 Августа 2012, 11:07:41
 

[SeKtOR]Дата: Понедельник, 20 Августа 2012, 11:03:41 | Сообщение # 17
Группа: Проверенные
Сообщений: 1143
Награды: 0
Репутация: 1168
Блокировки:
Quote (Naturekid)
Вот карта
http://rghost.ru/39887340
всё прекрасно пашет для любого количества юнитов. На здоровье.
Добавлено (20 Августа 2012, 11:00:59)
---------------------------------------------
Если мешают подлаги призагрузке спсобностей - ставишь юнит на карту и даёшь ему эти способности, юнит в начале игры удаляешь.
Дать способности можно как вручную так и триггерно, если делаешь триггерно - то преобразовываешь триггер этот в текст и ставишь галочку "продолжается инициализация карты".
Вообщем залил ещё вариант, чтоб не подлагивало.
http://rghost.ru/39887572

Quote (|SeKtOR|)
http://rghost.ru/39877541
Сделал...
Нюансы

fynate




Сообщение отредактировал [SeKtOR] - Понедельник, 20 Августа 2012, 11:04:17
 

NaturekidДата: Понедельник, 20 Августа 2012, 11:08:41 | Сообщение # 18
Группа: Заблокированные
Сообщений: 4982
Награды: 3
Репутация: 3347
Блокировки:
)

 

BobaykaДата: Вторник, 21 Августа 2012, 23:48:24 | Сообщение # 19
6 уровень
Группа: Проверенные
Сообщений: 151
Награды: 0
Репутация: 465
Блокировки:
За что отвечает эта строчка ?
Code
call UnitAddAbilityBJ


Speed RUN v0.0.2
Delta Heavy – Get By
Red Hot Chili Peppers – Californication,
Fall Out Boy – Thnks Fr Th Mmrs
Panic! At The Disco – Hurricane
Carolina Liar – No More Secrets
Green Day – Boulevard Of Broken Dreams
Gorillaz – Feel Good inc,The Used – The Bird And The Worm


Сообщение отредактировал Bobayka - Вторник, 21 Августа 2012, 23:48:41
 

SirNikolasДата: Среда, 22 Августа 2012, 09:10:46 | Сообщение # 20
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
За уровень кодинга автора наработки.
http://translate.ru


 

[SeKtOR]Дата: Среда, 22 Августа 2012, 09:40:01 | Сообщение # 21
Группа: Проверенные
Сообщений: 1143
Награды: 0
Репутация: 1168
Блокировки:
там нету BJ функций hmm

Добавлено (22 Августа 2012, 09:40:01)
---------------------------------------------
Код:

Code
//////////////////////////////
// Настройка способности    //
//////////////////////////////
constant function Bonus_Spell_Rawcode takes integer spell returns integer
     if(spell == 1) then
     return 'A001' // Равкод способности "Повышение атаки"
     else
     endif
     if(spell == 2) then
     return 'A002' // Равкод способности "Повышение защиты"
     else
     endif
     if(spell == 3) then
     return 'A003' // Равкод способности "Повышение силы"
     else
     endif
     if(spell == 4) then
     return 'A004' // Равкод способности "Повышение скорости боя"
     else
     endif
     return 'A001' // Для убирания бага(можно любой равкод)
endfunction

constant function Bonus_Spell_Time takes integer time returns real
     if(time == 1) then
     return 60. // Время действия 1 уровни способности
     else
     endif
     if(time == 2) then
     return 60. // Время действия 2 уровни способности
     else
     endif
     if(time == 3) then
     return 60. // Время действия 3 уровни способности
     else
     endif
     return 60. // Для убирания бага(можно любое число)
endfunction

constant function Bonus_Spell_Id takes nothing returns integer
     return 'A000' // Равкод способности, которую кастуют
endfunction

//////////////////////////////
// Сам код   //
//////////////////////////////

function Bonus_Spell_Conditions takes nothing returns boolean
     return GetSpellAbilityId() == Bonus_Spell_Id()
endfunction

function Bonus_Spell_Remove takes nothing returns nothing
     local timer t = GetExpiredTimer()
     local integer h = GetHandleId(t)
     local integer array index
     local unit u = LoadUnitHandle(udg_Hash,h,1)
     set index[1] = 1
     set index[2] = 4
     loop
     exitwhen index[1] > index[2]
     call UnitRemoveAbility(u, Bonus_Spell_Rawcode(index[1]))
     set index[1] = index[1] + 1
     endloop
     call FlushChildHashtable(udg_Hash,h)
     set t = null
     set u = null
     set h = 0
     set index[1] = 0
     set index[2] = 0
endfunction

function Bonus_Spell_Actions takes nothing returns nothing
     local timer t = CreateTimer()
     local integer h = GetHandleId(t)
     local integer array index
     local integer level = GetUnitAbilityLevel(GetSpellAbilityUnit(), Bonus_Spell_Id())
     set index[1] = 1
     set index[2] = 4
     loop
     exitwhen index[1] > index[2]
     call UnitAddAbility(GetSpellAbilityUnit(), Bonus_Spell_Rawcode(index[1]))
     call SetUnitAbilityLevel(GetSpellAbilityUnit(), Bonus_Spell_Rawcode(index[1]), level)
     set index[1] = index[1] + 1
     endloop
     call DestroyEffect(AddSpecialEffect("Abilities\\Spells\\NightElf\\BattleRoar\\RoarCaster.mdl", GetUnitX(GetSpellAbilityUnit()), GetUnitY(GetSpellAbilityUnit())))
     call TimerStart(t, Bonus_Spell_Time(level), false, function Bonus_Spell_Remove)
     call SaveUnitHandle(udg_Hash,h,1,GetSpellAbilityUnit())
     set t = null
     set h = 0  
     set index[1] = 0
     set index[2] = 0
     set level = 0
endfunction

//===========================================================================
function InitTrig_Bonus_Spell takes nothing returns nothing
     // Загрузка способности(для убирания лага) и вообще создание триггера <img rel="usm" src="http://warcraft3ft.info/image/smiles/smile.gif" border="0" align="absmiddle" alt=":)" />
     local unit u = CreateUnit(Player(0), 'eswp', 0., 0., 0.)
     local integer array index
     set index[1] = 1
     set index[2] = 4
     loop
     exitwhen index[1] > index[2]
     call UnitAddAbility(u, Bonus_Spell_Rawcode(index[1]))
     call SetUnitAbilityLevel(u, Bonus_Spell_Rawcode(index[1]), 3)
     set index[1] = index[1] + 1
     endloop
     call RemoveUnit(u)
     call Preload("Abilities\\Spells\\NightElf\\BattleRoar\\RoarCaster.mdl")
     call DestroyEffect(AddSpecialEffect("Abilities\\Spells\\NightElf\\BattleRoar\\RoarCaster.mdl", 0., 0.))
     set gg_trg_Bonus_Spell = CreateTrigger()
     call TriggerRegisterAnyUnitEventBJ(gg_trg_Bonus_Spell, EVENT_PLAYER_UNIT_SPELL_EFFECT )
     call TriggerAddCondition(gg_trg_Bonus_Spell, Condition(function Bonus_Spell_Conditions))
     call TriggerAddAction(gg_trg_Bonus_Spell, function Bonus_Spell_Actions)
     set u = null
     set index[1] = 0
     set index[2] = 0
endfunction

Да код не на высшем уровне, но простите я ещё только учусь fynate


 

ExtrematorДата: Среда, 22 Августа 2012, 09:57:50 | Сообщение # 22
10 уровень
Группа: Проверенные
Сообщений: 3199
Награды: 0
Репутация: 1018
Блокировки:
Quote (Bobayka)
а в триггерах тут лаги нельзя убрать эти?

лаги появляются только при первом касте спелла ... ибо идёт подгрузка данных абилок (или что-то в этом роде, в общем так проще для понимания)

Поэтому нужно все такие спеллы дать какому нить юниту при старте игры...

Вообще, я бы создал в РО отдельно даммика, и дал бы ему особый спел-бук
в спел буке было бы ВСЕ спеллы...
а самого даммик создать при инициалиции в центре карты и дать 1-2 сек жизни...
 

SirNikolasДата: Среда, 22 Августа 2012, 10:37:33 | Сообщение # 23
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Можно и без спеллбука.
Quote (Extremator)
а самого даммика создать при инициалиции в центре карты и дать 1-2 сек жизни.
Создать и сразу ремувнуть.


 

ExtrematorДата: Среда, 22 Августа 2012, 10:40:53 | Сообщение # 24
10 уровень
Группа: Проверенные
Сообщений: 3199
Награды: 0
Репутация: 1018
Блокировки:
Quote (SirNikolas)
Можно и без спеллбука.

да... но просто давать все спеллы юниту... или тыкать их по одному в юнита... утомительно...
помойму дать спелл бук / или натолкать всё в даммика - будет проще

так же можно разбивать спел буки...
например
1. все геройские спеллы
2. все спеллы для юнитов
3. все спеллы для даммиков
4. спеллы для артов :D

ну и дать эти 4 бука даммику...

Добавлено (22 Августа 2012, 10:40:53)
---------------------------------------------
ну в общем кому как удобнее

Сообщение отредактировал Extremator - Среда, 22 Августа 2012, 10:40:42
 

SirNikolasДата: Среда, 22 Августа 2012, 10:43:18 | Сообщение # 25
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Quote (Extremator)
но просто давать все спеллы юниту... или тыкать их по одному в юнита... утомительно...
Shift+Enter и вводишь raw-коды через запятую.


 

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

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