Не слушай никого, чел. Сейчас это больше дело хобби, а не сколько людей будут играть в это. Делай качественно, красиво и с душой, неважно какой жанр, найдутся люди, которые будут играть, если это не уг. По поводу поста, выглядит как просьба помощи в мотивации, если у тебя сильная апатия к картодельству, но ты хотел бы сделать свою мапу, то тебе как минимум нужна аудитория, нужна группа в ВК, канал на дисе или блог на хгм где ты мог бы периодично постить прогресс разработки и интриговать людей, чтобы заранее их набрать, в противном случае тебя тупо сожрут мысли что карта никому не нужна, никто не будет в это играть и т.д. и т.п.
Ты не представляешь скооолько карт не вышло и не выходят на свет, больше 90% мб, а ведь среди них реально было много годных, как минимум идеями и концепциями
ScorpioT1000, чего вы с Прометеем вцепились за абилки, если дело реально в пользователях которые лепят свои дизы даже на качественный контент, становясь хейтерами)
Можно было бы разве что не увеличивать до двойного минуса, но лайк от прошаренного чела должен быть весомее чем от новичка
так вар и вылетает на 512 или где-то в этом диапазоне, я не помню откуда это вычитал, но где-то тут же, на хгм и обсуждали кто-то в комментах, мб DracoL1ch с quq_CCCP, как ты до 1200 не вылетел это прям удивление
вообще утечки по любому стоило устранять, если и не вылетает на 512~, то фпс проседает
а вместе с отменой минуса можно будет и обговаривать это вместе с теми, кто и поставил его
по поводу новичков, я за свои плюсы и минусы держусь как могу, если вижу, что чел в первые на хгм и вероятно ребёнок - я не захочу ответить ему, чтобы не получить рандомный минус
лично нам с другом было обидно, когда на его рес в первые кто-то влепил дизлайк, даже несколько было, и это, кстати, от фисуна
лично от меня, я бы хотел чтобы добавили хотя бы отмену минуса, помню куку случайно вместо лайка диз влепил, и получил в ответку тоже, неприятно вышло, подпортил отношения
library SpellLib
globals
constant hashtable H = InitHashtable( )
private constant real AuraRange = 400.00
private constant integer AuraID = 'A000'
private constant integer AbilityID = 'A001'
private constant integer AbilityMaxLvl = 10
private constant integer UnitGroup = StringHash( SCOPE_PRIVATE + "UnitGroup" )
private constant group TempG = CreateGroup( )
private constant group TempG_1 = CreateGroup( )
private group TempG_2 = null
private boolexpr CondAura = null
private boolexpr CondAdd = null
private unit TempUnit = null
private unit bj_lastFilterUnit = null
private unit bj_lastFilterUnit_1 = null
endglobals
native UnitAlive takes unit id returns boolean
private function CheckRange takes nothing returns nothing
local integer i
set TempUnit = GetEnumUnit( )
if not IsUnitInGroup( TempUnit, TempG_1 ) then
call GroupRemoveUnit( TempG_2, TempUnit )
set i = GetUnitAbilityLevel( TempUnit, AbilityID ) - 1
if i > 0 then
call SetUnitAbilityLevel( TempUnit, AbilityID, i )
else
call UnitRemoveAbility( TempUnit, AbilityID )
endif
endif
endfunction
private function EnumAddBuff takes nothing returns boolean
local integer i
set bj_lastFilterUnit_1 = GetFilterUnit( )
if IsUnitAlly( bj_lastFilterUnit_1, bj_groupEnumOwningPlayer ) and not IsUnitInGroup( bj_lastFilterUnit_1, TempG_2 ) then
call GroupAddUnit( TempG_2, bj_lastFilterUnit_1 )
set i = GetUnitAbilityLevel( bj_lastFilterUnit_1, AbilityID )
if i == 0 then
call UnitAddAbility( bj_lastFilterUnit_1, AbilityID )
else
call SetUnitAbilityLevel( bj_lastFilterUnit_1, AbilityID, i + 1 )
endif
endif
return true
endfunction
private function EnumWithAura takes nothing returns boolean
set bj_lastFilterUnit = GetFilterUnit( )
if GetUnitAbilityLevel( bj_lastFilterUnit, AuraID ) > 0 then
set TempG_2 = LoadGroupHandle( H, GetHandleId( bj_lastFilterUnit ), UnitGroup )
if TempG_2 == null and UnitAlive( bj_lastFilterUnit ) then
set TempG_2 = CreateGroup( )
call SaveGroupHandle( H, GetHandleId( bj_lastFilterUnit ), UnitGroup, TempG_2 )
endif
if UnitAlive( bj_lastFilterUnit ) then
set bj_groupEnumOwningPlayer = GetOwningPlayer( bj_lastFilterUnit )
call GroupEnumUnitsInRange( TempG_1, GetUnitX( bj_lastFilterUnit ), GetUnitY( bj_lastFilterUnit ), AuraRange, CondAdd )
call ForGroup( TempG_2, function CheckRange )
call GroupClear( TempG_1 )
else
loop
set TempUnit = FirstOfGroup( TempG_2 )
exitwhen TempUnit == null
call UnitRemoveAbility( TempUnit, AbilityID )
endloop
call DestroyGroup( TempG_2 )
call RemoveSavedHandle( H, GetHandleId( bj_lastFilterUnit ), UnitGroup )
endif
endif
return false
endfunction
function Spell_Actions takes nothing returns nothing
call GroupEnumUnitsInRect( TempG, bj_mapInitialPlayableArea, CondAura )
endfunction
//===========================================================================
function InitTrig_Spell takes nothing returns nothing
set gg_trg_Spell = CreateTrigger( )
call TriggerRegisterTimerEvent( gg_trg_Spell, 1.00, true )
call TriggerAddAction( gg_trg_Spell, function Spell_Actions )
set CondAura = Condition( function EnumWithAura )
set CondAdd = Condition( function EnumAddBuff )
set TempUnit = CreateUnit( Player( 0x0F ), 'hfoo', 0.00, 0.00, 0.00 )
call UnitAddAbility( TempUnit, AbilityID )
call SetUnitAbilityLevel( TempUnit, AbilityID, AbilityMaxLvl )
call KillUnit( TempUnit )
call RemoveUnit( TempUnit )
endfunction
endlibrary
по хорошему было бы юзать не миллион уровней атаки, а как сделал это Extremator в данном заказе
я просто не особо разобрал принцип, поэтому по старинке
спелл не для импорта само собой, просто показ, что это реально сделать с одной аурой
VinerX, не-а, по счётчику ничего не обнаружил и никогда подобного не случалось если были какие-то малейшие изменения
но имей ввиду, хэндлы это всё что находится на карте кроме дудадов
VinerX, посмотри гуи функцию "пропустить остальные действия" по факту это слово "return" в коде, то есть после ретурна ты никак не поставишь set newUnit = null, и правильно это делать после set bj_lastReplacedUnit = newUnit, а возвращать не newUnit, а bj_lastReplacedUnit, вот код если непонятно
set bj_lastReplacedUnit = newUnit
set newUnit = null
set oldUnit = null
set indexItem = null
return bj_lastReplacedUnit
Ред. rsfghd
» WarCraft 3 / Оптимизация: поредактировал jass триггер, но он начал фаталить.
Ред. rsfghd
» WarCraft 3 / Как вам такая карта?
Ред. rsfghd
» XGM Team / Изменить логику работу репутации
» Администрация XGM / Странный размер гифки(?)
» XGM Team / Изменить логику работу репутации
» Администрация XGM / Странный размер гифки(?)
Ред. rsfghd
» WarCraft 3 / Странные фаталы
Ред. rsfghd
» Администрация XGM / Подтверждение действий
» XGM Team / Изменить логику работу репутации
по поводу новичков, я за свои плюсы и минусы держусь как могу, если вижу, что чел в первые на хгм и вероятно ребёнок - я не захочу ответить ему, чтобы не получить рандомный минус
Ред. rsfghd
» XGM Team / Изменить логику работу репутации
» XGM Team / Изменить логику работу репутации
» Администрация XGM / Подтверждение действий
» WarCraft 3 / Анимация во время движения.
» WarCraft 3 / Как триггерно добавить бафф юниту?
Как триггерно наложить дебафф на юнита?
как дать юниту эффект?
» WarCraft 3 / Способности и алгоритмы на заказ
» WarCraft 3 / Как получить текущую ману и здоровье юнита?
https://www.xgm.guru/p/wc3/213915
» WarCraft 3 / Как получить текущую ману и здоровье юнита?
» WarCraft 3 / Ландшафт с освещением в Reforged
» WarCraft 3 / Галерея скриншотов ландшафта
» WarCraft 3 / Галерея скриншотов ландшафта
» WarCraft 3 / Проблема с save/load системой
» WarCraft 3 / Галерея скриншотов ландшафта
» WarCraft 3 / Суммирующиеся ауры
я просто не особо разобрал принцип, поэтому по старинке
Ред. rsfghd
» WarCraft 3 / Дорога к оптимизации: захотел заменить "Замену" юнита (Reforged)
но имей ввиду, хэндлы это всё что находится на карте кроме дудадов
Ред. rsfghd
» WarCraft 3 / Дорога к оптимизации: захотел заменить "Замену" юнита (Reforged)