15

» WarCraft 3 / Удаляется герой рандомно, баг

NazarPunk:
Мой внутренний экстрасенс думает, что герой попадает в группу "даммиков (которые всё равно удаляются таймерами)".
У меня удаление даммиков происходит индивидуально для каждого, а не каким-то общим чистильщиком. Создался даммик - специально под него и таймер для удаления.
А еще я недавно встроил в проверку IsUnitDummy - не герой ли юнит, и если это герой и он в группе даммиков то его оттуда удаляют.
15

» WarCraft 3 / Ответе пожалуйста на несколько моих вопросов...

Странно что тебе никто не дал правильный ответ на вопрос, в айсикаповской доте в файле war3map.j ничего нет, весь скрипт карты в виде байт-кода зашит в dll библиотеку, которую можно разве что дизассемблировать. Она есть внутри карты, но это совсем другая история как дизассемблировать компилированный байткод.
Тебе наверное интересно почему так? Потому что админы айсикапа - нехорошие люди, которые видите ли не хотят чтоб их доту кто-то изучал, искал баги в коде.
Как они это сделали?
В версии 1.26а есть баг позволяющий читать и писать память процесса, в том числе внедрять в него DLL библиотеки со своим кодом, а если такая возможность есть - с игрой можно делать вообще всё что угодно, даже с файлами и процессами за пределы игры на твоем компьютере.
15

» WarCraft 3 / На основе какого юнита, лучше всего делать даммика ?

PT153:
Не придумывайте извращения
Так вопрос не в модельке.
Окей, просто в варике всего 2 типа юнитов, герои и не-герои потому тут выбор не особо великий)
15

» WarCraft 3 / На основе какого юнита, лучше всего делать даммика ?

Не придумывайте извращения, есть специальный файл с пустой моделькой и origin аттач поинтом.
К нему можно приаттачивать эффекты и менять масштаб, цвет.
Файл прикрепил.
Загруженные файлы
15

» WarCraft 3 / Вопрос по устройству мемхака

quq_CCCP:
Drulia_san, Интересен готовый продукт, что такое и что делает.
Делаю расширенный мемхак для себя и, собираюсь добавлять туда различный функционал который мне будет необходим по мере продвижения в работе, который можно встраивать в карту. Еще параллельно делаю небольшое sdk к варику, Некоторые вещи взял из RenderEdge, работать с графикой мне не надо, потому исключил всё что было с ней связано как и связи с d3d, сделал sdk (.lib файл с небольшим колвом инклудов) с набором необходимого, которое можно включить в проект (в данном случае моя dll) не пересобирая по 100 раз одно и то же и чтобы работало прямо из карты без заранее скачанного софта.
Может на гитхаб однажды выложу.
15

» WarCraft 3 / Вопрос по устройству мемхака

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;
	}
15

» WarCraft 3 / Вопрос по устройству мемхака

DracoL1ch:
Unreal подразумевает чтение с адреса, уже деленного на 4, у тебя ptr нужно сразу на 4 умножать
Memory[Memory[Memory[Memory[GetJassContext(1)/4+2589]/4+2]/4+SH2I(s)*4+2]/4+7]
вот в едином стиле, все результаты делятся на 4, восстанови и получишь формулу
Так-то оно так, но я заметил очень странную вещь, выводил в варике значения которые читаются по адресу и сами адреса, и проверял их в cheat engine (как и в программе C++ соответственно), эти значения кардинально различаются. Такое ощущение что у него какая-то своя вселенная откуда он читает.
К примеру вывожу вариком значение GetJassContext(1) и значение памяти по адресуGetJassContext(1)/4 + 2589 , перепечатываю адрес, перевожу в hex, смотрю значение в cheat engine с соответствующим оффсетом (2589 оно же 0xA1D) и читаю.
То что читает варик и то что читает другой софт по тем же адресам вообще отличается радикально.
15

» WarCraft 3 / Вопрос по устройству мемхака

а что пишешь на с++. решил весь код карты перевести на dll?
Не, у меня для других целей.
Я решил пока так: Передаю в либу результат выражения ReadUnrealMemory( ReadUnrealMemory( GetJassContext( 1 ) / 4 + 2589 ) / 4 + 2 )
Назовём его условно ptr.
Потом читаю ptr = *(ptr + stringHandle * 4 + 2), потом читаю ptr = *(ptr + 7)
И на моменте чтения адреса где прибавляется 7 уже Access violation.
По идее деление делает адрес "нереальным", а умножение реальным, раз string handle умножается в функции мемхака GetStringAddress на 4, то его и в С++ надо умножить на 4
Но почему-то на чтении ptr + 7 ошибка..
15

» WarCraft 3 / Вопрос по устройству мемхака

quq_CCCP:
Насколько помню деление и умножение на 4 это проверки корректности, так же везде где можно во второй версии перешли на целые адресса, для надежности.
Когда я пытаюсь читать по этим адресам из DLL библиотеки (там же не надо делить умножать на 4, полноценный язык все таки) ругается на memory access violation. По сути я пытаюсь делать так же как и в скрипте для доступа к игровым объектам, но без деления на 4.
ReadRealMemory(addr) это же то же самое что и *addr
Мне кажется я что-то упускаю и просто убрать деление и умножение недостаточно...
15

» WarCraft 3 / Не работает мемхак

nocjass
кек, я просто не сразу понял что под nocjass имелись в виду блоки кода которые отключают cjass для карты. Не знал об их существовании, думал полностью выключить.
Bergi_Bear:
Hate, развей миф, вот карта xgm.guru/p/wc3/mhdamage/download - карта с детектом урона, сделай так чтобы карта стала работать на cJass, расставь эти nocjass и приложи сюда,
Да, это мне и нужно было, спасибо
15

» WarCraft 3 / Не работает мемхак

Cпасибо за ответы.
Черт, а с cJass прям никак не будет работать?
Пусть мемхак на обычном джассе написан, это означает что и в остальном коде мне от cJass отказаться придется?
У меня на нем буквально десятки тысяч строчек кода, переписать на обычный jass будет нереально.
Да и обычный jass выглядит вырвиглазно и неудобен со своим синтаксисом из кучи длинных слов, словами вместо скобок и символов, и лишними словами call, local и set
Неужели придется отказаться от cJass полностью?
15

» WarCraft 3 / Очень странный архив карты

PT153:
Эмм а как это сделать?
Понятия не имею, но вар подгружает .mix и .dll файлы, что находятся в его папке. Так сделан RenderEdge, хак на лимит карт и много чего ещё.
mixtape это внешние dll, а здесь либа запакована прям внутрь карты, ты только представь степень опасности в том как просто человек может скачать карту в игре, запустилась игра, а там уже в ход пошла DLL, вредоносный код уже свободно может исполняться
15

» WarCraft 3 / Очень странный архив карты

PT153:
Если есть способ прямо из карты внедрять DLL в процесс... С помощью этого же таких делов наворотить можно
На этом многие хаки и основаны)
Эмм а как это сделать?
15

» WarCraft 3 / Очень странный баг

Hate:
делай дебаг, и следи, проверяй везде где есть ремув
Ремув есть практически везде, потому что используются дамми. Как правило ремувается очень большое количество дамми и умершие крипы спустя определленное время. На всё дебаг поставить это будет ну очень много лишнего кода. Да и потом, я так и не смог воссоздать ситуацию чтоб баг повторился.
Можно как-то посмотреть какой код выполнялся в реплее в тот момент?
15

» WarCraft 3 / Что лучше для сопротивления магии

UrsaBoss:
quq_CCCP:
Складывается только благословение элуны или дефенд - фактор урона от магии - 1 это 100% урона, 0.70 это 70% урона , т.е из 100 прошло только 70 урона, 30 заблокировалось.
разве не предметные абилки складываются?
или это уже от самой абилки зависит?
Просто у меня откуда то этот стереотип, типа не предметые абилки не суммируются, а только лишь работает самая сильная и т.д
Ну в доте ж есть такое, что ты покупаешь худ например пуджу и оно суммируется с его пассивкой. То есть она уменьшила скажем 200 урона до 170 и худ эти 170 еще на 30% уменьшает, вроде так. Это 100% стандартная механика варкрафта, так что мне нужно было просто узнать что это благословение элуны. Осталось просто в предмет его запихнуть.
15

» WarCraft 3 / Не скрывается абилка

PT153:
Держи
Хорошо, а настройки проблемных способностей (что на основе канала и берсерка)?
Сама абилка вот, всё что ниже - описание кд и мана (остальное по нулям), всё что выше - графика где всё тоже по нулям, кроме иконки.
Берсерк нет смысла кидать, он работает нормально, да и без него баг сам по себе остается.
Загруженные файлы
15

» WarCraft 3 / Не скрывается абилка

Настройки предмета и способности хотелось бы увидеть, а также настройки способностей, что внутри предмета.
Держи
Загруженные файлы
15

» WarCraft 3 / Не скрывается абилка

...
Мне удалось решить проблему, но я не понимаю почему оно так работает.
Когда игроку дается дамми итем, не важно включена ли обработка призыва иллюзий или нет, просто когда он дается - не срабатывает отключение способности которая была закастована только что. Другие - можно отключить, эту - нет.
Но только если она отключалась до выдачи дамми-итема. Если всучить дамми-итем, а потом уже отключить абилку - она отключается. Логика JASS хуже женской логики.
Главный критерий: Отключение обрабатываемой способности ДО выдачи дамми итема не будет работать.
15

» WarCraft 3 / Не скрывается абилка

LordDracula:
а канал не паузит юнита? мб из-за этого
Ну оно вообще кастится в течение какого-то времени, всё таки эта абилка сбивает приказ. Но разве это должно влиять на это... Эта абилка же не приказ дает скрыть способность, она вообще не на юнитов, а на игрока влияет, чтобы у всех юнитов подконтрольных игроку скрылась такая-то абилка.
...
Так. Всё работает до тех пор, пока игроку не даётся дамми-итем, который собсна и призывает иллюзию. Попробую проверить дальше что там. Хотя триггер обрабатывающий призыв иллюзии вообще ничего не скрывает\показывает.
15

» WarCraft 3 / Не скрывается абилка

PT153:
Поставь дебаг на отображение abId и p. Также вопрос про то, какое событие ловит каст, в силе.
EVENT_PLAYER_UNIT_SPELL_EFFECT
Я только что вручную прописал скрыть id этой абилки - не скрывается.
Хотя при выборе героя она должна быть скрытой и скрывается, странно.
Еще попробовал просто так скрыть эту абилку вообще другой абилкой - всё скрывается.
15

» WarCraft 3 / Не скрывается абилка

GetSpellAbilityUnit
GetSpellAbilityUnit не помогло. Приказы разные, вторая абилка вообще на базе берсерка. Она скрывается\показывается без проблем этим же триггером.
15

» WarCraft 3 / Про способности не сбивающие приказ

NazarPunk:
Absk, Adef, Amdf, ANms, AEim, AHds (Безумие, Укрыться за щитом, Магическая защита, Магический щит, Жар преисподней, Божественный щит)
Все остальные сбивают приказ.
Я же написал что в курсе, я не понимаю как их использовать?
Вот пошло у абилки КД, а её еще раз прожать можно чтоб "отменить".
15

» WarCraft 3 / Снова спеллбук... Не работает общее кд

8gabriel8:
Ничего не противоречу, просто никому из вопросов и ответов карты не нужны, но этот угарный страх выложить в открытый доступ)))
Всё просто, ты выкладываешь обе карты и говоришь, что в этой работает, а в этой то же самое не работает. Кто хочет, смотрит, кто не хочет, не смотрит. Но здесь же экстрасенсы все, видят корень проблемы астральным третьим глазом.

Но вообще доля правды в твоих словах есть. Очень мало кто здесь скачивает карты и разбирается в них, в основном выдвигают теории, основанные на имеющемся опыте. Но мне просто так влом получать карту в ЛС, получается какую-то ответственность на себя беру, что внимательно рассмотрю проблему, а на самом деле хочу мельком глянуть, что сразу в глаза попадётся. Да и тем более у тебя скорее всего jass-триггеры, в них у меня вообще нет желания глубоко залазить. А была бы выложена, молча бы скачал, посмотрел, если не разобрался бы, то ничего бы и не сказал. Просто и удобно.
Короче я забил на это всё и сделал проще, учитывая что у моего героя морф и с техникой улучшение не вышло, а апать книгу нормально по уровням не выходит, я сделал так: У героя есть уже спеллбук со всеми абилками и он скрывается при выборе персонажа. И абилки внутри тоже скрываются. И все абилки внутри скрываются. Есть отличная абилка "Улучшение характеристик", которая имеет иконку в меню прокачки и таки прокачивает уровень, но не имеет иконки на панельке абилок. Герой прокачивает её, а триггеры разблокируют спеллбук и по очереди все спеллы внутри него. В итоге получается полностью рабочий спеллбук с общим кд. Единственный недостаток - описание спеллбука не поменять. Да, можно использовать Blz функции которые напрямую меняют описание абилки и тогда вообще не отличить от полноценной прокачки, но т.к. идет упор на максимальную совместимость - я этого делать не стал.
15

» WarCraft 3 / Снова спеллбук... Не работает общее кд

8gabriel8:
Drulia_san:
Если есть возможность помочь - напиши в лс, скину.)
Вот с чего вы берёте, что мне персонально интересно заниматься вашей проблемой? Ещё понимаю, если ребёнок в ЛС обращается, но ты-то вроде взрослый человек(
Я не обращаюсь в лс с просьбой решить проблему, ты просто сказал выложил бы карты, я бы не хотел выкладывать во всеобщий доступ, но если появилось желание посмотреть - я бы скинул в лс. Ты сам себе противоречишь. Раз посмотрел бы, то не важно откуда брать саму карту, отсюда или лс. Я не прошу делать за меня карту, я лишь спрашиваю у комьюнити о конкретной проблеме на борьбу с которой потратил почти двое суток, я устал топтаться на месте и готов принимать любую помощь.
15

» WarCraft 3 / Снова спеллбук... Не работает общее кд

PyCCKuu_4eJl:
Никогда не любил спеллбуки, кроме тех случаев, когда там одни пассивки .
Можно попробовать пошаманить с абилкой "техника", мб поможет
Хотя костыли со стандартными спеллами та ещё муть - в джазе ты хоть примерно знаешь как весь твой код работать должен...
С техникой провал полный, добавлял технику в еще одном скрытом спеллбуке, сначала просто поднимал ей уровень при прокачке основной способности, но спеллбук больше 2 уровня не улучшается техникой. Пробовал добавлять 4 разные техники которые по очереди улучшают абилку при прокачке и это работает, но у моего героя есть морф и что бы я не делал, что бы я перманентно там не назначал, там все сбивается и превращается в кашу. Короче это извращение сразу отбрасываю