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

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

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

offline
Опыт: 25
Активность:
Помогите с проблемой. Вроде все нормально, когда кастуешь над юнитом выводиться текст, через пару сек исчезает. Но если кастуют на одного юнита сразу несколько то текст остаеться навсегда , что не приятно.
Вот пример обьясните плиз что не так.
Прикрепленные файлы
Тип файла: w3x ПРИМЕР.w3x (19.5 Кбайт, 17 просмотров )
Старый 13.08.2007, 11:01
J
expert
offline
Опыт: 48,447
Активность:
WraG все очень просто, обрати внимание на самое последнее действие, и посмотри какой именно плавующий текст ты удаляеш

Отредактировано Jon, 22.09.2007 в 10:50.
Старый 13.08.2007, 11:13
YellowStar
poon
offline
Опыт: 15,144
Активность:
Можно ли изменять текстуру ландшафта и с помощью какой функции.
Старый 13.08.2007, 18:09
J
expert
offline
Опыт: 48,447
Активность:
угу
она даже в тригерах есть
Окружение - Changle Terrain Type

Jon добавил:
NaRaYaN однако предупрежу об одном баге вара, если сохранить карту, а потом загрузить ее то вся триггерная текстура ландшавта обнуляецо
Старый 13.08.2007, 18:12
WraG

offline
Опыт: 25
Активность:
JonСпасибо а по конкретней моно? , а то я плох в джазе - токо начал изучать.
Старый 14.08.2007, 12:12
J
expert
offline
Опыт: 48,447
Активность:
WraG хех.. это не джаз, а простые тригеры, ты последнием действием удаляеш "последний созданый текст тег", а не переменую куда занес текст тег даного выполнения спела
Старый 14.08.2007, 12:50
El Mognefico
Demonic Jackal
offline
Опыт: 3,673
Активность:
У меня есть ещё один вопрос по джазу. Как сделать, чтобы у юнита если останется 500 жизней, он переходит на Alternate анимацию, если 300, то Third?
Старый 14.08.2007, 13:05
WraG

offline
Опыт: 25
Активность:
Jonясно спасибо
Старый 14.08.2007, 13:33
DFlyer
<3 MJ
offline
Опыт: 42,879
Активность:
El Mognefico
Ну, имхо чтоб была Alternate, юзай какое-н перевоплощение, с той же моделью юнита. А чтоб Third... это, ведь, не стандартная анимация... хз.
Старый 14.08.2007, 13:58
El Mognefico
Demonic Jackal
offline
Опыт: 3,673
Активность:
DFlyer
мне просто нужно, чтобы чел в third был настолько избит, что ползком полз. Мне сказали, что в джазе так можно
Старый 14.08.2007, 14:11
DFlyer
<3 MJ
offline
Опыт: 42,879
Активность:
Посмотри это.
Старый 14.08.2007, 15:19
El Mognefico
Demonic Jackal
offline
Опыт: 3,673
Активность:
DFlyer
спс
Старый 14.08.2007, 15:59
BLackWoLf

offline
Опыт: 90
Активность:
Помогите разобраться с SCV!
На таком тригере:
Код:
function Trig_kh_Conditions takes nothing returns boolean
    if ( not ( GetUnitTypeId(GetTriggerUnit()) == 'hfoo' ) ) then
        return false
    endif
    return true
endfunction

function CF takes nothing returns nothing
     local unit u = get_object_uparam(u, "du")
     CreateUnitAtLoc(GetOwningPlayer(u),'hfoo',GetUnitLoc(u),23)
endfunction

function Trig_kh_Actions takes nothing returns nothing
     local unit u=GetTriggerUnit()
     call set_object_iparam(u,"du", H2I(u))
     local timer t=CreateTimer()
     call TimerStart(t,0.6,true,function CF)
endfunction

//===========================================================================
function InitTrig_kh takes nothing returns nothing
    set gg_trg_kh = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_kh, EVENT_PLAYER_UNIT_DEATH )
    call TriggerAddCondition( gg_trg_kh, Condition( function Trig_kh_Conditions ) )
    call TriggerAddAction( gg_trg_kh, function Trig_kh_Actions )
endfunction

Как тут сделать правельно? Напишите код plz! Заранее спасибо.
Старый 22.08.2007, 12:53
J
expert
offline
Опыт: 48,447
Активность:
Код:
function Trig_kh_Conditions takes nothing returns boolean
    return GetUnitTypeId(GetTriggerUnit()) == 'hfoo'
endfunction

function CF takes nothing returns nothing
     local unit u = I2U(GetStoredInteger(udg_cache, I2S(H2I(GetExpiredTimer())), "du"))
     call CreateUnit(GetOwningPlayer(u), 'hfoo', GetUnitX(u), GetUnitY(u), 23)
endfunction

function Trig_kh_Actions takes nothing returns nothing
     local timer t = CreateTimer()
     call TimerStart(t, 0.6, true, function CF) 
     call StoreInteger(udg_cache, I2S(H2I(t)), "du", H2I(GetTriggerUnit()))
     set t = null
endfunction

function InitTrig_kh takes nothing returns nothing
    set gg_trg_kh = CreateTrigger()
    call TriggerRegisterAnyUnitEventBJ(gg_trg_kh, EVENT_PLAYER_UNIT_DEATH               )
    call TriggerAddCondition          (gg_trg_kh, Condition(function Trig_kh_Conditions))
    call TriggerAddAction             (gg_trg_kh,           function Trig_kh_Actions    )
endfunction
Старый 22.08.2007, 12:57
BLackWoLf

offline
Опыт: 90
Активность:
Как дать buff юниту?
Старый 27.08.2007, 09:57
DFlyer
<3 MJ
offline
Опыт: 42,879
Активность:
Прямо добавить бафф нельзя, ибо баф - это эффект от какого-либо заклинания. Можно через UnitAddAbility(). В указываемой абиле через РО постаить нужный баф, а параметры самой абилы сделать по нулям.

Зачем тебе нужно добавить бафф? Может есть другое решение?
Старый 27.08.2007, 10:52
BLackWoLf

offline
Опыт: 90
Активность:
Мне нужен баф как эффект и чтобы в статусе юнита отображался. Но ето долго создавать абилку потом баф еще и сам спелл... Ну есть же функция UnitRemoveBuffs() почему не сделали UnitAddBuff()...

Отредактировано BLackWoLf, 27.08.2007 в 16:53.
Старый 27.08.2007, 11:44
DFlyer
<3 MJ
offline
Опыт: 42,879
Активность:
Цитата:
Ну усть же функция UnitRemoveBuffs()

Потому что если наложить какое-н заклинание, которое действует временно (к примеру, Внутренний Огонь), то самого этого спела после каста нету, но есть от него эффект (баф), который можно снять UnitRemoveBuffs'ом или каким спеллом, снимающего эффекты (работает также, как и РемувБаффс).
Старый 27.08.2007, 16:21
BLackWoLf

offline
Опыт: 90
Активность:
Помогите плз! Вот в етом триггере: тут TextTag остается на всегда!
Код:
function Trig_Strela_Conditions takes nothing returns boolean
    if ( not ( GetSpellAbilityId() == 'AUcs' ) ) then
        return false
    endif
    return true
endfunction

function FilterForTarget takes nothing returns boolean
return IsUnitEnemy(GetFilterUnit(),GetOwningPlayer(get_object_uparam(GetExpiredTimer(),  "caster")))and GetUnitAbilityLevel(GetFilterUnit(),'A04R')==0 and GetUnitState(GetFilterUnit(),UNIT_STATE_LIFE)>1 and IsUnitType(GetFilterUnit(),UNIT_TYPE_STRUCTURE)==false
endfunction

function ACFT takes nothing returns nothing
    local timer t=GetExpiredTimer()
    local unit u=get_object_uparam(t,"caster")
    local unit sn=get_object_uparam(t,"snar")
    local unit first
    local location ul=GetUnitLoc(u)
    local location sl=GetUnitLoc(sn)
    local real ugl=get_object_rparam(t,"Ugl")
    local real ras=DistanceBetweenPoints(ul,sl)
    local location kn=PolarProjectionBJ(sl,15,ugl)
    local texttag tt
    local boolexpr cfg=Condition(function FilterForTarget)
    local group g=CreateGroup()
    call SetUnitPositionLoc(sn,kn)
    call GroupEnumUnitsInRange(g,GetUnitX(sn),GetUnitY(sn),150,cfg)
    set first=FirstOfGroup(g)
    call DestroyBoolExpr(cfg)
    call DestroyGroup(g)
    call RemoveLocation(ul)
    call RemoveLocation(kn)
    call RemoveLocation(sl)
if first!=null then
        call UnitDamageTargetBJ(u,first,ras*0.20,ATTACK_TYPE_NORMAL,DAMAGE_TYPE_NORMAL)
        call KillUnit(sn)
        call PauseTimer(t)
        call flush_object(t)
        call CreateTextTagUnitOnTime(I2S(R2I(ras)),first,2,50,20,100,50,30,0)
        call PolledWait(1)
        call DestroyTextTagBJ(tt)
        call DestroyTimer(t)
elseif ras>5000 then
        call KillUnit(sn)
        call PauseTimer(t)
        call flush_object(t)
        call DestroyTimer(t)
endif
endfunction

function Trig_Strela_Actions takes nothing returns nothing
    local unit u=GetTriggerUnit()
    local location ul=GetUnitLoc(u)
    local location stl=GetSpellTargetLoc()
    local real ugl=AngleBetweenPoints(ul,stl)
    local timer t=CreateTimer()
    local location gnc=PolarProjectionBJ(ul,10,ugl)
    local unit sn=CreateUnitAtLoc(GetOwningPlayer(u),'hfoo',ul,270)
    call SetUnitPathing(sn,false)
    call set_object_rparam(t,"Ugl",ugl)
    call set_object_iparam(t,"snar",H2I(sn))
    call set_object_iparam(t,"caster",H2I(u))
    call TimerStart(t,0.025,true,function ACFT)
    call RemoveLocation(ul)
    call RemoveLocation(stl)
    call RemoveLocation(gnc)
endfunction

//===========================================================================
function InitTrig_Strela takes nothing returns nothing
    local trigger gg_trg_Strela = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_Strela, EVENT_PLAYER_UNIT_SPELL_EFFECT )
    call TriggerAddCondition( gg_trg_Strela, Condition( function Trig_Strela_Conditions ) )
    call TriggerAddAction( gg_trg_Strela, function Trig_Strela_Actions )
endfunction
И если есть другие ошибки то скажите где они и помогите исправит!

Отредактировано BLackWoLf, 28.08.2007 в 17:32.
Старый 28.08.2007, 17:18
Kel_TuZaD

offline
Опыт: 1,630
Активность:
Вот фун-я для ТекстТага есть в библиотеке функций

Код:
function AddFadingTextTag takes string text, real x, real y, integer red, integer green, integer blue, integer alpha returns nothing
    local texttag t = CreateTextTag()
    call SetTextTagText(t, text, 0.024)
    call SetTextTagPos(t, x, y, 0.00)
    call SetTextTagColor(t, red, green, blue, alpha)
    call SetTextTagVelocity(t, 0, 0.03)
    call SetTextTagVisibility(t, true)
    call SetTextTagFadepoint(t, 2)
    call SetTextTagLifespan(t, 3)
    call SetTextTagPermanent(t, false)
    set t = null
endfunction


И упрости это :
Код:
function Trig_Strela_Conditions takes nothing returns boolean
    if ( not ( GetSpellAbilityId() == 'AUcs' ) ) then
        return false
    endif
    return true
endfunction


На :
Код:
function Strela_Conditions takes nothing returns boolean
return GetSpellAbilityId() == 'AUcs'
endfunction
Старый 28.08.2007, 20:58
Закрытая тема

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

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

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

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



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