Крестом перерождения, иначе - никак!
Зачем тебе понадобилось воскрешать не героев, проще сделать из героя и не мучится, отображение опыта, сообщения о гибели и прочие "геройские" фишки можно отключать.
Это способность предмета - Книга заклинаний (spellbook) об это была даже статья, как сделать так чтобы выученные способности попадали в спеллбук.
Вот одна ссылка
Остальное ищи сам, наработок с этими книгами было море.
Alexander122, потому что она не работает так как нужно, да и юниты сдохнуть не от тебя, а сами себя пришибут... Да и урон там распределяется несколько не так.
awesomesk1ll, а что если в кешь записать могут ли двигать камеру все игроки, если все нет - то реплей, если большинство да, то синхронизируем с ними данные и записываем в переменную.
Ну на ГУИ никак, хотя там сравнительно примитивно.
Отдается молния которая есть визуальный эффект, молнию двигает отдельный таймер.
При касте создается триггер, в который добавляется события что Юнит цель умер, Юнит цель получил урон а так же цель записывается в группу, ( для всех юнитов которых задела молния), условие триггера если событие на который сработал триггер = получение урона то проверить что урон выше 0 и меньше 6000 ( проверка корректности урона, ибо акс добивает 10 миллионов физ урона) , иначе вернуть true.
Далее в действии триггера проверяем умер ли Юнит, истекло ли время или Юнит получил урон, если Юнит умер удаляем его из группы и изданием с него визуальный эффект, если время вышло то удаляем визуальные эффекты на всех юнитах в группе и утилизируем триггер. Если цель получила урон, цель в группе, то рассчитываем сколько сколько урона нужно распределить по остальным Юнита в группе, исключаем из группы того кто получил урон, с остальными в группе проделываем действия: смотрим сколько у Юнита хп, больше урона - снижаем хп на кол во урона. Иначе наносим 10 миллионов урона от лица применившего заклинание.
Все данные прикрепляются к триггеру с помощью хештаблицы. Триггеру так же добавляется событие - время истекло, чтобы завершить эффект спелла по истечению времени.
16GB, тестанул код, но делал разделения только на визуальные действия, т.е камеру не перемещал при телепортах и перерождениях героев в реплее, всё норм. Но вот без цилков, рили может десинхать, ты же не для каждого игрока записываешь проверку, а для всех.
Нужно тестить в муи, судя по тому что похожий антихак засунули в доту ниче не дисинхало и ниче не делало вред, правда читеры очень быстро научились обходить прозрачность юнитов и всякие туманы, затеняющие карту...
В доте вроде юзается какая то фишка с кинематиком, хз в чем различие киниматике в игре и в реплее?
Код лень колупать...
Так постойте, что мешает вначале чекнуть когда все загрузились - реплей или нет, а потом уже хоть за сворачивайтесь.
На афкашеров пофигу, что им лишнее что то показалось, чаще всего такие вовсе не приходят или ливают.
IceFog, Ну уже хорошо, что работает.
Еще есть возможность проверки на ретурн баге, но я не знаю в каком направлении копать, мб кто колупал игру знает где посмотреть что игра реплей.
//**************************************************************************************
//* *
//* REPLAY DETECT ENGINE V1.30 *
//* CONFIGURATION SETTINGS START HERE *
//* *
//**************************************************************************************
library ReplayDetectEngine
globals
boolean InGame = true
boolean array AMHS_FogDisable
boolean array AMHS_InvisDisable
unit array AMHS_FogDummy
unit array AMHS_InvisDummy
endglobals
//-> IsInGame created by PandaMine with help from Captain Griffen
//This function is what makes it possible for the system not to break replays,
//simply put if your actually playing the game, this function will return false.
//It will return true if the game is being viewed in a replay
private function IsInGame takes nothing returns boolean
local integer counter = 1
local real camerax
local real cameray
local real x
local real y
local boolean output
loop
exitwhen counter > 12
if GetLocalPlayer() == Player(counter-1) then
set camerax = GetCameraTargetPositionX()
set cameray = GetCameraTargetPositionY()
endif
set counter = counter + 1
endloop
set counter = 1
call PauseGame(true)
call TriggerSleepAction(0)
loop
exitwhen counter > 12
if GetLocalPlayer() == Player(counter-1) then
call SetCameraPosition(camerax + 1,cameray + 1)
endif
set counter = counter + 1
endloop
call TriggerSleepAction(0)
call PauseGame(false)
set counter = 1
loop
exitwhen counter > 12
if GetLocalPlayer() == Player(counter-1) then
set x = GetCameraTargetPositionX()
if x == camerax + 1 then
set output = true
else
set output = false
endif
call SetCameraPosition(camerax,cameray)
endif
set counter = counter + 1
endloop
return output
endfunction
function AMHS_ReplayEngine takes nothing returns nothing
call EnableUserControl(false)
call TriggerSleepAction(.0)
set InGame = IsInGame()
call EnableUserControl(true)
endfunction
Ну либо игрок обсерв как в доте, еще как то с синиматиком (слышал краем уха) и мемхаком, о последнем вскользь упоминал лич.
Надо будет посмотреть древний -ah мод в некоторых картах, там это как то делали...
В старых амх как то отличали игру от реплея, чтобы не делать юнитов прозрачными когда кто то смотрит реплей www.wc3c.net/showthread.php?t=97922
Там есть костыль определения реплея.
TeX13, Триггерно, сделать событие юнит получает урон! При уроне выше нуля и не от заклинаний, наносишь урон его источнику...
Отделение физического урона от магического и наборот древняя проблема, решаймая костылями, какими именно - выбирать вам.
Какой вам урон нужно отловить?
Урон отлавливает событие EVENT_UNIT_DAMAGED (в гуях это событие в разделе юнитов, Damage taken), это событие на одного конкретного юнита, стандартными средствами можно проверить источник и количество урона, все остальное пожалуй не для новичков...
Тимур, дык лич говорил что они сделали какую то функцию анти отладки, список приказов простым способом выудить не получилось...
у них активирована штука для затруднения вскрытия !!игры!!, мне кажется потому что функцию приказов отпарсить не удалось, пришлось вручную таблицу из ассемблера вырезать DracoL1ch(c).
Щяс близзарды всех кто колупался в их игре обьявят еретиками И будут сжигать на кострах Угрожать судами и проблемами.
» WarCraft 3 / Есть ли рабочий способ проверки на просмотр replay'я
» WarCraft 3 / Как сделать возрождение не-героя как у героя?
Зачем тебе понадобилось воскрешать не героев, проще сделать из героя и не мучится, отображение опыта, сообщения о гибели и прочие "геройские" фишки можно отключать.
» WarCraft 3 / Есть ли рабочий способ проверки на просмотр replay'я
» WarCraft 3 / Невыделяемый юнит
» WarCraft 3 / Как сделать абилку с абилками внутри?
Вот одна ссылка
Остальное ищи сам, наработок с этими книгами было море.
» WarCraft 3 / Эмпатия для врагов
» WarCraft 3 / Есть ли рабочий способ проверки на просмотр replay'я
» WarCraft 3 / Эмпатия для врагов
Отдается молния которая есть визуальный эффект, молнию двигает отдельный таймер.
При касте создается триггер, в который добавляется события что Юнит цель умер, Юнит цель получил урон а так же цель записывается в группу, ( для всех юнитов которых задела молния), условие триггера если событие на который сработал триггер = получение урона то проверить что урон выше 0 и меньше 6000 ( проверка корректности урона, ибо акс добивает 10 миллионов физ урона) , иначе вернуть true.
Далее в действии триггера проверяем умер ли Юнит, истекло ли время или Юнит получил урон, если Юнит умер удаляем его из группы и изданием с него визуальный эффект, если время вышло то удаляем визуальные эффекты на всех юнитах в группе и утилизируем триггер. Если цель получила урон, цель в группе, то рассчитываем сколько сколько урона нужно распределить по остальным Юнита в группе, исключаем из группы того кто получил урон, с остальными в группе проделываем действия: смотрим сколько у Юнита хп, больше урона - снижаем хп на кол во урона. Иначе наносим 10 миллионов урона от лица применившего заклинание.
Все данные прикрепляются к триггеру с помощью хештаблицы. Триггеру так же добавляется событие - время истекло, чтобы завершить эффект спелла по истечению времени.
» WarCraft 3 / Эмпатия для врагов
» WarCraft 3 / Есть ли рабочий способ проверки на просмотр replay'я
Нужно тестить в муи, судя по тому что похожий антихак засунули в доту ниче не дисинхало и ниче не делало вред, правда читеры очень быстро научились обходить прозрачность юнитов и всякие туманы, затеняющие карту...
В доте вроде юзается какая то фишка с кинематиком, хз в чем различие киниматике в игре и в реплее?
Код лень колупать...
» WarCraft 3 / Есть ли рабочий способ проверки на просмотр replay'я
Смотри код внимательнее
» WarCraft 3 / Есть ли рабочий способ проверки на просмотр replay'я
» WarCraft 3 / Есть ли рабочий способ проверки на просмотр replay'я
На афкашеров пофигу, что им лишнее что то показалось, чаще всего такие вовсе не приходят или ливают.
Ред. quq_CCCP
» WarCraft 3 / Есть ли рабочий способ проверки на просмотр replay'я
Еще есть возможность проверки на ретурн баге, но я не знаю в каком направлении копать, мб кто колупал игру знает где посмотреть что игра реплей.
» WarCraft 3 / Есть ли рабочий способ проверки на просмотр replay'я
» WarCraft 3 / Есть ли рабочий способ проверки на просмотр replay'я
Надо будет посмотреть древний -ah мод в некоторых картах, там это как то делали...
В старых амх как то отличали игру от реплея, чтобы не делать юнитов прозрачными когда кто то смотрит реплей www.wc3c.net/showthread.php?t=97922
Там есть костыль определения реплея.
» WarCraft 3 / Глобальный таймер
» WarCraft 3 / Баф на уменьшение физ. размера.
» WarCraft 3 / прозрачность невидимых юнитов
» WarCraft 3 / Лагает РО - войска
» WarCraft 3 / система отлова урона
» WarCraft 3 / Аура возмездия
Отделение физического урона от магического и наборот древняя проблема, решаймая костылями, какими именно - выбирать вам.
» WarCraft 3 / система отлова урона
Урон отлавливает событие EVENT_UNIT_DAMAGED (в гуях это событие в разделе юнитов, Damage taken), это событие на одного конкретного юнита, стандартными средствами можно проверить источник и количество урона, все остальное пожалуй не для новичков...
Ред. quq_CCCP
» WarCraft 3 / Важная информация об обновлении 1.28
сжигать на кострахУгрожать судами и проблемами.» WarCraft 3 / Объясните функцию(Строчку)