XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов> Jass
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Закрытая тема
 
JET_LI

offline
Опыт: 1,724
Активность:
Помогите: присвоение значений переменной из разных функции.
Код:
function ant takes unit trgu, unit airsh returns nothing
    call SetCameraFieldForPlayer( GetOwningPlayer(returnunit(trgu)), CAMERA_FIELD_TARGET_DISTANCE, CameraSetupGetFieldSwap(CAMERA_FIELD_TARGET_DISTANCE, gg_cam_AirshipStart), 0.40 )
    call SetCameraFieldForPlayer( GetOwningPlayer(returnunit(trgu)), CAMERA_FIELD_FARZ, CameraSetupGetFieldSwap(CAMERA_FIELD_FARZ, gg_cam_AirshipStart), 0.40 )
    call SetCameraFieldForPlayer( GetOwningPlayer(returnunit(trgu)), CAMERA_FIELD_ANGLE_OF_ATTACK, CameraSetupGetFieldSwap(CAMERA_FIELD_ANGLE_OF_ATTACK, gg_cam_AirshipStart), 0.40 )
    call SetCameraFieldForPlayer( GetOwningPlayer(returnunit(trgu)), CAMERA_FIELD_ROTATION, GetUnitFacing(returnunit(airsh)), 0.40 )
endfunction

function MainActions_AirshipSet takes nothing returns nothing
    local unit trgu=GetTriggerUnit()
    local unit airsh
    local trigger trg=CreateTrigger()
    call CreateNUnitsAtLoc( 1, 'n00Z',GetOwningPlayer(returnunit(trgu)), GetUnitLoc(returnunit(trgu)), 0.00 )
    call ShowUnitHide( returnunit(trgu) )
    set airsh=GetLastCreatedUnit()
    call MakeUnitUnselectable(returnunit(airsh))
    call TriggerRegisterTimerEventPeriodic(trg, 0.01)
    call TriggerAddAction(gg_trg_AirshipSet, function ant(trgu,airsh))
    call IssuePointOrderLocBJ( returnunit(airsh), "move", GetRectCenter(gg_rct_posAirship_1) )
    call PlaySoundOnUnitBJ( gg_snd_AirshipStart, 100, returnunit(airsh) )
    loop
        exitwhen ( RectContainsLoc(gg_rct_posAirship_1, GetUnitLoc(returnunit(airsh))) == true )
        call TriggerSleepAction(RMaxBJ(bj_WAIT_FOR_COND_MIN_INTERVAL, 1))
    endloop
    call DestroyTrigger(trg)
    call SetUnitPositionLocFacingBJ( returnunit(trgu), GetUnitLoc(returnunit(airsh)), GetRandomDirectionDeg() )
    call ShowUnitShow( returnunit(trgu))
    call ResetToGameCameraForPlayer( GetOwningPlayer(returnunit(trgu)), 0.40 )
    call RemoveUnit( returnunit(airsh) )
endfunction
============================================================================

CS: call TriggerAddAction(gg_trg_AirshipSet, function ant(trgu,airsh)) не работает! Эта ошибка известна всем, но скажите как мне добавить действие в другой триггер, где значения переменных в этом триггере переносятся в другой. Помогите, срочно нужно!

Отредактировано JET_LI, 23.02.2009 в 10:53.
Старый 23.02.2009, 09:58
Vampirrr
O_o
offline
Опыт: 19,286
Активность:
JET_LI, в функции нельзя передавать значения. Выход - глобалки.
Старый 23.02.2009, 18:10
alexprey
познающий Unity
offline
Опыт: 68,501
Активность:
Vampirrr - еще можно SCV!
Старый 23.02.2009, 18:24
Vampirrr
O_o
offline
Опыт: 19,286
Активность:
King Ksel, я считаю, что тут нет необходимости использовать SCV да и тем более глобалки лучше и проще)
Старый 23.02.2009, 18:53
MF
Что-то вокруг не так
offline
Опыт: 26,594
Активность:
King Ksel, да забудьте вы это слово! Нет его, этого вашего SCV, сделайте с помощью кэша что-то такое, чего я не смогу сделать просто на джассе (кроме переноса данных с карты на карту) и я поставлю вам памятник.
JET_LI, использовать глобальные переменные. Если нужно передавать много разных данных в разные потоки, то лучше использовать глобальные массивы.
Старый 24.02.2009, 04:16
JET_LI

offline
Опыт: 1,724
Активность:
ВСЕМ СПС!!! Вы мне помогли.
Старый 24.02.2009, 18:20
Закрытая тема

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 01:42.