XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
ScorpioT1000
Работаем
online
Опыт: отключен
а где WEAPON_TYPE_... ?
Старый 18.03.2009, 22:04
timon1994
только учусь
offline
Опыт: 952
Активность:
а вместо него null.
Цитата:
Я использую null на месте типа оружия, чтобы спелл имел неопределенный тип оружия (тип оружия отвечает за то, какой звук проиграется при нанесении урона. В данном случае звук не нужен).

в какой то статье было
Старый 18.03.2009, 22:18
ScorpioT1000
Работаем
online
Опыт: отключен
хз в какой, для этого есть WEAPON_TYPE_WHOKNOWS
Старый 18.03.2009, 22:29
timon1994
только учусь
offline
Опыт: 952
Активность:
Цитата:
хз в какой

Оффлайн база статей, Триггеры и объекты, сохдание простого стомп спелла, сам спелл
Цитата:
для этого есть WEAPON_TYPE_WHOKNOWS

все равно не пашет
Старый 18.03.2009, 22:36
ScorpioT1000
Работаем
online
Опыт: отключен
Цитата:
function IceShackleInit takes nothing returns nothing
local trigger ltt=CreateTrigger()
call TriggerRegisterAnyUnitEventBJ(ltt,EVENT_PLAYER_UNIT_SPELL_EFFECT)
call TriggerAddCondition(ltt,Condition(function IceShackleCheck))
call TriggerAddAction(ltt,function IceShackleMain)
endfunction


function InitTrig_IceShackle takes nothing returns nothing
endfunction

эм.. а почему инициализация хз где?
Старый 18.03.2009, 22:38
timon1994
только учусь
offline
Опыт: 952
Активность:
Я смотрю на Maledict в опендоте и делаю как там.

timon1994 добавил:
тока все равно не работает
Старый 18.03.2009, 22:45
ScorpioT1000
Работаем
online
Опыт: отключен
да нет, всмысле она какраз должна быть там где ее вызывает main, т.е. в InitTrig_IceShackle
Старый 18.03.2009, 23:02
timon1994
только учусь
offline
Опыт: 952
Активность:
Цитата:
должна быть там где ее вызывает main, т.е. в InitTrig_IceShackle

не понял, код плз
Старый 19.03.2009, 20:23
Артте
Open up your eyes
offline
Опыт: 23,423
Активность:
любой триггер в текст конвертируй и посмотри
Старый 19.03.2009, 20:28
timon1994
только учусь
offline
Опыт: 952
Активность:
Код:
function Trig___________________________u_Actions takes nothing returns nothing
    call MeleeStartingVisibility(  )
    call MeleeStartingHeroLimit(  )
    call MeleeGrantHeroItems(  )
    call MeleeStartingResources(  )
    call MeleeClearExcessUnits(  )
    call MeleeStartingUnits(  )
    call MeleeStartingAI(  )
    call MeleeInitVictoryDefeat(  )
endfunction

//===========================================================================
function InitTrig___________________________u takes nothing returns nothing
    set gg_trg___________________________u = CreateTrigger(  )
    call TriggerAddAction( gg_trg___________________________u, function Trig___________________________u_Actions )
endfunction
и???
Старый 19.03.2009, 21:07
ScorpioT1000
Работаем
online
Опыт: отключен
Цитата:
IceShackleInit

суй в
Цитата:
InitTrig_IceShackle

а первую удали
Старый 19.03.2009, 22:07
timon1994
только учусь
offline
Опыт: 952
Активность:
Код:
function IceShackleMain takes nothing returns nothing
    local integer sec=0
    local unit tar=GetSpellTargetUnit()
    local unit caster=GetTriggerUnit()
    local integer lvl=GetUnitAbilityLevel(caster, 'A000')
    local real mult=0.03
    loop
    exitwhen sec>=5
        call UnitDamageTarget(caster, tar, DistanceBetweenPoints(GetUnitLoc(caster), GetUnitLoc(tar))*mult*lvl, true, false, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_MAGIC, WEAPON_TYPE_WHOKNOWS)
        call PolledWait(2)
        set sec=sec+1
    endloop
endfunction

function IceShackleCheck takes nothing returns boolean
    if (IsUnitEnemy(GetSpellTargetUnit(), GetOwningPlayer(GetTriggerUnit()))==true) then
      return false 
    else 
       return true
    endif
endfunction

function InitTrig_IceShackle takes nothing returns nothing
    local trigger ltt=CreateTrigger()
    call TriggerRegisterAnyUnitEventBJ(ltt,EVENT_PLAYER_UNIT_SPELL_EFFECT)
    call TriggerAddCondition(ltt,Condition(function IceShackleCheck))
    call TriggerAddAction(ltt,function IceShackleMain)
endfunction

так?
Старый 19.03.2009, 22:54
ScorpioT1000
Работаем
online
Опыт: отключен
Цитата:
function IceShackleCheck takes nothing returns boolean
if (IsUnitEnemy(GetSpellTargetUnit(), GetOwningPlayer(GetTriggerUnit()))==true) then
return false
else
return true
endif
endfunction

>>
Код:
function IceShackleCheck takes nothing returns boolean
    return not IsUnitEnemy(GetSpellTargetUnit(), GetOwningPlayer(GetTriggerUnit()))
endfunction


ScorpioT1000 добавил:
оптимиз тобиш. а вобще и так должно пахать.
Старый 20.03.2009, 00:48
Hellfim
Новичок
offline
Опыт: 79,707
Активность:
Эмм... У автора 2 темы? Я в какой-то уже переписывал этот код...
// fixed ©Sc

Hellfim добавил:
» code

Код:
globals
    unit caster=null
    unit tar=null
    integer lvl=0
    integer index=5
    real mult=0.00
endglobals

function Damage_Unit takes nothing returns nothing
    if index>0 then
        call UnitDamageTarget(caster, tar, DistanceBetweenPoints(GetUnitLoc(caster), GetUnitLoc(tar))*mult*lvl, true, false, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_MAGIC, WEAPON_TYPE_WHOKNOWS)
    else
        call DestroyTimer(GetExpiredTimer())
    endif
endfunction

function IceShackleMain takes nothing returns nothing
    set tar=GetSpellTargetUnit()
    set caster=GetTriggerUnit()
    set lvl=GetUnitAbilityLevel(caster, 'A000')
    set mult=0.03
    call TimerStart(CreateTimer(),1.00,true,function Damage_Unit)
endfunction

function IceShackleCheck takes nothing returns boolean
    return IsUnitEnemy(GetSpellTargetUnit(), GetOwningPlayer(GetTriggerUnit())
endfunction

//======================================================
function IceShackleInit takes nothing returns nothing
    local trigger ltt=CreateTrigger()
    call TriggerRegisterAnyUnitEventBJ(ltt,EVENT_PLAYER_UNIT_SPELL_EFFECT)
    call TriggerAddCondition(ltt,Condition(function IceShackleCheck))
    call TriggerAddAction(ltt,function IceShackleMain)
endfunction


Ятд так должно быть. А неработает потому что у вас в условии должно накладываться на союзника/своего юнита, а не на врага.
Старый 20.03.2009, 01:02
ScorpioT1000
Работаем
online
Опыт: отключен
Hellfim лолшто? я и возвратил not это ты там у себя все перепутал)
Старый 20.03.2009, 12:17
Hellfim
Новичок
offline
Опыт: 79,707
Активность:
ScorpioT1000
Код:
function IceShackleCheck takes nothing returns boolean
    return not IsUnitEnemy(GetSpellTargetUnit(), GetOwningPlayer(GetTriggerUnit()))
endfunction

Если цель НЕ противник, то действия призведутся. Я видел что у автора в конвертированном ГУИ было именно так как сделал ты, но т.к. он сказал, что у него не работает, то возможно из-за этого.
Старый 20.03.2009, 13:58
timon1994
только учусь
offline
Опыт: 952
Активность:
Hellfim, я поставил твой код - карта не запускается!
Старый 20.03.2009, 20:32
Hellfim
Новичок
offline
Опыт: 79,707
Активность:
timon1994, скачай это, очень поможет в освоении Jass'a

Hellfim добавил:
И через него же запусти
Старый 20.03.2009, 21:03
timon1994
только учусь
offline
Опыт: 952
Активность:
через него и запускаю
Старый 20.03.2009, 21:22
Hellfim
Новичок
offline
Опыт: 79,707
Активность:
timon1994, хз, вот карта
Прикрепленные файлы
Тип файла: w3m sd.w3m (16.5 Кбайт, 6 просмотров )
Старый 20.03.2009, 22:11
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 02:28.