Бывают в жизни такие случаи.
Вчера наконец то до меня дошло, что очень многие bj функции можно заменять нативками, ведь по сути они и отходят от родительских нативок и вся эта куча хлама лишний код ,который еще и виснет?(Верно)
Вчера наконец то до меня дошло, что очень многие bj функции можно заменять нативками, ведь по сути они и отходят от родительских нативок и вся эта куча хлама лишний код ,который еще и виснет?(Верно)
И меня, как вдохновленного триггерщика теперь так и тянет везде где я только смогу это правильно написать заменять bj нативками.
Варику только легче и в мои глазах теперь все места в моей карте отмеченые
"красным клеймом bj" во прямо тянет исправлять
Варику только легче и в мои глазах теперь все места в моей карте отмеченые
"красным клеймом bj" во прямо тянет исправлять
Да, уже заметил, что есть bj, которые нечем заменять и пусть они так и висят, но все таки, мне это ни чем не грозит? То есть варик же bj зачем то делал и не начнет ли он тупить, как обычно?
А то исправлю 90 % красноты от карты и еще что ни будь не так будет?
Принятый ответ
Лан, я предполагаю автору недостаточно ответов выше, поэтому отвечаю на следующие вопросы
Да, уже заметил, что есть bj, которые нечем заменять и пусть они так и висят
Вот список того, что ты можешь заменить
Нет, тебе это вообще ничем не грозит и ты лишь облегчишь работу варика, чутка ускорив его, оптимизация проще говоряно все таки, мне это ни чем не грозит?
Близзарды создавали бж для удобства использования другими людьмиТо есть варик же bj зачем то делал и не начнет ли он тупить, как обычно?
Та же гуишная функция с созданием юнитов позволяет человеку в последующем обращаться к юниту/группе как последний созданный/последняя группа (хотя для создания одного юнита действительно дочерта написано)
Другой пример это:
bj_RADTODEG / bj_DEGTORAD (radians to degrees / degrees to radians)
согласись, куда удобнее писать эти слова, нежели искать/запоминать эти цифры 57.2958 / .0174532
Ну а так же, если заменять некоторые бж функции можно знатно раздуть свой код, например
ReplaceUnitBJ
function ReplaceUnitBJ takes unit whichUnit, integer newUnitId, integer unitStateMethod returns unit
local unit oldUnit = whichUnit
local unit newUnit
local boolean wasHidden
local integer index
local item indexItem
local real oldRatio
// If we have bogus data, don't attempt the replace.
if (oldUnit == null) then
set bj_lastReplacedUnit = oldUnit
return oldUnit
endif
// Hide the original unit.
set wasHidden = IsUnitHidden(oldUnit)
call ShowUnit(oldUnit, false)
// Create the replacement unit.
if (newUnitId == 'ugol') then
set newUnit = CreateBlightedGoldmine(GetOwningPlayer(oldUnit), GetUnitX(oldUnit), GetUnitY(oldUnit), GetUnitFacing(oldUnit))
else
set newUnit = CreateUnit(GetOwningPlayer(oldUnit), newUnitId, GetUnitX(oldUnit), GetUnitY(oldUnit), GetUnitFacing(oldUnit))
endif
// Set the unit's life and mana according to the requested method.
if (unitStateMethod == bj_UNIT_STATE_METHOD_RELATIVE) then
// Set the replacement's current/max life ratio to that of the old unit.
// If both units have mana, do the same for mana.
if (GetUnitState(oldUnit, UNIT_STATE_MAX_LIFE) > 0) then
set oldRatio = GetUnitState(oldUnit, UNIT_STATE_LIFE) / GetUnitState(oldUnit, UNIT_STATE_MAX_LIFE)
call SetUnitState(newUnit, UNIT_STATE_LIFE, oldRatio * GetUnitState(newUnit, UNIT_STATE_MAX_LIFE))
endif
if (GetUnitState(oldUnit, UNIT_STATE_MAX_MANA) > 0) and (GetUnitState(newUnit, UNIT_STATE_MAX_MANA) > 0) then
set oldRatio = GetUnitState(oldUnit, UNIT_STATE_MANA) / GetUnitState(oldUnit, UNIT_STATE_MAX_MANA)
call SetUnitState(newUnit, UNIT_STATE_MANA, oldRatio * GetUnitState(newUnit, UNIT_STATE_MAX_MANA))
endif
elseif (unitStateMethod == bj_UNIT_STATE_METHOD_ABSOLUTE) then
// Set the replacement's current life to that of the old unit.
// If the new unit has mana, do the same for mana.
call SetUnitState(newUnit, UNIT_STATE_LIFE, GetUnitState(oldUnit, UNIT_STATE_LIFE))
if (GetUnitState(newUnit, UNIT_STATE_MAX_MANA) > 0) then
call SetUnitState(newUnit, UNIT_STATE_MANA, GetUnitState(oldUnit, UNIT_STATE_MANA))
endif
elseif (unitStateMethod == bj_UNIT_STATE_METHOD_DEFAULTS) then
// The newly created unit should already have default life and mana.
elseif (unitStateMethod == bj_UNIT_STATE_METHOD_MAXIMUM) then
// Use max life and mana.
call SetUnitState(newUnit, UNIT_STATE_LIFE, GetUnitState(newUnit, UNIT_STATE_MAX_LIFE))
call SetUnitState(newUnit, UNIT_STATE_MANA, GetUnitState(newUnit, UNIT_STATE_MAX_MANA))
else
// Unrecognized unit state method - ignore the request.
endif
// Mirror properties of the old unit onto the new unit.
//call PauseUnit(newUnit, IsUnitPaused(oldUnit))
call SetResourceAmount(newUnit, GetResourceAmount(oldUnit))
// If both the old and new units are heroes, handle their hero info.
if (IsUnitType(oldUnit, UNIT_TYPE_HERO) and IsUnitType(newUnit, UNIT_TYPE_HERO)) then
call SetHeroXP(newUnit, GetHeroXP(oldUnit), false)
set index = 0
loop
set indexItem = UnitItemInSlot(oldUnit, index)
if (indexItem != null) then
call UnitRemoveItem(oldUnit, indexItem)
call UnitAddItem(newUnit, indexItem)
endif
set index = index + 1
exitwhen index >= bj_MAX_INVENTORY
endloop
endif
// Remove or kill the original unit. It is sometimes unsafe to remove
// hidden units, so kill the original unit if it was previously hidden.
if wasHidden then
call KillUnit(oldUnit)
call RemoveUnit(oldUnit)
else
call RemoveUnit(oldUnit)
endif
set bj_lastReplacedUnit = newUnit
return newUnit
endfunction
Ну и отдельный тип бж функций, которые просто бесполезны, вроде DoNothing, ChooseRandomCreepBJ, ChooseRandomItemBJ, CopySaveGameBJ и т.д., где тупо добавили BJ в конце
Всё что может пойти не так - твоя криворукость и невнимательностьА то исправлю 90 % красноты от карты и еще что ни будь не так будет?
Загруженные файлы
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Находится в JNGP -> AdicHelper -> lib -> cj_antibj_base. Можешь посмотреть что она там заменяет. Замена происходит с помощью дефайнов, по коду пробегается компилятор и заменяет такие-то значения на другие
Ну и подключается примерно так
Верю я или не верю в затемнение, но карта начата была, когда то в этом редакторе и без этих библиотек естевстенно работать не будет.
v jass по умолчанию включен😒
Отредактирован rsfghd
Отредактирован rsfghd
Та же гуишная функция с созданием юнитов позволяет человеку в последующем обращаться к юниту/группе как последний созданный/последняя группа (хотя для создания одного юнита действительно дочерта написано)
Другой пример это:
bj_RADTODEG / bj_DEGTORAD (radians to degrees / degrees to radians)
согласись, куда удобнее писать эти слова, нежели искать/запоминать эти цифры 57.2958 / .0174532
Ну а так же, если заменять некоторые бж функции можно знатно раздуть свой код, например