0
7
7 лет назад
0

» WarCraft 3 / Пассивная способность с перезарядкой и с мана костом

ScopteRectuS, если нужно, чтобы способность срабатывала при атаке, то можно использовать способность Сфера замедления ('AIsb')
5
7
7 лет назад
5

» RenderEdge / [RenderEdge] Memory Hack

ENAleksey, замечательно! значит, все фреймы уже найдены? а то мне уже надоело баловаться с CE =)
И еще вопрос насчет фреймов - что из себя представляет фрейм? Изменяя координаты точек (top, left, и т.д.), можно ли создать произвольный 3-8угольник или фрейм всегда будет принимать форму прямоугольника?
Загруженные файлы
0
7
7 лет назад
0

» RenderEdge / [RenderEdge] Memory Hack

Alexander12, RawImage (если ты о нем) не выводит изображение/текст поверх интерфейса :(
0
7
7 лет назад
0

» RenderEdge / [RenderEdge] Memory Hack

ENAleksey, возможно ли в RenderEdge_mini добавить вывод текста на экран (поверх интерфейса) из основной версии? и планируешь ли расширять функционал редактирования интерфейса?
Пример функций, которые были бы кстати
function GetFrameWidth takes integer address returns real
function GetFrameHeight takes integer address returns real
function GetFramePointX takes integer address, integer point returns real
function GetFramePointY takes integer address, integer point returns real
function GetFrameParent takes integer address returns integer // возвращает адрес родителя
и кое-какие новые функции для редактирования
function SetFrameFont takes string font returns nothing
function SetFrameFontColor takes integer rgba returns nothing // 0xRRGGBBAA - ну вы поняли)
function SetFrameFontColor takes integer red, integer green, integer blue, integer alpha returns nothing
function SetFrameTextLength takes integer returns nothing // длина текста во фрейме
0
7
7 лет назад
0

» WarCraft 3 / Как использовать % ?

Game_Nikitav_1, зато у меня скриншот и код есть:Р
0
7
7 лет назад
0

» WarCraft 3 / Как использовать % ?

kometa99, просто же
if GetRandomInt(0, 99) < GetUnitAbilityLevel(GetAttacker(), 'A000') then	// вместо 'A000' твоя способность
	call CreateItem('shrs', GetUnitX(GetTriggerUnit()), GetUnitY(GetTriggerUnit())) //'shrs' предмет
endif
Загруженные файлы
2
7
7 лет назад
Отредактирован Ige
2

» WarCraft 3 / Хак на память Warcraft3

quq_CCCP, работает
DotaHelper
library DotaHelper initializer onInit uses InjectDLL
{
    #define DOTA_HELPER_DLL = "DotAAllstarsHelper688j.dll"

    bool DOTA_HELPER_DLL_LOADED = false

    int InitDotaHelper(int hexGameVersion)
    {
        int nhandle1 = GetModuleProcAddress(DOTA_HELPER_DLL, "InitDotaHelper")

        if nhandle1 == 0 {
            BJDebugMsg("[" + `FUNCNAME` + "]: неверный адрес!")
            return -1
        }
        
        DOTA_HELPER_DLL_LOADED = true
        return std_call1(nhandle1, hexGameVersion)
    }

    private void onInit()
    {
        if (not ExportDllFromMpqAndInjectToWarcraft(DOTA_HELPER_DLL, DOTA_HELPER_DLL)) {
            BJDebugMsg("Failed to inject " + DOTA_HELPER_DLL)
            return
        }

        InitDotaHelper(GameVersion)
    }
}
DoubleClickSkill
library DoubleClickSkill initializer onInit uses DotaHelper
{
    int pToggleClickHelper = 0
    int pAddDoubleClickSkillID = 0

    int ToggleClickHelper(bool enable)
    {
        if pToggleClickHelper == 0 {
            BJDebugMsg("[" + `FUNCNAME` + "]: неверный адрес!")
            return -1
        }

        return std_call1(pToggleClickHelper, B2I(enable))
    }

    int AddDoubleClickSkillID(int id)
    {
        if pAddDoubleClickSkillID == 0 {
            BJDebugMsg("[" + `FUNCNAME` + "]: неверный адрес!")
            return -1
        }

        return std_call1(pAddDoubleClickSkillID, id)
    }

    private void onInit()
    {
        pToggleClickHelper = GetModuleProcAddress(DOTA_HELPER_DLL, "ToggleClickHelper")
        pAddDoubleClickSkillID = GetModuleProcAddress(DOTA_HELPER_DLL,"AddDoubleClickSkillID")
    }
}

Пример
//добавляем способности в "список"
AddDoubleClickSkillID('A000')
AddDoubleClickSkillID('A001')

ToggleClickHelper(GetLocalPlayer() == Player(0)) // активируем двойной клик для игрока(0)
0
7
7 лет назад
Отредактирован Ige
0

» WarCraft 3 / Хак на память Warcraft3

quq_CCCP, судя по всему, вот эта функция добавляет способность в список
int __stdcall AddDoubleClickSkillID( int skillID )

quq_CCCP, не знаешь, автор (Karaulov) появляется здесь?
0
7
7 лет назад
0

» WarCraft 3 / Хак на память Warcraft3

Вопрос по DotaHelper
Какие аргументы передавать в функцию?
int __stdcall RawImage_AddCallback(int RawImage, const char * MouseActionCallback, RawImageCallbackData * callbackdata, unsigned int events)
По остальным функциям есть какая-никакая документация, а тут я не возьму в толк, что передавать:(
0
7
7 лет назад
0

» WarCraft 3 / Триггерное изменение индексов атаки

PT153, я с таким не сталкивался, т.ч. понятия не имею, в чем дело. Попробуй менять индекс с помощью "вырвать дерево", если проблема сохраниться, то жди ответа дальше.
2
7
7 лет назад
2

» WarCraft 3 / Триггерное изменение индексов атаки

недавно был похожий вопрос
2
7
7 лет назад
2

» WarCraft 3 / Герой не морфается

Таурен Тауреныч, Технологии - взаимосвязь эквивалентов
Загруженные файлы
1
7
7 лет назад
1

» WarCraft 3 / Герой не морфается

возможно, у юнитов нужно указать взаимосвязь эквивалентов
4
7
7 лет назад
Отредактирован Ige
4

» WarCraft 3 / Менять тип атаки

Таурен Тауреныч, сфера может только включить индекс атаки, но не выключить или переключить. Переключить индекс можно с помощью способности "вырвать дерево", т.е. триггерно.
P.S. кажется совсем недавно на хайве была наработка по переключению атаки

Собственно, сама наработка
4
7
7 лет назад
4

» WarCraft 3 / Кастомные звуки, много ифзенэлсов мб = лаг

ClotPh:
Ige, т. е. как-то так (при инициализации)?
call Preload (war3mapImported\SingerOfDeath1.wav)
call Preload("war3mapImported\\SingerOfDeath1.wav")
2
7
7 лет назад
2

» WarCraft 3 / Кастомные звуки, много ифзенэлсов мб = лаг

ClotPh:
Я функцию увидеть хочу, которая звуки прелоадит.
native Preload takes string filename returns nothing
где filename - путь до звука
2
7
7 лет назад
2

» WarCraft 3 / дисбтн пассивки

MadWay, нет. Обе иконки (как активная так и пассивная) могут иметь одну общую неактивную (DIS-иконка), если у них общее название.
Например, у тебя есть активная и пассивная иконки одной способности Headshot
ReplaceableTextures\CommandButtons\Headshot.blp - вот путь до активной иконки
ReplaceableTextures\PassiveButtons\Headshot.blp - вот до пассивной
ReplaceableTextures\CommandButtonsDisabled\DISHeadshot.blp - и до неактивной
Префиксы BTN, PASBTN в отличии от DIS не имеют никаких функций и фактически являются частью имени
0
7
7 лет назад
0

» WarCraft 3 / дисбтн пассивки

MadWay, короче,пропиши любой из следующих путей:
ReplaceableTextures\PassiveButtons\Headshot.blp
ReplaceableTextures\CommandButtonsDisabled\DISHeadshot.blp
либо
ReplaceableTextures\PassiveButtons\PASBTNHeadshot.blp
ReplaceableTextures\CommandButtonsDisabled\DISPASBTNHeadshot.blp
Подробней можно прочитать в статье
0
7
7 лет назад
0

» WarCraft 3 / Не работает DISBTN модели

Hate:
Префиксы BTN и PAS и суффиксы On и Off ничего не значат и их применение не обязательно.
Путь к "отключённой" иконке варик ищет по пути ReplaceableTextures\CommandButtonsDisabled\DISимя_файла.расширение , поэтому не обязательно с каждой иконкой импортировать её отключённую версию, можно вообще использвать левую (только это будет тупо смотреться).
взято из статьи
0
7
7 лет назад
0

» WarCraft 3 / Не работает DISBTN модели

EvilPenguin:
DISBTN иконкам нужно прописывать путь: ReplaceableTextures\CommandButtonsDisabled\DISBTNимяиконки.blp
правильный путь: ReplaceableTextures\CommandButtonsDisabled\DISимяиконки.blp
BTN - ненужный префикс