Перейти к содержанию

MasterGH

Ветераны
  • Постов

    2 999
  • Зарегистрирован

  • Победитель дней

    129

Весь контент MasterGH

  1. 1. Не думаю, что опыт и очки умения закодированы, когда другие значения не закодированы. 2. По моему опыту программирования я бы эти значения сохранял на жесткий диск. Читал бы на разных игровых сценах с жесткого диска при загрузке сцены, либо каждый раз при открытии диалога с опытом. Ну, и конечно перед тем как менять опыт сначала читать его с жесткого диска, добавлять опыт, копию значения писать в экранное и на жесткий диск. Опыт можно ломать так. Будем искать инструкцию, которая пишет значение в экранный адрес поставив бряк на доступ на экранный адрес. Верхную инструкцию записывающую выделяем. Открываем окно стека на ней. Затем повторяем это с новым значением опыта. Затем сравниваем два окна стека через опцию добавить в окно Dessect Data Structure. Ищем в них опыт ниже по структуре стека. Находим смещения до самого нижнего значения в стеке. Если такое нашли, то делаем по шагам проходы по ретам (F8 в пошаговой отладке) до найденного смещения в стеке (стек при этом "опускается") и исследуем какой код пишет значение стека. Ставим бряк на проход по коду. Делаем так чтобы в стек записывался максимальный опыт. Отпускаем игру из пошаговой отладки F9 и смотрим на изменения в игре при открытии диалога, при повторном открытии и при получении нового опыта. Объяснил как смог. Попробую сам сделать как игру скачаю.
  2. MasterGH

    Dishonored

    1. Кнопка у меня не открывает браузер, но я думаю, что у меня есть запрет на такие действия. 2. Кнопка не очень вписывается в дизайн, я думаю без неё было бы красивее. Я бы предложил эту кнопку убрать, как посоветовал убрать кнопку музыки в некоторых трейнерах 3. Если обязателен переход на сайт через клик, то существующая дизайнерская надпись Gamehacklab[RU] прекрасно подходит для этого.
  3. Для желающих и скучающих подкидываю идею чем можно заняться на ближайшее время Можно скачать исходники X-Ray Engine 1,6 и сделать обзор 1. Поиск указателей на здоровье игрока и сверить с тем что в исходниках 2. Поиск указателей на количество патронов и сверить с тем что в исходниках 3. Чит на здоровье. Если это инъекция кода с фильтром свой/чужой, то найти этот "фильтр" в исходниках X-Ray Engine и сверить 4. Чит на бесконечные патроны 4.1 В исходниках X-Ray Engine найти счетчик патронов и показать, что иго исправление не приводит к выстрелу, что патроны это структурный тип 4.2 Рассмотреть чит на беск. патроны на Cheat Engine
  4. Цвета меняются образом: CETrainer.CELabel1.Font.Color = 0x00FF0606CETrainer.CECheckbox1.Font.Color = 0x00FF0606CETrainer.CERadioGroup1.Font.Color = 0x00FF0606
  5. Записывай как хочешь, лишь бы работало. Могу предложить только избегать каких-либо указателей для универсальности работы чита на разных версиях игр. Ищи инструкции, которые работают только с игроком или только с ботами (дружественными или не дружественными) К сожалению я не понял вопроса. Во всяком случае, ты можешь сам узнать ответ. У тебя есть все для этого: CE, игра и твой вопрос
  6. Я думаю, что надо искать таймер в игре как float и пытаться его менять. Возможно погода будет меняться. На форуме уроков точно я не видел. А если информация в Интернете ты можешь узнать. Открой Гугл и поищи
  7. [ENABLE]alloc(newmem,4096)CREATETHREAD(newmem);label(flag)registersymbol(flag)newmem:push 00mov ecx,023FB090call 0x00393A20mov ecx,eaxcall 0x00366100{$lua}sleep(1000){$asm}cmp [flag],0jne newmemretflag:db 1[DISABLE]unregistersymbol(flag)dealloc(newmem){$lua}sleep(1000)
  8. Если модуля нет, значит, скорее всего, находится не в модуле, а в "куче" (динамическая область памяти). Если нужен чит на здоровье, то модуль не нужен. Нужно редактировать код игры, который работает с адресом здоровья. Если нужно без редактирования кода, то искать цепь указателей на адрес здоровья. Самый верхний уровень может указывать на статический адрес и он будет как раз с модулем. Модуль можно получить из Lua-консоли. Пример для адреса '7FEEFBC143A', но этот способ скорее всего не покажет модуль, т.к. это не область модуля судя по видео print(getNameFromAddress('7FEEFBC143A'))--Вывод: "gamedll_x64_rwdi.dll+5C143A "
  9. Можно было задать поиск в Гугле таким образом akama Как правильно писать скрипты site:forum.gamehacklab.ruВот и все О том как пользоваться поиском у нас есть тема.
  10. Как отобразить окно "Changed addresses" ? function FindFrom(formName) local formCount = getFormCount() for i=0, formCount-1 do if(getForm(i).Name == formName) then return getForm(i) end endendfunction GetTypeFromComboBox(cbDisplayType) local itemIndex = cbDisplayType.ItemIndex local strCaption = cbDisplayType.Items[itemIndex] if (strCaption == 'Byte') then return vtByte end if (strCaption == '2 Bytes') then return vtWord end if (strCaption == '4 Bytes') then return vtDword end if (strCaption == 'Float') then return vtSingle end if (strCaption == 'Double') then return vtDouble end return vtDwordendlocal frmChangedAddresses = FindFrom('frmChangedAddresses')local changedlist = frmChangedAddresses.findComponentByName('Changedlist')local addressList = getAddressList()local itemsAddressList = changedlist.Itemslocal countLines = itemsAddressList.getCount()-- Получить тип в кобобоксеlocal cbDisplayType = frmChangedAddresses.findComponentByName('cbDisplayType')local indexType = GetTypeFromComboBox(cbDisplayType)for i=0, countLines-1 do local mr = addressList.createMemoryRecord() mr.Address = itemsAddressList.getItem(i).Caption mr.Type = indexTypeend
  11. Мне не удалось это подтвердить.Я нашел по моему предположению все возможные X координаты героя через правило увеличилось и уменьшилось. Несколько десятков адресов типа float было по одной оси X. Заморозив их герой ставился в замороженное положение X, а дорожка,так скажем, "жила своей жизнью" - никак не менялась. От мышки ставится конец дорожки, а первый элемент дорожки, который "рядом с героем" как-то дрейфует сам по себе в памяти копируясь (ИМХО). Подозреваю что герой больше зависит от этого первого элемента дорожки и стремиться к нему. Т.е. грой зависит от дорожки больше чем она от него. Поэтому он за ней бегает.
  12. В версии CE 6.4 мы имеем возможность подсмотреть стековые значения в момент срабатывания инструкции. На рисунке показано как подсмотреть стековое значения [ebp-2c] 1. Находим адрес 2. Ставим брейкпоинт 3. Открываем MoreInfo и дизассемблер по адресу инструкции и видим например сверху стековые регистры esp или ebp. Обычно ebp, т.к. этот регистр что-то вроде базового адреса внутри стека у которого адрес верхушки стека лежит в esp Таким образом мы можем легко узнать значение в стеке и выстроить многоуровневый указатель по этому принципу. Напомню, что раньше было проблематично подсмотреть стек. Приходилось ставить условные брейкпоинты. Теперь это можно не делать. Берите этот прием на заметку. Теперь многоуровневые указатели можно будет строить куда проще. Если есть вопросы, то пишите.
  13. Похоже есть динамический список указателей на эти точки. По указателю на первую точку можно добраться до её позиции, а по позиции первой или последней точки может выстраиваться новый маршрут. Предположительно все точки - динамические структуры. При новом маршруте структуры точек, скорее всего, создаются по новым адресам. Позицию точки найти через сканер предположительно не получиться. Можно попробовать выйти на динамический список точек, например, по количеству точек. Понять как получить адрес на первую или последнюю точку Сравнить несколько точек, чтобы отличить их позиции и найти смещение. Поменять позицию по смещению первой точки и попробовать мышкой сделать новый маршрут Пока такие мысли
  14. Ищи любые координаты перса или дорожки Ставь бряк на запись Двигай чара Попробуй использовать эту функцию(функции и окна) для сбора информации с адресов Сравнивай стеки через desectData structure Если найдешь хоть какие-то отличия обращай на них внимание как на координаты и перезаписывай прямо в стеке на постоянные значения Если отличий много делай сохранение игры и используй TinyDumper для поиска одинаковых значений в стеке перед тем как перс сдвинулся с одного и того же места. Хотя может быть и более простой вариант, который можно узнать только при ковырянии игры.
  15. Хотите узнать, есть ли инжекторы, которые обходят антивирус? Более чем уверен, что есть такие инжекторы на уровне гораздо глубже чем winapi и они закрыты от общего доступа. Почему уверен? Потому что антивирусы некогда не были законченным проектом. Антивирусы по этой причине постоянно обновляются и не могут все и вся палить, иначе у них не было бы работы - люди бы не сидели изучая в IDA черверй и прочего, постоянно обновляя базы и раздавая платную подписку. Вообще советую не забывать о таких случаях когда: 1) специально отключают анитивирус, чтобы чит работал 2) готовься к потери логинов и паролей (если они есть на компе в любом виде, или вводятся логин и пароль)
  16. MasterGH

    TimeShift

    Заготовка для трейнера с прохождением сквозь стены Активируем две галки как на скрине и перемещаемся по W,A,S,D - вперед, назад, влево, вправо Space - вверх C - вниз сквозь стены, врагов и препятствий CE_script_TimeShift_noClip.rar Сигны можно составить по коду. Я набросал очень примитивное дискретное движение с дельтой +10.0 по глобальным осям на сцене без учета угла камеры, без интерполяции. Я знаю как это делается по формуле на Unity3d, делал полет камеры, но в дизассемблере и DirectX API надо еще поковыряться. [ENABLE]alloc(newmem,2048)label(returnhere)label(character_pID)registersymbol(character_pID)newmem:lea edi,[esp+70]push eax//lea eax, [esi-09]mov [character_pID],esipop eaxrepe movsd jmp returnherecharacter_pID:dd 0"TimeShift.exe"+370B5:jmp newmemnopreturnhere: [DISABLE]"TimeShift.exe"+370B5:lea edi,[esp+70]repe movsd //Alt: db 8D 7C 24 70 F3 A5dealloc(newmem)/*TimeShift.exe+37083 - F3 0F11 4C 24 28 - movss [esp+28],xmm1TimeShift.exe+37089 - 8B 83 28040000 - mov eax,[ebx+00000428]TimeShift.exe+3708F - 8B 8B 2C040000 - mov ecx,[ebx+0000042C]TimeShift.exe+37095 - 8B 93 24040000 - mov edx,[ebx+00000424]TimeShift.exe+3709B - 89 44 24 58 - mov [esp+58],eaxTimeShift.exe+3709F - 8B 83 30020000 - mov eax,[ebx+00000230]TimeShift.exe+370A5 - 89 4C 24 5C - mov [esp+5C],ecxTimeShift.exe+370A9 - 8D 70 38 - lea esi,[eax+38]TimeShift.exe+370AC - 89 54 24 54 - mov [esp+54],edxTimeShift.exe+370B0 - B9 10000000 - mov ecx,00000010TimeShift.exe+370B5 - 8D 7C 24 70 - lea edi,[esp+70]TimeShift.exe+370B9 - F3 A5 - repe movsdTimeShift.exe+370BB - 8B 94 24 90000000 - mov edx,[esp+00000090]TimeShift.exe+370C2 - 8B 84 24 94000000 - mov eax,[esp+00000094]TimeShift.exe+370C9 - 8B 8C 24 98000000 - mov ecx,[esp+00000098]TimeShift.exe+370D0 - 89 54 24 38 - mov [esp+38],edxTimeShift.exe+370D4 - 8D 54 24 38 - lea edx,[esp+38]TimeShift.exe+370D8 - 89 44 24 3C - mov [esp+3C],eaxTimeShift.exe+370DC - 52 - push edxTimeShift.exe+370DD - F3 0F11 44 24 5C - movss [esp+5C],xmm0TimeShift.exe+370E3 - 89 4C 24 44 - mov [esp+44],ecx*/[ENABLE]alloc(newmem,2048)label(returnhere)label(character_position_X)label(character_position_Y)label(character_position_Z)label(isFirst)label(nextCode1)label(nextCode2)registersymbol(character_position_X)registersymbol(character_position_Y)registersymbol(character_position_Z)newmem: cmp ecx, [character_pID] je nextCode1 movss xmm0,[esp+04] jmp returnherenextCode1: push eax // стек +4 cmp [isFirst],1je nextCode2 mov [isFirst], 1 mov eax,[esp+08] mov [character_position_X],eax mov eax,[esp+0C] mov [character_position_Y],eax mov eax,[esp+10] mov [character_position_Y],eaxnextCode2: mov eax,[character_position_X] mov [esp+08],eax mov eax,[character_position_Y] mov [esp+0C],eax mov eax,[character_position_Z] mov [esp+10],eax pop eax // стек -4 movss xmm0,[esp+04]jmp returnherecharacter_position_X:dd 0character_position_Y:dd 0character_position_Z:dd 0isFirst:dd 0"TimeShift.exe"+219C09:jmp newmemnopreturnhere:[DISABLE]"TimeShift.exe"+219C09:movss xmm0,[esp+04]//Alt: db F3 0F 10 44 24 04dealloc(newmem)/*TimeShift.exe+219BDE - F3 0F59 DA - mulss xmm3,xmm2TimeShift.exe+219BE2 - F3 0F10 51 18 - movss xmm2,[ecx+18]TimeShift.exe+219BE7 - F3 0F59 D0 - mulss xmm2,xmm0TimeShift.exe+219BEB - F3 0F10 41 28 - movss xmm0,[ecx+28]TimeShift.exe+219BF0 - F3 0F58 DA - addss xmm3,xmm2TimeShift.exe+219BF4 - F3 0F59 C1 - mulss xmm0,xmm1TimeShift.exe+219BF8 - F3 0F58 D8 - addss xmm3,xmm0TimeShift.exe+219BFC - F3 0F58 59 38 - addss xmm3,[ecx+38]TimeShift.exe+219C01 - F3 0F11 59 38 - movss [ecx+38],xmm3TimeShift.exe+219C06 - C2 1000 - ret 0010TimeShift.exe+219C09 - F3 0F10 44 24 04 - movss xmm0,[esp+04]TimeShift.exe+219C0F - F3 0F11 41 30 - movss [ecx+30],xmm0TimeShift.exe+219C14 - F3 0F10 44 24 08 - movss xmm0,[esp+08]TimeShift.exe+219C1A - F3 0F11 41 34 - movss [ecx+34],xmm0TimeShift.exe+219C1F - F3 0F10 44 24 0C - movss xmm0,[esp+0C]TimeShift.exe+219C25 - F3 0F11 41 38 - movss [ecx+38],xmm0TimeShift.exe+219C2A - C2 1000 - ret 0010TimeShift.exe+219C2D - CC - int 3TimeShift.exe+219C2E - CC - int 3TimeShift.exe+219C2F - CC - int 3TimeShift.exe+219C30 - 55 - push ebpTimeShift.exe+219C31 - 8B EC - mov ebp,espTimeShift.exe+219C33 - 83 E4 F8 - and esp,-08*/
  17. Эта автоматизация позволяет сделать то, что в других версиях CE приходилось делать вручную. В CE 6.4 появилась замечательная функция счетчиков разных адресов проскакивающих на инструкции. Вызывать её можно как показано на скриншоте. Там же я привел результат. 1. Если видим (1), то инструкция работает с одним адресом, то сделав инъекцию в инструкцию, изменения коснуться только этого адреса. Никаких фильтров таким образом делать не придется. 2. Если видим (1), то также подходит для вытаскивания поинтера на структуру 3. Если видим от (2) до (8) (8-максимум), то инъекция будет работать со множеством адресов. Это может быть плохо, а может быть хорошо. Плохо, когда бессмертны все и главный герой, и чужие. Хорошо, например, когда инструкция добавит разные ресурсы махом. Если все-таки решено делать фильтры на инструкциях с адресами от (2) до (8), то придется эти самые фильтры искать как умеете сравнивая структуры. Еще можно брать поинтер из часто обращаемой инструкции на которой было (1) и использовать его в качестве фильтра.
  18. Порывшись в CE я нашел несколько плюшек в контекстных меню, а поверетьте там есть на что посмотреть. Вот одна из функций по сравнению стека Общий вид и сравнение структур Стек переходит в окно структур вот так. Это будет либо новое окно структур, либо добавление как экстра-адрес Так что у TinyDumper теперь есть замена, которая всегда лежала перед собственно под носом. На скриншотах метки написал, случайные (так спешил, что с ошибками). Это стеки при работе с координатами. Пытаюсь сделать фильтр, а то все игроки в кучу собираются. Ищу пока фильтр и засыпаю находу... [ENABLE]alloc(newmem,2048)label(returnhere)label(character_position_X)label(character_position_Y)label(character_position_Z)label(isFirst)label(nextCode1)label(nextCode2)label(character_pID)registersymbol(character_position_X)registersymbol(character_position_Y)registersymbol(character_position_Z)registersymbol(character_pID)newmem: cmp ecx, [character_pID] je nextCode1 movss xmm0,[esp+04] jmp returnherenextCode1: push eax // стек +4 cmp [isFirst],1je nextCode2 mov [isFirst], 1 mov eax,[esp+08] mov [character_position_X],eax mov eax,[esp+0C] mov [character_position_Y],eax mov eax,[esp+10] mov [character_position_Y],eaxnextCode2: mov eax,[character_position_X] mov [esp+08],eax mov eax,[character_position_Y] mov [esp+0C],eax mov eax,[character_position_Z] mov [esp+10],eax pop eax // стек -4 movss xmm0,[esp+04]jmp returnherecharacter_position_X:dd 0character_position_Y:dd 0character_position_Z:dd 0isFirst:dd 0character_pID:dd 0"TimeShift.exe"+219C09:jmp newmemnopreturnhere:[DISABLE]"TimeShift.exe"+219C09:movss xmm0,[esp+04]//Alt: db F3 0F 10 44 24 04dealloc(newmem)TimeShift.exe+219B30 - 74 3C - je TimeShift.exe+219B6ETimeShift.exe+219B32 - 83 E8 01 - sub eax,01TimeShift.exe+219B35 - 0F85 EF000000 - jne TimeShift.exe+219C2ATimeShift.exe+219B3B - F3 0F10 44 24 04 - movss xmm0,[esp+04]TimeShift.exe+219B41 - F3 0F58 41 30 - addss xmm0,[ecx+30]TimeShift.exe+219B46 - F3 0F11 41 30 - movss [ecx+30],xmm0TimeShift.exe+219B4B - F3 0F10 41 34 - movss xmm0,[ecx+34]TimeShift.exe+219B50 - F3 0F58 44 24 08 - addss xmm0,[esp+08]TimeShift.exe+219B56 - F3 0F11 41 34 - movss [ecx+34],xmm0TimeShift.exe+219B5B - F3 0F10 41 38 - movss xmm0,[ecx+38]TimeShift.exe+219B60 - F3 0F58 44 24 0C - addss xmm0,[esp+0C]TimeShift.exe+219B66 - F3 0F11 41 38 - movss [ecx+38],xmm0TimeShift.exe+219B6B - C2 1000 - ret 0010TimeShift.exe+219B6E - F3 0F10 59 10 - movss xmm3,[ecx+10]TimeShift.exe+219B73 - F3 0F10 44 24 08 - movss xmm0,[esp+08]TimeShift.exe+219B79 - F3 0F10 51 20 - movss xmm2,[ecx+20]TimeShift.exe+219B7E - F3 0F10 4C 24 0C - movss xmm1,[esp+0C]TimeShift.exe+219B84 - F3 0F10 21 - movss xmm4,[ecx]TimeShift.exe+219B88 - F3 0F59 D8 - mulss xmm3,xmm0TimeShift.exe+219B8C - F3 0F59 D1 - mulss xmm2,xmm1TimeShift.exe+219B90 - F3 0F58 DA - addss xmm3,xmm2TimeShift.exe+219B94 - F3 0F10 54 24 04 - movss xmm2,[esp+04]TimeShift.exe+219B9A - F3 0F59 E2 - mulss xmm4,xmm2TimeShift.exe+219B9E - F3 0F58 DC - addss xmm3,xmm4TimeShift.exe+219BA2 - F3 0F58 59 30 - addss xmm3,[ecx+30]TimeShift.exe+219BA7 - F3 0F11 59 30 - movss [ecx+30],xmm3TimeShift.exe+219BAC - F3 0F10 59 04 - movss xmm3,[ecx+04]TimeShift.exe+219BB1 - F3 0F10 61 14 - movss xmm4,[ecx+14]TimeShift.exe+219BB6 - F3 0F59 DA - mulss xmm3,xmm2TimeShift.exe+219BBA - F3 0F59 E0 - mulss xmm4,xmm0TimeShift.exe+219BBE - F3 0F58 DC - addss xmm3,xmm4TimeShift.exe+219BC2 - F3 0F10 61 24 - movss xmm4,[ecx+24]TimeShift.exe+219BC7 - F3 0F59 E1 - mulss xmm4,xmm1TimeShift.exe+219BCB - F3 0F58 DC - addss xmm3,xmm4TimeShift.exe+219BCF - F3 0F58 59 34 - addss xmm3,[ecx+34]TimeShift.exe+219BD4 - F3 0F11 59 34 - movss [ecx+34],xmm3TimeShift.exe+219BD9 - F3 0F10 59 08 - movss xmm3,[ecx+08]TimeShift.exe+219BDE - F3 0F59 DA - mulss xmm3,xmm2TimeShift.exe+219BE2 - F3 0F10 51 18 - movss xmm2,[ecx+18]TimeShift.exe+219BE7 - F3 0F59 D0 - mulss xmm2,xmm0TimeShift.exe+219BEB - F3 0F10 41 28 - movss xmm0,[ecx+28]TimeShift.exe+219BF0 - F3 0F58 DA - addss xmm3,xmm2TimeShift.exe+219BF4 - F3 0F59 C1 - mulss xmm0,xmm1TimeShift.exe+219BF8 - F3 0F58 D8 - addss xmm3,xmm0TimeShift.exe+219BFC - F3 0F58 59 38 - addss xmm3,[ecx+38]TimeShift.exe+219C01 - F3 0F11 59 38 - movss [ecx+38],xmm3TimeShift.exe+219C06 - C2 1000 - ret 0010TimeShift.exe+219C09 - F3 0F10 44 24 04 - movss xmm0,[esp+04]TimeShift.exe+219C0F - F3 0F11 41 30 - movss [ecx+30],xmm0 // XTimeShift.exe+219C14 - F3 0F10 44 24 08 - movss xmm0,[esp+08]TimeShift.exe+219C1A - F3 0F11 41 34 - movss [ecx+34],xmm0 // YTimeShift.exe+219C1F - F3 0F10 44 24 0C - movss xmm0,[esp+0C]TimeShift.exe+219C25 - F3 0F11 41 38 - movss [ecx+38],xmm0 // ZTimeShift.exe+219C2A - C2 1000 - ret 0010
  19. Я все равно не уверен с авторством. Как говориться 50/50. Хотя там СТИМ и может быть мастер клиент и пиртопир подключение. Нет какого-либо контроля за некоторыми читами (я не имею ввиду графику, а физику и положение) Дело даже не в этом, а что дальше? Matroix123, будут ли уроки, будут ли статьи... что-нибудь по тому что на видео? Не уже ли так много зарабатываешь, что имеет смысл не показать свой талант в объяснении создания читов. Ведь если ты это можешь, у тебя большой талант. Получишь много лайков, а не какие-то жалкие за это видео-демо... В общем жаль...
  20. NullAlex, да погоди удалять. Я только перенес эту тему, сколько мне стоило галочками выделять эти посты. Дай хотя бы вытянуть хоть какую-то информацию. Я такие читы не умею делать. Может расскажет.
  21. Все посты выше я перенес из этой темы. Тема разделена, т.к. не имеет отношения к рапидфаер уроку, который сделал Кенг. Спасибо за внимание.
  22. Прощу прощения за ошибку. Исправил. А у меня уже было 18 марта по часам, пол третьго ночи. Похоже перестарался На данные форума нельзя надеяться. Надо перепроверять.
  23. MasterGH

    TimeShift

    Пожелания, которые не обязательно делать 1. Кнопка музыки. Мне кажется одна маленькая "нотка" лучший вариант ИМХО 2. При активации чита было бы красивее чтобы обойма полностью мгновенно заполнялась. ИМХО. 3. Прохождение сквозь стены было бы неплохо, даже было бы плюсом учитывая блокировку персонажа игровым миром. Хороший был бы чит. ИМХО.
  24. MasterGH

    TimeShift

    Теперь все читы работают. Музыка включается и выключается. К сожалению я звуков не услышал. Пожелания к новой версии трейнера, если она будет планироваться: 1. Патроны лучше бы заморозить на максимальном значении обоймы. Ну, так сложнее, зато более красиво. 2. В одной из миссий обвалилась стена и заблокировала главного персонажа. Он не мог двигаться. Возможно имеет смысл сделать чит позволяющий проходить сквозь стены. Ну, ясное дело, можно выключить бессмертие, главный персонаж получит урон и начать игру заного. Собственно, что я и сделал. Только я вот сохранился далеко и не думал, что застряну
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.