Добавлен , опубликован
Алгоритмы, Наработки и Способности
Способ реализации:
vJass
Тип:
Наработка
Версия Warcraft:
1.26 и ниже
Собственно тот знаменитый хак на память который нам радостно предоставил DracoL1ch, который позволяет нам больше не морочится с системами отлова урона, или вовсе узнать координаты курсора без стороннего по.
Для сохранения требуется: экспериментальная версия pjass.exe
Причём не все подходят, меньше всего проблем было с этой версией
В хаке присутствует только 1 пример на изменение белой атаки у героя, остальные готовые функции можно найти на:
Хайве
Гитхабе
Просто копируем саму функцию, все остальное для её работы есть в наработке и сохраняем.
Так же на хайве есть инструкция по созданию собственных функций для чтения\изменения данных в памяти игры.
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
21
7 лет назад
0
Тут было очень многобукаф, но все они удалены за ненадобностью.
Короче, если кто поможет сделать из этого кода (вываренного на основе изученной информации) то, что нам выдает в нижние реалки координаты мыши от контроллера юнита - спс.
Потому что сейчас очень сомневаюсь, что все как надо, но дальше котел уже не варит и до НГ конкретно не хочет, другие дела есть важные.
Но также есть и уверенность, что для знающего человека исправить - макс. несколько минут.
globals
gamecache cache = InitGameCache("cache")
endglobals
function SyncReal takes player p, real val returns real
if (GetLocalPlayer() == p) then
call StoreReal(cache, , , val)
endif
call TriggerSyncStart()
if (GetLocalPlayer() == p) then
call SyncStoredReal(cache, , )
endif
call TriggerSyncReady()
return GetStoredReal(cache, , )
endfunction
function MySpell takes nothing returns nothing
local player p = GetOwningPlayer(GetTriggerUnit())
local real XCoord = SyncReal(p, GetMouseX())
local real YCoord = SyncReal(p, GetMouseY())
0
16
7 лет назад
0
если бы синхронизация работала как полагается, я бы так и сказал. но ни одна из существующих жасс нативок не обеспечивает синхронизацию с достаточной скоростью. для значений типа 0-1 лучший вариант - это выделение юнита, потому что варкрафт его автоматически отправит в сеть и обеспечит хоть как-то актуальную информацию на всех компах. а в случае отправки значений с точкой - совершенно другой коленкор. Проще уж на trackable сделать
0
32
7 лет назад
0
ClotPh, в твоем коде нету вейта на пару сек, синхроеизация вещь не мгновенная и порой занимает очень много времени, все зависит от пинга.
0
21
7 лет назад
0
Там в примере не вейт, а триггерслип по ссылке, хотя суть похожа, да.
Т. е. так?
globals
gamecache cache = InitGameCache("cache")
endglobals
function SyncReal takes player p, real val returns real
if (GetLocalPlayer() == p) then
call StoreReal(cache, , , val)
endif
call TriggerSyncStart()
if (GetLocalPlayer() == p) then
call SyncStoredReal(cache, , )
endif
call TriggerSleepAction(2.)
call TriggerSyncReady()
return GetStoredReal(cache, , )
endfunction
function MySpell takes nothing returns nothing
local player p = GetOwningPlayer(GetTriggerUnit())
local real XCoord = SyncReal(p, GetMouseX())
local real YCoord = SyncReal(p, GetMouseY())
А как в таком случае вообще работает триггерслип? Ведь реалки в функции MySpell объявляются сверху. Если она, например, срабатывает на приведение способности в действие, то, пока синхронизация не пройдет, триг вообще действовать не будет у всех игроков? Т. е. там может задержаться после каста спелла его эффект на 3-4 сек, НО потом будет синхронизация БЕЗ десинка?
0
29
7 лет назад
0
через мемхак можно сделать например рендж юнита, милишником без морфа?
0
16
7 лет назад
0
атака - это полностью независимый скил, крути что хочешь как хочешь, за редкими исключениями
тип атаки, ренж и другие "простые" параметры входят в число крутящихся
0
4
7 лет назад
0
качаю ваши выложенные карты где все работать должно, но при сохранении 11 ошибок вылезает. Ниче не меняю.
снимаю вопрос, я идиот. Все заработало
Есть ли функция на проверку нажата ли определенная кнопка в данный момент, а так же проверка зажата ли кнопка мыши в данный момент? какая функция за это отвечает и что скопировать
Загруженные файлы
0
3
7 лет назад
0
Daniil18, уже отвечали на этот вопрос, функция IsKeyPressed, ей же определяется зажата ли кнопка мыши.
0
4
7 лет назад
0
Drynwhyl, все сделал, но как саму проверку на конкретную клавишу сделать. Как узнать интегер этой кнопки?
я опять ретард, только спросил тут же нашел выход. Хочу сделать шутанчик с управлениями кнопками, тут надо будет париться с локал плеерами от десинков?
0
32
7 лет назад
0
Daniil18:
Drynwhyl, все сделал, но как саму проверку на конкретную клавишу сделать. Как узнать интегер этой кнопки?
я опять ретард, только спросил тут же нашел выход. Хочу сделать шутанчик с управлениями кнопками, тут надо будет париться с локал плеерами от десинков?
Увы да, если ты будешь играть не в сингл плеер.
0
6
7 лет назад
0
На 1.27b на запись не работает. Пока есть 2 варианта, mix на 1.27b который бы включал возможность запись в память. 2) убедить сервера, включить это в своем лаучнере. Либо окончательно забить на вк3.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.