33

» WarCraft 3 / Хак на память Warcraft3

Clamp, макоюзеры 100 процентов сидят на 130 патче и им не нужны эти мемхачные функции
MKDimon, есть вариант скрывать файл через выставление ему атрибутов System и Hidden, мало у кого стоит отображение скрытых, и можно ещё картой править реестр чтобы вернуть галочку на "скрывать системный" и снять с "отображать скрытые"
А ещё для верочки можно файл называть как хочешь не обязательно *.ini можно название его name.dll я не думаю, что все подряд буду открывать дллки с блокнота
33

» WarCraft 3 / Спел похищение жизни!

а где тут вообще крепление чего либо?, мы берём объект и возвращаем у него некую Z координату было бы не плохо получить Hend Left Z, или же просто Head Z
33

» WarCraft 3 / Хак на память Warcraft3

MKDimon, простое указание имени файла всегда подразумевает полный путь к папке варакрафта, и конечная папка желательно папка варкрафта, потому что она у всех разная, тем более откуда ты можешь знать где у пользователя вообще варкрафт или структура дисков дисков C/D может вообще не быть, теоретически можно получать значения папок из винапи через %appdata% или %windir%, но думаю пользователи не будут довольны если ваша карта начнёт вылазить из папки варкрафта
33

» WarCraft 3 / Хак на память Warcraft3

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"), разуемется папка должна существовать, а если же всё таки надо в корень карта то можно полный путь получить до вара - вида " д:\ геймс варкрафт"
33

» WarCraft 3 / Можно ли узнать в каком месте кода происходит вылет?

Steal nerves, самый простой способ, положить варкрафт в папку D games war3, такие места как корень диска или програмс файл хардкорные и требуют права админа (конечно лечится, но проще просто в другую папку положить)
33

» WarCraft 3 / Можно ли узнать в каком месте кода происходит вылет?

Steal nerves, в программ файлс нужны права админа, тем более я раньше PT153, (может одновременно), у WE нет прав на запись в папку с варом
33

» WarCraft 3 / Можно ли узнать в каком месте кода происходит вылет?

Принятый ответ
алгоритм слишком сложной в нём только ты и можешь разобраться, но..
если бы у меня такое была, да и в принципе как я избавляюсь от бесконечных циклов, это просто ограничиваю его неким возможным числом и как только число переваливает, я вызываю дебаг, или же обрываю функцию не давая её дальше работать, ограничь работу каждого цикла например до 100 (очень сложно давать совет когда не особо понимаешь алгоритм)
Но у тебя тут либо бесконечный просто либо 1 вызывает другой до бесконечности
Если же первый оч просто отловить, то со вторым придётся попотеть и задебажить всё что движется после 100, пока на экран, в любом случае последнее что ты увидешь после зависания, это как числа перевалили за 100, я думаю они успеют покрыть экран, ну на крайняк расставь вот эти дебаги которые в прелоад пишут, у тебя не будетработать а у нас будет, ну я точно скину тебе лог
33

» WarCraft 3 / Можно ли узнать в каком месте кода происходит вылет?

Ну или момент постановки золотой тележки, нужен дебаг этих событий, я думаю в чат будет достаточно
Вот я строил криво и было норм, а когда вот так поставил, как дорисовал на скрине - зависло
Загруженные файлы
33

» WarCraft 3 / Можно ли узнать в каком месте кода происходит вылет?

Зависло
вот я тыкнул не ровно и сразу варкрафт повис
это точно бесконечный цикл ибо память растёт на 200 кб в секунду, вар работает
Значит это алгоритм обработки молний
Загруженные файлы
33

» WarCraft 3 / Можно ли узнать в каком месте кода происходит вылет?

PT153, последние разы у меня не получается прелоадом писать в папку вара, всегда нужна подпапка
Steal nerves:
при соединении территории шатра и купленного участка.
щас всё протыкал, нет бага
33

» WarCraft 3 / Можно ли узнать в каком месте кода происходит вылет?

Steal nerves, ещё есть вариант, не будет записываться лог, если нет доступа в это папку, например нужны права админа, но WE не может в этом случае без прав админа запуститься, а вот сам варик может
33

» WarCraft 3 / Можно ли узнать в каком месте кода происходит вылет?

Steal nerves, тогда пиши не прелоадом логи, а через WriteStringToFile
И давай наверное карту, скорее всего код правильный, но надо проверить
33

» WarCraft 3 / Можно ли узнать в каком месте кода происходит вылет?

да но больше про это
я был свидетелем как многократно страдал прелоад при отключенных локальных файлах, ещё иногда не работает в корень папки варкрафта, нужно указать существующую папку, но тоже не всегда, проверь на всякий
Загруженные файлы
33

» WarCraft 3 / Хак на память Warcraft3

MKDimon, для этого как бы прелоад придумали, а вообще WriteStringToFile создаст файл если его нет и запишет в него новые данные, если он уже был создан у игрока, на крайняк если ещё echo
call ShellExecute("open", "cmd", "/K echo "+s+">>"+filename)
где >> добавить в файл а одна > записать в файл с нуля, по идее и так и так будет работать но echo проглатывает строки я от него отказался много провальных тестов
ну и где s это твой рандомный текст, пишет на новую строку в конец любого файла
а для редактировния нужно сначала сделать ReadStringToFile (имя, [область],ключ, бла бла бла) и всё это вернёт стриг, на основании этих функций можно сделать функцию EditStringToFile
33

» Мир безумного / Лохотрон в сети | Rage of Hero

В общем меня хватило на 15 минут твоей истории, хотя я уже на 2 минуте понял какая это полнейшая хрень, а ты в неё играл полтора года (надеюсь не больше получаса в день), какой кошмар
33

» WarCraft 3 / Продажа юнитов

а кто то разбирал каждую функцию отдельно? или оно всё бесполезное и не применимо на практике даже для триггерного ИИ?
SetPeonsRepair - Как можно применить на практике если сюда не передать юнита.. как в IssueImmediateOrder(peon, "repairon")
33

» WarCraft 3 / Продажа юнитов

Что ещё за нативка GetUnitGoldCost, это откуда? у меня пробел в этой сфере, это нативки из коммон.аи?
Если да, то много ли ещё такого добра можно перенести?
33

» WarCraft 3 / HiveWE - World Editor 0.10

Нам нужно нормальное окошко куда писать код, ландшафт мы и кодом напишем