Добавлен ArhiMEN
Подскажите, есть ли где-то подробная информация по функциям и возможностям МемХака?
Принятый ответ
Похожие вопросы:
ответ
DracoL1ch, Не понял как я поменяю количество еды приносяший?
DracoL1ch, или абилка такой есть?
DracoL1ch, или ты имел виду создать типо так но на основе юнита (Сам писал)set amount = R2I(amount) - R2I(this[u]) if amount < 0 then set amount = -amount set rawcode = rawcode + this.count endif set abilityId = this.count - 1 set abilityLevel = 4 set currentAbility = rawcode + abilityId loop exitwhen amount == 0 if amount >= powersOf2[abilityId * 3 + (abilityLevel - 2)] then call UnitAddAbility(u, currentAbility) call SetUnitAbilityLevel(u, currentAbility, abilityLevel) call UnitRemoveAbility(u, currentAbility) set amount = amount - powersOf2[abilityId * 3 + (abilityLevel - 2)] else set abilityLevel = abilityLevel - 1 if abilityLevel <= 1 then set abilityId = abilityId - 1 set abilityLevel = 4 set currentAbility = rawcode + abilityId endif endif endloop
Сделал если кому нужно контроль максимальной еды// RUS: Создаем 8 юнит еду (Каждый шаг увиличивает 2ух-кратный) //! runtextmacro UnitStart() //! i CreateUnit("hfoo", "zxF", "ufma", "8", "FOOD", "BTNMonsterLure.blp") //! runtextmacro UnitEnd() //! textmacro UnitStart /* RUS: Тут можно убрать если не стоит (MemoryHack) //! externalblock extension=lua ObjectMerger $FILENAME$ //! i function CreateUnit(base, prefix, field, count, name, icon) //! i k = 0 //! i j = 0 //! i for i = 0, (count - 1) do //! i j = j + 1 //! i createobject(base, prefix .. string.sub(chars, k + 1, k + 1)) //! i makechange(current, "unam", "Unit - " .. name) //! i makechange(current, "utip", "") //! i makechange(current, "utub", "") //! i makechange(current, "unsf", "(+" .. tostring(2^i) .. ")") //! i makechange(current, "uico", "ReplaceableTextures\\CommandButtons\\" .. icon) //! i makechange(current, field, 2^i) //! i k = k + 1 //! i end //! i end //! i setobjecttype("units") //! i chars = "abcdefghijklmnopqrstuvwxyz" */ //! endtextmacro //! textmacro UnitEnd /* RUS: Тут можно убрать если не стоит (MemoryHack) //! endexternalblock */ //! endtextmacro globals constant integer xe_MAX_PLAYERS = 7 // RUS: Контроль еды constant integer xe_COUNT_FOOD = 8 constant integer xe_RAWCODE_FOOD = 'zxFa' endglobals struct Food private static group array groups[xe_MAX_PLAYERS] private static integer array powers[xe_COUNT_FOOD] private static method onInit takes nothing returns nothing local integer i = 1 set thistype.powers[0] = 1 loop exitwhen i > xe_COUNT_FOOD set thistype.powers[i] = thistype.powers[i - 1] * 2 set i = i + 1 endloop set i = 0 loop exitwhen i == xe_MAX_PLAYERS set thistype.groups[i] = CreateGroup() set i = i + 1 endloop endmethod public static method operator []= takes player p, integer i returns nothing local integer count = xe_COUNT_FOOD - 1 local group g = thistype.groups[GetPlayerId(p)] local unit u = FirstOfGroup(g) loop exitwhen u == null call RemoveUnit(u) call GroupRemoveUnit(g, u) set u = FirstOfGroup(g) endloop loop exitwhen i == 0 if i >= thistype.powers[count] then call GroupAddUnit(g, CreateUnit(p, xe_RAWCODE_FOOD + count, 0., 0., 0.)) set i = i - thistype.powers[count] else set count = count - 1 endif endloop set u = null set g = null endmethod endstruct
ответ
Вот попробуй.
ответ
в 1.26 так делал xgm.guru/p/wc3/163817
Ща mix убраны и архитектура wc переделана, но идея таже - внедриться в процесс варкрафта и найти оффсеты функций.
ответ
Да там перерисовка интерфейса, в новых версиях везде стоит где нужно.
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
И можно скинуть ссылку на тему?