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


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
Форум о Warcraft 3 » Раздел для картостроителей » Вопросы по картостроению » Как раскрыть call ForGroupBJ и еще
Как раскрыть call ForGroupBJ и еще
DreiiДата: Понедельник, 13 Декабря 2010, 11:08:27 | Сообщение # 1
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
Code
//Trig_Spell3_Conditions Spell3 замени на имя своего триггера.
function Trig_Spell3_Conditions takes nothing returns boolean
//Замени 'A001' на код своей способности.Его можно посмотреть нажав в редакторе объектов Ctrl+D.
     if ( not ( GetUnitAbilityLevel(udg_c, 'A001') >= 1 ) ) then
         return false
     endif
     return true
endfunction
//Trig_Spell3_Conditions Spell3 замени на имя своего триггера.
function Trig_Spell3_Func002001003 takes nothing returns boolean
     return ( IsUnitEnemy(GetEnumUnit(), GetOwningPlayer(udg_c)) == true )
endfunction
//Trig_Spell3_Conditions Spell3 замени на имя своего триггера.
function Trig_Spell3_Func002Func001C takes nothing returns boolean
//Замени 'BEah' на код своего Заклинания(Баффа).Его можно посмотреть нажав в редакторе объектов Ctrl+D.
     if ( not (GetUnitAbilityLevel(GetEnumUnit(),'BEah') > 0)) then
         return false
     endif
     return true
endfunction
//Trig_Spell3_Conditions Spell3 замени на имя своего триггера.
function Trig_Spell3_Func002A takes nothing returns nothing
     if ( Trig_Spell3_Func002Func001C() ) then
//Урон наносится по формуле (Уровень способности * 50,00) можешь поменять как тебе нравится.
     call UnitDamageTarget( udg_c, GetEnumUnit(), ( I2R(GetUnitAbilityLevel(udg_c, 'A001')) * 50.00 ),true,false, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_NORMAL,WEAPON_TYPE_WHOKNOWS  )
//Создается спецэффект "Abilities\\Weapons\\Bolt\\BoltImpact.mdl"(Можешь заменить как тебе нравится, в JASS'е пишеться \\ вместо \), прикрепленный к груди юнита.
     call DestroyEffect(AddSpecialEffectTarget("Abilities\\Weapons\\Bolt\\BoltImpact.mdl",GetEnumUnit(), "chest"))
     endif
endfunction
//Trig_Spell3_Conditions Spell3 замени на имя своего триггера.
function Trig_Spell3_Actions takes nothing returns nothing
//Отбираются юниты,враги udg_c, в радиусе 900(Можешь изменить,но меняя значение здесь, не забудь поменять значение "Облость воздействия" в редакторе объектов.
     call ForGroupBJ( GetUnitsInRangeOfLocMatching(900.00, GetUnitLoc(udg_c), Condition(function Trig_Spell3_Func002001003)), function Trig_Spell3_Func002A )
endfunction

//===========================================================================
//Trig_Spell3_Conditions Spell3 замени на имя своего триггера.
function InitTrig_Spell3 takes nothing returns nothing
     set gg_trg_Spell3 = CreateTrigger(  )
//Переодичность, с которой наносится урон. В данном случаее 1,00 секунда
     call TriggerRegisterTimerEvent(gg_trg_Spell3, 1.00, true)
     call TriggerAddCondition( gg_trg_Spell3, Condition( function Trig_Spell3_Conditions ) )
     call TriggerAddAction( gg_trg_Spell3, function Trig_Spell3_Actions )
endfunction

Делал сейчас спел,не знаю как раскрыть

Code
ForGroupBJ( GetUnitsInRangeOfLocMatching

И еще как занести здесь юнита который облодает способностью A001?


 

Kr0nusДата: Понедельник, 13 Декабря 2010, 14:07:54 | Сообщение # 2
6 уровень
Группа: Проверенные
Сообщений: 192
Награды: 0
Репутация: 220
Блокировки:
Quote (Dreii)
Делал спел

Ну-ну,как и некоторые спелы в твоей AoS, которые конечно же ты тоже "сам" делал, вот только не видел я в твоей карте, благодарности людям, у которых ты позаимствовал спелы и переделал под себя.


 

DreiiДата: Понедельник, 13 Декабря 2010, 16:25:30 | Сообщение # 3
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
Kr0nus, ??этот спел делал я сам.

 

[san9]Дата: Понедельник, 13 Декабря 2010, 16:28:43 | Сообщение # 4
10 уровень
Группа: Проверенные
Сообщений: 1500
Награды: 1
Репутация: 286
Блокировки:
Dreii,
Я чтото не очень понял что ты хочеш =\


 

DreiiДата: Понедельник, 13 Декабря 2010, 16:47:24 | Сообщение # 5
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
[san9], избавится от BJ

 

[san9]Дата: Понедельник, 13 Декабря 2010, 17:04:12 | Сообщение # 6
10 уровень
Группа: Проверенные
Сообщений: 1500
Награды: 1
Репутация: 286
Блокировки:
Dreii,
Так удали символы BJ и всё :D


 

DreiiДата: Понедельник, 13 Декабря 2010, 17:04:44 | Сообщение # 7
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
[san9], ))) а рли?

 

[san9]Дата: Понедельник, 13 Декабря 2010, 17:04:50 | Сообщение # 8
10 уровень
Группа: Проверенные
Сообщений: 1500
Награды: 1
Репутация: 286
Блокировки:
Code
call ForGroup( GetUnitsInRangeOfLocMatching(900.00, GetUnitLoc(udg_c), Condition(function Trig_Spell3_Func002001003)), function Trig_Spell3_Func002A )


 

Vova5009Дата: Понедельник, 13 Декабря 2010, 17:05:22 | Сообщение # 9
8 уровень
Группа: Проверенные
Сообщений: 577
Награды: 0
Репутация: 125
Блокировки:
Dreii, [san9] правду говорит)
 

DreiiДата: Понедельник, 13 Декабря 2010, 17:09:37 | Сообщение # 10
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
[san9], типо раскрыл?))

Добавлено (13-12-2010, 17:09)
---------------------------------------------
а как же

Code
GetUnitsInRangeOfLocMatching


 

[san9]Дата: Понедельник, 13 Декабря 2010, 17:10:48 | Сообщение # 11
10 уровень
Группа: Проверенные
Сообщений: 1500
Награды: 1
Репутация: 286
Блокировки:
Quote (Dreii)
[san9], типо раскрыл?))

Не "типо" а раскрыл.

Добавлено (13-12-2010, 17:10)
---------------------------------------------

Quote (Dreii)
GetUnitsInRangeOfLocMatching

Это разве BJ??! lol


 

DreiiДата: Понедельник, 13 Декабря 2010, 17:15:12 | Сообщение # 12
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
[san9], все равно красненькое)

 

EdiTTORRДата: Понедельник, 13 Декабря 2010, 17:31:22 | Сообщение # 13
8 уровень
Группа: Проверенные
Сообщений: 585
Награды: 0
Репутация: 147
Блокировки:
Quote (|san9|)
GetUnitsInRangeOfLocMatching
Это разве BJ??! lol

А что нет разве?:
Code
function GetUnitsInRangeOfLocMatching takes real radius, location whichLocation, boolexpr filter returns group
      local group g = CreateGroup()
      call GroupEnumUnitsInRangeOfLoc(g, whichLocation, radius, filter)
      call DestroyBoolExpr(filter)
      return g
endfunction



Местами здесь.


Сообщение отредактировал EdiTTORR - Понедельник, 13 Декабря 2010, 17:37:24
 

[DUОS]Дата: Вторник, 14 Декабря 2010, 08:41:40 | Сообщение # 14
Группа: Заблокированные
Сообщений: 6279
Награды: 9
Репутация: 1708
Блокировки:
Code
function Trig_Spell3_Conditions takes nothing returns boolean
      return GetUnitAbilityLevel(udg_c, 'A001') >= 1
endfunction

function Trig_Spell3_Func002001003 takes nothing returns boolean
      return IsUnitEnemy(GetEnumUnit(), GetOwningPlayer(udg_c)) == true
endfunction

function Trig_Spell3_Func002A takes nothing returns nothing
      if GetUnitAbilityLevel(GetEnumUnit(),'BEah') > 0 then
          call UnitDamageTarget(udg_c,GetEnumUnit(),GetUnitAbilityLevel(udg_c, 'A001') * 50.,true,false,ATTACK_TYPE_NORMAL,DAMAGE_TYPE_NORMAL,WEAPON_TYPE_WHOKNOWS)
          call DestroyEffect(AddSpecialEffectTarget("Abilities\\Weapons\\Bolt\\BoltImpact.mdl",GetEnumUnit(),"chest"))
      endif
endfunction

function Trig_Spell3_Actions takes nothing returns nothing
      local group g = CreateGroup()
       
      call GroupEnumUnitsInRange(g,GetWidgetX(udg_c),GetWidgetY(udg_c),Filter(function Trig_Spell3_Func002001003))
         
      call ForGroup(g,function Trig_Spell3_Func002A)

      call DestroyGroup(g)
      set g = null
endfunction

//===========================================================================
function InitTrig_Spell3 takes nothing returns nothing
      set gg_trg_Spell3 = CreateTrigger()
      call TriggerRegisterTimerEvent(gg_trg_Spell3,1.,true)
      call TriggerAddCondition(gg_trg_Spell3,Condition(function Trig_Spell3_Conditions))
      call TriggerAddAction(gg_trg_Spell3,function Trig_Spell3_Actions)
endfunction

ЗЫ: Если уж Jass'аешь, то юзай просто таймер через local timer
Ты меня убил...

Добавлено (14-12-2010, 08:41)
---------------------------------------------

Code
function Trig_Spell3_Conditions takes nothing returns boolean
      return GetUnitAbilityLevel(udg_c, 'A001') >= 1
endfunction

function Trig_Spell3_Func002001003 takes nothing returns boolean
      return IsUnitEnemy(GetEnumUnit(), GetOwningPlayer(udg_c)) == true
endfunction

function Trig_Spell3_Func002A takes nothing returns nothing
      if GetUnitAbilityLevel(GetEnumUnit(),'BEah') > 0 then
          call UnitDamageTarget(udg_c,GetEnumUnit(),GetUnitAbilityLevel(udg_c, 'A001') * 50.,true,false,ATTACK_TYPE_NORMAL,DAMAGE_TYPE_NORMAL,WEAPON_TYPE_WHOKNOWS)
          call DestroyEffect(AddSpecialEffectTarget("Abilities\\Weapons\\Bolt\\BoltImpact.mdl",GetEnumUnit(),"chest"))
      endif
endfunction

function Trig_Spell3_Actions takes nothing returns nothing
      local group g = CreateGroup()
      local boolexpr filter = Filter(function Trig_Spell3_Func002001003)
       
      call GroupEnumUnitsInRange(g,GetWidgetX(udg_c),GetWidgetY(udg_c),filter)
         
      call ForGroup(g,function Trig_Spell3_Func002A)
   
      call DestroyBoolExpr(filter)
      call DestroyGroup(g)
      set g = null
      set filter = null
endfunction

//===========================================================================
function InitTrig_Spell3 takes nothing returns nothing
      set gg_trg_Spell3 = CreateTrigger()
      call TriggerRegisterTimerEvent(gg_trg_Spell3,1.,true)
      call TriggerAddCondition(gg_trg_Spell3,Condition(function Trig_Spell3_Conditions))
      call TriggerAddAction(gg_trg_Spell3,function Trig_Spell3_Actions)
endfunction
Или это даже лучше, если сработает.


НУ И ЧТО ТЕПЕРЬ?


Кликайте на дракошку ;)
 

DreiiДата: Вторник, 14 Декабря 2010, 13:29:35 | Сообщение # 15
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
[DUОS], я не понимаю с таймерами)а Jass'ю я 4 день ток)

 

Banzay89Дата: Вторник, 14 Декабря 2010, 15:21:56 | Сообщение # 16
9 уровень
Группа: Проверенные
Сообщений: 858
Награды: 1
Репутация: 77
Блокировки:
ForGroup правильнее всего делаеться циклом

Code
local group gr=CreateGroup()
local unit    g
set   gr= //нужная тебе группа
loop
set   g=FirstOfGroup(gr)
exitwhen g==null
if //нужное тебе условие
     //действия
endif
call GroupRemoveUnut(gr,g)
endloop
call DestroyGroup(gr)
set gr=null
set g=null


Сообщение отредактировал Banzay89 - Среда, 15 Декабря 2010, 19:36:15
 

[DUОS]Дата: Вторник, 14 Декабря 2010, 15:37:38 | Сообщение # 17
Группа: Заблокированные
Сообщений: 6279
Награды: 9
Репутация: 1708
Блокировки:
Banzay89,
Твой код выбьет ошибку. Поищи, почему :)


НУ И ЧТО ТЕПЕРЬ?


Кликайте на дракошку ;)
 

Pa3apTДата: Вторник, 14 Декабря 2010, 15:38:47 | Сообщение # 18
8 уровень
Группа: Проверенные
Сообщений: 653
Награды: 0
Репутация: 166
Блокировки:
Banzay89, запомнил ^^
 

[san9]Дата: Вторник, 14 Декабря 2010, 16:04:37 | Сообщение # 19
10 уровень
Группа: Проверенные
Сообщений: 1500
Награды: 1
Репутация: 286
Блокировки:
Code
local group gr=CreateGroup()  
local unit    g  
set   g= //нужная тебе группа  
loop  
set   g=FirstOfGroup(gr)  
exitwhen g==null  
if //нужное тебе условие  
     //действия  
endif  
call GroupRemoveUnut(gr,g)  
endloop
call DestroyGroup(gr)  
set gr=null  
set g=null


 

Banzay89Дата: Среда, 15 Декабря 2010, 03:35:03 | Сообщение # 20
9 уровень
Группа: Проверенные
Сообщений: 858
Награды: 1
Репутация: 77
Блокировки:
Quote
Banzay89,
Твой код выбьет ошибку. Поищи, почему

мб потому что это пример? :D

Quote
Banzay89, запомнил ^^

Угу, пасиб :)

Добавлено (15-12-2010, 03:35)
---------------------------------------------
ах да
endloop вместо endif :D
сори втыкаю

 

EdiTTORRДата: Среда, 15 Декабря 2010, 15:29:08 | Сообщение # 21
8 уровень
Группа: Проверенные
Сообщений: 585
Награды: 0
Репутация: 147
Блокировки:
Quote (|san9|)
local unit g

Quote (|san9|)
set g= //нужная тебе группа


Местами здесь.
 

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

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