20

» WarCraft 3 / Забагалась модель

Нужно разделить вертиклы на геосеты, на будущее - выкладывай модель, ибо я чую ты не поймёшь о чём речь и как это править.
Если кратко, то слишком много точек в 1 объекте у модели, программой MDLVis просто их закидывашь на новый геосет и в целом всё, точные лимиты я не вспомню, но просто разделяй на куски геосеты у которых очень много вершин и трианглов.
20

» WarCraft 3 / WFE - Warcraft Feature Extender

VladBmw530:
если,использовать 2.5-2.7 крашит,выкидывает,дропает на rgc/iccup
Такое ощущение, что надо тебе видео записать, как на Iccup играют с моей тулзой, а то ты по мозгам видать ездить не перестанешь.
2.3 версия работает Only iccup ибо,айкап не удаляет Mix файлы при старте игры,а ргц удаляет
Ну, и что ты хочешь, чтобы я с этой RGC сделал, с бубном потанцевал? :D
3.на ргц,делаю Inject до старта игры,она началась,пик,игра началась,я сразу вылетаю,варик просто закрывает
Если ты играешь в доту, то возможны конфликты записей памяти, здесь опять же, возможно 2.8 поможет, где по стандарту многие опции будут отключены и будут внедряться в память только, если они будут выбраны.
4.если на айсикапе,инжектить прогу,сразу краш "что-то пошло не так блаблабла" я не пробывал делать инжект,до игры на айсикапе,Но думаю эффект будет аналогичен,крашнет рано или поздно
Опять же, если ты играешь в доту, то ответ выше...
Те, кто тестировали, в доту не играют, им она просто на просто не интересна, а ты же не уточняешь в какой карте ты вообще тестируешь, криптография - не очень.
DracoL1ch:
да хватит пытаться затянуть её на ргц, добрая половина функционала уже есть из коробки в доте/лоде
Ну, видать он слишком неугомонный, ибо я ему раза 3 писал уже, что меня RGC не интересует и что всё рассчитывается просто на Вар 3, а не под какие-то конкретные платформы, человек видать не понимает :(
Обновление чейнджлога:
  1. Добавлена возможность включения/выключения лимита веса карт в 8 МегаБайт.
Версия ещё в тестовом варианте, хочу пока что ещё потестировать всё...
20

» WarCraft 3 / Таблица лидеров показывающая нанесенный/полученый урон

Happy:
Благодарю за помощь)
Обновил сообщение выше + пояснения написал.
20

» WarCraft 3 / Таблица лидеров показывающая нанесенный/полученый урон

Happy:
Unryze:
Считываешь нанесение урона через триггер EVENT_UNIT_DAMAGED, нанесённый урон записываешь за игроком - владельцем юнита, который нанёс урон, а полученный за игроком владельцем юнита, который получает урон.
Далее просто складываешь полученные числа с числами из таблицы.
Не сочтите за глупость, но можете более подробно расписать?
Пример Кода
globals
	real array DamageDealt
	real array DamageReceived
	group GroupEnum = CreateGroup( )
	group DamagedGroup = CreateGroup( )
	trigger DamageTrigger = CreateTrigger( )
endglobals

function RegisterDealtDamage takes nothing returns nothing
	local integer SourceID = GetPlayerId( GetOwningPlayer( GetEventDamageSource( ) ) )
	local integer TargetID = GetPlayerId( GetOwningPlayer( GetTriggerUnit( ) ) )

	set DamageDealt[ SourceID ] = DamageDealt[ SourceID ] + GetEventDamage( )
	set DamageReceived[ TargetID ] = DamageReceived[ TargetID ] + GetEventDamage( )
endfunction

function AddUnitToDamageCheck takes nothing returns boolean
	if not IsUnitInGroup( GetFilterUnit( ), DamagedGroup ) then
		call GroupAddUnit( DamagedGroup, GetFilterUnit( ) )
		call TriggerRegisterUnitEvent( DamageTrigger, GetFilterUnit( ), EVENT_UNIT_DAMAGED )
	endif
	
	return true
endfunction

function RegisterDamageTaken takes nothing returns nothing
	call GroupEnumUnitsInRect( GroupEnum, GetWorldBounds( ), Filter( function AddUnitToDamageCheck ) )
endfunction

function InitData takes nothing returns nothing
	call TriggerAddAction( DamageTrigger, function RegisterDealtDamage )
	call RegisterDamageTaken( )
endfunction
Функция InitData создаёт действие триггеру DamageTrigger, которым мы будем принимать эвент получения урона, RegisterDamageTaken - функция для проверки юнитов по всей карте и добавлении их в триггер DamageTrigger, если они не существуют в группе DamagedGroup (фильтрация), ну а дальше всё банально, нанесённый урон = полученному, потому DamageDealt[ SourceID ] где SourceID - ID игрока наносившего урон и DamageReceived[ TargetID ] - ID игрока получившего урон.
20

» WarCraft 3 / Таблица лидеров показывающая нанесенный/полученый урон

Считываешь нанесение урона через триггер EVENT_UNIT_DAMAGED, нанесённый урон записываешь за игроком - владельцем юнита, который нанёс урон, а полученный за игроком владельцем юнита, который получает урон.
Далее просто складываешь полученные числа с числами из таблицы.
20

» WarCraft 3 / WFE - Warcraft Feature Extender

VladBmw530:
Привет,давно не было баг-репортов,это потому-что я на "стабильной 2.3 версии,Обьясняю,почему не перехожу выше,иза инжекта критует вариик на айсикапе,
Никто не мешает переименовать .dll в .mix и давать ему напрямую подгружаться без нужды в inject, это было сделано для тех, кому хочется в любое время иметь возможность подгрузить файл, не более.
1.так вот перейдем к проблеме я заметил что уже довольно часто если игра долго длиться больше 30-50 минут,перестают работать смарткасты,тобиш кнопки у меня перезначены например Идти на "C" если нажимаю эту кнопку просить потвердить типо ну куда идти,смарткаст сломан,
Я, мой друг и ещё пара других людей проверяли в YouTD карте, где игра длится 2 часа +, таких проблем просто нет, хотя сложно судить, такой объём проблем пока что был лишь у тебя... и да, на ICCUP тоже проверялось всё.
2.не могу воиспрозвести,этот баг,ну скажу одну игру играл 70+минут все нормально работало,другую играл на леорике 34,минута я умер возродился нажал глиф кружочек у меня забинден на клавишу 2(панелька циферок ниже F1-F2)так вот после этого заметил что перестало работать,не думал это писать так-как баг довольно редкий,но он исключительно в играх которые долго дляться,так что дело серьезное незнаю вроде-как после смерти все ломаеться,ну 1 раз было когда просто я быстро нажимал C+A тобиш скипал анимацию чтобы побыстрее бить,и смарткаст сломался перестал работать,вообщем как-то так
Опять же, это звучит ну слишком странно, однако если ты проверяешь на старой версии, то я ничем помочь не смогу, ибо откатывать всё ради тебя назад я уж точно не буду. В планах конечно сделать "ограничители" для 2.8, то бишь чтобы можно было использовать тулзу строго как смарткаст, без чего-либо ещё и т.д.
3.если кратко,и ты не понял кнопки,перезначеные работают,ну вот а смарткаст отключаеться или ломаеться,незнаю с чем это связано,тобиш получаеться обычный Кеймапер xD
Опции Smartcast и Autocast должны быть включены. Smartcast отвечает лишь за перенаправление и одиночный клик, autocast вызывает повтор кастов, но это опять же на новых версиях, старое я физически тебе не верну. :)
Немного поработал с кодом и составил кратко чейнджлог, версия будет загружена ещё не скоро, ибо хочется таки по-больше с кодом поработать, чтобы был резон обновлять.
Кратко: при выключенных опциях, теперь не будет идти запись данных поверх существующих - это должно по идее помочь со всякими RGC/ICCup, где идёт проверка по факту на старте игры.
Чейнджлог версии 2.8:
  1. Теперь хоткеи камеры работают только если окно Вар 3 активно.
  2. Теперь, если оставлены стандартные значения задержки/начала игры/фпс, то не будет вызвана запись памяти.
  3. Добавлена возможность включения/выключения отображения скорости атаки и бега.
  4. Незначительные багфиксы/оптимизации кода.
20

» WarCraft 3 / WFE - Warcraft Feature Extender

VladBmw530:
Вообщем,нашел в чем проблема с ргц
Когда,запускаешь,игру оно просто удаляет mix файл wfe и тот,не работает я так понимаю это их защита,
а в случае с новым wfe 2.7 без mix,но с dll он не ижнектиться иза странного названия окна War3,скриншот добавил
даже,хз что тут можно зделать
Прикольно, ничего не скажешь :D Меняют имя окна на адрес GameDll + HWND Proc по идее.
20

» WarCraft 3 / АнтиХак

DracoL1ch:
ChangeOffsetProtection как всегда
Хм, окей, как будет время думаю стоит поизучать.
quq_CCCP:
Только потом нужно после изменения восстановить протект.
Окей.
20

» WarCraft 3 / АнтиХак

DracoL1ch:
это рандомно, часто садится на 6F, но когда ут ебя будет 20к разнообразных клиентов ежедневно, быстро увидишь огромное количество вылетов
берешь и переписываешь память, предварительно её разлочив на запись. а хак может повторить перезапись. смысла мало
и у меня модуль Msseax.m3d дефолтно используется игрой, а у тебя он считается хаком
Ну, Mssseax я кстати местами спутал с Reverb2.flt, но этот файлик использовал W3SH хак, хотя по факту все адреса оттуда я и так детекчу, потому думаю стоит это убрать.
Такс, а разве запись и чтение карты не открывается как раз в инициализации? Если нет, то можешь подсказать, через что нужно разблокировать запись? Просто я думаю если это сделать, то лучше просто "восстанавливать" локально читеру память и деактивировать чит, нежели кикать.
20

» WarCraft 3 / АнтиХак

DracoL1ch:
а в 79/80 у тебя будет ложное срабатывание, если GameDLL окажется не на 6F000000
На удивление ещё ни разу не было, но, как вариант, что нужно сделать, чтобы GameDLL был не на 6F000000? Просто это чудо уже отслужило в FOA/MVB/AFB/NL/NWU и ещё паре карт, но вот когда я VTables проверял тупо как адреса, вот там ложных срабатываний была уйма :(
Кстати, я по твоей подсказке зачистил от лишних адресов, думаю позже апдейтнуть. И такой вопрос, можно ли как-то Мемхаком как в С взять и "реверсить" хак? Ну, возвращать оригинальное значение? В С вышло, а вот на Джассе не хочет падла, фаталит :(
20

» WarCraft 3 / WFE - Warcraft Feature Extender

Choperok:
Unryze:
Choperok:
Unryze:
Choperok: Unryze:
Если обратишь внимание, то одна трава выглядит четко, а вторая размыто, это сильно бросается в глаза) Просто как она тогда снимает лимит в самой игре? Я запустил карту в самой игре и трава осталась растянутой.
Кстати, если я закреплю камеру за 1 юнитом, твое расширение будет работать? Скинь мне текстуры, почему-то мне кажется, что у тебя там качество текстуры просто убитое.
Крепление камеры не влияет на размеры и так далее (если конечно не крепить высоту).
На формат ТГА это не влияет, патчатся адреса строго blp формата, если ты для меня их сконвертировал в TGA, то сделал лишь хуже, если оригинал в blp, мне нужен именно он. :)
Тайл 512х512 должен быть размытым, ибо по-нормальному тайлы не делаются квадратными, ввиду UV карты ленда, кратко говоря не используй 512х512 :)
Так вот в том-то и прикол, что 512х512 не размыт, а 512х1024 размыт.
Эм, а вот это уже странно...
Попробуй ленды из файла ниже. Они ужаты, но для тестов сойдут.
Загруженные файлы
20

» WarCraft 3 / WFE - Warcraft Feature Extender

Choperok:
Unryze:
Choperok:
Unryze:
Если обратишь внимание, то одна трава выглядит четко, а вторая размыто, это сильно бросается в глаза) Просто как она тогда снимает лимит в самой игре? Я запустил карту в самой игре и трава осталась растянутой.
Кстати, если я закреплю камеру за 1 юнитом, твое расширение будет работать?
Скинь мне текстуры, почему-то мне кажется, что у тебя там качество текстуры просто убитое.
Крепление камеры не влияет на размеры и так далее (если конечно не крепить высоту).
На формат ТГА это не влияет, патчатся адреса строго blp формата, если ты для меня их сконвертировал в TGA, то сделал лишь хуже, если оригинал в blp, мне нужен именно он. :)
Тайл 512х512 должен быть размытым, ибо по-нормальному тайлы не делаются квадратными, ввиду UV карты ленда, кратко говоря не используй 512х512 :)
20

» WarCraft 3 / АнтиХак

DracoL1ch:
так ты когда офсет на 4 делишь, у тебя падают все 4 к "36143C/4", три последующих не имеют смысла, поэтому и сказал
А, точно, вот с этим я затупил (мы же делим целочисленные), спасибо, а то я в глаза долбился, 2 + за наводку :)
20

» WarCraft 3 / АнтиХак

DracoL1ch:
не понял, нафига в антихаке ряд повторяющихся бессмысленных проверок
		call CheckAddrData(   7, 0x36143C, 0x00000001 ) //							|
		call CheckAddrData(   8, 0x36143D, 0x00000001 ) //							|
		call CheckAddrData(   9, 0x36143E, 0x00000001 ) //							|
		call CheckAddrData(  10, 0x36143F, 0x00000001 ) //__________________________|
4 подряд на один и тот же адрес, потому что чтения нечетных адресов нет
Ну, эти адреса были в ZodCraft и шли они вот так подряд, я исходил из этого, ну и похожее было в Neon хаке (не Xenon), просто я думал, что раз они по ним делают изменения, то должен же быть смысл - это одни из первых адресов, которые я вписывал, тогда считай на абум добавлял, если реально это бессмысленно и тому есть прямое подтверждение, то убрать не проблема.
Но тогда спрашивается почему разработчики хаков это делают? :D
Так же если их читать через GameDll а не через мемхак по GameBase то получается вот это:
CheckMHData( 7, 0x36143C, 0x00000001 );
CheckMHData( 8, 0x36143D, 0xD3000000 );
CheckMHData( 9, 0x36143E, 0xE8D30000 );
CheckMHData( 10, 0x36143F, 0x3BE8D300 );
Не исключено, что чтение через C++ идёт в разрез с чтением через мемхак, но адреса выдают же значения, а не пустышки, хотя они нечётные.
20

» WarCraft 3 / WFE - Warcraft Feature Extender

Choperok:
Unryze:
Если обратишь внимание, то одна трава выглядит четко, а вторая размыто, это сильно бросается в глаза) Просто как она тогда снимает лимит в самой игре? Я запустил карту в самой игре и трава осталась растянутой.
Кстати, если я закреплю камеру за 1 юнитом, твое расширение будет работать?
Скинь мне текстуры, почему-то мне кажется, что у тебя там качество текстуры просто убитое.
Крепление камеры не влияет на размеры и так далее (если конечно не крепить высоту).
20

» WarCraft 3 / WFE - Warcraft Feature Extender

quq_CCCP:
Unryze, ну и будут багрепортами убивать тебя, мол прога лагает =)
А некоторые взвоют что такой камхак - чит.
Хз, при желании такое можно и через карту делать, ничего сложного.
Choperok:
Unryze:
Choperok:
Камера просто супер! Сам я рукожоп в триггерах и джассе, а эта камера дает все что нужно для создания рпг карты, да и не только рпг) Автору и его помощникам огромное спасибо!
Спасибо за комментарий, я ещё думаю в новую версию сделать возможность модификации "дальности видимости" по стандарту стоит 5000, то бишь когда наклоняем горизонтально камеру, будет перекрываться часть отображения игры.
Но это конечно будет дико бить по ФПС если смотреть слишком далеко :)
А можешь ограничить уровень наклона 180 градусами чтобы не западать камерой под карту?:) И хоть убей, но я так и не понял про снятия лимита blp... Такой косяк исправить твое расширение не сможет?
Не особо горю желанием вносить хард лимиты, время жалко, а вот добавить кнопку "заморозки" текущего положения, думаю имеет смысл, но не уверен сделаю ли - это не так интересно.
Моя программа не патчит World Editor, по крайней мере по моим тестам, ну и на скрине мне тяжело понять о каком баге ты говоришь.
20

» WarCraft 3 / WFE - Warcraft Feature Extender

Choperok:
Камера просто супер! Сам я рукожоп в триггерах и джассе, а эта камера дает все что нужно для создания рпг карты, да и не только рпг) Автору и его помощникам огромное спасибо!
Спасибо за комментарий, я ещё думаю в новую версию сделать возможность модификации "дальности видимости" по стандарту стоит 5000, то бишь когда наклоняем горизонтально камеру, будет перекрываться часть отображения игры.
Но это конечно будет дико бить по ФПС если смотреть слишком далеко :)
20

» WarCraft 3 / АнтиХак

NazarPunk:
Смысл в том, что удобнее использовать отдельный код, который может работать без мемхака
Мемхак может работать без мемхака, это как-то странно.
Чего...? Речь о коде для антисейва, читайте внимательно.
20

» WarCraft 3 / АнтиХак

quq_CCCP:
Unryze, смысли, прям из твоего кода, лол, твой детект и есть мемхак который требуется для запуска этого дела... Ничего болье, ну кроме одной переменной - pGetFrameItemAddress = GameDLL + 0x09EF40.
В дискорде отвечал, но сюда ответ закину.
Смысл в том, что удобнее использовать отдельный код, который может работать без мемхака, в этом вся суть. Хотя добавить в АнтиХак это дело вполне логичная тема.
Сообщение просто для пояснения, не более.
20

» WarCraft 3 / АнтиХак

quq_CCCP:
Не драколич этот код и придумал, чтобы его дота не фаталила при сейве игры, это был самый простой способ - запретить сейв, вот этот кусок с хайва, обьем меньше в разы, нет не триггеров, не таймеров, вовсе хендлов.
Однако, чтобы этот код вызывать нужно вставлять мемхак, а мой код можно вставить в карты без мемхака, непривычно досконально пояснять банальную информацию.
Я и не говорил, что он его придумал, я сказал о сорсе, с которого я взял основу.
Пойми уже, пихать везде мемхак - ужасная затея, особенно туда, где он явно не нужен.
П.С. скинул тебе в дискорд версию Антихака с детектом sHack.
20

» WarCraft 3 / АнтиХак

quq_CCCP:
Unryze, был и в оригинале, темболее у тебя так или иначе мх на запись, т.е сломанный массив, так что тут уже глупо отнекиватся. На хайве GetFraemAdress есть под 1.26, кстати мб тебе мемхак кинуть под 1.27+?
Мемхак мне толком не интересен, потому это бесполезно, да и при желании я и сам смогу это сделать, если разберу game.dll новых версий, но это бесполезно.
Про "отнекивание" речь шла о том, что это бесполезный код и можно решить эту проблему менее затратным результатом, про "оригинал" я о том, что выложил Драколич, когда я его брал - это было года 3 назад, может и больше.
20

» WarCraft 3 / WFE - Warcraft Feature Extender

VladBmw530:
1.что-то не так с делеем,бывает вообще кнопка не отзываеться у на нажатие(тест в одиночке,И сетевой игре был)
2.как это выглядить я нажимаю идти(M по дефолту) оно бывает отзываеться бывает,нет бывает вообще не отвечает надо тогда кнопку еще раз нажать,и это не от пинга зависит я в одиночке тестил,хз такое чуство как буд-то пингует задержки,проверь
3.если кнопку,Нажать И ДЕРЖАТЬ Тогда Ходьа Работает,правда с задержкой,если просто нажимать часто,(КАК Я И ДЕЛАЛ) оно вообще не отзываеться ну максимум из 10 нажатий 1 раз
4.это с задержкой не связано,я ставил разные значения
Первое нажатие = вызов подхвата окна War 3, оно всегда будет с задержкой.
20

» WarCraft 3 / АнтиХак

quq_CCCP:
Unryze, насчет сейва -
function DisableSaveGameSaveButton takes nothing returns nothing
    local integer pSaveGameSaveButton = GetFrameItemAddress("SaveGameFileEditBox",0)
    if pSaveGameSaveButton > 0 then
        set Memory[pSaveGameSaveButton/4 + 0x1D4/4] = 0
        set Memory[pSaveGameSaveButton/4 + 0x108/4] = 0
        set Memory[pSaveGameSaveButton/4 + 0x1E8/4] = 0
    endif
    set pSaveGameSaveButton = GetFrameItemAddress("FileListFrame",0)
    if pSaveGameSaveButton > 0 then
        set Memory[pSaveGameSaveButton/4 + 0x10C/4] = 0x3B03123E
    endif
endfunction
Вот на мемхаке, этот вариант надежен и не даст сохранить игру и вызвать фатал.
Ну, без мемхака это дело тоже решается, кодом выше, я просто не хочу юзать мемхак там, где это не нужно, но за код спасибо (не помню был ли он в оригинальном мемхаке).
20

» WarCraft 3 / WFE - Warcraft Feature Extender

WFE 2.7 загружена.
Изменения:
  1. Название окна исправлено, указывало на старую версию.
  2. Задержка ПКМ изменена в Задержка Действий.
  3. Теперь нажатия X0Y0 / X3Y0 будут иметь задержку указанную в опции. ( M / A )
  4. Добавлена возможность включения/выключения "перекрытия" хоткеев, то бишь хоткеи WFE будут перекрывать хоткеи War 3.
20

» WarCraft 3 / АнтиХак

Bergi_Bear:
Какие ещё читы, у нас народ что делает, что играет только в Melee карты
Юмор оценил :)
quq_CCCP:
Unryze, ну хз, кстати в ранних версиях банило за безобидный софт, вроде хп\мп бара.
Кстати совсем забыл, добавили блок кнопки сохранения? То мх с записью уже будет фаталить при сохранении игры.
В ранних моих версиях? Да, я безразборно разбирал хаки и добавлял, потом лишь доходило какой адрес за что отвечает.
Код для блока сейва:
	globals
		timer SaveBlockTimer = CreateTimer( )
		dialog PreventSave___Dialog = DialogCreate()
	endglobals
		
	function PreventSave___Exit takes nothing returns nothing
		call DialogDisplay(GetLocalPlayer(), PreventSave___Dialog, false)
	endfunction

	function PreventSave___StopSave takes nothing returns boolean
		local boolean GameAllowSave = false

		if GameAllowSave == false then
			call DisplayTextToPlayer(GetLocalPlayer(), 0, 0, "Save Game is Disabled")
			call DialogDisplay(GetLocalPlayer(), PreventSave___Dialog, true)
		endif

		call TimerStart( SaveBlockTimer, 0.00, false, function PreventSave___Exit)

		return false
	endfunction

	function AntiSaveSystemInit takes nothing returns nothing
		local trigger AntiSaveLocalTrigger = CreateTrigger()
		call TriggerRegisterGameEvent( AntiSaveLocalTrigger, EVENT_GAME_SAVE )
		call TriggerAddCondition( AntiSaveLocalTrigger, Filter(function PreventSave___StopSave ) )
		set AntiSaveLocalTrigger = null
	endfunction