Можно ли создавать фреймы для определённых игроков, а не для всех? Если да, то как?

Принятый ответ

Да.
set frame = CreateFrame("", pGameUI, 0)
call HideFrame(frame)
if GetLocalPlayer() == Player then
	call ShowFrame(frame)
endif
Код ориентировочный
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
19
3 года назад
0
Похожие вопросы:

ответ
фатал после игры может быть вызван
а) использованием malloc
б) копированием внутриигровых структур (например, структуру сплеша перенес от одного юнита другому, при чистке один раз адрес зачистился, а на втором проходе произошел краш)
в) неизвестным мне образом
ответ
Сделай сам.
ответ
DracoL1ch:
офсет 2589 *4 , я ж только что сказал
Всё, немного поковырявшись у меня получилось, нужно было еще (id * 4) еще раз умножить на 4. Теперь строки извлекает идеально.
Если кому-то интересно, выглядит это вот так:
	DWORD ReadPointer(DWORD addr)
	{
		return *(DWORD*)(addr);
	}

	DWORD GetJassContext(int id)
	{
		DWORD pJassEnvAddress = DWORD(GetModuleHandle(TEXT("Game.dll"))) + 0xADA848;
		return ReadPointer(ReadPointer(ReadPointer(ReadPointer(pJassEnvAddress) + 0x14) + 0x90) + id * 4);
	}

	DWORD GetStringTable()
	{
		DWORD pJassContext = GetJassContext(1);
		return ReadPointer(ReadPointer(pJassContext + 0x2874) + 0x8);
	}

	std::string from_jString(jString jstrHandle)
	{
		DWORD pStringTable = GetStringTable();
		const char* sptr = (const char*)ReadPointer(ReadPointer(pStringTable + ((jstrHandle * 4)*4) + 0x8) + 0x1C);
		return sptr;
	}
ответ
Ну содержимое у restore само собой разное, в детекте урона новый хук на выход, вам нужна функция загрузки библиотеки?
Это же дело над:

function LoadLibrary takes string nDllName returns integer
    if pLoadLibraryA == 0 then
        set pLoadLibraryA = GetModuleProcAddress("Kernel32.dll", "LoadLibraryA" )
    endif
    if pLoadLibraryA != 0 then
        return CallStdcallWith1Args(pLoadLibraryA,GetStringAddress(nDllName))
    endif
 
    return 0
endfunction
ответ
Вводим в поиск XGM слово "мемхак"
Получаем результаты мемхак
Для самых новичков специально делал
там по максимуму разжевано
А как пользоваться?
Да никак, потому что нет мемхаке смены Описания Предмета, есть только смена описания способности...Но она фаталит при смене способности выше 2 уровня, А для второй не завезли

Но если разобраться можно самому всё сделать

По примеру способности это выглядело бы так
Если функция такая
function SetAbilityUbertip takes integer id, integer lvl, string s returns boolean
    return SetAbilityStringParam2(id,0x158, s, lvl)
endfunction
То чтобы поменять описание надо было сделать
SetAbilityUbertip(ID  способности или предмета, уровень (для предмета не будет уровня), описание)

quq_CCCP, если я не прав, то покажи функцию смены тултипа предмета для любой версии

А ещё судя по тому что смена тултипа не предусматривает юнита или конкретный хендл предмета, значить описание меняется глобально, и нужно использовать либо Гетлокал плеер либо работать с разными копиями предмата/способности
Всё тоже самое применимо к смене описания на Рефордж патче, но там по проще это всё делается

2
22
3 года назад
2
Да.
set frame = CreateFrame("", pGameUI, 0)
call HideFrame(frame)
if GetLocalPlayer() == Player then
	call ShowFrame(frame)
endif
Код ориентировочный
Принятый ответ
0
13
3 года назад
0
Не пользовался мемхаком, но если там реализация похожа на 1.31+, то нет - нельзя. Но можно создать для всех и спрятать у всех игроков кроме нужного.
1
22
3 года назад
Отредактирован ofeerist
1
Nelloy, создать тоже можно в локальном условии, все действия с фреймами происходят локально, десинха не будет.

Ну как, регистрацию наведения можно сделать только локально, поэтому можно и создать локально, почему нет.
1
32
3 года назад
1
Nelloy, в рефе можно создавать локальной фрейм и оно даже не десинхает, скорее всего буду десинхать реультаты фрейма - например создание юнита по клику, сразу скажу, создание 1000 фреймов не понесёт никакой нагрузки, а каждый игрок из 5 например будет видеть свои 200. Это не юниты на экране фпс это просаживает нагрузку не вызывает... Хотя надо проверять...
Смотрите, в HD графике на джасе 50 fps, на луа 350
Скорее всего в мемхаке будет также, как и на реф-джасе, ибо там тот же джасс и теже алгоритмы. Нужно у ofeerist, просить тесты огроменного числа фреймов в мемхаке, ну или сами проверяйте
Чтобы оставить комментарий, пожалуйста, войдите на сайт.