Добавлен
Пишу я первый скилл на jass, и тут сталкиваюсь с этим, не могу понять где мой косяк, уже все нервы исчерпал, ткните мне пожалуйста
Компилятор выдаёт

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

ForGroup использует в аргументы группу и адрес функции. Аргументы ты передать не можешь.
Пиши ForGroup(твоя группа, function название функции)
0
19
7 лет назад
0
Похожие вопросы:

ответ
Может надо переустановить варик? Просто в Way of Others'е у меня было именно так я переустановил его и всё нормально.
А карту сохранить в другой папке.

0
7
7 лет назад
Отредактирован Raised
0
Для тех, кому нужен полный код
код
function Trig_QStartTaimerA_Func001A takes nothing returns nothing
    local unit enumunit= GetEnumUnit()
    local real x = GetUnitX(enumunit)
    local real y = GetUnitY(enumunit)
    call MoveUnit(enumunit,GetUnitFacing(enumunit),10)
    call GroupEnumUnitsInRange(udg_enemygroup,x,y, 64.00, Condition(EnemyFilter()))
    call ForGroup(udg_enemygroup,function SomeFunc(enumunit))
endfunction

function SomeFunc takes unit witcunit returns nothing
local unit Thisunit = GetEnumUnit()
local real x=GetUnitX(witcunit)
local real y=GetUnitY(witcunit)
call RemoveUnit(witcunit)
call CreateUnit( GetOwningPlayer(witcunit), bj_STRELAQWeerEffect ,x,y, 0 )
call UnitApplyTimedLife(bj_lastCreatedUnit, 'BTLF', 1.00)
endfunction

function Trig_QStartTaimerA_Actions takes nothing returns nothing
    call ForGroup( udg_GroupQWeer, function Trig_QStartTaimerA_Func001A)
endfunction

//===========================================================================
function InitTrig_QStartTaimerA takes nothing returns nothing
    set gg_trg_QStartTaimerA = CreateTrigger(  )
    call TriggerRegisterTimerExpireEventBJ( gg_trg_QStartTaimerA, udg_TaimerQStart )
    call TriggerAddAction( gg_trg_QStartTaimerA, function Trig_QStartTaimerA_Actions )
endfunction
говорит ошибка тут
Загруженные файлы
замечание от GF RaiseD: Используй пожалуйста форматирование: http://xgm.guru/p/help/txt2
1
15
7 лет назад
Отредактирован Raised
1
ForGroup использует в аргументы группу и адрес функции. Аргументы ты передать не можешь.
Пиши ForGroup(твоя группа, function название функции)
Принятый ответ
0
7
7 лет назад
0
EnergyFrost:
ForGroup использует в аргументы группу и адрес функции. Аргументы ты передать не можешь.
Пиши ForGroup(твоя группа, function название функуии)
а что делать, если мне аргумент нужен?
1
29
7 лет назад
1
Записывать его в глобальные или перебирать группу циклом.
0
7
7 лет назад
Отредактирован WoLLFeR
0
EnergyFrost:
Ну началось, только убрал аргумент, сразу другие косяки
Doc:
Записывать его в глобальные или перебирать группу циклом.
Хорошая идея, сейчас попробую
Загруженные файлы
0
15
7 лет назад
Отредактирован EnergyFrost
0
WoLLFeR, Клыц на функцию ctrl+ЛКМ (вроде так) и смотришь. Там, где написано code - функция без аргументов пишется.
Вот смотри: ой не дописал
1
29
7 лет назад
1
Condition(function EnemyFilter)
0
7
7 лет назад
0
Спасибо, минутку ребят, я исправляю
1
15
7 лет назад
Отредактирован EnergyFrost
1
Вот пример:
bool FuncCondition(){
return IsUnitType(GetFilterUnit(),UNIT_TYPE_HERO)
}

void FuncAction(){
SetUnitState(GetEnumUnit(),UNIT_STATE_LIFE,0)
}
void mainFunct(){
group g=CreateGroup()
GroupEnumUnitsInRange(g, 0 ,0 ,100, function FunctCondition)
ForGroup(g,FuncAction)
DestroyGroup(g)
g=null
}
Это типа убивает всех героев в радиусе 100 (центр окружности в координатах x=0 , y=0)
0
7
7 лет назад
Отредактирован WoLLFeR
0
Так, всё, заработало, вот только использовать глобальную переменную не лучший выбор, лагает в игре сильно, хотя утечек нет, всё из-за таймера, в общем мне нужно, чтобы снаряд, который летел, всего их 9, при соприкосновении с противником умирал, и наносил урон, буду рад любым примером, если скинете, что-то типо отряд в отряде
0
15
7 лет назад
0
лагает не из-за этого. Лаги из-за слишком малого периода могут быть, из-за замкнутого цикла и прочих логических ошибок
Кстати, можешь не использовать call local
0
7
7 лет назад
Отредактирован WoLLFeR
0
EnergyFrost:
лагает не из-за этого. Лаги из-за слишком малого периода могут быть, из-за замкнутого цикла и прочих логических ошибок
Кстати, можешь не использовать call local
Если я уменьшу период, снаряды перестанут лететь с нормальной скоростью, и выглядить при увеличении скорости это будет не красиво
Загруженные файлы
0
15
7 лет назад
0
Периода достаточно 0.025 (это прям край. Меньше не надо. Многие юзают 1\24)
Скинь короче целиком код. Может че подскажу
0
7
7 лет назад
0
EnergyFrost:
Периода достаточно 0.025 (это прям край. Меньше не надо. Многие юзают 1\24)
Скинь короче целиком код. Может че подскажу
При нескольких юзаний одновременно, варик зависает
0
29
7 лет назад
0
Ну так значит у тебя в коде ошибка.
0
7
7 лет назад
0
Вот
Doc:
Ну так значит у тебя в коде ошибка.
Возможно, и не одна, я же написал, первый скилл, первый jass, я на gui всегда делал, привычка расписывать всё осталось, я скинул карту выше, можешь посмотреть
Загруженные файлы
1
15
7 лет назад
Отредактирован EnergyFrost
1
WoLLFeR,
Если делаешь глобалки- делай их уж нормально в globals,а не во вкалдке Переменные.
Бр. Сорян, но это легче стереть и самому за тебя написать)
Вот воспользуйся этой статьей. Могу примеры своего старого-старого спелла кинуть на хеше и на структуре. Он простенький- разберешься. Если надо- лс
PS если не читал статьи- читай все. Только после этого лс)
0
7
7 лет назад
0
EnergyFrost:
WoLLFeR,
Если делаешь глобалки- делай их уж нормально в globals,а не во вкалдке Переменные.
Бр. Сорян, но это легче стереть и самому за тебя написать)
Вот воспользуйся этой статьей
Я так и делал но потом у меня были ошибки, сейчас
call SetUnitAbilityLevel(bj_lastCreatedUnit, bj_SkillTwo, Level)
Вот, это строчка не компилировалась, только, bj_SkillTwo, поменял на udg_SkillTwo, запустилась без проблем
EnergyFrost:
Спасибо, я просто не совсем знаком с jass, обязательно прочту
Этот комментарий удален
0
21
7 лет назад
0
ForGroup принимает группу и ссылку на функцию, коей служит название, заданное при объявлении. Аргументы передаваемой функции передавать не нужно.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.