Я создал маленькую функцию, которая должна мне возвращать число. Оно понадобится мне в дальнейшем как универсальная функция, чтоб ее не писать заново в каждом нужном триггере.
Вот первая часть
function ItemIAS takes integer whichItem returns real
    if ( whichItem == 'I01C' ) then
        return 20
    else
        return 0
    endif
endfunction
Вот вторая часть (триггер, где нужна первая func)
function ItemIAS_A takes nothing returns nothing
    local item i=GetManipulatedItem()
    local integer irc=GetItemUserData(GetManipulatedItem())
    local integer pn=GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))
    local real ias=ItemIAS(irc)
    set udg_Unit_IAS[pn] = (udg_Unit_IAS[pn] + R2I(ias))
endfunction
Но у меня ошибка "Cannot convert null to real" на строке "local real ias=ItemIAS(irc)".
Что сделать?

Farrien, попробуй скопировать функции в отдельную карту и глянь будет ли там работать
и зачем ты написал udg_ перед 2 переменными?
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
11
Точнее тут даже вопрос в том, как узнать равкод предмета и поставить ее в первую функцию. Равкод это integer или string?
28
попробуй не 0 а 0.0
равкод это инт
и вместо
if ( whichItem == 'I01C' ) then
        return 20
    else
        return 0
    endif
лучше
if ( whichItem == 'I01C' ) then
        return 20
endif
return 0
и если ты планируешь делать много таких проверок(с разными равкодами) то лучше юзать бд
11
nvc123:
попробуй не 0 а 0.0
равкод это инт
и вместо
if ( whichItem == 'I01C' ) then
        return 20
    else
        return 0
    endif
лучше
if ( whichItem == 'I01C' ) then
        return 20
endif
return 0
и если ты планируешь делать много таких проверок(с разными равкодами) то лучше юзать бд
попробовал. в первой функции все норм там значит.
проблема во второй
15
возможно вместо переменной типа item вы должно передавать itemtype?
11
LOR_D:
возможно вместо переменной типа item вы должно передавать itemtype?
нет
33
Farrien, а почему ты передаёшь функции юзердату? Что в ней записано? По логике твоей функции она должна принимать ItemTypeId.
(Возможно, если юзердата пустая, она и передаёт null, что вызывает описанную ошибку, но я не уверен.)
29
Не понимаю смысла real, если всеравно потом конвертишь в int
28
alexprey, just for fun
alexprey, функция ведь возвращает всеравно целое значение
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.