Если вы хотели бы использовать в своей карте нестандартное, оригинальное заклинание или наработку, но у вас не хватает знаний для реализации, то эта тема специально для вас. В данной теме вы можете, в определённом правилами формате, оставить заявку на создание необходимого вам заклинания или системы.
Если вы считаете, что у вас есть возможность выполнить какую-либо из имеющихся заявок, то вы можете оставить сообщение в определённом правилами формате, в котором указать какую из заявок собираетесь исполнить.

Правила темы

  • Запрещается дублирование заявок.
  • Любая заявка, написанная непонятным языком (обилие орфографических ошибок, орфоарт, отсутствие знаков препинания, использование рядов восклицательных и вопросительных знаков) будет удалена.
  • Обсуждение технических нюансов исполнения спелла или багов просьба вести через систему личных сообщений.
  • Для составления заявок используйте формы.
Заявки, не удовлетворяющие правилам, будут удалены !

Как составить заявку

Необходимо, используя форму составить сообщение в данной теме, где указать:
  • Желаемое название заказа
  • Желаемый метод исполнения (GUI/Jass/cJass/vJass)
  • Требуется ли возможность использовать спелл несколькими юнитами одновременно (MUI)
  • Цель применения способности
  • Количество уровней
  • Описание (Смысловое, а не художественное)
  • Технические характеристики (кол-во маны, параметры урона, перезарядки, время действия и т.п.) для каждого из уровней
Форма для составления заявки
# Заказ
**Название:** Название способности (или системы)
**Метод:** GUI/Jass/cJass/vJass/lua/angelscript
**MUI:** Обязательно/Не обязательно
**Цели:** Другой юнит / Сам юнит / Точка/ Область/Нет цели/Прочее (указать что именно)
**Количество уровней:** Целое число
**Описание:** Ваше описание. Можно слить со следующим.
**Технические характеристики:** Ваше описание. Можно слить с предыдущим.

Как принимать заказ

Необходимо, используя форму составить сообщение в данной теме, где указать:
  • Никнейм заказчика
  • Название выбранного вами заказа
  • Примерные сроки исполнения (конечно, их соблюдение не критично, но желательно)
Форма для принятия заявки
# Заказ принят
**Заказчик:** Никнейм заказчика
**Заказ:** Название способности/алгоритма
((центр
**Спелл будет завершен к [дата в формате дд.мм.гггг. без скобок]**
))
[ дата принятия заявки в формате дд.мм.гггг / дата, к которой спелл предположительно будет готов в формате дд.мм.гггг ]

Как сообщить о не/выполнении заказа

Необходимо, используя форму составить сообщение в данной теме, где указать:
  • Никнейм заказчика
  • Название выбранного вами заказа
  • Выполнен ли заказ
  • В случае, если заказ невыполним/не выполнен полностью, рекомендуется описать, что именно вам удалось/не удалось сделать.

  • Предоставить карту
Форма для не/выполненного заказа
Заклинание готово! [Если заказ выполнен успешно] / Не удалось выполнить заклинание [Если по каким-либо причинам вы не способны его выполнить] (1 из 2)
=
Заказчик: Никнейм заказчика
Заказ: Название способности
Выполнено: Да/Нет
-
[Сюда добавить инструкцию по импорту, или описать что у вас не/получилось, если не удалось выполнить заказ]
За качественно выполненный заказ вы получите дополнительно 200 единиц опыта.

Дополнительно: как приобрести спелл, не прибегая к этой теме

0. Пройдитесь по базе способностей xgm.guru/p/wc3/tag/ability или алгоритмов xgm.guru/p/wc3/tag/algorithm
A. Для начала загляните в Архив готовых спеллов. Возможно, спелл, аналогичный вашему, уже был сделан.
B. Проверьте, нет-ли нужного спелла в Библиотеке заклинаний. Проверенные спелл-мейкеры изготавливали заклинания специально для общественного использования.
C. Поищите общедоступные для открытия карты - там тоже бывают полезные вещи.
D. Если ничего не помогает, пройдитесь поиском по Академии - вероятно, что такие спеллы уже пытались делать и спрашивали как.
E. Если поиски не помогли, попробуй сделать его сам:
  • Осваиваем триггеры в Базе статей, F.A.Q., если не имеем понятия о них.
  • Существуют специальные статьи по созданию спеллов и баффов: 1, 2, 3, 4, 5
  • Поскольку ваши спеллы будут неоптимизированы, и более того, с кучей утечек - настоятельно рекомендуется читать статьи\темы про JASS. Тяжело читать? Легко делать!
  • Если ну никак не выходит сделать то что требуется, заходим в Академию и используем ее по основному назначению - задаем вопросы.

Разумные поиски и тщательное изучение помогут вам добиться результата.
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Этот комментарий удален
15
Заказ на работу
Всем привет! Нужно заклинание, по своей сути ничего сверхестественного, однако моих знаний не хватает, чтобы учесть все моменты и реализовать это не криво.
Заказ
Название: Яростный рывок
Метод: Jass
MUI: Не нужно
Цель: Другой юнит / Точка
Количество уровней: 3
Описание: Герой прыгает в толпу врагов(Прыгает как прыгуны в длину, а не в высоту, то есть прыжок высокий не нужен, а лишь слегка над землей, потому что герой очень массивный - вождь минотавров). Враги, оказавшиеся на пути, получают 175/275/375 единиц урона и расталкиваются в стороны, от вектора прыжка. Те враги, которые стояли напротив вектора, отталкиваются назад. При этом, если за врагами стоят их союзники и враги налетают на них, то соответственно отталкивают так же и союзников.
По возможности, сделать так, чтобы враги, отлетевшие в декорацию или стену, получили 50/70/100 единиц урона.
Технические характеристики: Тут нужно учитывать преграды, чтобы герой не перепрыгнул через декорации или стены и чтобы враги отлетели так же до стен/декораций, но не сквозь них.
Ответы (5)
28
Meddin, если никто не преуспеет, то сделаю на выходных, может раньше
28
Выполнение заказа
Meddin, всё что нужно изменить при импорте в коде помечено комментариями, достаточно скопировать папку Initialization и вставить в свою карту
если что-то не понятно или нужно переделать - пиши
код
function GetDirection takes real alpha, real gamma returns integer
    if ( alpha < bj_PI and not( gamma > alpha and gamma < alpha + bj_PI ) ) or ( alpha > bj_PI and gamma > alpha - bj_PI and gamma < alpha ) then
        return 2
    else
        return 1
    endif
endfunction

function ParabolaZ2 takes real y0, real y1, real h, real d, real x returns real
    return ( 2.00 * ( y0 + y1 - 2.00 * h ) * ( x / d - 1.00 ) + ( y1 - y0 ) ) * ( x / d ) + y0
endfunction

function GetLocZ takes real x, real y returns real
    call MoveLocation( udg_LFZ, x, y )
    return GetLocationZ( udg_LFZ )
endfunction

function IsUnitDead takes unit u returns boolean
    return IsUnitType( u, UNIT_TYPE_DEAD ) or GetUnitTypeId( u ) == 0
endfunction

function MoveCollision takes nothing returns nothing
    local timer t = GetExpiredTimer( )
    local timer t1
    local integer i = GetHandleId( t )
    local integer i1
    local unit target = LoadUnitHandle( udg_H, i, 0 )
    local unit caster = LoadUnitHandle( udg_H, i, 1 )
    local unit u
    local real a = LoadReal( udg_H, i, 2 )
    local real d = LoadReal( udg_H, i, 3 )
    local real s = LoadReal( udg_H, i, 5 )
    local real x
    local real y
    local real x1
    local real y1
    local group g = LoadGroupHandle( udg_H, i, 6 )
    local group g1
    local player p = GetOwningPlayer( caster )
    
    if s > d then
        set s = d
    endif
    
    set d = d - s
    
    set x = GetUnitX( target ) + s * Cos( a )
    set y = GetUnitY( target ) + s * Sin( a )
    
    call SetItemPosition( udg_TempItem, x, y )
    call SetItemVisible( udg_TempItem, false )
    
    set x1 = GetItemX( udg_TempItem )
    set y1 = GetItemY( udg_TempItem )
    
    if ( x + 1.00 < x1 or x - 1.00 > x1 ) or ( y + 1.00 < y1 or y - 1.00 > y1 ) then
        set x = x - s * Cos( a )
        set y = y - s * Sin( a )
        set d = 0.00
        
        call UnitDamageTarget( caster, target, 25.00, false, false, null, null, null )
        call DestroyEffect( AddSpecialEffectTarget( "Abilities\\Weapons\\AncientProtectorMissile\\AncientProtectorMissile.mdl", target, "chest" ) )
    endif
    
    call SetUnitX( target, x )
    call SetUnitY( target, y )
    
    call GroupEnumUnitsInRange( udg_TempGroup, x, y, 416.00, null )
    
    loop
        set u = FirstOfGroup( udg_TempGroup )
        exitwhen u == null
        call GroupRemoveUnit( udg_TempGroup, u )
        
        if not IsUnitDead( u ) and IsUnitEnemy( u, p ) and not IsUnitInGroup( u, g ) and IsUnitInRange( u, target, 16.00 ) then
            call GroupAddUnit( g, u )
            
            set t1 = CreateTimer( )
            set i1 = GetHandleId( t1 )
            set x1 = GetUnitX( u )
            set y1 = GetUnitY( u )
            
            call SaveUnitHandle( udg_H, i1, 0, u )
            call SaveUnitHandle( udg_H, i1, 1, caster )
            
            call SaveReal( udg_H, i1, 2, Atan2( y1 - y, x1 - x ) )
            call SaveReal( udg_H, i1, 3, LoadReal( udg_H, i, 4 ) * 0.50 )
            call SaveReal( udg_H, i1, 4, LoadReal( udg_H, i, 4 ) * 0.50 )
            call SaveReal( udg_H, i1, 5, LoadReal( udg_H, i, 5 ) * 0.50 )
            
            set g1 = CreateGroup( )
            set bj_groupAddGroupDest = g1
            call ForGroup( g, function GroupAddGroupEnum )
            
            call SaveGroupHandle( udg_H, i1, 6, g1 )
            
            call TimerStart( t1, 0.01, true, function MoveCollision )
            
            set g1 = null
            set t1 = null
        endif
    endloop
    
    if d <= 0.00 then
        call DestroyGroup( g )
        
        call PauseTimer( t )
        call DestroyTimer( t )
        call FlushChildHashtable( udg_H, i )
    else
        call SaveReal( udg_H, i, 3, d )
    endif
    
    set t = null
    set g = null
    set target = null
    set caster = null
endfunction

function Move takes nothing returns nothing
    local timer t = GetExpiredTimer( )
    local timer t1
    local integer i = GetHandleId( t )
    local integer i1
    local unit caster = LoadUnitHandle( udg_H, i, 0 )
    local unit u
    local real a = LoadReal( udg_H, i, 1 )
    local real d = LoadReal( udg_H, i, 2 )
    local real s = LoadReal( udg_H, i, 4 )
    local real x
    local real y
    local real x1
    local real y1
    local player p = GetOwningPlayer( caster )
    local group g = LoadGroupHandle( udg_H, i, 8 )
    local group g1
    
    if s > d then
        set s = d
    endif
    
    set d = d - s
    
    set x = GetUnitX( caster ) + s * Cos( a )
    set y = GetUnitY( caster ) + s * Sin( a )
    
    call SetItemPosition( udg_TempItem, x, y )
    call SetItemVisible( udg_TempItem, false )
    
    set x1 = GetItemX( udg_TempItem )
    set y1 = GetItemY( udg_TempItem )
    
    // check pathing
    if ( x + 1.00 < x1 or x - 1.00 > x1 ) or ( y + 1.00 < y1 or y - 1.00 > y1 ) then
        set x = x - s * Cos( a )
        set y = y - s * Sin( a )
    endif
    
    call SetUnitX( caster, x )
    call SetUnitY( caster, y )
    call SetUnitFlyHeight( caster, ParabolaZ2( LoadReal( udg_H, i, 6 ), LoadReal( udg_H, i, 5 ), LoadReal( udg_H, i, 7 ), LoadReal( udg_H, i, 3 ), d ) - GetLocZ( x, y ), 0.00 )
    
    call GroupEnumUnitsInRange( udg_TempGroup, x, y, 464.00, null ) // radius with collision ( caster + target max collisions (200.00 + 200.00) )
    
    loop
        set u = FirstOfGroup( udg_TempGroup )
        exitwhen u == null
        call GroupRemoveUnit( udg_TempGroup, u )
        
        if not IsUnitDead( u ) and IsUnitEnemy( u, p ) and not IsUnitInGroup( u, g ) and IsUnitInRange( u, caster, 64.00 ) then // 64.00 - radius with unit collision
            call GroupAddUnit( g, u )
            
            call UnitDamageTarget( caster, u, LoadReal( udg_H, i, 9 ), false, false, null, null, null ) // damage
            call DestroyEffect( AddSpecialEffectTarget( "Abilities\\Weapons\\AncientProtectorMissile\\AncientProtectorMissile.mdl", u, "chest" ) )
            
            set t1 = CreateTimer( )
            set i1 = GetHandleId( t1 )
            set x1 = GetUnitX( u )
            set y1 = GetUnitY( u )
            
            call SaveUnitHandle( udg_H, i1, 0, u )
            call SaveUnitHandle( udg_H, i1, 1, caster )
            
            if GetDirection( a, Atan2( y1 - y, x1 - x ) ) == 1 then // left or right move
                call SaveReal( udg_H, i1, 2, a + bj_PI * 0.50 )
            else
                call SaveReal( udg_H, i1, 2, a - bj_PI * 0.50 )
            endif
            
            call SaveReal( udg_H, i1, 3, 416.00 ) // distance for discarding
            call SaveReal( udg_H, i1, 4, 416.00 )
            call SaveReal( udg_H, i1, 5, 7.00 ) // speed of discarding
            call SaveReal( udg_H, i1, 7, LoadReal( udg_H, i, 10 ) ) // wall damage
            
            // save group of all units thats already got damage from spell
            set g1 = CreateGroup( )
            set bj_groupAddGroupDest = g1
            call ForGroup( g, function GroupAddGroupEnum )
            
            call SaveGroupHandle( udg_H, i1, 6, g1 )
            
            call TimerStart( t1, 0.01, true, function MoveCollision )
            
            set g1 = null
            set t1 = null
        endif
    endloop
    
    if d <= 0.00 then
        call PauseUnit( caster, false )
        call DestroyEffect( AddSpecialEffect( "Abilities\\Spells\\Human\\ThunderClap\\ThunderClapCaster.mdl", x + 64.00 * Cos( a ), y + 64.00 * Sin( a ) ) )
        
        call DestroyGroup( g )
        
        call PauseTimer( t )
        call DestroyTimer( t )
        call FlushChildHashtable( udg_H, i )
    else
        call SaveReal( udg_H, i, 2, d )
    endif
    
    set t = null
    set g = null
    set caster = null
endfunction

function SetAnim takes nothing returns nothing
    local timer t = GetExpiredTimer( )
    local unit caster = LoadUnitHandle( udg_H, GetHandleId( t ), 0 )
    
    call PauseUnit( caster, true )
    call SetUnitAnimation( caster, "attack slam" )
    call QueueUnitAnimation( caster, "stand" )
    
    call TimerStart( t, 0.01, true, function Move )
    
    set t = null
    set caster = null
endfunction

function Trig_Spell_Actions takes nothing returns nothing
    local timer t = CreateTimer( )
    local integer i = GetHandleId( t )
    local integer lvl
    local unit caster = GetTriggerUnit( )
    local real x = GetUnitX( caster )
    local real y = GetUnitY( caster )
    local real x1 = GetSpellTargetX( )
    local real y1 = GetSpellTargetY( )
    local real d
    
    if UnitAddAbility( caster, 'Arav' ) then
        call UnitRemoveAbility( caster, 'Arav' )
    endif
    
    call SaveReal( udg_H, i, 5, GetLocZ( x, y ) ) // start height
    call SaveReal( udg_H, i, 6, GetLocZ( x1, y1 ) ) // end height
    
    set x = x1 - x
    set y = y1 - y
    set d = SquareRoot( x * x + y * y )
    
    call SaveUnitHandle( udg_H, i, 0, caster )
    call SaveReal( udg_H, i, 1, Atan2( y, x ) ) // angle
    call SaveReal( udg_H, i, 2, d ) // distance
    call SaveReal( udg_H, i, 3, d ) // distance max
    call SaveReal( udg_H, i, 4, d * 0.018 ) // speed
    call SaveReal( udg_H, i, 7, 75.00 + ( 750.00 - d ) * 0.15 ) // parabola height
    call SaveGroupHandle( udg_H, i, 8, CreateGroup( ) )
    
    set lvl = GetUnitAbilityLevel( caster, GetSpellAbilityId( ) )
    if lvl == 1 then // ability level
        call SaveReal( udg_H, i, 9, 175.00 ) // start damage
        call SaveReal( udg_H, i, 10, 50.00 ) // wall damage
    elseif lvl == 2 then
        call SaveReal( udg_H, i, 9, 275.00 )
        call SaveReal( udg_H, i, 10, 70.00 )
    else
        call SaveReal( udg_H, i, 9, 375.00 )
        call SaveReal( udg_H, i, 10, 100.00 )
    endif
    
    call TimerStart( t, 0.00, false, function SetAnim )
    
    set t = null
    set caster = null
endfunction

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

function InitTrig_Spell takes nothing returns nothing
    set gg_trg_Spell = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_Spell, EVENT_PLAYER_UNIT_SPELL_EFFECT )
    call TriggerAddCondition( gg_trg_Spell, Condition( function Trig_Spell_Conditions ) )
    call TriggerAddAction( gg_trg_Spell, function Trig_Spell_Actions )
endfunction

Загруженные файлы
28
Meddin, сор что долго, у меня проблемы со светом и жизнью в целом, лучше бы сдох
15
rsfghd, прими мою благодарность! Как раз на выходных займусь переносом, если что отпишусь.
14
сор что долго, у меня проблемы со светом и жизнью в целом, лучше бы сдох
Мне очень жаль это слышать. Желаю, чтобы у тебя всё наладилось. Простите за оффтоп.
PS способность шикарная
38
Последние новости!
Ресурс переименован в "Способности и алгоритмы на заказ"
Заказывайте заклинания, алгоритмы и целые наработки. В дальнейшем мы планируем развивать систему поощрения за исполнение заказов!
4
Заказ на работу

Заказ.

Название пока нет.
Метод гуй.
Цели сам юнит.
Кол-во уровней 3.
Описание когда герой наносит крит урон герой получает хил (паладина на 100 хп) и + 10 к урону на 5 сек. и антимаг щит (банши) на 5 сек, а на врага накладывается дебаф в виде -3 брони на 5 сек. С каждым уровнем только будет увеличиваться шанс крита на 10-15-20%.
Этот комментарий удален
7
Заказ на работу
Всем привет! Помогите сделать простой disarm через склад.
я устал пытаться (
# Заказ
Название: дизарм
Метод: GUI/Jass
MUI: Обязательно!
Цели: Другой юнит (враг)
Количество уровней: 3
Описание: Геройская способность. Накидывается на вражеского воина/героя (кроме техники). Запрещает ему атаковать на время.
Технические характеристики: Желательно реализовать наипростейшим образом, через склад. (не использвать проклятие, горелку и другие заклинания которые блочат атаку). Ур1 - 6 сек дизарма. Ур2 - 8 сек. Ур3 - 10 сек дизарма.
покажите мне идиоту как это сделать пожалуйстаааааааа...
Ответы (4)
28
Выполнение заказа
mistwood, Вот простой пример
Загруженные файлы
7
Roy Mustang, бро, какая версия варика?
карту не открывает(((
у меня старичок 1.26 на нем клепаю и играем с работягами
28
Выполнение заказа
mistwood, два варианта. Первый заблокирован ибо работает криво - не учитывает существующий дебафф. Т.е. если ты не можешь наложить дебафф на юнита, у которого уже есть этот дебафф - то всё оке, если же ты хочешь обновление продолжительности дебаффа повторным кастом - следует юзать второй вариант, отделённый комментарием. Там всё на гуи, так что разберёшься
Загруженные файлы
7
rsfghd, Спасибо большое, сейчас потестчу! Дай бог тебе здоровья крепкого!
1
Всем ку! Помогите сделать этот триггер на GUI
# Заказ
Название: Угол поворота Юнитов
Метод: GUI
Описание: Каждые 0.03 или 0.01 сек Коричневые юниты повернутся к противоположной угол поворота Самого героя от синего точки, тоесть если герой повернется спиной к синему точку то другие юниты тоже должны повернуться спином к синему точку. Заранее Спасибо !!!
Загруженные файлы
Ответы (5)
28
Выполнение заказа

Заклинание готово!

Заказчик: Panda_95
Заказ: Угол поворота Юнитов
Выполнено: Да
Карта: xgm.guru/files/100/123666/comments/541795/facing.w3x

Загруженные файлы
1
rsfghd, Можно кое что ещё заодно попросить пж, а как переместить
их так чтобы расятояние между юнитом и точки были равны растоянием между героя и точки (угол поворота при этом не меняется)
28
Panda_95, переменными нужно пользоваться чтобы утечек было, но я не буду расписывать как юзать кастомскрипты и прочее:
  1. укажи переменной типа real расстояние между героем и точкой
  2. выбери всех юнитов, которым хочешь задать расстояние
  3. 2.1. переместить выбранного юнита в точку с полярным смещением
  4. 2.2. первый аргумент - центральная точка, второй аргумент - расстояние (пункт 1), третий аргумент - угол, на который переместить (укажи просто угол между выбранным юнитом и точкой)
если не понятно, то позже сделаю пример, может сегодня, может завтра, может через 20 лет
1
rsfghd,
у вас есть дискорд? или прочее мессенджеры? мой дс: .Panda_95
2
Доброго всем дня! Нужны несколько заклинаний, с улучшениями их предметами.
ВАЖНО: что бы они все были через сам редактор (если получится) а не кодом, тк почему-то после выхода 2.0 Reforged стали ошибки в кодовых строчках повально и не очень хочется потом с этим столкнуться. Главное, чтобы все настройки у спеллов были простыми и в любой момент какие-то значения можно было поменять.
Сам заказ
Название: Темная порча (E)
Метод: Главное не кодом а базовым инструментом самого редактора (как и говорил выше).
MUI: (Не знаю, что это)
Цель: Точка на карте (можно с обозначениями кругов на земле)
Количество уровней: 4
Описание: По сути способность как у Гул Дана в Hots но с доработками.
Герой выбирает указанное направление и перед ним с разницей в 0,6 сек. создаются 3 взрыва дальше и дальше вперед, один за другим областью в 325 АоЕ, каждый из которых наносит 40/70/100/130 ед. магического урона сразу замедляя скорость передвижения на 75% в течении 0,5 сек. и накладывают на цель Проклятие наносящее 20/30/40/50 ед. магического урона периодический в течении 6 сек. (12 сек. если улучшить предметом).
Если цель под Проклятием погибает она создает еще один взрыв (два если улучшить предметом) спустя 1,25 сек под собой так же "дебафая" противников рядом (смерть, 1 сек., взрыв).
Улучшения должны работать соответственно пока предметы в инвентаре героя. Если их выложить то улучшения пропадут.
Предмет 1 "Книга проклятых: Разложение": Улучшает способность "Темная порча" -
! Усиливает основной урон от взрывов до 80/140/200/260 ед. и время действия Проклятия до 12 сек.
! После применения способности, спустя 2,5 сек., она пойдет в обратном порядке назад (не к герою, а по тем областям что уже были).
Предмет 2 "Сфера проклятых: Горе побежденным": Улучшает способность "Темная порча" -
! Ваша подконтрольная Нежить получает бонус 50% к скорости атаки против противников под действием заклинания «Темная порча».
! Если противник умирает под действием способности «Темная порча» создаются два взрыва (смерть, 1 сек., взрыв, 1 сек., взрыв) и с 33% шансом может призвать скелета-воина (просто выберете любого, потом поменяю) на 20 сек.
Название: Жатва душ (F) пассивная
Метод: Главное не кодом а базовым инструментом самого редактора (как и говорил выше).
MUI: (Не знаю, что это)
Цель: Сам герой, аура
Количество уровней: 4
Описание: Каждая смерть противников в радиусе 1800 АоЕ отрывает его Душу и направляет к герою со скоростью 800 (снаряд некроманта зеленый череп), нанося всем врагам на пути 50% урона от разума + 35/50/65/80 ед. магического урона. По достижения самого героя, Душа повышает скорость регенерации здоровья героя на 4ед. в сек. Эффект суммируется до 8/10/12/14 раз и длиться 10 сек.
Каждая новая душа обновляет время действия.
(Отрыв души должен работать только на существ за которых можно получить опыт и не работать на призванных)
Улучшения должны работать соответственно пока предметы в инвентаре героя. Если их выложить то улучшения пропадут.
Предмет 2 "Меч проклятых: Утроба смерти": Улучшает способность «Жатва душ» -
! Максимальное количество эффектов скорости регенерации здоровья повышаются до 14/16/18/20.
! Каждая Душа теперь так же повышает урон от атак героя на 3 ед.
! Скорость снаряда Души повышается до 2400 (в три раза быстрее).
Ответы (25)
28
SebastianCarrey, не говори "через редактор". То, о чём ты упоминаешь, называется GUI (графический пользовательский интерфейс), и без кода не выйдет, если тебе, конечно, не пофиг на утечки, которые могут возникнуть при использовании гуишных функций

MUI: (Не знаю, что это)
чел.. ну удосужься хотя бы ресурс почитать, в котором заявку оставляешь
Загруженные файлы
2
SebastianCarrey, не говори "через редактор". То, о чём ты упоминаешь, называется GUI (графический пользовательский интерфейс), и без кода не выйдет, если тебе, конечно, не пофиг на утечки, которые могут возникнуть при использовании гуишных функций

MUI: (Не знаю, что это)
чел.. ну удосужься хотя бы ресурс почитать, в котором заявку оставляешь
Привет) на счет MUI понял, спасибо) Способность можно привязать к одному юниту.
По поводу исполнения тогда, хотелось бы без утечек но так что бы было максимально понятно.
Как описывал ситуацию, мне чел один делал много способностей но вышел 2.0 и там в каждой строчке почти теперь ошибка. Мне главное, как человеку который не шарит в кодах, понять что там происходит.
24
вышел 2.0 и там в каждой строчке почти теперь ошибка
Чекбокс с джассхелпера снялся?
2
вышел 2.0 и там в каждой строчке почти теперь ошибка
Чекбокс с джассхелпера снялся?
А я фиг знает, Раньше вроде какую то прогу ставил на WorldEditor. Но после обновы видимо все послетало.
2
SebastianCarrey, так скинь пример кода и саму ошибку
Вот пример чьей то карты даже. Делал кодом парень. Хотел просто наработки к себе в карту взять. В итоге решил просто ее пересохранить и вылетает куча ошибок.
Загруженные файлы
2
SebastianCarrey, у меня нет рефа
Ладно, бог с ним) сделайте как можете, типа кодом. Потом при импорте тогда посмотрим какие ошибки будут.
К слову, для более качественного импорта и в целом для работы с кодом, дополнительно мне что то надо установить?
28
сделайте как можете, типа кодом
я и не говорил, что собираюсь делать, пускай и могу)
повторюсь, у меня рефа нет, а соответственно нет функций для спокойного изменения скорости атаки, урона с руки или регенерации, для этого придётся костыли цеплять, что: 1. глупо, 2. требует базы данных, 3. требует создание соответствующих абилок в ро
если тебя не парят абилки на костылях - ок, могу потом взяться за роботу, но я бы дождался человека, который сделает по красоте
31
rsfghd, в ужопе Blz говно проброшено. Можешь на ваниле сделать.
28
nazarpunk, а, серьёзно? Ему достаточно будет просто приставку добавить? Удобно, тогда оке
31
что бы они все были через сам редактор (если получится) а не кодом
Как ты себе представляешь эти способности без кода?
31
Ему достаточно будет просто приставку добавить?
Они там прям с приставкой работают. Делалось специально, чтоб копипаста кода рефа работала. В TESH я их не добавлял, но они есть в common.j.

P.S. Можешь даже на GUI сделать.
2
что бы они все были через сам редактор (если получится) а не кодом
Как ты себе представляешь эти способности без кода?
Я думал мб через даммики как то. Ну если не получится то кодом тогда можно, если кто делать будет. МНе просто объяснить будет нужно где я что своими криворучками не так делаю)
31
SebastianCarrey, как ты даммики через редактор будешь делать? А если ты за редактор триггеров, то это уже код получается.
2
Доброго всем дня! Нужны несколько заклинаний, с улучшениями их предметами.
ВАЖНО: что бы они все были через сам редактор (если получится) а не кодом, тк почему-то после выхода 2.0 Reforged стали ошибки в кодовых строчках повально и не очень хочется потом с этим столкнуться. Главное, чтобы все настройки у спеллов были простыми и в любой момент какие-то значения можно было поменять.
Сам заказ
Название: Темная порча (E)
Метод: Главное не кодом а базовым инструментом самого редактора (как и говорил выше).
MUI: (Не знаю, что это)
Цель: Точка на карте (можно с обозначениями кругов на земле)
Количество уровней: 4
Описание: По сути способность как у Гул Дана в Hots но с доработками.
Герой выбирает указанное направление и перед ним с разницей в 0,6 сек. создаются 3 взрыва дальше и дальше вперед, один за другим областью в 325 АоЕ, каждый из которых наносит 40/70/100/130 ед. магического урона сразу замедляя скорость передвижения на 75% в течении 0,5 сек. и накладывают на цель Проклятие наносящее 20/30/40/50 ед. магического урона периодический в течении 6 сек. (12 сек. если улучшить предметом).
Если цель под Проклятием погибает она создает еще один взрыв (два если улучшить предметом) спустя 1,25 сек под собой так же "дебафая" противников рядом (смерть, 1 сек., взрыв).
Улучшения должны работать соответственно пока предметы в инвентаре героя. Если их выложить то улучшения пропадут.
Предмет 1 "Книга проклятых: Разложение": Улучшает способность "Темная порча" -
! Усиливает основной урон от взрывов до 80/140/200/260 ед. и время действия Проклятия до 12 сек.
! После применения способности, спустя 2,5 сек., она пойдет в обратном порядке назад (не к герою, а по тем областям что уже были).
Предмет 2 "Сфера проклятых: Горе побежденным": Улучшает способность "Темная порча" -
! Ваша подконтрольная Нежить получает бонус 50% к скорости атаки против противников под действием заклинания «Темная порча».
! Если противник умирает под действием способности «Темная порча» создаются два взрыва (смерть, 1 сек., взрыв, 1 сек., взрыв) и с 33% шансом может призвать скелета-воина (просто выберете любого, потом поменяю) на 20 сек.
Название: Жатва душ (F) пассивная
Метод: Главное не кодом а базовым инструментом самого редактора (как и говорил выше).
MUI: (Не знаю, что это)
Цель: Сам герой, аура
Количество уровней: 4
Описание: Каждая смерть противников в радиусе 1800 АоЕ отрывает его Душу и направляет к герою со скоростью 800 (снаряд некроманта зеленый череп), нанося всем врагам на пути 50% урона от разума + 35/50/65/80 ед. магического урона. По достижения самого героя, Душа повышает скорость регенерации здоровья героя на 4ед. в сек. Эффект суммируется до 8/10/12/14 раз и длиться 10 сек.
Каждая новая душа обновляет время действия.
(Отрыв души должен работать только на существ за которых можно получить опыт и не работать на призванных)
Улучшения должны работать соответственно пока предметы в инвентаре героя. Если их выложить то улучшения пропадут.
Предмет 2 "Меч проклятых: Утроба смерти": Улучшает способность «Жатва душ» -
! Максимальное количество эффектов скорости регенерации здоровья повышаются до 14/16/18/20.
! Каждая Душа теперь так же повышает урон от атак героя на 3 ед.
! Скорость снаряда Души повышается до 2400 (в три раза быстрее).
Так, на самом деле неважно какой способ исполнения будет, главное что бы работало на Рефе)
1 пункт от ScorpioT1000: 4.1.1 Размещение бессмысленных сообщений (флуд). Не нужно цитировать стены текста
28
Выполнение заказа
SebastianCarrey, сделал пока тёмную порчу

инструкция по импорту
в триггере SpellE настроить следующее
379 строка - равкод основной абилки
323 строка - равкод скелета
324 - равкод дебаффа
325/327 - равкод абилки для увеличения скорости атаки
192-294 - шаблоны с параметрами, там присутствуют комменты что к чему, можешь по такому же шаблону добавлять больше абилок и более гибко настраивать урон, дистанцию, количество взрывов и остальную пургу, думаю разберёшься, там не сложно, всё что зелёное это комменты, чтобы убрать комментирование сотри двойной слеш (//) или слеши со звёздочками (/* */)
296-298 - усиление от книги проклятых (двойной урон и продолжительность дебаффа, возвращение никак не настраивается)
305-309 - усиление сферы проклятых (шанс спавна, кто спавнится, время спавна и время второго взрыва)
174 - через сколько секунд создавать следующий взрыв (0.60)
162 - через сколько секунд возвращать взрывы в обратную сторону (2.50)
58 - дополнительный эффект по окончанию дебаффа (огонь от Doom'a резко пропадал если юнит не умирал, мне это не понравилось, эти строки можно стереть полностью (57-59)
внутренности триггера AllGlobals можно закинуть в шапку карты

потом вторую абилку сделаю, если с этой всё ок будет
Загруженные файлы
28
SebastianCarrey, посмотрел твой последний комм в этом ресурсе, если ты хочешь, чтобы с повышением уровня абилки спавнились скелеты разного уровня, то на 307 строке триггера SpellE вместо set A.summonId = 'nlv1' напиши/вставь следующее:
if lvl == 1 then
	set A.summonId = 'nlv1'
elseif lvl == 2 then
	set A.summonId = 'nlv2'
elseif lvl == 3 then
	set A.summonId = 'nlv3'
else
	set A.summonId = 'nlv4'
endif
и 323 строку замени на это:
local integer i = GetUnitTypeId( GetAttacker( ) )

if i == 'nlv1' or i == 'nlv2' or i == 'nlv3' or i == 'nlv4' then
можешь и более простым способом - добавь своим скелетам абилку пустышку и проверяй её
if GetUnitAbilityLevel( GetAttacker( ), 'абилка пустышка' ) > 0 then
2
rsfghd:
Привет!
Спасибо за проделанную работу большое.
Но у меня с кодом опять какая то хрень. (Скрин)
В рефордже вроде говорил что никакой JaasHelper не нужен, он типа вшит уже внутрь.
Но я не допонимаю что нужно скачать что бы видеть нумерованные строчки кода.
Когда что то меняю в карте, добавляю юнита или двигаю предмет, сохраняю и вот вылетает куча ошибок. Пытался запустить без изменений, чисто потестить, тыкаю проверить карту, черный экран и выкидывает в главное меню.
Как думаешь что надо сделать?
Загруженные файлы
28
SebastianCarrey, покажи панель сверху у редактора, я хз какие там есть настройки. Вджасс то может быть и вшит, но отключён
2
rsfghd:
Привет, я покопался в редакторе, включил все галочки и теперь вот какая ошибка вылетает:
Загруженные файлы
28
SebastianCarrey, замени BlzSetSpecialEffectFacing на BlzSetSpecialEffectYaw, я ориентировался на функции южапи
24
я покопался в редакторе, включил все галочки
Жесть, я написал об этом в этой же ветке комментариев 3 недели назад xgm.guru/p/wc3/needspells/comments/view/542484
2
SebastianCarrey, как ты даммики через редактор будешь делать? А если ты за редактор триггеров, то это уже код получается.
Ну вот я типа при использовании спелла, создавал юнита который чисто делал эффект при этом иногда выдавал предмет герою который сразу как руна юзался, от чего происходили некоторые способности. Но так опять же, возможны утечки наверное, я это понимаю. Просто руки пока до такого только дошли.
31
SebastianCarrey, ну тоесть ты тупо писал код. Только не буквами, а через гуймуй. Тобишь по сути ты просишь писать не пиша код. Гейниально.
2
SebastianCarrey, ну тоесть ты тупо писал код. Только не буквами, а через гуймуй. Тобишь по сути ты просишь писать не пиша код. Гейниально.
Да я другое имел ввиду. Есть код который пишется функциями всякими и горой текста, с которым у меня беда. А это именно внутренний функционал игры, как я понял GUI. На нем я нет-нет да и могу что то сделать.

SebastianCarrey, научиться работать с этой горой текста это около месяца на раслабоне. Но оно потом экономит просто уйму времени.
Я даже не знаю с чего вообще начать изучать этот момент с кучей текста. Идей много, правда. Может когда нибудь заполоню XGM авторскими заклинаниями, так сказать))
Ответы (3)
31
SebastianCarrey, научиться работать с этой горой текста это около месяца на раслабоне. Но оно потом экономит просто уйму времени.
28
nazarpunk, у меня на более менее нормальный уровень чистого джасса ушёл где-то год, я инфу со всех углов искал, это мой первый псевдоязык. Впрочем, его диалекты дались намного легче, что в принципе помогает воспринимать другой код, вроде того же луа
31
Я даже не знаю с чего вообще начать изучать этот момент с кучей текста.
Вот, есть сухая документация, если реально хочешь разобраться, то тегни меня в любом из каналов, расскажу.
Этот комментарий удален
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.