konvan5:
Я пытался. Это сложно. Я знаю, что хэш - таблица работает по принципу ключ- замок. То есть можно присвоить чему угодно в игре например номер, а потом по этому номеру его найти. Практики пока нет. Это долгая тема
nazarpunk:
Бывает, что на вопросы днями не отвечают. Никто так то и не обязан на них отвечать. Варкрафт - тема узконапоавленая, если тут не получу ответа то где? На Хайве еще с английского нужно перевести, да и варик 1.26 для них - прошлый век. ( не понять им русскую душу)
Ладно, я просто хочу довести до ума три версии своей карты. Эта тема закрыта, давно хочу понять хэш таблицу, она мне прямо очень нужна, но пока не понимаю. Это тема для следующего вопроса)
Первая ошибка сейчас говорит в том, что ты создал переменную, но ничего туда не записал а уже отправил в функцию. То есть ты пытаешься прикрепить эффект к пустому, не существующему юниту.
Вот про этот код идет речь:
local unit u
local effect a
set bj_lastCreatedEffect = AddSpecialEffectTarget(u,"chest", "manaFlareTarget.mdx" )
Видишь, тут создал переменную u, ничего в нее не записал но используешь дальше в функции AddSpecialEffectTarget().
Понимаешь, я в гуи понимаю, что объявляется сверху, а где в джасс верх и где низ, где правильно заявлять локальные?
konvan5:
Код, как он сейчас есть
function Trig_tRIGGORDOND_Conditions takes nothing returns boolean
if ( not ( GetSpellAbilityId() == 'A016' ) ) then
return false
endif
return true
endfunction
function Trig_tRIGGORDOND_Func006001 takes unit u returns boolean
return ( GetUnitState(u, UNIT_STATE_LIFE) <= 0 )
endfunction
function Trig_tRIGGORDOND_Actions takes nothing returns nothing
local unit u
local effect a
set bj_lastCreatedEffect = AddSpecialEffectTarget(u,"chest", "manaFlareTarget.mdx" )
call UnitAddAbility(u,'A01O')
loop
exitwhen ( Trig_tRIGGORDOND_Func006001() )
call TriggerSleepAction(RMaxBJ(bj_WAIT_FOR_COND_MIN_INTERVAL, 1))
endloop
call UnitRemoveAbility( u,'A01O' )
endfunction
===========================================================================
function InitTrig_tRIGGORDOND takes nothing returns nothing
set gg_trg_tRIGGORDOND = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_tRIGGORDOND, EVENT_PLAYER_UNIT_SPELL_CAST )
call TriggerAddCondition( gg_trg_tRIGGORDOND, Condition( function Trig_tRIGGORDOND_Conditions ) )
call TriggerAddAction( gg_trg_tRIGGORDOND, function Trig_tRIGGORDOND_Actions )
endfunction
Теперь ошибки опять же вылетают потому что локальная якобы не заявлена. И опять же по тому что утром( если исправлять)
nazarpunk:
Да я не спамлю, я пытаюсь быстрее ответить, пока кто - то согласился мне помочь, иначе я эту часть кода надолго заброшу и спросить будет не у кого
Видимо у тебя описание функции неполное, в описании функции должен быть список параметров, который пишется после слова takes, и возможно ты его не указал.
Вот пример, где параметров нет, поэтому мы указываем nothing после takes:
function First pitdfgdfgf_Conditions takes nothing returns boolean
А лучше скидывай скрин ошибки, где показывается часть кода, где ошибка и находится. Так проще будет нам помочь.
Я уже столько нахреновертил, что у меня там даже названия троигеров спутаны. Сейчас сделаю гуи, переведу на джасс, верну все как было и скажу, если что - то опять не запустится
добавить скрипт на импорт моделей m2 из WoW/. А то мдливис эффекты практически не читает
Вообще бы собрать самых умных людей и тупо сделать копию движка варика, чтобы поддерживала модели mdl. Редактор нормальный и уже люди могли спокойно создавать карты на Си, а не страдать ерундой
SсRealm, ты когда скобку открываешь после названия функции видишь названия аргументов. Помимо этого ты можешь задать ctrl и нажать на функцию, чтобы раскрыть её, где увидишь тип аргументов. Если тебе этого мало - конвертируй гуи в код и смотри как там сделано, учи английский, пользуйся переводчиком, прокачивайся и переходи на нативки
По итогу все- равно выдало ошибку. Может ты и прав!
function First pitdfgdfgf_Conditions takes nothing returns boolean
if ( not ( GetSpellAbilityId() == 'A08B' ) ) then
return false
endif
return true
endfunction
function Trig_First pitdfgdfgf_Func007001 takes unit u returns boolean
return ( GetUnitState(u, UNIT_STATE_LIFE) <= 0 )
endfunction
function First pitdfgdfgf_Actions takes nothing returns nothing
local effect a
local unit u
set u = GetSpellTargetUnit()
call UnitAddAbility( u,'A08C' )
set bj_lastCreatedEffect = AddSpecialEffectTarget(u,"chest", "manaFlareTarget.mdx" )
set a = bj_lastCreatedEffect
loop
exitwhen ( First pitdfgdfgf_Func007001() )
call TriggerSleepAction(RMaxBJ(bj_WAIT_FOR_COND_MIN_INTERVAL, 1))
endloop
call DestroyEffect (a)
set u= null
set a= null
endfunction
===========================================================================
function InitTrig_First_pitdfgdfgf takes nothing returns nothing
set gg_trg_First_pitdfgdfgf = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_First_pitdfgdfgf, EVENT_PLAYER_UNIT_SPELL_CAST )
call TriggerAddCondition( gg_trg_First_pitdfgdfgf, Condition( function Trig_First_pit______________________2__________________________________________u_Conditions ) )
call TriggerAddAction( gg_trg_First_pitdfgdfgf, function Trig_First_pit______________________2__________________________________________u_Actions )
endfunction
Дословно он пишет
"Невозможно конвертировать строку в виджет в параметре "Имя модели, что прикрепить специальный эффект"
Вот как мне понять? Я все по порядку добавил же?
все еще не читаете что сами же написали в коде
Вам весело, но я честно не знаю, как правильно присваивать спецэффект кодом именно с локальной! Я не могу тупо оставить gui потому что мне нужна именно локалка для это этого кода. Мне нужен хотя бы один рабочий образец, как правильно делать в этом случаи, дальще я уже сориентируюсь по образцу
set bj_lastCreatedEffect = AddSpecialEffectTarget
да, весело, потому что прочесть порядок аргументов в функции не позволяет религия) это писец, докатились
Может я не туда смотрю? боевая единица, эффект, точка крепления, что не так?
Дословно он пишет
"Невозможно конвертировать строку в виджет в параметре "Имя модели, что прикрепить специальный эффект"
Вот как мне понять? Я все по порядку добавил же?
все еще не читаете что сами же написали в коде
Вам весело, но я честно не знаю, как правильно присваивать спецэффект кодом именно с локальной! Я не могу тупо оставить gui потому что мне нужна именно локалка для это этого кода. Мне нужен хотя бы один рабочий образец, как правильно делать в этом случаи, дальще я уже сориентируюсь по образцу
set bj_lastCreatedEffect = AddSpecialEffectTarget
Дословно он пишет
"Невозможно конвертировать строку в виджет в параметре "Имя модели, что прикрепить специальный эффект"
Вот как мне понять? Я все по порядку добавил же?
Ну как бы по факту. В этой функции НЕТ локальной переменной u.
Я показал стрелками слева НАЧАЛО функции и КОНЕЦ функции. Между ними НЕТ создания или получения переменной u. Справа даже подмечено, что мы ничего в эту функцию не получаем. Но зато пытаемся использовать переменную, которая эта функция не видит.
Локальные переменные на то и локальные, что видны лишь в контексте одного блока кода, а снаружи (или в других функциях) они не видны. Их можно передавать через параметры разве что.
» WarCraft 3 / Не работает система прикрепления эффекта
Я пытался. Это сложно. Я знаю, что хэш - таблица работает по принципу ключ- замок. То есть можно присвоить чему угодно в игре например номер, а потом по этому номеру его найти. Практики пока нет. Это долгая тема
» WarCraft 3 / модель персонажа летающая а сам персонаж пеший. как сделать
» WarCraft 3 / Не работает система прикрепления эффекта
Бывает, что на вопросы днями не отвечают. Никто так то и не обязан на них отвечать. Варкрафт - тема узконапоавленая, если тут не получу ответа то где? На Хайве еще с английского нужно перевести, да и варик 1.26 для них - прошлый век. ( не понять им русскую душу)
» WarCraft 3 / Не работает система прикрепления эффекта
» WarCraft 3 / Не работает система прикрепления эффекта
» WarCraft 3 / Не работает система прикрепления эффекта
» WarCraft 3 / Не работает система прикрепления эффекта
Код, как он сейчас есть
function Trig_tRIGGORDOND_Conditions takes nothing returns boolean
if ( not ( GetSpellAbilityId() == 'A016' ) ) then
return false
endif
return true
endfunction
return ( GetUnitState(u, UNIT_STATE_LIFE) <= 0 )
endfunction
local unit u
local effect a
set bj_lastCreatedEffect = AddSpecialEffectTarget(u,"chest", "manaFlareTarget.mdx" )
call UnitAddAbility(u,'A01O')
loop
exitwhen ( Trig_tRIGGORDOND_Func006001() )
call TriggerSleepAction(RMaxBJ(bj_WAIT_FOR_COND_MIN_INTERVAL, 1))
endloop
call UnitRemoveAbility( u,'A01O' )
endfunction
function InitTrig_tRIGGORDOND takes nothing returns nothing
set gg_trg_tRIGGORDOND = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_tRIGGORDOND, EVENT_PLAYER_UNIT_SPELL_CAST )
call TriggerAddCondition( gg_trg_tRIGGORDOND, Condition( function Trig_tRIGGORDOND_Conditions ) )
call TriggerAddAction( gg_trg_tRIGGORDOND, function Trig_tRIGGORDOND_Actions )
endfunction
» WarCraft 3 / Не работает система прикрепления эффекта
Да я не спамлю, я пытаюсь быстрее ответить, пока кто - то согласился мне помочь, иначе я эту часть кода надолго заброшу и спросить будет не у кого
» WarCraft 3 / Не работает система прикрепления эффекта
» WarCraft 3 / RMS Twilac Edition
» WarCraft 3 / Не работает система прикрепления эффекта
» WarCraft 3 / Не работает система прикрепления эффекта
if ( not ( GetSpellAbilityId() == 'A08B' ) ) then
return false
endif
return true
endfunction
return ( GetUnitState(u, UNIT_STATE_LIFE) <= 0 )
endfunction
local effect a
local unit u
set u = GetSpellTargetUnit()
call UnitAddAbility( u,'A08C' )
set bj_lastCreatedEffect = AddSpecialEffectTarget(u,"chest", "manaFlareTarget.mdx" )
set a = bj_lastCreatedEffect
loop
exitwhen ( First pitdfgdfgf_Func007001() )
call TriggerSleepAction(RMaxBJ(bj_WAIT_FOR_COND_MIN_INTERVAL, 1))
endloop
call DestroyEffect (a)
set u= null
set a= null
endfunction
function InitTrig_First_pitdfgdfgf takes nothing returns nothing
set gg_trg_First_pitdfgdfgf = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_First_pitdfgdfgf, EVENT_PLAYER_UNIT_SPELL_CAST )
call TriggerAddCondition( gg_trg_First_pitdfgdfgf, Condition( function Trig_First_pit______________________2__________________________________________u_Conditions ) )
call TriggerAddAction( gg_trg_First_pitdfgdfgf, function Trig_First_pit______________________2__________________________________________u_Actions )
endfunction
Ред. SсRealm
» WarCraft 3 / RMS Twilac Edition
» WarCraft 3 / RMS Twilac Edition
» WarCraft 3 / Не работает система прикрепления эффекта
» WarCraft 3 / Не работает система прикрепления эффекта
Ред. SсRealm
» WarCraft 3 / Не работает система прикрепления эффекта
» WarCraft 3 / Не работает система прикрепления эффекта
set bj_lastCreatedEffect = AddSpecialEffectTarget
» WarCraft 3 / Не работает система прикрепления эффекта
"Невозможно конвертировать строку в виджет в параметре "Имя модели, что прикрепить специальный эффект"
Вот как мне понять? Я все по порядку добавил же?
» WarCraft 3 / Не работает система прикрепления эффекта
» WarCraft 3 / Не работает система прикрепления эффекта
» WarCraft 3 / Не работает система прикрепления эффекта
» WarCraft 3 / Не работает система прикрепления эффекта
» WarCraft 3 / Не работает система прикрепления эффекта
» WarCraft 3 / Не работает система прикрепления эффекта