заменил createnunitsatloc на createunitatloc и после этого переменная последний созданный юнит не читает его что делать?

это луа
На двух последних картинках вполне себе джасс, только Ельнур вместо чтения статей пытается из нативки получить bj_lastCreatedUnit.


об шикарнейших скриншотах рабочего стола я уже промолчу
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
30
нихера не догнал
Попытаюсь объяснить картинками, если так не доходит
Загруженные файлы
7
NazarPunk:
нихера не догнал
Попытаюсь объяснить картинками, если так не доходит
Например:
Нам нужно создать одного юнита - мы это делаем на триггерах с помощью специальной функции - CreateNUnitsAtLoc:
function CreateNUnitsAtLoc takes integer count, integer unitId, player whichPlayer, location loc, real face returns group
    call GroupClear(bj_lastCreatedGroup)
    loop
        set count = count - 1
        exitwhen count < 0
        call CreateUnitAtLocSaveLast(whichPlayer, unitId, loc, face)
        call GroupAddUnit(bj_lastCreatedGroup, bj_lastCreatedUnit)
    endloop
    return bj_lastCreatedGroup
endfunction
Обратите внимание, что там все происходит через цикл, в котором используется сама функция создающая юнита, а именно CreateUnitAtLocSaveLast:
function CreateUnitAtLocSaveLast takes player id, integer unitid, location loc, real face returns unit
    if (unitid == 'ugol') then
        set bj_lastCreatedUnit = CreateBlightedGoldmine(id, GetLocationX(loc), GetLocationY(loc), face)
    else
        set bj_lastCreatedUnit = CreateUnitAtLoc(id, unitid, loc, face)
    endif
    return bj_lastCreatedUnit
endfunction
В ней уже используются if-ы, нормальное создание юнитов уже выполняется с помощью нормальной native функции - CreateUnitAtLoc:
native CreateUnitAtLoc takes player id, integer unitid, location whichLocation, real face returns unit
И что получается? В триггерах мы пользовались функцией для создания юнита, которая через 2 функции, через цикл, и через if и создавала юнита, а все можно было сделать сразу с помощью одной native функции!
вот я создал с помощью нативки но переменная last created unit - не читает его собственнно этот созданный юнит не двигается и триггер ломается
замечание и 1 час тишины от NazarPunk: Научитесь уже пользоваться форматированием кода
30
я создал с помощью нативки но переменная last created unit - не читает его собственнно этот созданный юнит не двигается и триггер ломается
Жаль кроме картинок у меня не осталось выразительных средств
Загруженные файлы
30
это луа
На двух последних картинках вполне себе джасс, только Ельнур вместо чтения статей пытается из нативки получить bj_lastCreatedUnit.


об шикарнейших скриншотах рабочего стола я уже промолчу
Принятый ответ
18
Ельнур:
вот я создал с помощью нативки но переменная last created unit - не читает его собственнно этот созданный юнит не двигается и триггер ломается
NazarPunk вам хочет донести, что "last created unit" ссылается на переменную bj_lastCreatedUnit, которая является глобальной переменной типа unit. И её значение выставляется именно в функции CreateUnitAtLocSaveLast() там, где вам NazarPunk выделил нужную строку в красный прямоугольник
28
Короче, ответ таков: нужно заменить CreateNUnitsAtLoc на CreateUnitAtLocSaveLast.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.