Warcraft 3 1.26
Собственно, я в коде вообще не шарю, но есть этот код, и он, по идее, делает то что мне нужно. Не пойму только почему выдает ошибку при сохранении, что в нём не так?) Может куда-то не туда вставляю, или чето не то делаю?)
Почему-то скрины не загружаются, поэтому вот ссылки на скрины:
По задумке, код должен создать вокруг Caster, 5 юнитов, которые будут вокруг него кружится. И будут принадлежать владельцу юнита Caster. Если подойдет вражеский юнит к ним, то они взорвутся и нанесут 100 ед. урона.
function Skill1 takes unit caster returns nothing
    local integer i = 0
    local location loc = GetUnitLoc(caster)

    loop
        exitwhen i >= 5
        set i = i + 1
        set loc = OffsetLocation(loc, 128.0, 360.0 / 5.0 * i)
        set unit u = CreateUnit(GetOwningPlayer(caster), 'hfoo', loc, bj_UNIT_FACING)
        call SetUnitOwner(u, GetOwningPlayer(caster), true)
        set loc = GetUnitLoc(caster)
    endloop

    loop
        set i = 0
        exitwhen i >= 5
        set i = i + 1
        set unit u = GetNearbyEnemy(caster, 300.0, true)
        if u != null and IsUnitType(u, UNIT_TYPE_HERO) == false and IsUnitType(u, UNIT_TYPE_STRUCTURE) == false then
            call UnitDamageTarget(u, caster, 100, true, false, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_NORMAL, WEAPON_TYPE_WHOKNOWS)
            call KillUnit(GetEnumUnit())
        endif
    endloop
endfunction

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

WorldEdition, не стоит полагаться на эти чат жпт, видел несколько примеров, что он такой бред пишет, что глаза на лоб лезут... причём он ещё и ухитряется смешивать синтаксис от jass, vjass, lua в одном коде.
По ошибкам:
Unexpected - не создана переменная
Undeclared function - не создана функция
То есть хвалёный ИИ просто забыл создать нужные объекты, но не погнушался их использовать)))
Да я и не полагаюсь.)) Просто пытался его попробовать в более-менее рабочее состояние его привести. Не получилось, решил обратиться сюда, и понять, насколько же "качественный" код он пишет. На многое не надеялся, теперь чётко понимаю шо пока что ему не хватает умений для написания чего-то нормального.)))
Всем спасибо за помощь!

А теперь такая ошибка.)
Так спроси у нейронки, что за ошибка, раз не можешь прочитать что GetNearbyEnemy не определена.
Она после этого чаще всего пишет другой код, с новыми ошибками, и параметрами.))) Вообще странная вещь эта нейронка.)
А то что она не определена, мне, как не шарящему, это мало о чем скажет. Кроме того что она не определена.)))
а то что вы не можете запускать того чего нет это тоже мало о чем вам скажет?
Может и больше скажет, но я банально не буду знать что и куда вставлять/писать. Мое знание кода - 0.
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
13
1 год назад
Отредактирован Borodach
0
function Skill1 takes unit caster returns nothing
    local integer i = 0
    local location loc = GetUnitLoc(caster)
local unit u

    loop
        exitwhen i >= 5
        set i = i + 1
        set loc = OffsetLocation(loc, 128.0, 360.0 / 5.0 * i)
        set u = CreateUnit(GetOwningPlayer(caster), 'hfoo', loc, bj_UNIT_FACING)
        call SetUnitOwner(u, GetOwningPlayer(caster), true)
        set loc = GetUnitLoc(caster)
    endloop

    loop
        set i = 0
        exitwhen i >= 5
        set i = i + 1
        set u = GetNearbyEnemy(caster, 300.0, true)
        if u != null and IsUnitType(u, UNIT_TYPE_HERO) == false and IsUnitType(u, UNIT_TYPE_STRUCTURE) == false then
            call UnitDamageTarget(u, caster, 100, true, false, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_NORMAL, WEAPON_TYPE_WHOKNOWS)
            call KillUnit(GetEnumUnit())
        endif
    endloop
endfunction

Так ошибка исправится, но такой код не подойдет под твою задумку. В нем юниты все время создаются по кругу, а не двигают созданых., урон окружающие наносят кастеру., убивает юнита которого нет., нет проверки что юнит столкновения не являеться кастером.
0
4
1 год назад
Отредактирован WorldEdition
0
((код
function Skill1 takes unit caster returns nothing
local integer i = 0
local location loc = GetUnitLoc(caster)
local unit u
loop
exitwhen i >= 5
set i = i + 1
set loc = OffsetLocation(loc, 128.0, 360.0 / 5.0 * i)
set u = CreateUnit(GetOwningPlayer(caster), 'hfoo', loc, bj_UNIT_FACING)
call SetUnitOwner(u, GetOwningPlayer(caster), true)
set loc = GetUnitLoc(caster)
endloop
loop
set i = 0
exitwhen i >= 5
set i = i + 1
set u = GetNearbyEnemy(caster, 300.0, true)
if u != null and IsUnitType(u, UNIT_TYPE_HERO) == false and IsUnitType(u, UNIT_TYPE_STRUCTURE) == false then
call UnitDamageTarget(u, caster, 100, true, false, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_NORMAL, WEAPON_TYPE_WHOKNOWS)
call KillUnit(GetEnumUnit())
endif
endloop
endfunction

Так ошибка исправится, но такой код не подойдет под твою задумку. В нем юниты все время создаются по кругу, а не двигают созданых., урон окружающие наносят кастеру., убивает юнита которого нет., нет проверки что юнит столкновения не являеться кастером.
))

А в чем там была ошибка? Мне этот код подогнала нейронка чат гпт.) Обычно после вставки кода, он примерно такие же ошибки и выдает, поэтому и не получается протестить лишний раз что и как работает, чтобы исправить.)
0
4
1 год назад
0
Выскочила другая ошибка теперь.)))
Загруженные файлы
0
13
1 год назад
Отредактирован Borodach
0
Не было созданой переменной local unit u, она сразу при cоздании юнита прописала set unit u =.
CreateUnit принимает х,у координаты. CreateUnitAtLoc (если не ошибаюсь) на нее можно заменить или создать координаты х,у и
CreateUnit(GetOwningPlayer(caster), 'hfoo', х, у, bj_UNIT_FACING)
0
4
1 год назад
Отредактирован WorldEdition
0
Не было созданой переменной local unit u, она сразу при cоздании юнита прописала set unit u =.
CreateUnit принимает х,у координаты. CreateUnitAtLoc (если не ошибаюсь) на нее можно заменить или создать координаты х,у и
CreateUnit(GetOwningPlayer(caster), 'hfoo', х, у, bj_UNIT_FACING)
А теперь такая ошибка.) Спасибо, что помогаешь.)
Загруженные файлы
0
29
1 год назад
0
А теперь такая ошибка.)
Так спроси у нейронки, что за ошибка, раз не можешь прочитать что GetNearbyEnemy не определена.
0
4
1 год назад
Отредактирован WorldEdition
0
А теперь такая ошибка.)
Так спроси у нейронки, что за ошибка, раз не можешь прочитать что GetNearbyEnemy не определена.
Она после этого чаще всего пишет другой код, с новыми ошибками, и параметрами.))) Вообще странная вещь эта нейронка.)
А то что она не определена, мне, как не шарящему, это мало о чем скажет. Кроме того что она не определена.)))
0
26
1 год назад
0
А теперь такая ошибка.)
Так спроси у нейронки, что за ошибка, раз не можешь прочитать что GetNearbyEnemy не определена.
Она после этого чаще всего пишет другой код, с новыми ошибками, и параметрами.))) Вообще странная вещь эта нейронка.)
А то что она не определена, мне, как не шарящему, это мало о чем скажет. Кроме того что она не определена.)))
а то что вы не можете запускать того чего нет это тоже мало о чем вам скажет?
1
18
1 год назад
1
WorldEdition, не стоит полагаться на эти чат жпт, видел несколько примеров, что он такой бред пишет, что глаза на лоб лезут... причём он ещё и ухитряется смешивать синтаксис от jass, vjass, lua в одном коде.
По ошибкам:
Unexpected - не создана переменная
Undeclared function - не создана функция
То есть хвалёный ИИ просто забыл создать нужные объекты, но не погнушался их использовать)))
3
29
1 год назад
Отредактирован nazarpunk
3
что он такой бред пишет, что глаза на лоб лезут...
Да ты прям в этом примере посмотри на шикарный цикл:
 loop
        set i = 0
        exitwhen i >= 5
        set i = i + 1
причём он ещё и ухитряется смешивать синтаксис от jass, vjass, lua в одном коде.
Потому что он пишет на псевдокоде, а потом подгоняет его под реалии синтаксиса.
0
4
1 год назад
Отредактирован WorldEdition
0
WorldEdition, не стоит полагаться на эти чат жпт, видел несколько примеров, что он такой бред пишет, что глаза на лоб лезут... причём он ещё и ухитряется смешивать синтаксис от jass, vjass, lua в одном коде.
По ошибкам:
Unexpected - не создана переменная
Undeclared function - не создана функция
То есть хвалёный ИИ просто забыл создать нужные объекты, но не погнушался их использовать)))
Да я и не полагаюсь.)) Просто пытался его попробовать в более-менее рабочее состояние его привести. Не получилось, решил обратиться сюда, и понять, насколько же "качественный" код он пишет. На многое не надеялся, теперь чётко понимаю шо пока что ему не хватает умений для написания чего-то нормального.)))
Всем спасибо за помощь!

А теперь такая ошибка.)
Так спроси у нейронки, что за ошибка, раз не можешь прочитать что GetNearbyEnemy не определена.
Она после этого чаще всего пишет другой код, с новыми ошибками, и параметрами.))) Вообще странная вещь эта нейронка.)
А то что она не определена, мне, как не шарящему, это мало о чем скажет. Кроме того что она не определена.)))
а то что вы не можете запускать того чего нет это тоже мало о чем вам скажет?
Может и больше скажет, но я банально не буду знать что и куда вставлять/писать. Мое знание кода - 0.
Принятый ответ
0
18
1 год назад
Отредактирован EugeAl
0
nazarpunk,
Ну и дичь! С таким ИИ можно забыть про восстание машин на ближайшие лет 500
WorldEdition, он пишет, не понимая что пишет, скажем так))
0
13
1 год назад
0
Спросил про функцию, вот ее результат
function GetNearbyUnits takes unit u, real range returns group
    group g = CreateGroup()
    set g = GetUnitsInRangeOfLocAll(range, GetUnitLoc(u))
    call GroupRemoveUnit(g, u)
    return g
endfunction
Утекает переменная, но в целом если задавать уточняющие вопросы сможет написать кое какой код за тебя
0
29
1 год назад
Отредактирован nazarpunk
0
Утекает переменная
И функция не скомпилится, но это неважно. Да и на утечку Location тоже можно забить.
0
27
1 год назад
Отредактирован MpW
0
Нейронка скоро будет мыслить как человек.. и общаться как норм человек. Уйдет в депрессию.. ах.. да депрессии у роботов нет. Сочтет, что люди это ошибка. И начнет людей убивать

На самом деле оптимизировать код легче, чем писать самому с нуля

Эх забулили WorldEdition токсики 🤢🤮
Чтобы оставить комментарий, пожалуйста, войдите на сайт.