Pavell #1 - 7 месяцев назад 0

» WarCraft 3 / Нужна модель? - Вам сюда!

Нужно пересадить этого Артаса без шлема (1) на анимации второго Артаса (2) БЕЗ ТРОНА
Проще говоря, у Артаса (1) должны быть анимации сидения и вставания, как у (2), но без самого трона.
прикреплены файлы
Pavell #2 - 1 год назад 1
Pavell #3 - 1 год назад (отредактировано ) 1

» Мастерская переводов | Кампании WC3 на русском / Главная страница

В проект будут входить компании только твоего перевода или качествено преведеные компании?
В списке уже есть такая кампания: Хроники Средиземья с переводом от Rare.
Pavell #4 - 1 год назад 7

» Мастерская переводов | Кампании WC3 на русском / Главная страница

Почему проект, как и сами кампании, можно найти только в поиске? Ни на главной, ни в ресурсах, ни даже в ленте (по Ровану были комментарии, однако в ленте их нет) ни кампаний, ни проекта - нет.
Pavell #5 - 3 года назад (отредактировано ) 3

» WarCraft 3 / Нужна модель? - Вам сюда!

Добрый день. Нужно сделать следующие изменения для этой модели:
  1. Добавить анимацию, где он держит камень (в качестве камня использовать одну из вариаций модели Doodads\LordaeronSummer\Terrain\LoardaeronRockChunks\LoardaeronRockChunks).
  2. Добавить анимацию, где он поднимает камень из земли.
  3. Добавить анимацию, где он кидает камень.
  4. Орк должен держать камень обеими руками.
Желательно также добавить 2 анимации, где орк убирает оружие за спину и обратно поднимает его.
Сроки: чем быстрее, тем лучше.
Pavell #6 - 3 года назад (отредактировано ) 1

» WarCraft 3 / Отталкивание юнита во время рывка

» Кусок кода, где идет попытка определения с какой стороны находится юнит
loop
            exitwhen CountUnitsInGroup(g) == 0
            set p = FirstOfGroup(g)
            if p!=u and p!=u1 and not IsUnitInGroup(p,udg_hit) then
                call GroupAddUnit(udg_hit,p)
                set t1 = CreateTimer()
                call SaveUnitHandle(udg_hash,GetHandleId(t1),0,p)
                call SaveReal(udg_hash,GetHandleId(t1),1,6)
                set a1 = Atan2(GetUnitX(u)-GetUnitX(p),GetUnitY(u)-GetUnitY(p))
                if a>0 and a1>0 then
                    if a>a1 then
                        call SaveReal(udg_hash,GetHandleId(t1),2,a-1.57)
                    else
                        call SaveReal(udg_hash,GetHandleId(t1),2,a+1.57)
                    endif
                else
                if a<0 and a1<0 then
                        if a<a1 then
                        call SaveReal(udg_hash,GetHandleId(t1),2,a-1.57)
                    else
                        call SaveReal(udg_hash,GetHandleId(t1),2,a+1.57)
                    endif
                else
                if a>a1 then
                    call SaveReal(udg_hash,GetHandleId(t1),2,a-1.57)
                else
                    call SaveReal(udg_hash,GetHandleId(t1),2,a+1.57)
                endif
                endif
                endif
                call SaveInteger(udg_hash,GetHandleId(t1),3,25)
                call UnitDamageTarget(u,p,25*GetUnitAbilityLevel(u,'A000'),true,false,ATTACK_TYPE_NORMAL,DAMAGE_TYPE_NORM​AL,WEAPON_TYPE_WHOKNOWS)
                call TimerStart(t1,.02,true,function MoveUnits)
                set t1 = null
            endif
            call GroupRemoveUnit(g,p)
            set p = null
        endloop
» Весь код
function MoveTarget takes nothing returns nothing
    local timer t = GetExpiredTimer()
    local unit u = LoadUnitHandle(udg_hash,GetHandleId(t),0)
    local real d = LoadReal(udg_hash,GetHandleId(t),1)
    local real a = LoadReal(udg_hash,GetHandleId(t),2)
    local integer i = LoadInteger(udg_hash,GetHandleId(t),3)
    local real d1 = LoadReal(udg_hash,GetHandleId(t),4)
    call SetUnitX(u,GetUnitX(u)+d*Cos(a))
    call SetUnitY(u,GetUnitY(u)+d*Sin(a))
    call AddSpecialEffect("Abilities\\Spells\\Human\\FlakCannons\\FlakTarget.mdl",GetUnitX(u),GetUn​itY(u))
    call DestroyEffect(bj_lastCreatedEffect)
    call SaveReal(udg_hash,GetHandleId(t),1,d-(0.08*(d1/3-1)/5))
    call SaveInteger(udg_hash,GetHandleId(t),3,i-1)
    if(i==25)then
        call UnitAddAbility(u,'Aave')
        call UnitRemoveAbility(u,'Aave')
        call SetUnitFlyHeight(u,0,200)
    endif
    if(i==0)then
        call PauseUnit(u,false)
        call SetUnitPathing(u,true)
        call FlushChildHashtable(udg_hash, GetHandleId(t))
        call DestroyTimer(t)
    endif
    set t = null
    set u = null
    set a = 0
    set d = 0
    set i = 0
    set d1 = 0
endfunction

function MoveUnits takes nothing returns nothing
    local timer t = GetExpiredTimer()
    local unit u = LoadUnitHandle(udg_hash,GetHandleId(t),0)
    local real d = LoadReal(udg_hash,GetHandleId(t),1)
    local real a = LoadReal(udg_hash,GetHandleId(t),2)
    local integer i = LoadInteger(udg_hash,GetHandleId(t),3)
    call SetUnitX(u,GetUnitX(u)+d*Cos(a))
    call SetUnitY(u,GetUnitY(u)+d*Sin(a))
    call AddSpecialEffect("Abilities\\Spells\\Human\\FlakCannons\\FlakTarget.mdl",GetUnitX(u),GetUn​itY(u))
    call DestroyEffect(bj_lastCreatedEffect)
    call SaveReal(udg_hash,GetHandleId(t),1,d-0.03)
    call SaveInteger(udg_hash,GetHandleId(t),3,i-1)
    if(i==0)then
        call GroupRemoveUnit(udg_hit,u)
        call PauseUnit(u,false)
        call SetUnitPathing(u,true)
        call FlushChildHashtable(udg_hash, GetHandleId(t))
        call DestroyTimer(t)
    endif
    set t = null
    set u = null
    set a = 0
    set d = 0
    set i = 0
endfunction

function GetMoveUnits takes nothing returns boolean
    return not(IsUnitType(GetFilterUnit(),UNIT_TYPE_STRUCTURE) and IsUnitType(GetFilterUnit(),UNIT_TYPE_MECHANICAL)) and GetWidgetLife(GetFilterUnit()) > .405 and GetUnitAbilityLevel(GetFilterUnit(),'Aloc') == 0
endfunction

function MoveHero takes nothing returns nothing
    local timer t = GetExpiredTimer()
    local timer t1 = null
    local unit u = LoadUnitHandle(udg_hash,GetHandleId(t),0)
    local unit u1 = LoadUnitHandle(udg_hash,GetHandleId(t),1)
    local real d = LoadReal(udg_hash,GetHandleId(t),2)
    local real dx = GetUnitX(u1) - GetUnitX(u)
    local real dy = GetUnitY(u1) - GetUnitY(u)
    local real a = Atan2(dy,dx)
    local group g = CreateGroup()
    local unit p = null
    local real a1 = 0
    local real a2 = 0
    if GetWidgetLife(u) > .405 then
        call SetUnitX(u,GetUnitX(u)+d*Cos(a))
        call SetUnitY(u,GetUnitY(u)+d*Sin(a))
        call SetUnitFacing(u,a*180/3.14)
        call AddSpecialEffect("Abilities\\Spells\\Human\\FlakCannons\\FlakTarget.mdl",GetUnitX(u),GetUn​itY(u))
        call DestroyEffect(bj_lastCreatedEffect)
        call GroupEnumUnitsInRange(g, GetUnitX(u), GetUnitY(u), 128, Condition(function GetMoveUnits))
        loop
            exitwhen CountUnitsInGroup(g) == 0
            set p = FirstOfGroup(g)
            if p!=u and p!=u1 and not IsUnitInGroup(p,udg_hit) then
                call GroupAddUnit(udg_hit,p)
                set t1 = CreateTimer()
                call SaveUnitHandle(udg_hash,GetHandleId(t1),0,p)
                call SaveReal(udg_hash,GetHandleId(t1),1,6)
                set a1 = Atan2(GetUnitX(u)-GetUnitX(p),GetUnitY(u)-GetUnitY(p))
                if a>0 and a1>0 then
                    if a>a1 then
                        call SaveReal(udg_hash,GetHandleId(t1),2,a-1.57)
                    else
                        call SaveReal(udg_hash,GetHandleId(t1),2,a+1.57)
                    endif
                else
                if a<0 and a1<0 then
                        if a<a1 then
                        call SaveReal(udg_hash,GetHandleId(t1),2,a-1.57)
                    else
                        call SaveReal(udg_hash,GetHandleId(t1),2,a+1.57)
                    endif
                else
                if a>a1 then
                    call SaveReal(udg_hash,GetHandleId(t1),2,a-1.57)
                else
                    call SaveReal(udg_hash,GetHandleId(t1),2,a+1.57)
                endif
                endif
                endif
                call SaveInteger(udg_hash,GetHandleId(t1),3,25)
                call UnitDamageTarget(u,p,25*GetUnitAbilityLevel(u,'A000'),true,false,ATTACK_TYPE_NORMAL,DAMAGE_TYPE_NORM​AL,WEAPON_TYPE_WHOKNOWS)
                call TimerStart(t1,.02,true,function MoveUnits)
                set t1 = null
            endif
            call GroupRemoveUnit(g,p)
            set p = null
        endloop
        call SaveReal(udg_hash,GetHandleId(t),2,d+0.04)
        if(SquareRoot(dx*dx+dy*dy)<=125)then
            call AddSpecialEffect("Abilities\\Spells\\Human\\ThunderClap\\ThunderClapCaster.mdl",GetUnitX(u​1),GetUnitY(u1))
            call DestroyEffect(bj_lastCreatedEffect)
            call UnitDamageTarget(u,u1,100*GetUnitAbilityLevel(u,'A000'),true,false,ATTACK_TYPE_NORMAL,DAMAGE_TYPE_NO​RMAL,WEAPON_TYPE_WHOKNOWS)
            call PauseUnit(u,false)
            call SetUnitPathing(u,true)
            call FlushChildHashtable(udg_hash, GetHandleId(t))
            call DestroyTimer(t)
            set t = CreateTimer()
            call PauseUnit(u1,true)
            call SetUnitPathing(u1,false)
            call UnitAddAbility(u1,'Aave')
            call UnitRemoveAbility(u1,'Aave')
            call SetUnitFlyHeight(u1,100,200)
            call SaveUnitHandle(udg_hash,GetHandleId(t),0,u1)
            call SaveReal(udg_hash,GetHandleId(t),1,d/3-1)
            call SaveReal(udg_hash,GetHandleId(t),2,a)
            call SaveInteger(udg_hash,GetHandleId(t),3,50)
            call SaveReal(udg_hash,GetHandleId(t),4,d)
            call TimerStart(t,.02,true,function MoveTarget)
        endif
    else
        call PauseUnit(u,false)
        call SetUnitPathing(u,true)
        call FlushChildHashtable(udg_hash, GetHandleId(t))
        call DestroyTimer(t)
    endif
    call DestroyGroup(g)
    set t = null
    set u = null
    set u1 = null
    set a = 0
    set d = 0
    set dx = 0
    set dy = 0
    set g = null
    set p = null
    set t1 = null
endfunction

function Trig_Dash_Conditions takes nothing returns boolean
        return GetSpellAbilityId() == 'A000' 
endfunction

function Trig_Dash_Actions takes nothing returns nothing
    local unit u = GetSpellAbilityUnit()
    local unit u1 = GetSpellTargetUnit()
    local timer t = CreateTimer()
    local real a = 180/3.14*Atan2(GetUnitY(u1)-GetUnitY(u),GetUnitX(u1)-GetUnitX(u))
    local real dx = GetUnitX(u1) - GetUnitX(u)
    local real dy = GetUnitY(u1) - GetUnitY(u)
    call PauseUnit(u,true)
    call SetUnitPathing(u,false)
    call SetUnitFacing(u,a)
    call SaveUnitHandle(udg_hash,GetHandleId(t),0,u)
    call SaveUnitHandle(udg_hash,GetHandleId(t),1,u1)
    call SaveReal(udg_hash,GetHandleId(t),2,(640000/SquareRoot(dx*dx+dy*dy)/50)-1)
    call TimerStart(t,.02,true,function MoveHero)
    set t = null
    set u = null
    set u1 = null
    set a = 0
endfunction

//===========================================================================
function InitTrig_Dash takes nothing returns nothing
    set gg_trg_Dash = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_Dash, EVENT_PLAYER_UNIT_SPELL_EFFECT )
    call TriggerAddCondition( gg_trg_Dash, Condition( function Trig_Dash_Conditions ) )
    call TriggerAddAction( gg_trg_Dash, function Trig_Dash_Actions )
endfunction
Pavell #7 - 3 года назад 1

» WarCraft 3 / Отталкивание юнита во время рывка

Ancient, меня не устраивает этот вариант, мне нужно, чтобы цель отталкивалась на 90 градусов в зависимости от стороны, с которой располагается юнит, которого надо оттолкнуть.
Pavell #8 - 3 года назад 0
Pavell #9 - 5 лет назад 0

» Dune: Raiders of Arrakis / Первый взгляд

Даже не думал, что мой ролик сюда опубликуют о_О а так, в целом я рад, что он многим здесь понравился =) Желаю удачи проекту и скорейшего его выхода.
Pavell #10 - 7 лет назад 1

» WarCraft 3 / Симметричный ландшафт

Большое спасибо за статью!!! пойду делать новый ландшафт)))))
а почему в декорациях и юнитах не работает команда отразить?
Pavell #11 - 8 лет назад 1

» WarCraft 3 / IV War v 1.3a OpenBeta1

Raid3N а сылку кинуть можеш?
Pavell #12 - 8 лет назад 2

» WarCraft 3 / IV War v 1.3a OpenBeta1

а почему у мя карта не запускается?