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

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

Ответ
 
Diabfall
че?
offline
Опыт: 5,861
Активность:
SelectUnit - баг
Проблема:
Триггерно выбираю героя, нет панели приказов и спеллов. При пощелкивании мыши на герое всё становится норм. В чём косяк? =\
» Код
function Trig_AltranitusMT4_Conditions takes nothing returns boolean
    return GetSpellAbilityId() == 'A05Q'
endfunction

function Trig_AltranitusMT4_Actions takes nothing returns nothing
    local player p=GetTriggerPlayer()
    local unit u=GetTriggerUnit()
    local real x=GetWidgetX(u)
    local real y=GetWidgetY(u)
    local unit d=CreateUnit(p, 'U000', x, y, 270.)
    local integer i=0
    local item items
    local integer array iditem
    call SetUnitOwner( u, Player(PLAYER_NEUTRAL_PASSIVE), false )
    call SaveUnitHandle(udg_Hash, GetHandleId(d), 13, u)
    loop
        exitwhen i>5
        set iditem[i]=GetItemTypeId(UnitItemInSlot(u, i))
        call RemoveItem( UnitItemInSlot(u, i) )
        set items=CreateItem( iditem[i], GetWidgetX(d), GetWidgetY(d) )
        call UnitAddItem( d, items )
        set i=i+1
    endloop
    call SetPlayerAbilityAvailable(Player(PLAYER_NEUTRAL_PASSIVE), 'A05M', false)
    set udg_HeroPlayer[GetPlayerId(GetTriggerPlayer())]=d
    call KillUnit(u)
    call SetHeroLevel(d, GetHeroLevel(u), false)
    if GetUnitAbilityLevel(u, 'A04L')!=0 then
    call UnitAddAbility(d, 'A04L')
    call SetUnitAbilityLevel(d, 'A04L', 1)
    endif
    if GetUnitAbilityLevel(u, 'A04K')!=0 then
    call UnitAddAbility(d, 'A04K')
    call SetUnitAbilityLevel(d, 'A04K', 1)
    endif
    if GetUnitAbilityLevel(u, 'A04J')!=0 then
    call UnitAddAbility(d, 'A04J')
    call SetUnitAbilityLevel(d, 'A04J', 1)
    endif
    if GetLocalPlayer()==p then
        call ClearSelection()
        call SelectUnit(d, true)
    endif
    set u=null
    set d=null
    set items=null
endfunction

//===========================================================================
function InitTrig_AltranitusMT4 takes nothing returns nothing
    set gg_trg_AltranitusMT4 = CreateTrigger()
    call TriggerRegisterAnyUnitEventBJ( gg_trg_AltranitusMT4, EVENT_PLAYER_UNIT_SPELL_EFFECT )
    call TriggerAddCondition( gg_trg_AltranitusMT4, Condition( function Trig_AltranitusMT4_Conditions ) )
    call TriggerAddAction( gg_trg_AltranitusMT4, function Trig_AltranitusMT4_Actions )
endfunction
Миниатюры
Кликните на картинку для увеличения
Название:  WC3ScrnShot_111813_102256_01.jpg
Просмотров: 86
Размер:  372.1 Кбайт  Кликните на картинку для увеличения
Название:  WC3ScrnShot_111813_102302_02.jpg
Просмотров: 67
Размер:  388.4 Кбайт  

Отредактировано Diabfall, 18.11.2013 в 08:38.
Старый 18.11.2013, 08:32
Borodach

offline
Опыт: 11,871
Активность:
Попробуй после ClearSelection добавить TriggerSleepAction( 0.0 )
Старый 18.11.2013, 09:48
Diabfall
че?
offline
Опыт: 5,861
Активность:
Borodach:
Попробуй после ClearSelection добавить TriggerSleepAction( 0.0 )
Я уже пробовал так и даже TriggerSleepAction( 1.0 ), не помогает.
Старый 18.11.2013, 09:59
Карточка
Kicked by SSrunX
offline
Опыт: 2,017
Активность:
попробуй это без ClearSelection()
плюс недавно заметил, что существует тупняк у недавно созданных юнитов если им через мгновение от создания накидать абилок (не могут выполнять часть приказов). тупняк длится примерно 2 секунды от создания юнита.
Старый 18.11.2013, 11:36
quq_CCCP
Я белый и пушистый!
offline
Опыт: 94,774
Активность:
Карточка, тупняк возникает почти всегда когда добавляешь абилки кучами герою, к примеру приказы открыть Способности Книга заклинаний сбиваются, не получается выучить или заюзать скилл...
Старый 18.11.2013, 14:32
DioD

offline
Опыт: 45,184
Активность:
нет отладки, добавьте и пишите вновь.
Старый 18.11.2013, 16:14
Diabfall
че?
offline
Опыт: 5,861
Активность:
Всё тему можно закрыть, проблема решена. Виноват спеллбук.
Всем спс, все свободны.
Старый 18.11.2013, 17:40
Карточка
Kicked by SSrunX
offline
Опыт: 2,017
Активность:
Всем спс, все свободны.
ты думаешь, что этого достаточно?
Старый 18.11.2013, 17:52
DioD

offline
Опыт: 45,184
Активность:
расписать в чём была проблема и как решилось не помешает, форум не только для вас, еще вы для форума.
Старый 18.11.2013, 20:16
Extremator

offline
Опыт: 40,317
Активность:
DioD:
расписать в чём была проблема и как решилось не помешает, форум не только для вас, еще вы для форума.
Extremator:
ну возможно спел бук открыт... не?
Я как то пытался сделать замену юнита из списка, а список был в спелл буке
И вот когда я заменял юнита - у него была пустая панель
Если кликнуть по нему сново - всё становилось нормально
Решил я это вроде через принудительный приказ ESC интерфейсу
Старый 18.11.2013, 21:04
Diabfall
че?
offline
Опыт: 5,861
Активность:
if GetLocalPlayer()==p then
        call ForceUICancel()
        call ClearSelection()
        call SelectUnit(d, true)
endif
Старый 18.11.2013, 21:18
Ответ

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

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

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

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



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