eXeL@B —› Программирование —› Расширить аррэй |
Посл.ответ | Сообщение |
|
Создано: 21 января 2013 23:01 · Личное сообщение · #1 Всем привет, возникла необходимость расширить размеры массива, кто-то может подсказать каким образом это можно сделать, хотелось бы попросить конкретной помощи от того, кто разбирается. Работы минут на 30 но это реально нужная вещь для наших игроков (делаем патч для игры на 32 игрока сайт needforkill.ru). Хотим игрушку пропатчить с 8 игроков до 32 все пропатчили за исключением простенького аррэя. С ним дел не имели :\ Сама ехешка написанна и откомпилена в делфи. Аррэей в делфи выглядит так: players : array [0..7] of TPlayer; с семерки нужно на 32 исправить... |
|
Создано: 21 января 2013 23:33 · Поправил: TryAga1n · Личное сообщение · #2 Bitnik пишет: с 8 игроков до 32 Bitnik пишет: players : array [0..7] of TPlayer; с семерки нужно на 32 исправить... По логике вещей, на 31, а не на 32. А конкретно от нас вы что хотите? Чтобы мы экстрасенсорно указали место патча? Bitnik пишет: все пропатчили за исключением простенького аррэя Что "все" вы пропатчили? Перебили копирайты? Вы точно понимаете что такое аррэй и как он работает? |
|
Создано: 21 января 2013 23:35 · Личное сообщение · #3 |
|
Создано: 21 января 2013 23:53 · Поправил: Bitnik · Личное сообщение · #4 Серг )))) TryAga1n, да ты прав на 31, я чет тормознул, по логике я могу все предоставить вот например данные и вот сама ехе: http://pff.clan.su/forum/20-579-11370-16-1358797935 Тамже в посте прикреплен и ENGINE.exe Копирайты никто менять не собирается, все законно! Также могу исходник на делфи предоставить... Правда он старый и порванный но там все видно и можно разобраться примерно что к чему |
|
Создано: 22 января 2013 01:18 · Личное сообщение · #5 |
|
Создано: 22 января 2013 03:03 · Поправил: r_e · Личное сообщение · #6 Bitnik Там по всему коду проверки раскиданы и статически выделенный массив. Code:
----- старый пень |
|
Создано: 22 января 2013 03:17 · Поправил: gazlan · Личное сообщение · #7 |
|
Создано: 22 января 2013 11:49 · Поправил: yagello · Личное сообщение · #8 |
|
Создано: 22 января 2013 12:26 · Поправил: Bitnik · Личное сообщение · #9 Проверки все пропатчил давно, проблема только с массивом, умные люди сказали что нужно как-то в каком-то свободном отрезке памяти замутить аррей норм на 32 игрока, а на месте старого перенаправить как-то чтоли, или какой-то джамп сделать на новый, хз даже, либо еще патч сделать который перенаправит все упоминания об этом арэе в другое место... как-то так ))) |
|
Создано: 22 января 2013 12:52 · Личное сообщение · #10 |
|
Создано: 22 января 2013 13:41 · Личное сообщение · #11 |
|
Создано: 22 января 2013 14:52 · Личное сообщение · #12 Bitnik Набросал скриптец для оли, правит адреса массива на новый адрес, который задается константой - new_array. Счётчик показывает - 3620 замен. А вот с увеличением количества игроков сложнее. Частично можно автоматизировать поиском по сигнатурам. А для остального нужно писать что-то интерактивное, чтобы была возможность визуальной оценки кода. Code:
|
|
Создано: 22 января 2013 15:07 · Поправил: Bitnik · Личное сообщение · #13 3620 замен ? спасибо за пример попробую дать нашму прогеру, думаю он разберется ) если интересно как код выглядит то вот он: http://nfk.pro2d.ru/tribes/files/SOURCE.pas правда не полная, староватенькая версия но все основное тут видно. Более новая версия сурсов к сожалению утеряна потому вот делам костыли. Попробуй свой скрипт применить к этому файлу http://pff.clan.su/_fr/5/ENGINE.exe и вылож гденить, если не лень конешь дальше попробую своих патчей добавить и гляну вдруг проканает и заведется :D |
|
Создано: 22 января 2013 15:19 · Поправил: Konstantin · Личное сообщение · #14 Bitnik пишет: Попробуй свой скрипт применить к этому файлу http://pff.clan.su/_fr/5/ENGINE.exe А что тут применять, если прикрутить секцию к файлу и перенаправить адреса на неё ясно что будет работать, только количество игроков не увеличится. Это отдельная тема. Ну вот ещё пример, для кода вида: Code:
Ищем по сигнатуре, меняем 7 -> 0ff. Скрипт: Code:
По счётчику - 50 замен. Если задать поиск всех констант с значением 7, то проходя по списку можно постепенно оценивать код , делая для нужного кода сигны, и добавлять их для поиска и правки в скрипт выше. |
|
Создано: 22 января 2013 15:54 · Поправил: Bitnik · Личное сообщение · #15 |
|
Создано: 22 января 2013 16:10 · Поправил: Konstantin · Личное сообщение · #16 P.s. Я конечно может что то не понимаю, но увеличить кол-во игроков и размерность массива для этих игроков это как бы разные вещи, так вот первый скрипт просто переносит массив на другой адрес, а второй скрипт - подход к увеличению размерности массива. |
|
Создано: 22 января 2013 17:14 · Поправил: Bitnik · Личное сообщение · #17 мде попробовал я потестить применив к твоей ехе сверху еще дополнительно патч вот этот вот http://pff.clan.su/forum/20-579-11307-16-1357376833 который меняет все сравнения типо (for i:=0 to 7 do) с 7 на 16 (их всего 255 я считал) и некоторые другие ограничения, но ничего впринцепе не изменилось. И даже ерроров никаких не повыскакивало странно ) Просто в ДЕЛФИ я пробовал уже такое делать на старом сурсе (менял также вручную тупо арэй с 7 на 32) и все сравнения менял с 7 тож на 32 компилил и все работало... Думал и в асме не очень сложно будет повторить трюк но я видимо плохо шарю и там видимо еще дохрена гемора которого я не учел, Константин спасибо за скрипты и ехе =) буду пытаться понять что я упустил |
eXeL@B —› Программирование —› Расширить аррэй |