Почему так нельзя?
раскрыть
function RemoveAbilityTimed takes nothing returns nothing
    local timer t = GetExpiredTimer()
    local integer i = GetHandleId(t)
    local integer ia =  LoadInteger(udg_GHT,i,1)
    local real r = LoadReal(udg_GHT,ia,2)
    local ability a = LoadAbilityHandle(udg_GHT,ia,3)
    local unit u = LoadUnitHandle(udg_GHT,ia,4)
    if r > 0 then
    set r = r - 0.1
    call SaveReal(udg_GHT,ia,2,r)
    endif
    if r <=0 then
    call UnitRemoveAbility(u,a)
    call PauseTimer(t)
    call DestroyTimer(t)
    set u = null
    set a = null
	set t = null
    endif
endfunction
копмилятор выдаёт ошибку : "Can not convert ability to integer"

Принятый ответ

abilcode != ability
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
19
6 лет назад
0
Похожие вопросы:

ответ
Steal nerves:
Тестил, тестил. Думал найду ошибку. Короче не знаю в чем дело, видимо и в правду баг. Решил по-другому. Ловить поставку, и ловить продажу. То есть ловить то, что пришло, и то, что ушло.
событием - "юнит закладывает в лавку" (EVENT_PLAYER_UNIT_PAWN_ITEM) ловим продажу итемов.
GetSellingUnit() =продающий торговец (типа всякие предметы закладывает в магазин и получает деньги)
GetBuyingUnit()=GetTriggerUnit() = покупающий торговец (это обычно магазин)

событием - "юнит закладывает из лавки (продает артефакт)" (EVENT_PLAYER_UNIT_SELL_ITEM) ловим покупку итемов
GetSellingUnit()=GetTriggerUnit()=продающий торговец (обычно это магазин)
GetBuyingUnit() = покупающий торговец (наш герой получает артефакты)
Решил, я по-своему. Короче, видимо, итем в магазине исчезает при добавлении. Попробовал запоминать все добавленные итемы, и при добавлении я сначала удалю всё в магазине, а потом заново добавлю. Пришлось, еще порядок (номер слотов) запоминать, а то строятся ключи хэша на строгом порядке. Если возьму и заберу итем посередине, придется заново выстраивать порядок.
Не знаю, пока тестил много времени, пока без косяков. Главное, что работает. Меня это радует. Но пока не буду спешить. Мне бы хотелось затестить норм.

1
18
6 лет назад
1
abilcode != ability
Принятый ответ
0
17
6 лет назад
0
А как можно :? ыыыы
1
28
6 лет назад
1
ability недопиленная штука, потому забей, используй равкоды.
1
18
6 лет назад
1
ability это вообще игровой объект со своим хендлом и никак не связан с равкодом
0
13
6 лет назад
0
Обожал лепить подобные функции с таймингом (временная пауза, временная анимация и подобное). Один лишь минус - применение одной функции не исключает применения другой (например, удалить "Благодать" за 5 секунд и сразу запустить вторую, где ее удалить нужно через 0.5 секунд). Жаль, что нет функции перевода в равкод (хотя, насколько я помню мемхак, то там работа с данным типом велась напрямую; может, и перевод в равкод допилить там реально).
Чтобы оставить комментарий, пожалуйста, войдите на сайт.