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

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

Закрытая тема
 
0pJl9lTa

offline
Опыт: 2,997
Активность:
Спел грузит мапу... че таке?
Сделал спел, в нет нет ничего гениального, суть в том, что когда волна долетает до конца карты, она вылетает с другово конца. Так вот, после вылетаения с другово конца, игра начинается СИЛЬНО ОЧЕНЬ грузица. Прием жреца в основном процессорное время, а не оперативка. Вот кодик.
Код:
// (ARROUNDWAVE)
function Trig_AroundWave_Conditions takes nothing returns boolean
return GetSpellAbilityId() == 'A05S'
endfunction
function R_Act takes nothing returns nothing
    local real range = GetStoredReal(udg_Cashe,I2S(H2I(GetTriggeringTrigger() ) ), "ra" )
    local real angle = GetStoredReal(udg_Cashe,I2S(H2I(GetTriggeringTrigger() ) ), "an" )
    local unit cas = I2U(GetStoredInteger(udg_Cashe,I2S(H2I(GetTriggeringTrigger() ) ), "cas" ))
    local location pos = I2L(GetStoredInteger(udg_Cashe,I2S(H2I(GetTriggeringTrigger() ) ), "pos" ))
    local location loc = PolarProjectionBJ(pos,range,angle)
    local real array coor
    local unit last = null

    if(RectContainsLoc(GetPlayableMapRect(), loc) != true) then
        call DisableTrigger(GetTriggeringTrigger())
        call RemoveLocation (loc)
        set loc = PolarProjectionBJ(pos,range - 60,angle)
        set coor[1] = GetLocationX(loc)
        set coor[2] = GetLocationX(loc)
        call RemoveLocation (loc)
        set loc = Location (coor[1],coor[2])
        call CreateNUnitsAtLocFacingLocBJ( 1, 'e000', GetOwningPlayer(cas), loc, pos )
        set last = GetLastCreatedUnit()
        call UnitAddAbilityBJ( 'A05T', GetLastCreatedUnit() )
        call SetUnitAbilityLevelSwapped( 'A05T', GetLastCreatedUnit(), GetUnitAbilityLevelSwapped('A05S', cas) )
        call IssuePointOrderLocBJ( GetLastCreatedUnit(), "shockwave", pos )
        call RemoveLocation (loc)
        set loc = null
        call RemoveLocation (pos)
        set pos = null
        set cas = null
        set range = 0
        set angle = 0
        call PolledWait (1.00)
        call RemoveUnit(last)
        call FlushStoredMission (udg_Cashe,I2S(H2I(GetTriggeringTrigger())))
        call DestroyTrigger (GetTriggeringTrigger())
    endif

    set range = range + 50
    call StoreReal (udg_Cashe, I2S(H2I(GetTriggeringTrigger())),"ra", range )
    call RemoveLocation (loc)
    set cas = null
    set range = 0
    set angle = 0
    set pos = null
    set loc = null
endfunction
function Trig_AroundWave_Actions takes nothing returns nothing
    local unit cas = GetSpellAbilityUnit()
    local location loc = GetSpellTargetLoc()
    local real r = 0
    local real range = 0
    local location pos = GetUnitLoc(cas)
    local trigger tr = CreateTrigger()
    call CreateNUnitsAtLocFacingLocBJ( 1, 'e000', Player(0), pos, loc )
    call RemoveUnit( GetLastCreatedUnit())
    set r = GetUnitFacing(GetLastCreatedUnit())
    call TriggerRegisterTimerEventPeriodic( tr, 0.05)
    call TriggerAddAction( tr, function R_Act)
    call StoreInteger (udg_Cashe, I2S(H2I(tr)),"pos", H2I(pos) )
    call StoreInteger (udg_Cashe, I2S(H2I(tr)),"cas", H2I(cas) )
    call StoreReal (udg_Cashe, I2S(H2I(tr)),"ra", range )
    call StoreReal (udg_Cashe, I2S(H2I(tr)),"an", r )
    call RemoveLocation (loc)
    set loc = null
    set pos = null
    set tr = null
    set cas = null
    set range = 0
    set r = 0
endfunction


0pJl9lTa добавил:
Да... вопрос забыл.
Почему так грузица7???

0pJl9lTa добавил:
Еще забыл
Мб дело всего лишь в чтении кеша 4 раза за каждые 0.05 сек???
Старый 14.04.2006, 18:02
Markiz

offline
Опыт: 11,392
Активность:
Цитата:
Мб дело всего лишь в чтении кеша 4 раза за каждые 0.05 сек???

Даже 1000 раз в секунду грузить не должны.

Отредактировано Markiz, 14.04.2006 в 19:25.
Старый 14.04.2006, 19:20
0pJl9lTa

offline
Опыт: 2,997
Активность:
Заметил вот еще что... хотя мне это не помогло. Абила сделана на основе огненной волны у таурена.
Кода я ее колдырю, она вылетает слегка криво, и как будто летит еще одна, тока без эффекта(просто земля прогибается) Вообщем хз че такое.
Старый 14.04.2006, 20:02
DioD

offline
Опыт: 45,184
Активность:
Волна торена летит неточно, для этого надо использовать ЭМПАИЛ, но тогда не будет анимации, зато будет бить точно в цель.
Проц так могут грузить только точки, но в тригере я еще не разобрался и сказать точно немогу.
Старый 15.04.2006, 17:12
Toadcop

offline
Опыт: 53,013
Активность:
DioD

Цитата:
set r = GetUnitFacing(GetLastCreatedUnit())

Ага не точно... угу.... да сборка ламеров :) а вы знали что для таких вещей надо просто вычислять угол между кастером и точкой приказа ! и тогда всё будет зашибись ?! да ну тогда знайте !

ЗЫ только на форуме флудете у них винты не безконечные :)
Старый 15.04.2006, 17:40
DioD

offline
Опыт: 45,184
Активность:
Как винты кончатся будет выдана надпись
Всё чувак, жопа, место кончилось, жди.
Старый 15.04.2006, 18:01
Toadcop

offline
Опыт: 53,013
Активность:
DioD прикольно а еще лутче вёсь не нужный материал (аттачи) на тачки текущех юзеров закидывали бы :) и место освобождали...
Старый 15.04.2006, 18:16
DioD

offline
Опыт: 45,184
Активность:
Размечтался, мне атачей не хватает катострофически, а больше не дают, вот жопа.
Странно, я всегда думал что xgm это часть бру, но оказалось что это не так.
Как я буду жить дальше?
Старый 15.04.2006, 18:42
Toadcop

offline
Опыт: 53,013
Активность:
Цитата:
Странно, я всегда думал что xgm это часть бру, но оказалось что это не так.
- это как раз зашибись !!! на Бру уже закумарили... и сервак у них напостой заполнёный и с базой данных проблеммы короче параша...

ХGМ - F O R E V E R !!!! R U L E S !!!!!!!!!
Старый 15.04.2006, 18:55
DioD

offline
Опыт: 45,184
Активность:
Тока тут народа мало, но вот скин лучше.
Старый 15.04.2006, 18:56
Toadcop

offline
Опыт: 53,013
Активность:
DioD
Цитата:
Тока тут народа мало, но вот скин лучше.
- ну для меня всё наоборот :) "мало народа, больше кислорода" и скин там по красивей :) ну мне больше нравитьса.
Старый 15.04.2006, 19:28
DioD

offline
Опыт: 45,184
Активность:
Я 2 года сидел на лайт версии PHPBB привык
Старый 15.04.2006, 19:33
zibada

offline
Опыт: отключен
господа DioD и Toadcop!
прекратите, наконец, флудить во всех подряд темах...

здесь вам не бру.
Старый 15.04.2006, 21:28
exploder
iOS zealot
offline
Опыт: 19,394
Активность:
Как я понял из кода тригер Trig_AroundWave срабатывает всякий раз, когда юнит кастует спелл. Может возникает зацикливание когда спелл кастует дамми? Ведь это влечет создание еще одного дамми и снова каст и т.д. Может в триггере Trig_AroundWave все таки стоит проверить кто кастует спелл герой или дамми?
Старый 17.04.2006, 20:04
Закрытая тема

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

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

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

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



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