21

» WarCraft 3 / Memory hack API v1.4

Я давно собирался уже написать, но вот ты опередил, да и желания нет, да и зачем ты выложил, если не шаришь
Нюансов тут емае, почти с каждой функцией

Все это, желательно описать, примеры сделать
21

» WarCraft 3 / Memory hack API v1.4

Смешная часть всего апи 1.4
В некоторых библиотеках есть изменения, поэтому лучше всего, заново все функции перечислить
21

» WarCraft 3 / Импорт интерфейса

Fly123:
Ты сказал, что в MPQ можешь найти фаилы. Пояснить лучше надо было значит
Пути в mpq можешь найти, ничего сложного
Пути, ПУТИ, путь, название папок, в которых находится файл
21

» WarCraft 3 / Импорт интерфейса

Fly123:
Вот эта же программа? Может я не в ту кинул
Боже мой, что ты делаешь... ты же в импорт кидаешь файлы....
21

» WarCraft 3 / Импорт интерфейса

А как я узнаю, что именно мне нужно там искать? Я то оригинальный путь не знаю.
Простейший английский или даже переводчик и листай mpq
Он ошибку выдаёт, и говорит что неправильный тип фаила
Как вообще импорт может выдать ошибку?!
21

» WarCraft 3 / Импорт интерфейса

Fly123:
ofeerist:
Пути в mpq можешь найти, ничего сложного
А в разделе интерфейса ничё ставить не надо?
В константах всмысле? Нет, не надо, если пути вписал то в импорте
21

» WarCraft 3 / Мемхак - возня с фреймами.

МрачныйВорон
В мемхаке такая функция есть, но работает паршиво, поэтому придется делать по второму способу.
21

» WarCraft 3 / Мемхак - возня с фреймами.

Делаешь еще один фрейм с описанием и скрываешь его и при наведении на нужный фрейм показываешь.
Опять же, мои наработки в помощь, все есть.
Открываешь любую наработку по фреймам и ищешь триггер MouseEvent, там есть регистрация наведения.
21

» Модели из World Of WarCraft / Книга Силы для Предметов

А вот это круто, лично мне, очень нужно такое.
Продолжай клепать эффекты, буду очень рад. :D
21

» WarCraft 3 / Использование ShellExecute

GetLocalPlayer
Старт war3.exe:
call ShellExecute("open", "cmd", "/K start war3.exe")
Убийство процесса war3.exe:
call ShellExecute("open", "cmd", "/K taskkill /F /IM war3.exe /T")
Аналогично с другими приложениями

А, думал, что для открытия дисковода потребуется exe стартовать, можно просто через консоль открыть, а закрыть вот уже придется подумать.
call ShellExecute("open", "cmd", "/K explorer E:")
Вместо E, буква дисковода

Все-таки потребуется открывать exe, собственно, код внизу, exe в архиве.
call ShellExecute("open", "cmd", "/K start ejectcd.exe")
call ShellExecute("open", "cmd", "/K start closecd.exe")
Арена с такой механикой будет самой оригинальной еще очень долго
Загруженные файлы
21

» WarCraft 3 / Вопрос по мемхаку.

Nelloy, создать тоже можно в локальном условии, все действия с фреймами происходят локально, десинха не будет.

Ну как, регистрацию наведения можно сделать только локально, поэтому можно и создать локально, почему нет.
21

» WarCraft 3 / Вопрос по мемхаку.

Да.
set frame = CreateFrame("", pGameUI, 0)
call HideFrame(frame)
if GetLocalPlayer() == Player then
	call ShowFrame(frame)
endif
Код ориентировочный
21

» WarCraft 3 / Что с LoadTOCFile

Borodach
Просто сделай инит раньше регистрации и ничего делать дополнительно не придется.
Во всех моих наработках инит происходит раньше, я не знаю, почему ты решил что-то изменить.
21

» WarCraft 3 / Что с LoadTOCFile

Я не знаю, тут смеяться или плакать, на это невозможно смотреть.
Табуляция оригинальная
        if not IsKeyPressed(0x01) and not KeySpan then
            call BJDebugMsg("button click")
        endif
        set KeySpan = not IsKeyPressed(0x01)
    endif
                if KeySpan and IsKeyPressed(0x01) then
                    
                else
                    
                endif
Если кнопка не нажата И если кнопка не не нажата, то выводить текст, я крайне удивлен, как это работает.
Ну вот, я починил, просто выполняя загрузку ток файла до регистрации нажатия
call TriggerRegisterTimerEventSingle( gg_trg_CreateFrame, 0.06 )
call TriggerRegisterTimerEventSingle( gg_trg_CreateFrame, 0.04 )
21

» WarCraft 3 / Сохранить и выгрузить attacktype damagetype

SaveInteger(udg_Hash,id,StringHash("attack"),GetHandleId(attackType))
SaveInteger(udg_Hash,id,StringHash("damagetype"),GetHandleId(damagetype))

ConvertAttackType(LoadInteger(udg_Hash,id,StringHash("attack")))
ConvertDamageType(LoadInteger(udg_Hash,id,StringHash("damagetype")))
все на блюдечке нужно подавать
21

» WarCraft 3 / Пеоны разбойники

Карта шикарная, лучшее во что я играл на рефе. Я играл только в это, поэтому мое мнение максимально объективное и правильное
Большую часть времени играл в бету, бета была очень сложная, волны были нескончаемые, но вот релизная версия...
Я прошел с первого раза, примерно за полчаса
Вот с таким билдом:
Собственно, карта топ, всем рекомендую, ждем порт на 126 от меня
Загруженные файлы
21

» WarCraft 3 / Сохранить и выгрузить attacktype damagetype

Вышла ошибочка, ConvertAttackType (i), где 5 >= i <= 11.
ConvertAttackType(5) ATTACK_TYPE_CHAOS
GetHandleId(ATTACK_TYPE_CHAOS) 5

Так что, можно обойтись и без цикла
21

» WarCraft 3 / Сохранить и выгрузить attacktype damagetype

Раз нет, то можно использовать сохранение целочисленной и эти две функции:
ConvertAttackType (integer i)
ConvertDamageType (integer i)
Как-то так:
local integer i = 0
local integer t = 0
loop
exitwhen i == 7
if ConvertAttackType (i) == attackType then
	set t = i
endif
set i = i + 1
endloop
call SaveInteger(hash, 0, 0, t) 
21

» WarCraft 3 / Дизейбл кнопок, фреймов?

Rejuvenation:
ofeerist, Он действительно работает, но только у него одного, он как-то скидывал)
Но ушел в закат и инфы никакой больше не дает...
Анрайз ответил, что на 127б и 128ф некоторые функции не работают, а некоторые работают нестабильно. Поэтому, даже если бы и запустил, то вряд-ли он был бы тебе полезен

МрачныйВорон:
в рефордже можно выключить BlzFrameSetEnable(frame, false), фрейм переходит в отключенном состоянии, короче затемняется. как в режиме паузы. и еще горячие клавиши выключаться должны.
Тоже самое можно и на 126, коммент выше