Добавлен , опубликован
Алгоритмы, Наработки и Способности
Способ реализации:
Zinc
Тип:
Способность
Версия Warcraft:
1.26+

AOE Благодать

MUI: да
Утечки: нет
Даммики: нет
Импорт: иконка, эффект
Требования: JNGP

Видео

Установка

  • импортировать SpellHolyBoltAOE.zn
  • скопировать способность SHhb Благодать (герой).
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
12
5 лет назад
0
Как сделать такое же, только без необходимости выбора цели? Т.е. чтобы автоматом выбиралась область вокруг героя, без наведения курсора с областью.
2
29
5 лет назад
2
Как сделать такое же, только без необходимости выбора цели? Т.е. чтобы автоматом выбиралась область вокруг героя, без наведения курсора с областью.
Я описывал в статье или на свой страх и риск замените строчку
 location loc = GetSpellTargetLoc();
//на
 location loc = GetUnitPosition(GetTriggerUnit());
И в способности установите тип в "Мгновенное"
0
19
3 года назад
0
хм, че-то я меняю код и при тесте крашит варик. в чем проблем?
0
48
3 года назад
0
Elmibur:
защита от взлома)
0
19
3 года назад
0
защита от взлома
а как сменить тогда количевство хила?
0
48
3 года назад
0
Elmibur:
это к назару
0
27
3 года назад
0
Можно было бы переменную булекспра пихнуть через гуи, а так же сами настройки, чтобы не шарящим за код было проще настраивать (к примеру есть разные варианты абилки, не копировать же весь код заново). Так же настроить, чтобы не только нежить получала варианты ничего/дамажить/лечить, чтобы пользователь сам выбирал к кому это применимо. Ну и оставить естественно возможность редактировать действия абилки через гуи. Перед получением урона выставить какую-то там глобалку на единичку. Если юнит получил урон и оно равно единичке, значит это твоя абилка, игрок сам сможет пихнуть сколько угодно эффектов и различных настроек
2
48
3 года назад
Отредактирован N7 Molot
2
rsfghd:
Автор не любил gui, так этому не бывать(
0
17
3 года назад
0
rsfghd, если взять хотя бы 25 героев, у которых по 4 абилки, где у каждой по 3 переменных-параметра, - получается 300 переменных на гуи. Да еще переменные с других систем. Поэтому действительно проще, когда переменные для способности находятся там же, где и сама способность
0
27
3 года назад
Отредактирован rsfghd
0
Vlod, ты неправильно понял, локальным переменным присваивать глобалки. В итоге всего лишь несколько глобалок-настроек для всех твоих 100 абилок. Я уже делал так, а вот копировать весь этот код 100 раз уже не очень)
Да и для друзей активно этой темой пользуюсь, чтобы с кодом не мучились

Вот пример

N7 Molot, ну автор же для других людей всё таки делал))
Гуишникам и так страшно в код лезть, а тут ещё и зинк, пускай все предоставленные настройки и наверху. Те, кто шарит за абилки и на гуи смогут это сделать, поэтому я ориентировался на ландшафтеров всяких или любителей синематиков)
2
48
3 года назад
2
rsfghd:
поверь мне, автор считает гуишниов, как людей, которые во времена вов используют каменные копья против ак-47
0
17
3 года назад
0
поверь мне, автор считает гуишниов, как людей, которые во времена вов используют каменные копья против ак-47
А вот тут ты не прав. Автор гуишников за людей не считает.
0
15
3 года назад
0
Сенсей по Lua вернулся! (:
0
48
3 года назад
0
GetLocalPlayer:
ну или так
2
29
1 год назад
Отредактирован nazarpunk
2
Вышла новая версия!
  • Переписан код
  • Добавлен гитхаб
  • Добавлен импорт
  • Добавлена проверка коллизии
  • Добавлена ссылка на GUI версию
0
29
1 год назад
0
А как же реализации на cJass, vJass и чистом JASS без jasshelper и т.п.?
Версия на wurst будет тоже или нет?
0
29
1 год назад
0
А как же реализации на cJass, vJass и чистом JASS без jasshelper и т.п.?
cJass идёт лесом, ZinC это vJass, а чистый жасс можно скопировать из war3map.j
Версия на wurst будет тоже или нет?
Обязательно, когда ты запилишь его поддержку в IntelliJ.
0
29
1 год назад
0
cJass идёт лесом
Чем тебе cJass не угодил?
В любом случае жду следующие виды благодати, но это лишь своего рода идея предложение, но не более)
  • Пронзающая благодать
  • Волна благодати
  • Дождь из благодати
  • Благодатипад
0
29
1 год назад
0
Чем тебе cJass не угодил?
Телескопы нынче дорогие.
1
29
1 год назад
1
Телескопы нынче дорогие.
Это не аргумент. Можно не сарказмом? Или тебе не нравится один его неприятный фактор, или как он обрабатывает код?
0
29
1 год назад
Отредактирован nazarpunk
0
Это не аргумент.
Очень даже аргумент.
Можно не сарказмом?
Нит.
Или тебе не нравится один его неприятный фактор, или как он обрабатывает код?
Фактор там не один и в совокупности получается одна большая куча ... факторов.
Так что я тупо снёс папку AdicHelper и зажил счастливо.
0
14
11 месяцев назад
0
Способ реализации:
Zinc
изи перевёл в православный
globals
//globals from SpellHolyBoltAOE:
constant boolean LIBRARY_SpellHolyBoltAOE=true
group SpellHolyBoltAOE__g=CreateGroup()
unit SpellHolyBoltAOE__caster
unit SpellHolyBoltAOE__target
real SpellHolyBoltAOE__x
real SpellHolyBoltAOE__y
real SpellHolyBoltAOE__range
real SpellHolyBoltAOE__heal
real SpellHolyBoltAOE__damage
real SpellHolyBoltAOE__life
real array SpellHolyBoltAOE__data
boolean SpellHolyBoltAOE__isEnemy
boolean SpellHolyBoltAOE__isUndead
integer SpellHolyBoltAOE__level
constant integer SpellHolyBoltAOE__abilityId='SHhb'
constant integer SpellHolyBoltAOE__allyUndeadAction=0
constant integer SpellHolyBoltAOE__enemyNoUndeadAction=0
constant string SpellHolyBoltAOE__spellEffect="HolyLight.mdx"
constant string SpellHolyBoltAOE__spellEffectAttach="origin"
constant attacktype SpellHolyBoltAOE__attackType=ATTACK_TYPE_MAGIC
//endglobals from SpellHolyBoltAOE
    // Generated
trigger gg_trg_SpellHolyBoltAOE= null

trigger l__library_init

//JASSHelper struct globals:

endglobals
native UnitAlive takes unit u returns boolean


//library SpellHolyBoltAOE:

    function SpellHolyBoltAOE__getRange takes nothing returns real
        set SpellHolyBoltAOE__data[1]=100 // 2 уровень
        set SpellHolyBoltAOE__data[2]=200 // 3 уровень
        set SpellHolyBoltAOE__data[3]=300
        return SpellHolyBoltAOE__data[SpellHolyBoltAOE__level]
    endfunction
    function SpellHolyBoltAOE__getHeal takes nothing returns real
        set SpellHolyBoltAOE__data[1]=200 // 2 уровень
        set SpellHolyBoltAOE__data[2]=400 // 3 уровень
        set SpellHolyBoltAOE__data[3]=600
        return SpellHolyBoltAOE__data[SpellHolyBoltAOE__level]
    endfunction
    function SpellHolyBoltAOE__getDamage takes nothing returns real
        set SpellHolyBoltAOE__data[1]=100 // 2 уровень
        set SpellHolyBoltAOE__data[2]=200 // 3 уровень
        set SpellHolyBoltAOE__data[3]=300
        return SpellHolyBoltAOE__data[SpellHolyBoltAOE__level]
    endfunction
    function SpellHolyBoltAOE__isTarget takes nothing returns boolean
        if ( IsUnitType(SpellHolyBoltAOE__target, UNIT_TYPE_STRUCTURE) ) then // Отсеиваем механических юнитов
            return false
        endif
        if ( IsUnitType(SpellHolyBoltAOE__target, UNIT_TYPE_MECHANICAL) ) then // Отсеиваем летающих юнитов
            return false
        endif
        if ( IsUnitType(SpellHolyBoltAOE__target, UNIT_TYPE_FLYING) ) then // Отсеиваем кастера
            return false
        endif
        if ( SpellHolyBoltAOE__caster == SpellHolyBoltAOE__target ) then
            return false
        endif
        return true
    endfunction
            function SpellHolyBoltAOE__anon__1 takes nothing returns nothing
                set SpellHolyBoltAOE__target=GetEnumUnit() // Отсеиваем мёртвых юнитов
                if ( not ( UnitAlive(SpellHolyBoltAOE__target) ) ) then // Отсеиваем юнитов по расстоянию функцией, которая учитывает радиус юнита
                    return
                endif
                if ( not ( IsUnitInRangeXY(SpellHolyBoltAOE__target, SpellHolyBoltAOE__x, SpellHolyBoltAOE__y, SpellHolyBoltAOE__range) ) ) then
                    return
                endif
                set SpellHolyBoltAOE__isEnemy=IsPlayerEnemy(GetOwningPlayer(SpellHolyBoltAOE__caster), GetOwningPlayer(SpellHolyBoltAOE__target))
                set SpellHolyBoltAOE__isUndead=IsUnitType(SpellHolyBoltAOE__target, UNIT_TYPE_UNDEAD) // Отсеиваем цели
                if ( not ( SpellHolyBoltAOE__isTarget() ) ) then // Отсеиваем дружественную нежить, если она игнорируется
                    return
                endif
                if ( not SpellHolyBoltAOE__isEnemy and SpellHolyBoltAOE__isUndead and SpellHolyBoltAOE__allyUndeadAction == 0 ) then // Отсеиваем враждебную НЕ нежить, если она игнорируется
                    return
                endif
                if ( SpellHolyBoltAOE__isEnemy and not SpellHolyBoltAOE__isUndead and SpellHolyBoltAOE__enemyNoUndeadAction == 0 ) then
                    return
                endif
                call DestroyEffect(AddSpecialEffectTarget(SpellHolyBoltAOE__spellEffect, SpellHolyBoltAOE__target, SpellHolyBoltAOE__spellEffectAttach)) // Создаём эффект
                set SpellHolyBoltAOE__life=GetUnitState(SpellHolyBoltAOE__target, UNIT_STATE_LIFE)
                if ( SpellHolyBoltAOE__life < GetUnitState(SpellHolyBoltAOE__target, UNIT_STATE_MAX_LIFE) and ( ( not SpellHolyBoltAOE__isUndead and not SpellHolyBoltAOE__isEnemy ) or ( SpellHolyBoltAOE__allyUndeadAction == 1 and SpellHolyBoltAOE__isUndead and not SpellHolyBoltAOE__isEnemy ) or ( SpellHolyBoltAOE__enemyNoUndeadAction == 1 and not SpellHolyBoltAOE__isUndead and SpellHolyBoltAOE__isEnemy ) ) ) then // Лечим
                    call SetUnitState(SpellHolyBoltAOE__target, UNIT_STATE_LIFE, SpellHolyBoltAOE__life + SpellHolyBoltAOE__heal)
                endif
                if ( ( SpellHolyBoltAOE__isUndead and SpellHolyBoltAOE__isEnemy ) or ( SpellHolyBoltAOE__allyUndeadAction == 2 and SpellHolyBoltAOE__isUndead and not SpellHolyBoltAOE__isEnemy ) or ( SpellHolyBoltAOE__enemyNoUndeadAction == 2 and not SpellHolyBoltAOE__isUndead and SpellHolyBoltAOE__isEnemy ) ) then // Наносим урон
                    call UnitDamageTarget(SpellHolyBoltAOE__caster, SpellHolyBoltAOE__target, SpellHolyBoltAOE__damage, true, false, SpellHolyBoltAOE__attackType, DAMAGE_TYPE_NORMAL, WEAPON_TYPE_WHOKNOWS)
                endif
            endfunction
        function SpellHolyBoltAOE__anon__0 takes nothing returns nothing
            if ( SpellHolyBoltAOE__abilityId != GetSpellAbilityId() ) then
                return
            endif
            set SpellHolyBoltAOE__caster=GetTriggerUnit()
            set SpellHolyBoltAOE__level=GetUnitAbilityLevel(SpellHolyBoltAOE__caster, SpellHolyBoltAOE__abilityId)
            set SpellHolyBoltAOE__x=GetSpellTargetX()
            set SpellHolyBoltAOE__y=GetSpellTargetY()
            set SpellHolyBoltAOE__range=SpellHolyBoltAOE__getRange()
            call GroupClear(SpellHolyBoltAOE__g)
            call GroupEnumUnitsInRange(SpellHolyBoltAOE__g, SpellHolyBoltAOE__x, SpellHolyBoltAOE__y, SpellHolyBoltAOE__range + 200, null)
            set SpellHolyBoltAOE__heal=SpellHolyBoltAOE__getHeal()
            set SpellHolyBoltAOE__damage=SpellHolyBoltAOE__getDamage()
            call ForGroup(SpellHolyBoltAOE__g, function SpellHolyBoltAOE__anon__1)
        endfunction
    function SpellHolyBoltAOE__onInit takes nothing returns nothing
        local trigger t=CreateTrigger()
        local integer i
        set i=0
        loop
        exitwhen ( i >= bj_MAX_PLAYER_SLOTS )
            call TriggerRegisterPlayerUnitEvent(t, Player(i), EVENT_PLAYER_UNIT_SPELL_EFFECT, null)
        set i=i + 1
        endloop
        call TriggerAddAction(t, function SpellHolyBoltAOE__anon__0)
    endfunction

//library SpellHolyBoltAOE ends
//===========================================================================
// 
// Благодать AOE
// 
//   Warcraft III map script
//   Generated by the Warcraft III World Editor
//   Date: Tue Apr 11 02:19:50 2023
//   Map Author: xgm.guru/user/nazarpunk
// 
//===========================================================================

//***************************************************************************
//*
//*  Global Variables
//*
//***************************************************************************


function InitGlobals takes nothing returns nothing
endfunction

//***************************************************************************
//*
//*  Unit Creation
//*
//***************************************************************************

//===========================================================================
function CreateUnitsForPlayer0 takes nothing returns nothing
    local player p= Player(0)
    local unit u
    local integer unitID
    local trigger t
    local real life

    set u=CreateUnit(p, 'hfoo', 619.7, 331.2, 208.205)
    set life=GetUnitState(u, UNIT_STATE_LIFE)
    call SetUnitState(u, UNIT_STATE_LIFE, 0.01 * life)
    set u=CreateUnit(p, 'Hpal', 406.8, 256.7, 1.810)
    call SetHeroLevel(u, 5, false)
    set life=GetUnitState(u, UNIT_STATE_LIFE)
    call SetUnitState(u, UNIT_STATE_LIFE, 0.01 * life)
    call SetUnitState(u, UNIT_STATE_MANA, 360)
    call SelectHeroSkill(u, 'SHhb')
    call IssueImmediateOrder(u, "")
    set u=CreateUnit(p, 'hfoo', 695.8, 333.4, 200.761)
    set life=GetUnitState(u, UNIT_STATE_LIFE)
    call SetUnitState(u, UNIT_STATE_LIFE, 0.01 * life)
    set u=CreateUnit(p, 'ugho', 639.8, 189.2, 164.997)
    set life=GetUnitState(u, UNIT_STATE_LIFE)
    call SetUnitState(u, UNIT_STATE_LIFE, 0.01 * life)
    set u=CreateUnit(p, 'ugho', 725.4, 193.0, 170.308)
    set life=GetUnitState(u, UNIT_STATE_LIFE)
    call SetUnitState(u, UNIT_STATE_LIFE, 0.01 * life)
endfunction

//===========================================================================
function CreateNeutralHostile takes nothing returns nothing
    local player p= Player(PLAYER_NEUTRAL_AGGRESSIVE)
    local unit u
    local integer unitID
    local trigger t
    local real life

    set u=CreateUnit(p, 'hfoo', 778.6, 324.8, 194.445)
    set life=GetUnitState(u, UNIT_STATE_LIFE)
    call SetUnitState(u, UNIT_STATE_LIFE, 0.01 * life)
    set u=CreateUnit(p, 'hfoo', 862.5, 327.9, 192.006)
    set life=GetUnitState(u, UNIT_STATE_LIFE)
    call SetUnitState(u, UNIT_STATE_LIFE, 0.01 * life)
    set u=CreateUnit(p, 'ugho', 809.8, 195.0, 170.976)
    set life=GetUnitState(u, UNIT_STATE_LIFE)
    call SetUnitState(u, UNIT_STATE_LIFE, 0.01 * life)
    set u=CreateUnit(p, 'ugho', 900.2, 193.0, 174.032)
    set life=GetUnitState(u, UNIT_STATE_LIFE)
    call SetUnitState(u, UNIT_STATE_LIFE, 0.01 * life)
endfunction

//===========================================================================
function CreatePlayerBuildings takes nothing returns nothing
endfunction

//===========================================================================
function CreatePlayerUnits takes nothing returns nothing
    call CreateUnitsForPlayer0()
endfunction

//===========================================================================
function CreateAllUnits takes nothing returns nothing
    call CreatePlayerBuildings()
    call CreateNeutralHostile()
    call CreatePlayerUnits()
endfunction

//***************************************************************************
//*
//*  Triggers
//*
//***************************************************************************

//===========================================================================
// Trigger: SpellHolyBoltAOE
//===========================================================================

function InitCustomTriggers takes nothing returns nothing
    //Function not found: call InitTrig_SpellHolyBoltAOE()
endfunction

//***************************************************************************
//*
//*  Players
//*
//***************************************************************************

function InitCustomPlayerSlots takes nothing returns nothing

    // Player 0
    call SetPlayerStartLocation(Player(0), 0)
    call SetPlayerColor(Player(0), ConvertPlayerColor(0))
    call SetPlayerRacePreference(Player(0), RACE_PREF_RANDOM)
    call SetPlayerRaceSelectable(Player(0), true)
    call SetPlayerController(Player(0), MAP_CONTROL_USER)

    // Player 1
    call SetPlayerStartLocation(Player(1), 1)
    call SetPlayerColor(Player(1), ConvertPlayerColor(1))
    call SetPlayerRacePreference(Player(1), RACE_PREF_RANDOM)
    call SetPlayerRaceSelectable(Player(1), true)
    call SetPlayerController(Player(1), MAP_CONTROL_USER)

    // Player 2
    call SetPlayerStartLocation(Player(2), 2)
    call SetPlayerColor(Player(2), ConvertPlayerColor(2))
    call SetPlayerRacePreference(Player(2), RACE_PREF_RANDOM)
    call SetPlayerRaceSelectable(Player(2), true)
    call SetPlayerController(Player(2), MAP_CONTROL_USER)

    // Player 3
    call SetPlayerStartLocation(Player(3), 3)
    call SetPlayerColor(Player(3), ConvertPlayerColor(3))
    call SetPlayerRacePreference(Player(3), RACE_PREF_RANDOM)
    call SetPlayerRaceSelectable(Player(3), true)
    call SetPlayerController(Player(3), MAP_CONTROL_USER)

    // Player 4
    call SetPlayerStartLocation(Player(4), 4)
    call SetPlayerColor(Player(4), ConvertPlayerColor(4))
    call SetPlayerRacePreference(Player(4), RACE_PREF_RANDOM)
    call SetPlayerRaceSelectable(Player(4), true)
    call SetPlayerController(Player(4), MAP_CONTROL_USER)

    // Player 5
    call SetPlayerStartLocation(Player(5), 5)
    call SetPlayerColor(Player(5), ConvertPlayerColor(5))
    call SetPlayerRacePreference(Player(5), RACE_PREF_RANDOM)
    call SetPlayerRaceSelectable(Player(5), true)
    call SetPlayerController(Player(5), MAP_CONTROL_USER)

    // Player 6
    call SetPlayerStartLocation(Player(6), 6)
    call SetPlayerColor(Player(6), ConvertPlayerColor(6))
    call SetPlayerRacePreference(Player(6), RACE_PREF_RANDOM)
    call SetPlayerRaceSelectable(Player(6), true)
    call SetPlayerController(Player(6), MAP_CONTROL_USER)

    // Player 7
    call SetPlayerStartLocation(Player(7), 7)
    call SetPlayerColor(Player(7), ConvertPlayerColor(7))
    call SetPlayerRacePreference(Player(7), RACE_PREF_RANDOM)
    call SetPlayerRaceSelectable(Player(7), true)
    call SetPlayerController(Player(7), MAP_CONTROL_USER)

    // Player 8
    call SetPlayerStartLocation(Player(8), 8)
    call SetPlayerColor(Player(8), ConvertPlayerColor(8))
    call SetPlayerRacePreference(Player(8), RACE_PREF_RANDOM)
    call SetPlayerRaceSelectable(Player(8), true)
    call SetPlayerController(Player(8), MAP_CONTROL_USER)

    // Player 9
    call SetPlayerStartLocation(Player(9), 9)
    call SetPlayerColor(Player(9), ConvertPlayerColor(9))
    call SetPlayerRacePreference(Player(9), RACE_PREF_RANDOM)
    call SetPlayerRaceSelectable(Player(9), true)
    call SetPlayerController(Player(9), MAP_CONTROL_USER)

    // Player 10
    call SetPlayerStartLocation(Player(10), 10)
    call SetPlayerColor(Player(10), ConvertPlayerColor(10))
    call SetPlayerRacePreference(Player(10), RACE_PREF_RANDOM)
    call SetPlayerRaceSelectable(Player(10), true)
    call SetPlayerController(Player(10), MAP_CONTROL_USER)

    // Player 11
    call SetPlayerStartLocation(Player(11), 11)
    call SetPlayerColor(Player(11), ConvertPlayerColor(11))
    call SetPlayerRacePreference(Player(11), RACE_PREF_RANDOM)
    call SetPlayerRaceSelectable(Player(11), true)
    call SetPlayerController(Player(11), MAP_CONTROL_USER)

endfunction

function InitCustomTeams takes nothing returns nothing
    // Force: TRIGSTR_002
    call SetPlayerTeam(Player(0), 0)
    call SetPlayerTeam(Player(1), 0)
    call SetPlayerTeam(Player(2), 0)
    call SetPlayerTeam(Player(3), 0)
    call SetPlayerTeam(Player(4), 0)
    call SetPlayerTeam(Player(5), 0)
    call SetPlayerTeam(Player(6), 0)
    call SetPlayerTeam(Player(7), 0)
    call SetPlayerTeam(Player(8), 0)
    call SetPlayerTeam(Player(9), 0)
    call SetPlayerTeam(Player(10), 0)
    call SetPlayerTeam(Player(11), 0)

endfunction

function InitAllyPriorities takes nothing returns nothing

    call SetStartLocPrioCount(0, 11)
    call SetStartLocPrio(0, 0, 1, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(0, 1, 2, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(0, 2, 3, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(0, 3, 4, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(0, 4, 5, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(0, 5, 6, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(0, 6, 7, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(0, 7, 8, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(0, 8, 9, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(0, 9, 10, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(0, 10, 11, MAP_LOC_PRIO_HIGH)

    call SetStartLocPrioCount(1, 11)
    call SetStartLocPrio(1, 0, 0, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(1, 1, 2, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(1, 2, 3, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(1, 3, 4, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(1, 4, 5, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(1, 5, 6, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(1, 6, 7, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(1, 7, 8, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(1, 8, 9, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(1, 9, 10, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(1, 10, 11, MAP_LOC_PRIO_HIGH)

    call SetStartLocPrioCount(2, 11)
    call SetStartLocPrio(2, 0, 0, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(2, 1, 1, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(2, 2, 3, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(2, 3, 4, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(2, 4, 5, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(2, 5, 6, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(2, 6, 7, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(2, 7, 8, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(2, 8, 9, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(2, 9, 10, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(2, 10, 11, MAP_LOC_PRIO_HIGH)

    call SetStartLocPrioCount(3, 11)
    call SetStartLocPrio(3, 0, 0, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(3, 1, 1, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(3, 2, 2, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(3, 3, 4, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(3, 4, 5, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(3, 5, 6, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(3, 6, 7, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(3, 7, 8, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(3, 8, 9, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(3, 9, 10, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(3, 10, 11, MAP_LOC_PRIO_HIGH)

    call SetStartLocPrioCount(4, 11)
    call SetStartLocPrio(4, 0, 0, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(4, 1, 1, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(4, 2, 2, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(4, 3, 3, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(4, 4, 5, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(4, 5, 6, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(4, 6, 7, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(4, 7, 8, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(4, 8, 9, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(4, 9, 10, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(4, 10, 11, MAP_LOC_PRIO_HIGH)

    call SetStartLocPrioCount(5, 11)
    call SetStartLocPrio(5, 0, 0, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(5, 1, 1, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(5, 2, 2, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(5, 3, 3, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(5, 4, 4, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(5, 5, 6, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(5, 6, 7, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(5, 7, 8, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(5, 8, 9, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(5, 9, 10, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(5, 10, 11, MAP_LOC_PRIO_HIGH)

    call SetStartLocPrioCount(6, 11)
    call SetStartLocPrio(6, 0, 0, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(6, 1, 1, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(6, 2, 2, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(6, 3, 3, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(6, 4, 4, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(6, 5, 5, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(6, 6, 7, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(6, 7, 8, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(6, 8, 9, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(6, 9, 10, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(6, 10, 11, MAP_LOC_PRIO_HIGH)

    call SetStartLocPrioCount(7, 11)
    call SetStartLocPrio(7, 0, 0, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(7, 1, 1, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(7, 2, 2, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(7, 3, 3, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(7, 4, 4, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(7, 5, 5, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(7, 6, 6, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(7, 7, 8, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(7, 8, 9, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(7, 9, 10, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(7, 10, 11, MAP_LOC_PRIO_HIGH)

    call SetStartLocPrioCount(8, 11)
    call SetStartLocPrio(8, 0, 0, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(8, 1, 1, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(8, 2, 2, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(8, 3, 3, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(8, 4, 4, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(8, 5, 5, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(8, 6, 6, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(8, 7, 7, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(8, 8, 9, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(8, 9, 10, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(8, 10, 11, MAP_LOC_PRIO_HIGH)

    call SetStartLocPrioCount(9, 11)
    call SetStartLocPrio(9, 0, 0, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(9, 1, 1, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(9, 2, 2, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(9, 3, 3, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(9, 4, 4, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(9, 5, 5, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(9, 6, 6, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(9, 7, 7, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(9, 8, 8, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(9, 9, 10, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(9, 10, 11, MAP_LOC_PRIO_HIGH)

    call SetStartLocPrioCount(10, 11)
    call SetStartLocPrio(10, 0, 0, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(10, 1, 1, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(10, 2, 2, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(10, 3, 3, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(10, 4, 4, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(10, 5, 5, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(10, 6, 6, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(10, 7, 7, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(10, 8, 8, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(10, 9, 9, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(10, 10, 11, MAP_LOC_PRIO_HIGH)

    call SetStartLocPrioCount(11, 11)
    call SetStartLocPrio(11, 0, 0, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(11, 1, 1, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(11, 2, 2, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(11, 3, 3, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(11, 4, 4, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(11, 5, 5, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(11, 6, 6, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(11, 7, 7, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(11, 8, 8, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(11, 9, 9, MAP_LOC_PRIO_HIGH)
    call SetStartLocPrio(11, 10, 10, MAP_LOC_PRIO_HIGH)
endfunction

//***************************************************************************
//*
//*  Main Initialization
//*
//***************************************************************************

//===========================================================================
function main takes nothing returns nothing
    call SetCameraBounds(- 3328.0 + GetCameraMargin(CAMERA_MARGIN_LEFT), - 3584.0 + GetCameraMargin(CAMERA_MARGIN_BOTTOM), 3328.0 - GetCameraMargin(CAMERA_MARGIN_RIGHT), 3072.0 - GetCameraMargin(CAMERA_MARGIN_TOP), - 3328.0 + GetCameraMargin(CAMERA_MARGIN_LEFT), 3072.0 - GetCameraMargin(CAMERA_MARGIN_TOP), 3328.0 - GetCameraMargin(CAMERA_MARGIN_RIGHT), - 3584.0 + GetCameraMargin(CAMERA_MARGIN_BOTTOM))
    call SetDayNightModels("Environment\\DNC\\DNCDalaran\\DNCDalaranTerrain\\DNCDalaranTerrain.mdl", "Environment\\DNC\\DNCDalaran\\DNCDalaranUnit\\DNCDalaranUnit.mdl")
    call NewSoundEnvironment("Default")
    call SetAmbientDaySound("DalaranRuinsDay")
    call SetAmbientNightSound("DalaranRuinsNight")
    call SetMapMusic("Music", true, 0)
    call CreateAllUnits()
    call InitBlizzard()

call ExecuteFunc("SpellHolyBoltAOE__onInit")

    call InitGlobals()
    call InitCustomTriggers()

endfunction

//***************************************************************************
//*
//*  Map Configuration
//*
//***************************************************************************

function config takes nothing returns nothing
    call SetMapName("TRIGSTR_025")
    call SetMapDescription("TRIGSTR_032")
    call SetPlayers(12)
    call SetTeams(12)
    call SetGamePlacement(MAP_PLACEMENT_TEAMS_TOGETHER)

    call DefineStartLocation(0, 320.0, 192.0)
    call DefineStartLocation(1, 320.0, 192.0)
    call DefineStartLocation(2, 320.0, 192.0)
    call DefineStartLocation(3, 320.0, 192.0)
    call DefineStartLocation(4, 320.0, 192.0)
    call DefineStartLocation(5, 320.0, 192.0)
    call DefineStartLocation(6, 320.0, 192.0)
    call DefineStartLocation(7, 320.0, 192.0)
    call DefineStartLocation(8, 320.0, 192.0)
    call DefineStartLocation(9, 320.0, 192.0)
    call DefineStartLocation(10, 320.0, 192.0)
    call DefineStartLocation(11, 320.0, 192.0)

    // Player setup
    call InitCustomPlayerSlots()
    call SetPlayerSlotAvailable(Player(0), MAP_CONTROL_USER)
    call SetPlayerSlotAvailable(Player(1), MAP_CONTROL_USER)
    call SetPlayerSlotAvailable(Player(2), MAP_CONTROL_USER)
    call SetPlayerSlotAvailable(Player(3), MAP_CONTROL_USER)
    call SetPlayerSlotAvailable(Player(4), MAP_CONTROL_USER)
    call SetPlayerSlotAvailable(Player(5), MAP_CONTROL_USER)
    call SetPlayerSlotAvailable(Player(6), MAP_CONTROL_USER)
    call SetPlayerSlotAvailable(Player(7), MAP_CONTROL_USER)
    call SetPlayerSlotAvailable(Player(8), MAP_CONTROL_USER)
    call SetPlayerSlotAvailable(Player(9), MAP_CONTROL_USER)
    call SetPlayerSlotAvailable(Player(10), MAP_CONTROL_USER)
    call SetPlayerSlotAvailable(Player(11), MAP_CONTROL_USER)
    call InitGenericPlayerSlots()
    call InitAllyPriorities()
endfunction




//Struct method generated initializers/callers:

0
29
11 месяцев назад
0
изи перевёл в православный
И как его использовать на православном то?
Чтобы оставить комментарий, пожалуйста, войдите на сайт.