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

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

Ответ
 
Novikov
Kicked by GadenbIsh
offline
Опыт: 417
Активность:
Здравствуйте уважаемые знатоки. Скачайте, пожалуйста, карту из приложения и объясните нубу почему в тот момент, когда функция
set udg_p1 = GetUnitLoc(gg_unit_hfoo_0000)
    set udg_p2 = GetUnitLoc(gg_unit_hfoo_0001)
    set udg_d = DistanceBetweenPoints(udg_p1, udg_p2)
    set udg_i = 1
    loop
        exitwhen udg_i > 10
        set udg_p = PolarProjectionBJ(udg_p1, ( ( udg_d / 10.00 ) * I2R(udg_i) ), AngleBetweenPoints(udg_p1, udg_p2))
        call AddSpecialEffectLocBJ( udg_p, "Abilities\\Spells\\Human\\slow\\slowtarget.mdl" )
        set udg_i = udg_i + 1
    endloop
записана как действие триггера Line она работает правильно, но если мы теперь запишем её в разделе «нестандартный код» (назвав функцию line2), выключим триггер Line и включим триггер Trig line2, который запускает функцию line2 при инициализации карты, то результат будет совсем другим.
Прикрепленные файлы
Тип файла: w3x paint.w3x (16.8 Кбайт, 12 просмотров )
Старый 15.05.2011, 00:56
Hanabishi
COOL STATUS
offline
Опыт: отключен
  1. код мегаутечен, но это не по делу
  2. фейл, результат одинаковый, в обоих случаях между юнитами появляется линия из эффектов
Старый 15.05.2011, 01:31
Novikov
Kicked by GadenbIsh
offline
Опыт: 417
Активность:
Как странно. Когда я запускаю эту функцию через «нестандартный код» то вижу то, что вы видите на скриншоте в приложении…
Наверное, у меня с редактором что-то не так…
Миниатюры
Кликните на картинку для увеличения
Название:  Безымянный.JPG
Просмотров: 47
Размер:  96.6 Кбайт  
Старый 15.05.2011, 01:47
Hanabishi
COOL STATUS
offline
Опыт: отключен
Novikov, это скорее всего связано с инитом
попробуй перед действиями воткнуть нулевой вейт:
function line2 takes nothing returns nothing
    call TriggerSleepAction(0.0)
    set udg_p1 = GetUnitLoc(gg_unit_hfoo_0000)
    set udg_p2 = GetUnitLoc(gg_unit_hfoo_0001)
    set udg_d = DistanceBetweenPoints(udg_p1, udg_p2)
    set udg_i = 1
    loop
        exitwhen udg_i > 10
        set udg_p = PolarProjectionBJ(udg_p1, ( ( udg_d / 10.00 ) * I2R(udg_i) ), AngleBetweenPoints(udg_p1, udg_p2))
        call AddSpecialEffectLocBJ( udg_p, "Abilities\\Spells\\Human\\slow\\slowtarget.mdl" )
        set udg_i = udg_i + 1
    endloop
endfunction
Старый 15.05.2011, 01:53
Novikov
Kicked by GadenbIsh
offline
Опыт: 417
Активность:
А «инит» это что такое ? :)
Старый 27.07.2011, 16:12
bee
vjass.optimizer
offline
Опыт: 16,615
Активность:
установка

ну кароче он говорит поставить тебе небольшую задержку, чтоб проверить не связанна ли запаздалая установка с этим.

а ваще, если то, что тебе нужно (в даном случае - эффект) создается в середине карты - это значит,
точка указанно неверно.

пример: допустим есть юнит 'u' он еще не создан (то есть равен null)
а ты отлавливаешь его позицию. допустим тебе нужно создать эффект в позиции u
а юнита u как такогого не существует. вот он и создает его в середине карты.
Старый 27.07.2011, 17:20
Ответ

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

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

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

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



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