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

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

Закрытая тема
 
NIKZ
Изучаю Jass
offline
Опыт: 6,036
Активность:
Есть ли тут утечки?)
Есть ли здесь утечки?
Просто изучаю джасс и вобще сейчас плохо что понимаю, так что строго не ругайте=)
Подскажите пару советов там по поводу джасса
((код jass
function Issue_Group takes nothing returns nothing
if ( not ( IsPlayerEnemy(e(), GetOwningPlayer(u())) == true ) ) then
call UnitDamageTargetBJ( GetSpellAbilityUnit(), e(), 100.00, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_NORMAL ) )
call AddSpecialEffectTarget("Abilities\\Spells\\Undead\\UnholyAura\\UnholyAura.mdl", e(), "overhead")
call DestroyEffect( bj_lastCreatedEffect() )
endif
endfunction
function Trig_FIRST_JASS_SPELL3_Conditions takes nothing returns boolean
if ( not ( GetSpellAbilityId() == 'AHtc' ) ) then
return false
endif
return true
endfunction
function Trig_FIRST_JASS_SPELL3_Actions takes nothing returns nothing
local unit u
local unit e
set e = GetEnumUnit
set u = GetSpellAbilityUnit
bj_wantDestroyGroup = true
call ForGroupBJ( GetUnitsInRangeOfLocAll(500.00, GetUnitLoc(u())),function Issue_Group)
endfunction
===========================================================================
function InitTrig_FIRST_JASS_SPELL3 takes nothing returns nothing
set gg_trg_FIRST_JASS_SPELL3 = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_FIRST_JASS_SPELL3, EVENT_PLAYER_UNIT_SPELL_FINISH )
call TriggerAddCondition( gg_trg_FIRST_JASS_SPELL3, Condition( function Trig_FIRST_JASS_SPELL3_Conditions ) )
call TriggerAddAction( gg_trg_FIRST_JASS_SPELL3, function Trig_FIRST_JASS_SPELL3_Actions )
endfunction
))
И вобще запуститься ли он?=)
Старый 03.05.2012, 22:46
Hanabishi
COOL STATUS
offline
Опыт: отключен
Мало того, что код дико кривой, так ещё похоже и нерабочий.
Переписал:
globals
    group tGroup = CreateGroup()
    unit tU
    unit tE
endglobals

function Issue_Group takes nothing returns nothing
    if !IsPlayerEnemy(tE, GetOwningPlayer(tU)) then
        call UnitDamageTarget(GetSpellAbilityUnit(), tE, 100.00, true, false, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_NORMAL, null)
        call DestroyEffect(AddSpecialEffectTarget("Abilities\\Spells\\Undead\\UnholyAura\\UnholyAura.mdl ", tE, "overhead"))
    endif
endfunction

function Trig_FIRST_JASS_SPELL3_Conditions takes nothing returns boolean
    return GetSpellAbilityId() == 'AHtc'
endfunction

function Trig_FIRST_JASS_SPELL3_Actions takes nothing returns nothing
    set tU = GetSpellAbilityUnit()
    set tE = GetEnumUnit()
    call GroupEnumUnitsInRange(tGroup, GetUnitX(tU), GetUnitY(tE), 500.0, null)
    call ForGroup(tGroup, function Issue_Group)
    call GroupClear(tGroup)
endfunction

//===========================================================================
function InitTrig_FIRST_JASS_SPELL3 takes nothing returns nothing
    set gg_trg_FIRST_JASS_SPELL3 = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_FIRST_JASS_SPELL3, EVENT_PLAYER_UNIT_SPELL_FINISH )
    call TriggerAddCondition( gg_trg_FIRST_JASS_SPELL3, Condition( function Trig_FIRST_JASS_SPELL3_Conditions ) )
    call TriggerAddAction( gg_trg_FIRST_JASS_SPELL3, function Trig_FIRST_JASS_SPELL3_Actions )
endfunction
Hanabishi добавил:
З.Ы. не проверял на ошибки, мб описался где
И, надеюсь, стоит JNGP, иначе не запашет.

Отредактировано Hanabishi, 03.05.2012 в 23:07.
Старый 03.05.2012, 23:00
Nerevar
I'll be back!
offline
Опыт: 18,352
Активность:
1
2
Вы явно не использовали эти статьи и поиск по форуму,ибо данный код является самой распространенной темой обсуждения утечек памяти и оптимизации
За сим закрываю
Старый 03.05.2012, 23:03
Hanabishi
COOL STATUS
offline
Опыт: отключен
Nerevar, да не надо пока, всё равно что об пень им статьи. А тут может, пока я здесь, хоть на примере научатся чему.
NIKZ, напиши, если код устраивает - закроем.
Старый 03.05.2012, 23:06
DaeDR

offline
Опыт: 8,074
Активность:
Вот эта строчка вызывает подозрения:
call GroupEnumUnitsInRange(tGroup, GetUnitX(tU), GetUnitY(tE), 500.0, null)
и, если уж через глобалки, то мб внести в область и сделать их приватными? Хотя, может NIKZ и сам догадается
Исправил немного
» code
scope fjspell

globals
    private group tGroup = CreateGroup()
    private unit tU
    private player p
endglobals

function Issue_Group takes nothing returns nothing
    if !IsPlayerEnemy(GetEnumUnit(), p) then
        call UnitDamageTarget(tU, GetEnumUnit(), 100.00, true, false, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_NORMAL, null)
        call DestroyEffect( AddSpecialEffectTarget("Abilities\\Spells\\Undead\\UnholyAura\\UnholyAura.mdl ", GetEnumUnit(), "overhead") )
    endif
endfunction

function Trig_FIRST_JASS_SPELL3_Conditions takes nothing returns boolean
    return GetSpellAbilityId() == 'AHtc'
endfunction

function Trig_FIRST_JASS_SPELL3_Actions takes nothing returns nothing
    set tU = GetTriggerUnit()
    set p =  GetOwningPlayer(tU)
    call GroupEnumUnitsInRange(tGroup, GetUnitX(tU), GetUnitY(tU), 500.0, null)
    call ForGroup(tGroup, function Issue_Group)
    call GroupClear(tGroup)
endfunction

//===========================================================================
function InitTrig_FIRST_JASS_SPELL3 takes nothing returns nothing
    set gg_trg_FIRST_JASS_SPELL3 = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_FIRST_JASS_SPELL3, EVENT_PLAYER_UNIT_SPELL_FINISH )
    call TriggerAddCondition( gg_trg_FIRST_JASS_SPELL3, Condition( function Trig_FIRST_JASS_SPELL3_Conditions ) )
    call TriggerAddAction( gg_trg_FIRST_JASS_SPELL3, function Trig_FIRST_JASS_SPELL3_Actions )
endfunction

endscope

Отредактировано DaeDR, 03.05.2012 в 23:31.
Старый 03.05.2012, 23:15
NIKZ
Изучаю Jass
offline
Опыт: 6,036
Активность:
У меня что то куча ошибок вылезло. стоит JNGP наверное? не?
NIKZ добавил:
Nerevar, ой как я все понял=) Ты что прочитав эти статьи я стал лучшим джассером
Старый 04.05.2012, 01:44
Nerevar
I'll be back!
offline
Опыт: 18,352
Активность:
Примеры кода даны,ссылки на статьи даны,если вы не хотите ими пользоваться - ваши проблемы
Установите JNGP
Закрыто
Старый 04.05.2012, 18:04
Закрытая тема

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

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

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

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



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