Имеются 3 функции, нас интересует предпоследняя "Biorobot_Test_Func_3" , она выводит Имена Функций, "Biorobot_Test_Func_1" и "Biorobot_Test_Func_2", Имена Функций игра считает как число и позволяет их вывести, в данном случае вывод будет "1" "2" "1", так вот ближе к делу,
эти функции далеко не первые и не единственные на карте, то есть это не их порядковый номер и т.д., числа так же не случайные, то есть Имени Функции присваивается число только в тот момент когда собственно и идёт вывод через "DisplayTextToForce" или когда оно попадает в функцию "DI"
(я ещё не тестил), вопрос -
эти функции далеко не первые и не единственные на карте, то есть это не их порядковый номер и т.д., числа так же не случайные, то есть Имени Функции присваивается число только в тот момент когда собственно и идёт вывод через "DisplayTextToForce" или когда оно попадает в функцию "DI"
(я ещё не тестил), вопрос -
В какие ЕЩЁ моменты Имени Функции присваивается число? Ну просто если это посреди разработки где-нибудь внезапно случайно обнаружится (конечно же оно как обычно мне всё сломает), будет плохо (мне), вот и спрашиваю
function DI takes integer i returns nothing
DisplayTextToForce( GetPlayersAll(), I2S(i))
endfunction
function Biorobot_Test_Func_1 takes nothing returns nothing
//UnitAddAbility(Hero[0], 'AEbl')
//UnitAddAbility(Hero[0], 'ASCQ')
endfunction
function InitTrig_Biorobot_Test_Func_1 takes nothing returns nothing
local trigger test_Func = CreateTrigger( )
call TriggerRegisterPlayerChatEvent( test_Func, Player(0), "1", true )
call TriggerAddAction( test_Func, function Biorobot_Test_Func_1 )
endfunction
function Biorobot_Test_Func_2 takes nothing returns nothing
//GoldAndExp_TextOnUnit_GoldAndExp(Hero[0], 100, 200)
endfunction
function InitTrig_Biorobot_Test_Func_2 takes nothing returns nothing
local trigger test_Func = CreateTrigger( )
call TriggerRegisterPlayerChatEvent( test_Func, Player(0), "2", true )
call TriggerAddAction( test_Func, function Biorobot_Test_Func_2 )
endfunction
function Biorobot_Test_Func_3 takes nothing returns nothing
DI(Biorobot_Test_Func_1)
DI(Biorobot_Test_Func_2)
DI(Biorobot_Test_Func_1)
endfunction
function InitTrig_Biorobot_Test_Func_3 takes nothing returns nothing
local trigger test_Func = CreateTrigger( )
call TriggerRegisterPlayerChatEvent( test_Func, Player(0), "3", true )
call TriggerAddAction( test_Func, function Biorobot_Test_Func_3 )
endfunction
Принятый ответ
В любые моменты где другая функция, пытается принять имя функции как число
`
ОЖИДАНИЕ РЕКЛАМЫ...
1
Показать
EugeAl
4 мес
1
Показать
Рекомендую прочитать эту статью
Дефолтными средствами джасса не выйдет преобразовать function в integer (не считая GetHandleId, да и то это не преобразование)
2
Показать
nazarpunk
4 мес
2
Показать
Не конвертируй функции в числа, оно тебя сожрет.
2
Показать
quq_CCCP
4 мес
2
Показать
Функция это тип code, это хенд, ссылка на код, подробнее о jass писал в своихистатьях isefog.
0
Показать
Tredor46
3 мес
0
Показать
В любые моменты где другая функция, пытается принять имя функции как число
Принятый ответ
Чтобы оставить комментарий, пожалуйста, войдите на сайт.