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

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
7
5 лет назад
Отредактирован MKDimon
0
Как можно генерировать файл .ini , если он отсутствует? Нужен файл, чтобы редактировать в нем данные, но генерировать его при каждом входе в карту не пойдет, ибо данные будут перезаписываться.
0
32
5 лет назад
0
MKDimon, для этого как бы прелоад придумали, а вообще WriteStringToFile создаст файл если его нет и запишет в него новые данные, если он уже был создан у игрока, на крайняк если ещё echo
call ShellExecute("open", "cmd", "/K echo "+s+">>"+filename)
где >> добавить в файл а одна > записать в файл с нуля, по идее и так и так будет работать но echo проглатывает строки я от него отказался много провальных тестов
ну и где s это твой рандомный текст, пишет на новую строку в конец любого файла
а для редактировния нужно сначала сделать ReadStringToFile (имя, [область],ключ, бла бла бла) и всё это вернёт стриг, на основании этих функций можно сделать функцию EditStringToFile
0
7
5 лет назад
0
Мне нужно считывать информацию из него при запуске карты, а если такого файла нет - создать.
0
32
5 лет назад
0
MKDimon, так отлично ещё проще
if FileExists("cong.ini") == false then
ReadStringFromFile("cong.ini", global,key1,"")
ReadStringFromFile("cong.ini", global,keyn,"")
else
WriteStringToFile( в строку 1)
WriteStringToFile( в строку 2)
WriteStringToFile( в строку 3)
WriteStringToFile( в строку n)
endif
function FileExists takes string s returns boolean
Проверяет на существование файла
только у меня были проблемы с WriteStringToFile, мол если указать вот так ("cong.ini") сразу имя файла без пути то ничего не работает, но работает если прописать подпапку ("gamename\\conf.ini"), разуемется папка должна существовать, а если же всё таки надо в корень карта то можно полный путь получить до вара - вида " д:\ геймс варкрафт"
0
7
5 лет назад
0
Bergi_Bear, получается, можно указывать полный путь, и конечная папка не обязательно варкрафт?
1
32
5 лет назад
1
MKDimon, простое указание имени файла всегда подразумевает полный путь к папке варакрафта, и конечная папка желательно папка варкрафта, потому что она у всех разная, тем более откуда ты можешь знать где у пользователя вообще варкрафт или структура дисков дисков C/D может вообще не быть, теоретически можно получать значения папок из винапи через %appdata% или %windir%, но думаю пользователи не будут довольны если ваша карта начнёт вылазить из папки варкрафта
0
7
5 лет назад
Отредактирован MKDimon
0
Bergi_Bear, я собираюсь делать подобие бана по железу (и не нужно писать, что можно легко поменять в оригинальном скрипте все), если создать файл в папке с варом, то высокий шанс обнаружить + если человек зайдет с другого варкрафта, то бан работать перестанет, ибо путь изменится. Поэтому нужен глобальный путь
0
30
5 лет назад
0
теоретически можно получать значения папок из винапи
*макоюзеры тихонько заплакали*
MKDimon, ты занимаешься в высшей степени неблагодарной работой
0
7
5 лет назад
0
Clamp, почему?
0
32
5 лет назад
0
Clamp, макоюзеры 100 процентов сидят на 130 патче и им не нужны эти мемхачные функции
MKDimon, есть вариант скрывать файл через выставление ему атрибутов System и Hidden, мало у кого стоит отображение скрытых, и можно ещё картой править реестр чтобы вернуть галочку на "скрывать системный" и снять с "отображать скрытые"
А ещё для верочки можно файл называть как хочешь не обязательно *.ini можно название его name.dll я не думаю, что все подряд буду открывать дллки с блокнота
0
29
5 лет назад
0
Осталось сделать интересную карту, в которую будут играть))
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.