Добавлен
function AddGold takes nothing returns boolean
    local unit f = GetFilterUnit()
    
    if GetUnitTypeId(f) == 'e00D' then
        if GetResourceAmount(f) == 10 then
            call KillUnit(f)
            call BJDebugMsg("Kill!")
        else if GetResourceAmount(f) >= 10 and IsUnitDeadBJ(f) == false then
            call AddResourceAmount(f, -10)
            call SetPlayerState(GetOwningPlayer(f), PLAYER_STATE_RESOURCE_GOLD, GetPlayerState(GetOwningPlayer(f), PLAYER_STATE_RESOURCE_GOLD) + 10)
            call CreateGoldTextTag(0, GetUnitX(f), GetUnitY(f), "+10")
        endif
    endif
    
    set f = null
    
    return false
endfunction

function Trig_Gold_Actions takes nothing returns nothing
    local group g = CreateGroup()
    
    call GroupEnumUnitsInRect(g, GetWorldBounds(), function GoldEnumFunc)
        call AddGold()
    endfunction)
    
    call GroupClear(g)
    call DestroyGroup(g)
    
    set g = null
endfunction

//===========================================================================
function InitTrig_Gold takes nothing returns nothing
    set gg_trg_Gold = CreateTrigger()
    call TriggerAddAction(gg_trg_Gold, function Trig_Gold_Actions)
    call TimerStart(CreateTimer(), 2., true, function Trig_Gold_Actions)
endfunction
Строка 119: Отсутствует название Строка 122: Отсутствует название функции Строка 124: Отсутствует 'endif' Строка 136:Неверный тип аргумента
Подскажите как исправить?

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

У тебя фундаментальные ошибки, ты не знаешь синтаксиса толком, что как где к чему и почему. Почитай больше статей про джасс и посмотри больше видосиков, либо найди человека который будет тебя обучать
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
19
3 недели назад
0
Похожие вопросы:

ответ
низнаю какой спел у героя перезаряжается, на какой хватает маны, какие спелы у героя вообще есть, и в прочем на основе каких спелов они сделаны
да здравствует бд
FenikS1991:
Я знаю что это координаты умник.. пустые придирки не прокатят
я не только про координаты, я про всё
короче судя по всему ты пытаешься написать прогу которая бы думала вместо тебя
и это очень пичально
поэтому я просто оставлю это здесь
ответ

У тебя цикл закончился не начавшись
ответ
Невозможно перенести джасс на триггеры гуи потому что триггеры гуи и есть джасс, просто с внятным интерфейсом но с багами и ограничениями.
ответ
  1. Вджасс позволяет это сделать:
if true and /*
*/ false then
endif
ответ
jasonrus96, удали эту строку, else тоже удали, а удаление юнита перенеси после endif, готово, не зависнет.

0
24
3 недели назад
Отредактирован konvan5
0
Ответ в вопросе... "Отсутствует 'endif'" - тут все сказано было.
У тебя 3 if и 2 endif

И это как минимум, возможны еще проблемы, ибо это не полный код, ты скинул код начиная со 122 строки (как я понял)
Загруженные файлы
Ответы (2)
0
27
3 недели назад
0
konvan5, если писать elseif то ошибки не должно быть
1
24
3 недели назад
1
rsfghd, именно такой конструкции у него нет, поэтому и ошибка :)
0
24
3 недели назад
Отредактирован konvan5
0
И тут какая-то мешанина пошла, функция всего одна а закончить ты пытаешься две. Предполагаю, там где первая стрелка, эту строку надо удалить.
Загруженные файлы
0
29
3 недели назад
Отредактирован nazarpunk
0
Похоже на какой-то рандомный копипаст.

Сравни со своим кодом:
function AddGold takes nothing returns boolean
    local unit f = GetFilterUnit()

    if GetUnitTypeId(f) == 'e00D' then
        if GetResourceAmount(f) == 10 then
            call KillUnit(f)
            call BJDebugMsg("Kill!")
        elseif GetResourceAmount(f) >= 10 and IsUnitDeadBJ(f) == false then
            call AddResourceAmount(f, -10)
            call SetPlayerState(GetOwningPlayer(f), PLAYER_STATE_RESOURCE_GOLD, GetPlayerState(GetOwningPlayer(f), PLAYER_STATE_RESOURCE_GOLD) + 10)
            call CreateGoldTextTag(0, GetUnitX(f), GetUnitY(f), "+10")
        endif
    endif

    set f = null

    return false
endfunction

function Trig_Gold_Actions takes nothing returns nothing
    local group g = CreateGroup()

    call GroupEnumUnitsInRect(g, GetWorldBounds(), function GoldEnumFunc)
    call AddGold()
endfunction

//===========================================================================
function InitTrig_Gold takes nothing returns nothing
    set gg_trg_Gold = CreateTrigger()
    call TriggerAddAction(gg_trg_Gold, function Trig_Gold_Actions)
    call TimerStart(CreateTimer(), 2., true, function Trig_Gold_Actions)
endfunction

Загруженные файлы
0
27
3 недели назад
0
У тебя фундаментальные ошибки, ты не знаешь синтаксиса толком, что как где к чему и почему. Почитай больше статей про джасс и посмотри больше видосиков, либо найди человека который будет тебя обучать
Принятый ответ
0
18
3 недели назад
Отредактирован EugeAl
0
Блоки else if и elseif это полностью разные конструкции.
Первая пишется с новой строки и требует своего endif, потому что это вложенный блок в блоке:
if then
else
    if then
    endif
endif
Вторая - это один блок:
if then
elseif then
endif
Причём первая по сути бестолковая, её нет смысла юзать.
Ответы (1)
1
29
3 недели назад
Отредактирован nazarpunk
1
EugeAl, я так понимаю, использовать оформление кода это зашквар?

Подробно прочитать про условия можно например в этой статье.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.