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

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

Закрытая тема
 
Just Fear
Loading --•••----
offline
Опыт: 2,062
Активность:
Проблема с джассом
» Проблема
function Trig_Improved_Mana_drain_Conditions takes nothing returns boolean
    if ( GetSpellAbilityId() == 'A000' ) then
        return true
    endif
    return true
endfunction

function Trig_Improved_Mana_drain_Func007Func001C takes nothing returns boolean
    if ( GetHeroStatBJ(bj_HEROSTAT_INT, GetTriggerUnit(), true) > GetHeroStatBJ(bj_HEROSTAT_INT, GetSpellTargetUnit(), true) ) then
        return true
    endif
    return true
endfunction

function Trig_Improved_Mana_drain_Func007C takes nothing returns boolean
    if ( ( GetUnitStateSwap(UNIT_STATE_MANA, GetSpellTargetUnit()) <= I2R(( ( 2 + GetUnitAbilityLevelSwapped(GetSpellAbilityId(), GetTriggerUnit()) ) * ( GetHeroStatBJ(bj_HEROSTAT_INT, GetTriggerUnit(), true) - GetHeroStatBJ(bj_HEROSTAT_INT, GetSpellTargetUnit(), true) ) ))) ) then
        return true
    endif
    return true
endfunction

function Trig_Improved_Mana_drain_Actions takes nothing returns nothing
    local integer int1 = ( 2 + GetUnitAbilityLevelSwapped(GetSpellAbilityId(), GetTriggerUnit()) )
    local location loc1 = GetUnitLoc(GetTriggerUnit())
    local location loc2 = GetUnitLoc(GetSpellTargetUnit())
    local integer int2 = ( int1 * ( GetHeroStatBJ(bj_HEROSTAT_INT, GetTriggerUnit(), true) - GetHeroStatBJ(bj_HEROSTAT_INT, GetSpellTargetUnit(), true) ) )
    call AddSpecialEffectTarget( "Abilities\\Spells\\Undead\\Possession\\PossessionMissile.mdl", GetSpellTargetUnit(), "origin" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    if ( Trig_Improved_Mana_drain_Func007C() ) then
        call UnitDamageTargetBJ( GetTriggerUnit(), GetSpellTargetUnit(), GetUnitStateSwap(UNIT_STATE_MANA, GetSpellTargetUnit()), ATTACK_TYPE_NORMAL, DAMAGE_TYPE_NORMAL )
        call SetWidgetLife( GetTriggerUnit(), ( GetUnitStateSwap(UNIT_STATE_LIFE, GetTriggerUnit()) + ( GetUnitStateSwap(UNIT_STATE_MANA, GetSpellTargetUnit()) / 3.00 ) ) )
        call SetUnitManaBJ( GetTriggerUnit(), ( GetUnitStateSwap(UNIT_STATE_MANA, GetTriggerUnit()) + ( GetUnitStateSwap(UNIT_STATE_MANA, GetSpellTargetUnit()) / 3.00 ) ) )
        call SetUnitManaBJ( GetSpellTargetUnit(), 0 )
        call CastStun(2,GetSpellTargetUnit(),GetTriggerUnit())
        call AddSpecialEffectTarget( "Abilities\\Weapons\\DragonHawkMissile\\DragonHawkMissile.mdl", GetSpellTargetUnit(),"overhead" )
        call DestroyEffect( GetLastCreatedEffectBJ() )
    else
        if ( Trig_Improved_Mana_drain_Func007Func001C() ) then
            call UnitDamageTargetBJ( GetTriggerUnit(), GetSpellTargetUnit(), I2R(int2), ATTACK_TYPE_NORMAL, DAMAGE_TYPE_NORMAL )
            call SetUnitManaBJ( GetSpellTargetUnit(), ( GetUnitStateSwap(UNIT_STATE_MANA, GetSpellTargetUnit()) - I2R(int2) ) )
            call SetWidgetLife( GetTriggerUnit(), ( ( GetUnitStateSwap(UNIT_STATE_MANA, GetSpellTargetUnit()) - I2R(int2) ) / 3.00 ) )
        else
            call SetUnitPositionLocFacingBJ( GetTriggerUnit(), loc2, bj_UNIT_FACING )
            call AddSpecialEffectTarget( "Abilities\\Spells\\NightElf\\Blink\\BlinkCaster.mdl", GetTriggerUnit(), "origin" )
            call SetUnitManaBJ( GetSpellTargetUnit(), ( GetUnitStateSwap(UNIT_STATE_MANA, GetSpellTargetUnit()) - ( 32.00 + ( 32.00 * I2R(GetUnitAbilityLevelSwapped(GetSpellAbilityId(), GetTriggerUnit())) ) ) ) )
            call UnitDamageTargetBJ( GetTriggerUnit(), GetSpellTargetUnit(), ( 32.00 + ( 32.00 * I2R(GetUnitAbilityLevelSwapped(GetSpellAbilityId(), GetTriggerUnit())) ) ), ATTACK_TYPE_NORMAL, DAMAGE_TYPE_NORMAL )
        endif
    endif
    call RemoveLocation(loc1)
    call RemoveLocation(loc2)
    set loc1 = null
    set loc2 = null
endfunction

//===========================================================================
function InitTrig_Improved_Mana_drain takes nothing returns nothing
    local trigger gg_trg_Improved_Mana_drain = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_Improved_Mana_drain, EVENT_PLAYER_UNIT_SPELL_EFFECT )
    call TriggerAddCondition( gg_trg_Improved_Mana_drain, Condition( function Trig_Improved_Mana_drain_Conditions ) )
    call TriggerAddAction( gg_trg_Improved_Mana_drain, function Trig_Improved_Mana_drain_Actions )
    set gg_trg_Improved_Mana_drain = null
endfunction
Использую систему сделаную мной и помещённую в кастом код мапы, но при компиляции выдаёт ошибку что не существует такой команды
» Сама система
function CastStun takes real time, unit target,unit caster returns nothing
    local real r=time
    local unit u=target
    local real x=GetUnitX(u)
    local real y=GetUnitY(u)
    local location l=Location(x,y)
    local unit W
    call CreateNUnitsAtLoc(1,'e001',GetOwningPlayer(caster),l,bj_UNIT_FACING)
    set W =GetLastCreatedUnit()
    call UnitAddAbility(W , 'A001')
    call IssueTargetOrder(W , "thunderbolt",u)
    call UnitApplyTimedLife(W , 'BTLF', 3)
    call PolledWait(r)
    call UnitRemoveBuffBJ('BPSE',u)
    set u = null
    set W = null
endfunction
В принципе я думаю что если поместить систему в скил и сделать library то все решится само сабой, но я хочу узнать в чем же дело
А также я хочу узнать почему при использовании мною команды
native AddLightningEx takes string codeName, boolean checkVisibility, real x1, real y1, real z1, real x2, real y2, real z2 returns lightning
Молния как таковая не появляется...
Отредактировано:
Также сейчас проверив карту спел как таковой работает, но как будто там нереально много loop'ов и через 3 сек после каста способности вар вылетает без обьяснения причин...
[+] замечание от XimikS: не тот раздел+название темы не отражает сути вопроса

Отредактировано Just Fear, 22.05.2010 в 10:59.
Старый 22.05.2010, 10:41
XOR

offline
Опыт: 38,159
Активность:
Just_Fear:
Код ужасен, читайте оптимизацию) GetLastCreatedUnitBJ
call PolledWait(r)
Используйте таймеры...
native AddLightningEx takes string codeName, boolean checkVisibility, real x1, real y1, real z1, real x2, real y2, real z2 returns lightning
Ты на булу внимания не обратил:) false
Старый 22.05.2010, 10:47
Just Fear
Loading --•••----
offline
Опыт: 2,062
Активность:
XimikS:
Just_Fear:
Код ужасен, читайте оптимизацию) GetLastCreatedUnitBJ
call PolledWait(r)
Используйте таймеры...
native AddLightningEx takes string codeName, boolean checkVisibility, real x1, real y1, real z1, real x2, real y2, real z2 returns lightning
Ты на булу внимания не обратил:) false
1)Дело в том что PolledWait вреден согласен, но в данном случае он сокращает весь код системы на 10-20 строк, а значит меньше операторов call , меньше загрузки сугубо мое мнение
2)Та знаю я про оптимизацию и то что код ужасен 7 месяцев без практики, сразу не сделаеш идиал, но сейчас я больше углубляюсь в уменьшение BJ и со временем попробую уничтожить их всех
3)Болеан поставил тру и всерогно не появлялось...
Я так понял что я что-то намутил не то с фильтрами... поэтому крах системы, Пожалуйста о великие мастера Jass'a помогите мне бездарному новечку
Старый 22.05.2010, 11:03
XOR

offline
Опыт: 38,159
Активность:
А надо
false
сугубо мое мнение
Ошибочно)
Старый 22.05.2010, 11:06
Just Fear
Loading --•••----
offline
Опыт: 2,062
Активность:
XimikS:
А надо
false
сугубо мое мнение
Ошибочно)
еще 1 вопрос а Хэндлы реальных и целочисленных нада обнулять?
Старый 22.05.2010, 11:13
Doc

offline
Опыт: 63,163
Активность:
Если поставить фолс то будет очень странный эффект, нужно тру.
Старый 22.05.2010, 11:14
ScorpioT1000
Работаем
offline
Опыт: отключен
у них нет хэндлов O_O
Старый 22.05.2010, 11:14
Just Fear
Loading --•••----
offline
Опыт: 2,062
Активность:
ScorpioT1001:
у них нет хэндлов O_O
я всмысле локальных переменных блин я нуб ( •_•")
local real x1 = GetLocationX(loc1)
//...
set x1 = null
так надо делать?
Just Fear добавил:
Таки я чтото намутил с фильтрами, люди помогите мне, в чем ошибка
function Trig_Improved_Mana_drain_Conditions takes nothing returns boolean
    if ( GetSpellAbilityId() == 'A000' ) then
        return true
    endif
    return true
endfunction

function firstft takes nothing returns boolean
    if ( GetHeroStatBJ(bj_HEROSTAT_INT, GetTriggerUnit(), true) > GetHeroStatBJ(bj_HEROSTAT_INT, GetSpellTargetUnit(), true) ) then
        return true
    endif
    return true
endfunction

function secondft takes nothing returns boolean
    if ( ( GetUnitStateSwap(UNIT_STATE_MANA, GetSpellTargetUnit()) <= I2R(( ( 2 + GetUnitAbilityLevelSwapped(GetSpellAbilityId(), GetTriggerUnit()) ) * ( GetHeroStatBJ(bj_HEROSTAT_INT, GetTriggerUnit(), true) - GetHeroStatBJ(bj_HEROSTAT_INT, GetSpellTargetUnit(), true) ) ))) ) then
        return true
    endif
    return true
endfunction
В чем ошибка Спасибо всем молния наконец появилась
Старый 22.05.2010, 11:26
XOR

offline
Опыт: 38,159
Активность:
Just_Fear:
ScorpioT1001:
у них нет хэндлов O_O
я всмысле локальных переменных блин я нуб ( •_•")
Нет разницы.
local real x1 = GetLocationX(loc1)
...
set x1 = null
""
так надо делать?
нет, это скаляры ты хоть скомплировать попробуй.
Just Fear добавил:
Таки я чтото намутил с фильтрами, люди помогите мне, в чем ошибка
function Trig_Improved_Mana_drain_Conditions takes nothing returns boolean
return GetSpellAbilityId() == 'A000'
endfunction
Старый 22.05.2010, 11:42
Just Fear
Loading --•••----
offline
Опыт: 2,062
Активность:
XimikS:
Just_Fear:
ScorpioT1001:
у них нет хэндлов O_O
я всмысле локальных переменных блин я нуб ( •_•")
Нет разницы.
local real x1 = GetLocationX(loc1)
...
set x1 = null
""
так надо делать?
нет, это скаляры ты хоть скомплировать попробуй.
Just Fear добавил:
Таки я чтото намутил с фильтрами, люди помогите мне, в чем ошибка
function Trig_Improved_Mana_drain_Conditions takes nothing returns boolean
return GetSpellAbilityId() == 'A000'
endfunction
спс помогло +1 тебе, ты лучший
[+] замечание от ADOLF: Пожалуйста, не цитируйте весь пост, цитируйте конкретные фразы.
Старый 22.05.2010, 11:54
Закрытая тема

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

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

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

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



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