MasterGH Опубликовано 21 сентября, 2011 Поделиться Опубликовано 21 сентября, 2011 (изменено) Меня попросили выложить старую статью. Мне она не нравится. Она запутана и в ней не всё хорошо, но для тех, кто хочет могут почитать. Насколько помню у меня получились бесконечные патроны таким способом только в Тени Чернобыля. В статье кажется речь идёт о СТАЛКЕР-е Зов припяти 1.6 К сожалению не помню точно для какой это версии игры, может быть это для Тени Чернобыля.Оформлять некогда. Вот архивЧАСТЬ 1_Взлом патронов в СТАЛКЕР.rar Изменено 2 февраля, 2012 пользователем Andrey Ссылка на комментарий Поделиться на другие сайты Поделиться
Kvazimado Опубликовано 21 сентября, 2011 Поделиться Опубликовано 21 сентября, 2011 Благодарю за статью. С патронами легко, так как они есть, а вот предмет, которые черте как искать по всей игре, это жесть)) Благо мануал есть) Ссылка на комментарий Поделиться на другие сайты Поделиться
Ramil Опубликовано 31 января, 2012 Поделиться Опубликовано 31 января, 2012 Простите Мастер, я не понял как вы нашли эту инструкцию http://s2.ipicture.ru/uploads/20120131/Ms7aZ6hL.jpg, я тоже хочу сделать патроны для сталкера. Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 31 января, 2012 Автор Поделиться Опубликовано 31 января, 2012 Найди адрес патронов. Поставь бряк на доступ. Выстрели и поищи инструкцию что на рисунке. Адрес инструкции может отличаться. Желательно чтобы версия игры была той же что и в статье. Ссылка на комментарий Поделиться на другие сайты Поделиться
Ramil Опубликовано 1 февраля, 2012 Поделиться Опубликовано 1 февраля, 2012 я делаю так нахожу адрес http://s1.ipicture.ru/uploads/20120201/BCN5v0cU.jpg на доступ и инструкции http://s1.ipicture.ru/uploads/20120201/s21kCVr8.jpg, игра Stalker зов припяти, версия 1.6.00 Ссылка на комментарий Поделиться на другие сайты Поделиться
ARM4ND0 Опубликовано 1 февраля, 2012 Поделиться Опубликовано 1 февраля, 2012 Насколько помню у меня получились бесконечные патроны таким способом только в Тени Чернобыля.игра Stalker зов припяти, версия 1.6.00 Ramil Ты читать умеешь ? Ссылка на комментарий Поделиться на другие сайты Поделиться
aliast Опубликовано 2 февраля, 2012 Поделиться Опубликовано 2 февраля, 2012 Andrey сам ввёл путаницу) В этой теме пишет про ТЧ, в статье речь идёт об ЗП 1.6... а не может так быть, что статья началась про ЗП, а закончилась ТЧ?)) Я пока тоже сижу разбираюсь с этой инструкцией... Ссылка на комментарий Поделиться на другие сайты Поделиться
Ramil Опубликовано 2 февраля, 2012 Поделиться Опубликовано 2 февраля, 2012 aliast вы имеет там инстукция от другого сталкера. А почему инструкция одна, потому что надо ставить бряк на запись и выстрелить, правильно ли. Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 2 февраля, 2012 Автор Поделиться Опубликовано 2 февраля, 2012 Andrey сам ввёл путаницу) В этой теме пишет про ТЧ, в статье речь идёт об ЗП 1.6... а не может так быть, что статья началась про ЗП, а закончилась ТЧ?)) Я пока тоже сижу разбираюсь с этой инструкцией...Ой... я извиняюсь Я видимо очень спешил... Вообще я совершенно не помню как я писал ту статью. Я исследовал обе игры и кажется в одном документе. А потом всё кусками слепил. Ну вот и получилось, что получилось. Жаль... Так что я сам не помню что это ТЧ или ЗП. Ссылка на комментарий Поделиться на другие сайты Поделиться
aliast Опубликовано 2 февраля, 2012 Поделиться Опубликовано 2 февраля, 2012 Судя по всему я был прав. Продолжил взлом Теней Чернобыля, нашёл эту инструкцию, далее по статье всё сошлось вроде (игра правда вылетела, сейчас разберусь).По идее не обязательно брать ИМЕННО ЭТУ инструкцию, расструктуризацию можно делать по любой другой, которая выскакивает при выстреле. Я ломал лицензию ТЧ без патчей (версию игры хз где посмотреть) все смещения сходятся: +57С патроны, +5С4 указатель с которым дальше работаем. На Зове Припяти с наскока подобный указатель не ищется, видимо движок игры изменили. Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 6 мая, 2015 Автор Поделиться Опубликовано 6 мая, 2015 В теме я публиковал ссылку на исходники. Я вытащил наиболее интересные классы в архиве --------------В архиве_stl_extensions.hWeapon.cppWeapon.hWeaponMagazined.cppWeaponMagazined.h Хотел сейчас составить наглядную схему как зависят классы между собой в динамическом списке, но мне надо на работу, увы не успел. Так же в планах показать связи цепочек указателей с данными классами, а также поиск цепочек указателей в трассировке CE, который я еще ни разу не показывал.cpp stalker 1.6.rarvoid CWeapon::SetAmmoElapsed(int ammo_count){ iAmmoElapsed = ammo_count; u32 uAmmo = u32(iAmmoElapsed); if (uAmmo != m_magazine.size()) { if (uAmmo > m_magazine.size()) { CCartridge l_cartridge; l_cartridge.Load (m_ammoTypes[m_ammoType].c_str(), m_ammoType); while (uAmmo > m_magazine.size()) m_magazine.push_back(l_cartridge); } else { while (uAmmo < m_magazine.size()) m_magazine.pop_back(); }; };}void CWeaponMagazined::ReloadMagazine() { m_BriefInfo_CalcFrame = 0; //устранить осечку при перезарядке if(IsMisfire()) bMisfire = false; if (!m_bLockType) { m_pCurrentAmmo = NULL; } if (!m_pInventory) return; if ( m_set_next_ammoType_on_reload != undefined_ammo_type ) { m_ammoType = m_set_next_ammoType_on_reload; m_set_next_ammoType_on_reload = undefined_ammo_type; } if(!unlimited_ammo()) { if (m_ammoTypes.size() <= m_ammoType) return; LPCSTR tmp_sect_name = m_ammoTypes[m_ammoType].c_str(); if (!tmp_sect_name) return; //попытаться найти в инвентаре патроны текущего типа m_pCurrentAmmo = smart_cast<CWeaponAmmo*>(m_pInventory->GetAny(tmp_sect_name)); if(!m_pCurrentAmmo && !m_bLockType) { for(u8 i = 0; i < u8(m_ammoTypes.size()); ++i) { //проверить патроны всех подходящих типов m_pCurrentAmmo = smart_cast<CWeaponAmmo*>(m_pInventory->GetAny( m_ammoTypes[i].c_str() )); if(m_pCurrentAmmo) { m_ammoType = i; break; } } } } //нет патронов для перезарядки if(!m_pCurrentAmmo && !unlimited_ammo() ) return; //разрядить магазин, если загружаем патронами другого типа if(!m_bLockType && !m_magazine.empty() && (!m_pCurrentAmmo || xr_strcmp(m_pCurrentAmmo->cNameSect(), *m_magazine.back().m_ammoSect))) UnloadMagazine(); VERIFY((u32)iAmmoElapsed == m_magazine.size()); if (m_DefaultCartridge.m_LocalAmmoType != m_ammoType) m_DefaultCartridge.Load( m_ammoTypes[m_ammoType].c_str(), m_ammoType ); CCartridge l_cartridge = m_DefaultCartridge; while(iAmmoElapsed < iMagazineSize) { if (!unlimited_ammo()) { if (!m_pCurrentAmmo->Get(l_cartridge)) break; } ++iAmmoElapsed; l_cartridge.m_LocalAmmoType = m_ammoType; m_magazine.push_back(l_cartridge); } VERIFY((u32)iAmmoElapsed == m_magazine.size()); //выкинуть коробку патронов, если она пустая if(m_pCurrentAmmo && !m_pCurrentAmmo->m_boxCurr && OnServer()) m_pCurrentAmmo->SetDropManual(TRUE); if(iMagazineSize > iAmmoElapsed) { m_bLockType = true; ReloadMagazine(); m_bLockType = false; } VERIFY((u32)iAmmoElapsed == m_magazine.size());}void CWeaponMagazined::UnloadMagazine(bool spawn_ammo){ xr_map<LPCSTR, u16> l_ammo; while(!m_magazine.empty()) { CCartridge &l_cartridge = m_magazine.back(); xr_map<LPCSTR, u16>::iterator l_it; for(l_it = l_ammo.begin(); l_ammo.end() != l_it; ++l_it) { if(!xr_strcmp(*l_cartridge.m_ammoSect, l_it->first)) { ++(l_it->second); break; } } if(l_it == l_ammo.end()) l_ammo[*l_cartridge.m_ammoSect] = 1; m_magazine.pop_back(); --iAmmoElapsed; } VERIFY((u32)iAmmoElapsed == m_magazine.size()); if (!spawn_ammo) return; xr_map<LPCSTR, u16>::iterator l_it; for(l_it = l_ammo.begin(); l_ammo.end() != l_it; ++l_it) { if(m_pInventory) { CWeaponAmmo *l_pA = smart_cast<CWeaponAmmo*>(m_pInventory->GetAny(l_it->first)); if(l_pA) { u16 l_free = l_pA->m_boxSize - l_pA->m_boxCurr; l_pA->m_boxCurr = l_pA->m_boxCurr + (l_free < l_it->second ? l_free : l_it->second); l_it->second = l_it->second - (l_free < l_it->second ? l_free : l_it->second); } } if(l_it->second && !unlimited_ammo()) SpawnAmmo(l_it->second, l_it->first); }} Ссылка на комментарий Поделиться на другие сайты Поделиться
ZOCKIR Опубликовано 6 мая, 2015 Поделиться Опубликовано 6 мая, 2015 MasterGH Твои познания идут в гору ) Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 18 мая, 2015 Автор Поделиться Опубликовано 18 мая, 2015 Как-то я наткнулся на видео школьника. 1. Изменил счетчик патронов в памяти2. Сохранился3. Загрузился После чего имел кучу патронов. Это же надо такое придумать. Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 19 мая, 2015 Поделиться Опубликовано 19 мая, 2015 Как-то я наткнулся на видео школьника. 1. Изменил счетчик патронов в памяти2. Сохранился3. Загрузился После чего имел кучу патронов. Это же надо такое придумать. Хитро ) Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения