Нужно разделить вертиклы на геосеты, на будущее - выкладывай модель, ибо я чую ты не поймёшь о чём речь и как это править.
Если кратко, то слишком много точек в 1 объекте у модели, программой MDLVis просто их закидывашь на новый геосет и в целом всё, точные лимиты я не вспомню, но просто разделяй на куски геосеты у которых очень много вершин и трианглов.
если,использовать 2.5-2.7 крашит,выкидывает,дропает на rgc/iccup
Такое ощущение, что надо тебе видео записать, как на Iccup играют с моей тулзой, а то ты по мозгам видать ездить не перестанешь.
2.3 версия работает Only iccup ибо,айкап не удаляет Mix файлы при старте игры,а ргц удаляет
Ну, и что ты хочешь, чтобы я с этой RGC сделал, с бубном потанцевал? :D
3.на ргц,делаю Inject до старта игры,она началась,пик,игра началась,я сразу вылетаю,варик просто закрывает
Если ты играешь в доту, то возможны конфликты записей памяти, здесь опять же, возможно 2.8 поможет, где по стандарту многие опции будут отключены и будут внедряться в память только, если они будут выбраны.
4.если на айсикапе,инжектить прогу,сразу краш "что-то пошло не так блаблабла" я не пробывал делать инжект,до игры на айсикапе,Но думаю эффект будет аналогичен,крашнет рано или поздно
Опять же, если ты играешь в доту, то ответ выше...
Те, кто тестировали, в доту не играют, им она просто на просто не интересна, а ты же не уточняешь в какой карте ты вообще тестируешь, криптография - не очень. DracoL1ch:
да хватит пытаться затянуть её на ргц, добрая половина функционала уже есть из коробки в доте/лоде
Ну, видать он слишком неугомонный, ибо я ему раза 3 писал уже, что меня RGC не интересует и что всё рассчитывается просто на Вар 3, а не под какие-то конкретные платформы, человек видать не понимает :(
Обновление чейнджлога:
Добавлена возможность включения/выключения лимита веса карт в 8 МегаБайт.
Версия ещё в тестовом варианте, хочу пока что ещё потестировать всё...
Считываешь нанесение урона через триггер 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 игрока получившего урон.
Считываешь нанесение урона через триггер EVENT_UNIT_DAMAGED, нанесённый урон записываешь за игроком - владельцем юнита, который нанёс урон, а полученный за игроком владельцем юнита, который получает урон.
Далее просто складываешь полученные числа с числами из таблицы.
Привет,давно не было баг-репортов,это потому-что я на "стабильной 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:
Теперь хоткеи камеры работают только если окно Вар 3 активно.
Теперь, если оставлены стандартные значения задержки/начала игры/фпс, то не будет вызвана запись памяти.
Добавлена возможность включения/выключения отображения скорости атаки и бега.
Вообщем,нашел в чем проблема с ргц
Когда,запускаешь,игру оно просто удаляет mix файл wfe и тот,не работает я так понимаю это их защита,
а в случае с новым wfe 2.7 без mix,но с dll он не ижнектиться иза странного названия окна War3,скриншот добавил
даже,хз что тут можно зделать
Прикольно, ничего не скажешь :D Меняют имя окна на адрес GameDll + HWND Proc по идее.
это рандомно, часто садится на 6F, но когда ут ебя будет 20к разнообразных клиентов ежедневно, быстро увидишь огромное количество вылетов
берешь и переписываешь память, предварительно её разлочив на запись. а хак может повторить перезапись. смысла мало
и у меня модуль Msseax.m3d дефолтно используется игрой, а у тебя он считается хаком
Ну, Mssseax я кстати местами спутал с Reverb2.flt, но этот файлик использовал W3SH хак, хотя по факту все адреса оттуда я и так детекчу, потому думаю стоит это убрать.
Такс, а разве запись и чтение карты не открывается как раз в инициализации? Если нет, то можешь подсказать, через что нужно разблокировать запись? Просто я думаю если это сделать, то лучше просто "восстанавливать" локально читеру память и деактивировать чит, нежели кикать.
а в 79/80 у тебя будет ложное срабатывание, если GameDLL окажется не на 6F000000
На удивление ещё ни разу не было, но, как вариант, что нужно сделать, чтобы GameDLL был не на 6F000000? Просто это чудо уже отслужило в FOA/MVB/AFB/NL/NWU и ещё паре карт, но вот когда я VTables проверял тупо как адреса, вот там ложных срабатываний была уйма :(
Кстати, я по твоей подсказке зачистил от лишних адресов, думаю позже апдейтнуть. И такой вопрос, можно ли как-то Мемхаком как в С взять и "реверсить" хак? Ну, возвращать оригинальное значение? В С вышло, а вот на Джассе не хочет падла, фаталит :(
Choperok:
Unryze:
Если обратишь внимание, то одна трава выглядит четко, а вторая размыто, это сильно бросается в глаза) Просто как она тогда снимает лимит в самой игре? Я запустил карту в самой игре и трава осталась растянутой.
Кстати, если я закреплю камеру за 1 юнитом, твое расширение будет работать?
Скинь мне текстуры, почему-то мне кажется, что у тебя там качество текстуры просто убитое.
Крепление камеры не влияет на размеры и так далее (если конечно не крепить высоту).
На формат ТГА это не влияет, патчатся адреса строго blp формата, если ты для меня их сконвертировал в TGA, то сделал лишь хуже, если оригинал в blp, мне нужен именно он. :)
Тайл 512х512 должен быть размытым, ибо по-нормальному тайлы не делаются квадратными, ввиду UV карты ленда, кратко говоря не используй 512х512 :)
Так вот в том-то и прикол, что 512х512 не размыт, а 512х1024 размыт.
Эм, а вот это уже странно...
Попробуй ленды из файла ниже. Они ужаты, но для тестов сойдут.
Unryze:
Если обратишь внимание, то одна трава выглядит четко, а вторая размыто, это сильно бросается в глаза) Просто как она тогда снимает лимит в самой игре? Я запустил карту в самой игре и трава осталась растянутой.
Кстати, если я закреплю камеру за 1 юнитом, твое расширение будет работать?
Скинь мне текстуры, почему-то мне кажется, что у тебя там качество текстуры просто убитое.
Крепление камеры не влияет на размеры и так далее (если конечно не крепить высоту).
На формат ТГА это не влияет, патчатся адреса строго blp формата, если ты для меня их сконвертировал в TGA, то сделал лишь хуже, если оригинал в blp, мне нужен именно он. :)
Тайл 512х512 должен быть размытым, ибо по-нормальному тайлы не делаются квадратными, ввиду UV карты ленда, кратко говоря не используй 512х512 :)
4 подряд на один и тот же адрес, потому что чтения нечетных адресов нет
Ну, эти адреса были в ZodCraft и шли они вот так подряд, я исходил из этого, ну и похожее было в Neon хаке (не Xenon), просто я думал, что раз они по ним делают изменения, то должен же быть смысл - это одни из первых адресов, которые я вписывал, тогда считай на абум добавлял, если реально это бессмысленно и тому есть прямое подтверждение, то убрать не проблема.
Но тогда спрашивается почему разработчики хаков это делают? :D
Так же если их читать через GameDll а не через мемхак по GameBase то получается вот это:
Unryze:
Если обратишь внимание, то одна трава выглядит четко, а вторая размыто, это сильно бросается в глаза) Просто как она тогда снимает лимит в самой игре? Я запустил карту в самой игре и трава осталась растянутой.
Кстати, если я закреплю камеру за 1 юнитом, твое расширение будет работать?
Скинь мне текстуры, почему-то мне кажется, что у тебя там качество текстуры просто убитое.
Крепление камеры не влияет на размеры и так далее (если конечно не крепить высоту).
Камера просто супер! Сам я рукожоп в триггерах и джассе, а эта камера дает все что нужно для создания рпг карты, да и не только рпг) Автору и его помощникам огромное спасибо!
Спасибо за комментарий, я ещё думаю в новую версию сделать возможность модификации "дальности видимости" по стандарту стоит 5000, то бишь когда наклоняем горизонтально камеру, будет перекрываться часть отображения игры.
Но это конечно будет дико бить по ФПС если смотреть слишком далеко :)
А можешь ограничить уровень наклона 180 градусами чтобы не западать камерой под карту?:) И хоть убей, но я так и не понял про снятия лимита blp... Такой косяк исправить твое расширение не сможет?
Не особо горю желанием вносить хард лимиты, время жалко, а вот добавить кнопку "заморозки" текущего положения, думаю имеет смысл, но не уверен сделаю ли - это не так интересно.
Моя программа не патчит World Editor, по крайней мере по моим тестам, ну и на скрине мне тяжело понять о каком баге ты говоришь.
Камера просто супер! Сам я рукожоп в триггерах и джассе, а эта камера дает все что нужно для создания рпг карты, да и не только рпг) Автору и его помощникам огромное спасибо!
Спасибо за комментарий, я ещё думаю в новую версию сделать возможность модификации "дальности видимости" по стандарту стоит 5000, то бишь когда наклоняем горизонтально камеру, будет перекрываться часть отображения игры.
Но это конечно будет дико бить по ФПС если смотреть слишком далеко :)
Unryze, смысли, прям из твоего кода, лол, твой детект и есть мемхак который требуется для запуска этого дела... Ничего болье, ну кроме одной переменной - pGetFrameItemAddress = GameDLL + 0x09EF40.
В дискорде отвечал, но сюда ответ закину.
Смысл в том, что удобнее использовать отдельный код, который может работать без мемхака, в этом вся суть. Хотя добавить в АнтиХак это дело вполне логичная тема.
Не драколич этот код и придумал, чтобы его дота не фаталила при сейве игры, это был самый простой способ - запретить сейв, вот этот кусок с хайва, обьем меньше в разы, нет не триггеров, не таймеров, вовсе хендлов.
Однако, чтобы этот код вызывать нужно вставлять мемхак, а мой код можно вставить в карты без мемхака, непривычно досконально пояснять банальную информацию.
Я и не говорил, что он его придумал, я сказал о сорсе, с которого я взял основу.
Пойми уже, пихать везде мемхак - ужасная затея, особенно туда, где он явно не нужен.
П.С. скинул тебе в дискорд версию Антихака с детектом sHack.
Unryze, был и в оригинале, темболее у тебя так или иначе мх на запись, т.е сломанный массив, так что тут уже глупо отнекиватся. На хайве GetFraemAdress есть под 1.26, кстати мб тебе мемхак кинуть под 1.27+?
Мемхак мне толком не интересен, потому это бесполезно, да и при желании я и сам смогу это сделать, если разберу game.dll новых версий, но это бесполезно.
Про "отнекивание" речь шла о том, что это бесполезный код и можно решить эту проблему менее затратным результатом, про "оригинал" я о том, что выложил Драколич, когда я его брал - это было года 3 назад, может и больше.
1.что-то не так с делеем,бывает вообще кнопка не отзываеться у на нажатие(тест в одиночке,И сетевой игре был)
2.как это выглядить я нажимаю идти(M по дефолту) оно бывает отзываеться бывает,нет бывает вообще не отвечает надо тогда кнопку еще раз нажать,и это не от пинга зависит я в одиночке тестил,хз такое чуство как буд-то пингует задержки,проверь
3.если кнопку,Нажать И ДЕРЖАТЬ Тогда Ходьа Работает,правда с задержкой,если просто нажимать часто,(КАК Я И ДЕЛАЛ) оно вообще не отзываеться ну максимум из 10 нажатий 1 раз
4.это с задержкой не связано,я ставил разные значения
Первое нажатие = вызов подхвата окна War 3, оно всегда будет с задержкой.
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
Вот на мемхаке, этот вариант надежен и не даст сохранить игру и вызвать фатал.
Ну, без мемхака это дело тоже решается, кодом выше, я просто не хочу юзать мемхак там, где это не нужно, но за код спасибо (не помню был ли он в оригинальном мемхаке).
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
Ред. Unryze
» WarCraft 3 / Забагалась модель
Ред. Unryze
» WarCraft 3 / WFE - Warcraft Feature Extender
DracoL1ch: Ну, видать он слишком неугомонный, ибо я ему раза 3 писал уже, что меня RGC не интересует и что всё рассчитывается просто на Вар 3, а не под какие-то конкретные платформы, человек видать не понимает :(
» WarCraft 3 / Таблица лидеров показывающая нанесенный/полученый урон
Ред. Unryze
» WarCraft 3 / Таблица лидеров показывающая нанесенный/полученый урон
» WarCraft 3 / Таблица лидеров показывающая нанесенный/полученый урон
Ред. Unryze
» WarCraft 3 / WFE - Warcraft Feature Extender
» WarCraft 3 / WFE - Warcraft Feature Extender
» WarCraft 3 / АнтиХак
quq_CCCP: Окей.
» WarCraft 3 / АнтиХак
» WarCraft 3 / АнтиХак
» WarCraft 3 / WFE - Warcraft Feature Extender
» WarCraft 3 / WFE - Warcraft Feature Extender
» WarCraft 3 / АнтиХак
Ред. Unryze
» WarCraft 3 / АнтиХак
CheckMHData( 8, 0x36143D, 0xD3000000 );
CheckMHData( 9, 0x36143E, 0xE8D30000 );
CheckMHData( 10, 0x36143F, 0x3BE8D300 );
» WarCraft 3 / WFE - Warcraft Feature Extender
» WarCraft 3 / WFE - Warcraft Feature Extender
Choperok: Не особо горю желанием вносить хард лимиты, время жалко, а вот добавить кнопку "заморозки" текущего положения, думаю имеет смысл, но не уверен сделаю ли - это не так интересно.
» WarCraft 3 / WFE - Warcraft Feature Extender
» WarCraft 3 / АнтиХак
Ред. Unryze
» WarCraft 3 / АнтиХак
Ред. Unryze
» WarCraft 3 / АнтиХак
» WarCraft 3 / АнтиХак
» WarCraft 3 / WFE - Warcraft Feature Extender
» WarCraft 3 / АнтиХак
Ред. Unryze
» WarCraft 3 / WFE - Warcraft Feature Extender
Ред. Unryze
» WarCraft 3 / АнтиХак
quq_CCCP: В ранних моих версиях? Да, я безразборно разбирал хаки и добавлял, потом лишь доходило какой адрес за что отвечает.