MrHug, увы, я не пытался адаптировать под версии выше 1.26, да и в любом случае настолько глобальное обновление готовим, что багов там ещё ойойой обнаружится, но примем к сведению, установлю 1.27 и посмотрю что там с фонтаном накосячено, попробуем исправить, спасибо)
и приношу извинения что испортил впечатления, кодер из меня мягко говоря ужасный
в версии, что сейчас тут лежит, оно вообще насколько я помню нормально не отображает наполнение фонтана заново водичкой
call GroupAddGroup(g, gtemp )
--->
set bj_groupAddGroupDest = gtemp
call ForGroup(g, function GroupAddGroupEnum)
if IsUnitGroupEmptyBJ(g) then
--->
if FirstOfGroup( g ) == null then
а так же закидывание в переменную владельца кастера и использование этой переменной в цикле:
if IsPlayerEnemy(GetOwningPlayer(un), GetOwningPlayer(GT)) and GetUnitAbilityLevel(un, TPOFBaff) > 0 then
--->
set bj_groupEnumOwningPlayer = GetOwningPlayer(GT)
...
if IsPlayerEnemy(GetOwningPlayer(un), bj_groupEnumOwningPlayer) and GetUnitAbilityLevel(un, TPOFBaff) > 0 then
да и вообще заменить IsPlayerEnemy на
constant native IsUnitEnemy takes unit whichUnit, player whichPlayer returns boolean
XmegatronX, ну это не отменяет факта, что юнитом всё ещё можно управлять под действием фира, исходя из того, что в скилл было добавлено снятие выделения владельца с цели, могу предположить, что оно создавалось не только для одиночных кампаний и против ии, но даже если взглянуть на код можно найти предложения по улучшению, но это только если тебе интересно ¯\_(ツ)_/¯
в кат убери этот код, пол страницы забрал)
ты понимаешь вообще для чего константа? ты по коду никак не сможешь её изменить, только при объявлении задать значение, и всё
повторюсь, убери нафиг константу, при выборе героя из таверны задай нужное значение этой переменной
вот такая формулировка:
globals
unit u
private constant integer r = GetHeroInt( u )
endglobals
function dfgdfg takes nothing returns nothing
set u = CreateUnit( )
endfunction
вообще невозможна, переменная не возьмёт сама по себе значение героя когда он появится, ты ей задаёшь значение только при объявлении, а при объявлении этого героя нет
вот это
globals
unit u = CreateUnit( )
private constant integer r = GetHeroInt( u )
endglobals
тоже невозможно, потому что юнита таким образом создать нельзя, можешь сам проверить
поэтому возвращаемся к первому комменту
library mylib initializer init
globals
unit u
private real r
endglobals
private function init takes nothing returns nothing
set u = CreateUnit( ... )
set r = GetHeroInt( u, true )
endfunction
endlibrary
library mylib initializer init
globals
unit u
private real r
endglobals
private function init takes nothing returns nothing
set u = CreateUnit( ... )
set r = 200.00 + GetHeroInt( u, true )
endfunction
endlibrary
сама функция вернёт 0 в нескольких случаях, если юнита нет, если юнит не герой и если у юнита стат нулевой
Unryze, ещё кое-что интересно, работа с темповой группой
что быстрее: делать всё в цикле без булекспра или делать всё в булекспре? бенчмарк вовсе минусовый результат показывает, но вероятно тут проблемы уже моего компа
раскрыть
globals
private constant group TempG = CreateGroup( )
private unit bj_lastFilterUnit = null
endglobals
native UnitAlive takes unit id returns boolean
private function cond takes nothing returns boolean
set bj_lastFilterUnit = GetFilterUnit( )
if UnitAlive( bj_lastFilterUnit ) then
call SetWidgetLife( bj_lastFilterUnit, GetWidgetLife( bj_lastFilterUnit ) )
endif
return false
endfunction
function TestBenchmarking takes nothing returns nothing
local integer p = 0
local integer i = 0
local integer time = 0
local unit u
local boolexpr b = Condition( function cond )
set i = 0
set time = GetLocalTime( 0 )
loop
exitwhen i == 10000
call GroupEnumUnitsInRect( TempG, bj_mapInitialPlayableArea, null )
loop
set u = FirstOfGroup( TempG )
exitwhen u == null
call GroupRemoveUnit( TempG, u )
if UnitAlive( u ) then
call SetWidgetLife( u, GetWidgetLife( u ) )
endif
endloop
// Some stuff here
set i = i + 1
endloop
set time = GetLocalTime( 0 ) - time
call DisplayTextToPlayer( GetLocalPlayer( ), 0, 0, "First Delay: " + I2S( time ) + "ms" )
set i = 0
set time = GetLocalTime( 0 )
loop
exitwhen i == 10000
call GroupEnumUnitsInRect( TempG, bj_mapInitialPlayableArea, b )
// Some other stuff here
set i = i + 1
endloop
set time = GetLocalTime( 0 ) - time
call DisplayTextToPlayer( GetLocalPlayer( ), 0, 0, "Second Delay: " + I2S( time ) + "ms" )
endfunction
Ruti Ragnason, втф) PT153, а на что оно влияло до обновления? пробелы и прочая ерунда иногда конечно влекут проблемы за собой, но вроде ж всё работало отлично
» WarCraft 3 / Как правильно триггерить channeling способности?
Chosen2:
» WarCraft 3 / Как правильно триггерить channeling способности?
» WarCraft 3 / Сила Страха "скилы под ключ"
Ред. rsfghd
» WarCraft 3 / [Конкурс становления героев] Crusader
и приношу извинения что испортил впечатления, кодер из меня мягко говоря ужасный
» WarCraft 3 / Уменьшение здания?
» WarCraft 3 / MemoryHackAPI
» WarCraft 3 / Уменьшение здания?
» Администрация XGM / Фильтр ресурсов
» WarCraft 3 / Combat Zone
Ред. rsfghd
» WarCraft 3 / Сила Страха "скилы под ключ"
» WarCraft 3 / Сила Страха "скилы под ключ"
» WarCraft 3 / не могу добавить текстуры земли в Jass New Gen Pack Rebuild Comp
Ред. rsfghd
» WarCraft 3 / не могу добавить текстуры земли в Jass New Gen Pack Rebuild Comp
» Администрация XGM / маленькое окошко личных сообщений
» WarCraft 3 / не могу добавить текстуры земли в Jass New Gen Pack Rebuild Comp
» WarCraft 3 / Сила Страха "скилы под ключ"
» WarCraft 3 / Функция возвращает 0?
Ред. rsfghd
» WarCraft 3 / Функция возвращает 0?
ты понимаешь вообще для чего константа? ты по коду никак не сможешь её изменить, только при объявлении задать значение, и всё
повторюсь, убери нафиг константу, при выборе героя из таверны задай нужное значение этой переменной
вот такая формулировка:
вот это
поэтому возвращаемся к первому комменту
Ред. rsfghd
» WarCraft 3 / Локалки в циклах
Ред. rsfghd
» WarCraft 3 / Функция возвращает 0?
» WarCraft 3 / Локалки в циклах
» WarCraft 3 / Jass MythBusters
Ред. rsfghd
» WarCraft 3 / Jass MythBusters
что быстрее: делать всё в цикле без булекспра или делать всё в булекспре? бенчмарк вовсе минусовый результат показывает, но вероятно тут проблемы уже моего компа
» WarCraft 3 / JNGP: Rebuild от PT153
PT153, а на что оно влияло до обновления? пробелы и прочая ерунда иногда конечно влекут проблемы за собой, но вроде ж всё работало отлично