работа с достижениями/ачивками в steam

Работа с достижениями/ачивками в Steam – интересно, но ещё и полезно

Вот вам прекрасный пример того, что «сама садик я садила, сама буду поливать». О чём это мы!? Да об индустрии компьютерных развлечений.

Как обнулить достижения в Стим.

Вот проследите весь ход жизни:

  1. Сначала два далеко не самых последних сотрудника Microsoft раскручивают компьютерную индустрию, полностью поддерживая клич Гейтса: «Компьютер на кухню каждой домохозяйке».
  2. Потом, пока ещё в рамках Microsoft, раскручивают игровой бизнес на ПК.
  3. Затем уходят «от мамы», даже переезжают (правда, недалеко, всё в пределах того же штата Вашингтон).
  4. И основывают фирму компьютерных игр – Valve, которая получилась действительно блестящим «клапаном» в мир развлечений, одной из самых популярных и авторитетных в своей области.
  5. С фирмой не сотрудничает только «ленивый», сегодня среди вовлечённых в её бизнес ни много ни мало – 125 миллионов человек.
  6. Бизнес приобретает такие масштабы, что фирма разрабатывает приложение Steam по распространению разработок самой же «себя». Дальше – больше, но нам теперь в другую сторону.

Идём дальше и удаляем ачивки

Другое дело, что открытие достижений steam (как, собственно, и сами ачивки – больше внутренняя «кухня» любой программы – надо же как-то обеспечить стремление в большему в этом бесконечном сидении за компьютером) любопытно из чисто «спортивного» интереса, раз уж ачивки есть. Теперь возникает уже более житейская задача, а может ли эта программа не только открывать достижения в стим, но и теперь убрать ачивки, чтобы начать игру «с чистого листа».

Да, возможно и это, правда, имеем в виду, что ни о каких «Корзинах» здесь речь не идёт, и удаленные достижения будут забыты и возврату не подлежат. Итак, когда программа Steam Achievement Manager открывает список всех достигнутых точек (причём можно получить даже описание каждой), для их удаления действуем по следующему алгоритму:

Дважды кликаем мышкой на логотипе игры.
Открывается окно со списком достижений.
Вверху окна есть кнопка Reset.
Находим её и нажимаем.
Тут нет команды удаления «Выполнить все», поэтому операцию производим над каждой в отдельности – другими словами, появится столько окон удаления, сколько в игрушке достижений.
В каждом окне удаления выбираем «Да».

Обращаем внимание, что такой порядок позволяет удалять ачивки выборочно, вдруг какая-то из них оказывается особенно «дорогой», тогда, вероятно, не грех и оставить.

Мы рассмотрели программу Steam Achievement Manager (иногда её называют коротко – SAM). Но имейте в виду, что игровая компьютерная индустрия настолько бурно развивается, что не сегодня-завтра может появиться и другое приложение, способное выполнять поставленные нами задачи над достижениями в играх от Steam. Поэтому совет здесь может быть только один – постоянно следить за рынком развлечений на компьютере и быстро реагировать на его новинки.

Специфика поведения в играх

Ну, а далее уже переходим к специфике поведения всех сколько-нибудь стоящих игр. В каждой «игрушке» мы стремимся чего-то достичь. Когда достигнутое у нас «в кармане», в следующий раз мы можем снова начать с нуля. Но лучше всё-таки с достигнутого, чтобы не проходить десятки раз по пути, который уже, может, и неинтересен. Таких достижений может быть не один десяток, и все они запоминаются программно.

СОВЕТ. Более того, таких «точек останова» может быть сколько угодно, и продолжить игру можно с любой по выбору. Иногда, что греха таить, это «точки» начинают мешать, и возникает желание их просто сбросить или обнулить.

Вот и возникают две насущные задачи в стиме:

  • как получить все достижения в steam, и,
  • как удалить достижения в играх.

Для решения данных задач очень удобно воспользоваться полезной утилитой, ведь сама Steam позволяет работать с достижениями только по одному, а это и долго, и неудобно.

How to use them

Accessing Stats and Achievements from within your game:

  • After initializing the Steamworks API you can start to use the Stats and Achievements API which is contained within ISteamUserStats.
  • At the start of a game session, call to fetch the user’s stats and achievement data from the Steam back end. You will receive a callback when the data is ready.
  • Use and to iterate the data and initialize game state.
  • If you want to display the achievements in your game you can use to retrieve human-readable properties of the achievement, including its name («name») and description («desc»). These properties are localizable on the Steamworks Partner Website, and the returned data varies with the language in which the user is running the game. You can also get an achievement’s icon using or the time each achievements was unlocked with .
  • Whenever a stat changes, especially before any changes are shown to the user, call or . This call only modifies Steam’s in-memory state and is very cheap. Doing so allows Steam to persist the changes between sessions even in event of game crash.
  • At appropriate points within your game (i.e. checkpoints, level transitions), call to upload the changes. You will receive a callback when that has completed.
  • For achievements that have progress bars use at significant points to show a pop-up with the progress. For instance, if you need 20 wins you may want to call this at 10 wins to show that the user has made it halfway.
  • Whenever one or more achievements are unlocked, call for each unlocked achievement and then to immediately upload them. Your game will see a callback, plus one callback for each unlocked achievement. The Steam Game Overlay will display a notification panel to the user.

Программный код

Конструктор

ПараметрыВозвращаемые значенияЧто делаетCSteamAchievements::CSteamAchievements(Achievement_t *Achievements, int NumAchievements):
m_iAppID( 0 ),
m_bInitialized( false ),
m_CallbackUserStatsReceived( this, &CSteamAchievements::OnUserStatsReceived ),
m_CallbackUserStatsStored( this, &CSteamAchievements::OnUserStatsStored ),
m_CallbackAchievementStored( this, &CSteamAchievements::OnAchievementStored )
{
m_iAppID = SteamUtils()->GetAppID();
m_pAchievements = Achievements;
m_iNumAchievements = NumAchievements;
RequestStats();
}

RequestStats()

ПараметрыВозвращаемые значенияЧто делаетbool CSteamAchievements::RequestStats()
{
// Steam загружен? Если нет, получить статистики не удастся.
if ( NULL == SteamUserStats() || NULL == SteamUser() )
{
return false;
}
// Пользователь залогинен? Если нет, получить статистики не удастся.
if ( !SteamUser()->BLoggedOn() )
{
return false;
}
// Запрос статистик.
return SteamUserStats()->RequestCurrentStats();
}

SetAchievement()

ПараметрыВозвращаемые значенияЧто делаетbool CSteamAchievements::SetAchievement(const char* ID)
{
// получен ли обратный вызов от Steam?
if (m_bInitialized)
{
SteamUserStats()->SetAchievement(ID);
return SteamUserStats()->StoreStats();
}
// Если нет, установить достижение не получится
return false;
}

OnUserStatsReceived()

ПараметрыВозвращаемые значенияЧто делаетvoid CSteamAchievements::OnUserStatsReceived( UserStatsReceived_t *pCallback )
{
// могут быть получены обратные вызовы со статистиками из других игр, игнорируйте их
if ( m_iAppID == pCallback->m_nGameID )
{
if ( k_EResultOK == pCallback->m_eResult )
{
OutputDebugString(«Received stats and achievements from Steam\n»);
m_bInitialized = true;

// загрузка достижений
for ( int iAch = 0; iAch < m_iNumAchievements; ++iAch )
{
Achievement_t &ach = m_pAchievements;

SteamUserStats()->GetAchievement(ach.m_pchAchievementID, &ach.m_bAchieved);
_snprintf( ach.m_rgchName, sizeof(ach.m_rgchName), «%s»,
SteamUserStats()->GetAchievementDisplayAttribute(ach.m_pchAchievementID,
«name»));
_snprintf( ach.m_rgchDescription, sizeof(ach.m_rgchDescription), «%s»,
SteamUserStats()->GetAchievementDisplayAttribute(ach.m_pchAchievementID,
«desc»));
}
}
else
{
char buffer;
_snprintf( buffer, 128, «RequestStats — failed, %d\n», pCallback->m_eResult );
OutputDebugString( buffer );
}
}
}

OnUserStatsStored()

ПараметрыВозвращаемые значенияЧто делаетvoid CSteamAchievements::OnUserStatsStored( UserStatsStored_t *pCallback )
{
// могут быть получены обратные вызовы со статистиками из других игр, игнорируйте их
if ( m_iAppID == pCallback->m_nGameID )
{
if ( k_EResultOK == pCallback->m_eResult )
{
OutputDebugString( «Stored stats for Steam\n» );
}
else
{
char buffer;
_snprintf( buffer, 128, «StatsStored — failed, %d\n», pCallback->m_eResult );
OutputDebugString( buffer );
}
}
}

OnAchievementStored()

ПараметрыВозвращаемые значенияЧто делаетvoid CSteamAchievements::OnAchievementStored( UserAchievementStored_t *pCallback )
{
// могут быть получены обратные вызовы со статистиками из других игр, игнорируйте их
if ( m_iAppID == pCallback->m_nGameID )
{
OutputDebugString( «Stored Achievement for Steam\n» );
}
}

Решение первой задачи – просто просмотр

Итак, тут, как всегда, приходят на помощь доброхоты-программы «сторонних разработчиков». Заходим на сайт такой программы – Steam Achievement Manager. Авторы не стали изобретать велосипед и назвали её прямо – «Менеджер Достижениями Стим».

Скачиваем программу, она бесплатная и поставляется в упакованном виде, поэтому сначала, само собой, распаковываем.

ВНИМАНИЕ. Программа использует Microsoft.NET Framework, поэтому очень желательно, чтобы у вас на компе стояла последняя версия этого пакета. . Далее, запускаем и тут же на экране видим все игры, которые Стим приписывает вам

Знатоки очень советуют для чистоты «эксперимента» выйти предварительно из всех запущенных на компьютере программ. Для получения списка достижений игры выбираем её и видим справа количество достижений (ачивок, как говорят бывалые игроманы) у этой игры. Задача, как открыть все достижения в steam, выполнена

Далее, запускаем и тут же на экране видим все игры, которые Стим приписывает вам. Знатоки очень советуют для чистоты «эксперимента» выйти предварительно из всех запущенных на компьютере программ. Для получения списка достижений игры выбираем её и видим справа количество достижений (ачивок, как говорят бывалые игроманы) у этой игры. Задача, как открыть все достижения в steam, выполнена.

Code File

Constructor

ParametersReturnsWhat it doesCSteamAchievements::CSteamAchievements(Achievement_t *Achievements, int NumAchievements):
m_iAppID( 0 ),
m_bInitialized( false ),
m_CallbackUserStatsReceived( this, &CSteamAchievements::OnUserStatsReceived ),
m_CallbackUserStatsStored( this, &CSteamAchievements::OnUserStatsStored ),
m_CallbackAchievementStored( this, &CSteamAchievements::OnAchievementStored )
{
m_iAppID = SteamUtils()->GetAppID();
m_pAchievements = Achievements;
m_iNumAchievements = NumAchievements;
RequestStats();
}

RequestStats()

ParametersReturnsWhat it doesbool CSteamAchievements::RequestStats()
{
// Is Steam loaded? If not we can’t get stats.
if ( NULL == SteamUserStats() || NULL == SteamUser() )
{
return false;
}
// Is the user logged on? If not we can’t get stats.
if ( !SteamUser()->BLoggedOn() )
{
return false;
}
// Request user stats.
return SteamUserStats()->RequestCurrentStats();
}

SetAchievement()

ParametersReturnsWhat it doesbool CSteamAchievements::SetAchievement(const char* ID)
{
// Have we received a call back from Steam yet?
if (m_bInitialized)
{
SteamUserStats()->SetAchievement(ID);
return SteamUserStats()->StoreStats();
}
// If not then we can’t set achievements yet
return false;
}

OnUserStatsReceived()

ParametersReturnsWhat it doesvoid CSteamAchievements::OnUserStatsReceived( UserStatsReceived_t *pCallback )
{
// we may get callbacks for other games’ stats arriving, ignore them
if ( m_iAppID == pCallback->m_nGameID )
{
if ( k_EResultOK == pCallback->m_eResult )
{
OutputDebugString(«Received stats and achievements from Steam\n»);
m_bInitialized = true;

// load achievements
for ( int iAch = 0; iAch < m_iNumAchievements; ++iAch )
{
Achievement_t &ach = m_pAchievements;

SteamUserStats()->GetAchievement(ach.m_pchAchievementID, &ach.m_bAchieved);
_snprintf( ach.m_rgchName, sizeof(ach.m_rgchName), «%s»,
SteamUserStats()->GetAchievementDisplayAttribute(ach.m_pchAchievementID,
«name»));
_snprintf( ach.m_rgchDescription, sizeof(ach.m_rgchDescription), «%s»,
SteamUserStats()->GetAchievementDisplayAttribute(ach.m_pchAchievementID,
«desc»));
}
}
else
{
char buffer;
_snprintf( buffer, 128, «RequestStats — failed, %d\n», pCallback->m_eResult );
OutputDebugString( buffer );
}
}
}

OnUserStatsStored()

ParametersReturnsWhat it doesvoid CSteamAchievements::OnUserStatsStored( UserStatsStored_t *pCallback )
{
// we may get callbacks for other games’ stats arriving, ignore them
if ( m_iAppID == pCallback->m_nGameID )
{
if ( k_EResultOK == pCallback->m_eResult )
{
OutputDebugString( «Stored stats for Steam\n» );
}
else
{
char buffer;
_snprintf( buffer, 128, «StatsStored — failed, %d\n», pCallback->m_eResult );
OutputDebugString( buffer );
}
}
}

OnAchievementStored()

ParametersReturnsWhat it doesvoid CSteamAchievements::OnAchievementStored( UserAchievementStored_t *pCallback )
{
// we may get callbacks for other games’ stats arriving, ignore them
if ( m_iAppID == pCallback->m_nGameID )
{
OutputDebugString( «Stored Achievement for Steam\n» );
}
}

Как разблокировать все достижения в любой игре в Steam

Допустим в какой-то игре у вас 99% ачивок но одну -единственную вы получить не можете- хоть убей! Есть люди, которые с упорством маньяка тратят часы на получения ачивок в играх. Но зачем тратить время если все можно сделать проще и быстрее?

Есть такая прога как Steam Achievement Manager, благодаря которой можно разблокировать все достижения в любой Steam игре.

Прокрутим страницу вот до сюда:

Как получит Steam Achievement Manager: Карточки и достижения

Нажимаем на “Download Steam Achievement Manager 6.3” Переходим на страницу загрузки Жмем на розовую кнопку с текстом “I read the warning and still want to download!”

Как получит Steam Achievement Manager: Карточки и достижения

Скачается архив с программой, содержащий 3 файла.

Как получит Steam Achievement Manager: Карточки и достижения

Разархивируем но только не в директорию со Steam! Лучше на Рабочий стол

После разархивации программы нужно зайти в Steam (если еще не зашли). Только потом, после того, как зашли в Steam, открываем программу.

Запускаем файл “SAM.Picker.exe” и появляется вот такое вот окно:

Как получит Steam Achievement Manager: Карточки и достижения

Чтобы долго не искать игру в списке, ее можно найти намного быстрее.

Выбираем игру в Steam Нажимаем на нее ПКМ—>Перейти на форум. Нас перекидывает на форум, нам нужна ссылка, которая расположена вверху стима:

Как получит Steam Achievement Manager: Карточки и достижения

Точнее не ссылка, а только цифры из нее, в данном случае это 220440.

Теперь вставляем цифры в строку поиска в нашей программе и жмем “Add game”. Мы видим что игру нашло:

Как получит Steam Achievement Manager: Карточки и достижения Как получит Steam Achievement Manager: Карточки и достижения

Кликаем на нее 2 раза ЛКМ, у нас открывается другое окно программы с достижениями данной игры: Жмем на раскрывающийся замок в левом верхнем углу.(Это для того, чтобы выбрать все достижения. Если вы не хотите открывать все достижения, то просто отметьте галочками те, которые хотите):

Как получит Steam Achievement Manager: Карточки и достижения

Теперь, когда выбрали все или отметили галочками нужные достижения жмем кнопку “Store” в правом верхнем углу:

Как получит Steam Achievement Manager: Карточки и достижения

Нам выскакивает окошко “Information”, в котором нужно нажать “ОК”:

Как получит Steam Achievement Manager: Карточки и достижения

Как работать

Давайте вместе с вами в деталях рассмотрим принцип работы программы, как, что и когда нажимать для получения позитивного исхода

Прежде всего, стоит обратить внимание на установку. Здесь нет никаких сложностей, инсталляция проводится в стандартной форме, как и любые другие программы

Но внимание нужно уделить выбору пути сохранения Steam Achievement Manager – указывайте любое место на диске, кроме папки с файлами Steam. Это в дальнейшем может нарушить корректную работу программы.

  1. Открываем программу, и здесь молнии наблюдать рабочее окно с перечнем игр. В нем содержатся наиболее используемые вами игрушки, и для начала работы достаточно ЛКМ кликнуть по одной из них. Если необходимой игры в окне вы не обнаружили, достаточно ввести ее id в поисковик (чтобы узнать id, необходимо зайти в самом Steam на желаемую игру. В адресной строке будут указаны цифры, которые нужно было ввести в программу).
  2. Далее нам откроется вкладка с перечнем всех доступных достижений. Вы можете выбрать все, кликнув по иконке замочка, либо же отметить некоторые галочками.
  3. Жмем на кнопку Store сверху справа. Через считанные секунды достижения вступят в силу и отразятся в клиенте Steam.
  4. Для получения карточек достаточно следующего: заходим таким же образом в игру через Steam Achievement Manager, и просто не закрываем программу некоторое время. Через промежуток 15-30 минут времени будет предоставляться одна карточка, при этом программа будет показывать, что вы находитесь в этой игре, что не вызовет никаких подозрений.

Важно! Для корректной работы Steam Achievement Manager 7.0.25 необходима установленная на компьютере .NET Framework

Как сделать альбомный лист в Word только на одну страницу

Если вы хотите , то это будет немного сложнее, чем перевести в альбомную ориентацию весь документ. Ведь для этого потребуется разделить документ на разделы. Ниже мы продемонстрируем, как это делается на примере ленточного интерфейса Word 2007, 2010, 2013 и 2016. Но, эта инструкция будет полезна, даже если у вас Word 2003, поскольку там используется тот же принцип.

Итак, для начала нужно включить отображение не печатаемых символов. Так будет намного проще работать с разделами.

Следующий шаг – расстановка разрывов разделов. Для того чтобы сделать альбомный лист в Ворде только на одну страницу необходимо вставить так называемый «Разрыв раздела» перед этой альбомной страницей и после альбомной страницы». Для этого устанавливаем курсор на страницу, которая идет перед альбомной, переходим на вкладку «Разметка страницы», нажимаем на кнопку «Разрывы» и выбираем пункт «Следующая страница». Дальше установите курсор в конец страницы, которую вы хотите сделать альбомной, и снова таким же способом устанавливаете разрыв раздела после следующей страницы.

После этого установите курсор на страницу, которую вы хотите сделать альбомной и поменяйте ее ориентацию на альбомную.

Если вы сделали все правильно, то вы получите альбомный лист только на одну страницу, а не на весь документ Word. После этого можно выключать отображение не печатаемых символом и дальше работать с документом как обычно.

Заголовочный файл

Achievement Configuration#define _ACH_ID( id, name ) { id, #id, name, «», 0, 0 }
struct Achievement_t
{
int m_eAchievementID;
const char *m_pchAchievementID;
char m_rgchName;
char m_rgchDescription;
bool m_bAchieved;
int m_iIconImage;
};

class CSteamAchievements
{
private:
int64 m_iAppID; // Our current AppID
Achievement_t *m_pAchievements; // Achievements data
int m_iNumAchievements; // The number of Achievements
bool m_bInitialized; // Have we called Request stats and received the callback?

public:
CSteamAchievements(Achievement_t *Achievements, int NumAchievements);
~CSteamAchievements();

bool RequestStats();
bool SetAchievement(const char* ID);

STEAM_CALLBACK( CSteamAchievements, OnUserStatsReceived, UserStatsReceived_t,
m_CallbackUserStatsReceived );
STEAM_CALLBACK( CSteamAchievements, OnUserStatsStored, UserStatsStored_t,
m_CallbackUserStatsStored );
STEAM_CALLBACK( CSteamAchievements, OnAchievementStored,
UserAchievementStored_t, m_CallbackAchievementStored );
};

Гайд по Steam Achievement Manager: Карточки и достижения

Прокрутим страницу вниз вот до сюда:

Нажимаем на текст “Download Steam Achievement Manager 6.3”Мы переходим на страницу загрузки Achievement ManagerЖмем на розовую кнопку с текстом “I read the warning and still want to download!”

У нас скачивается ZIP-архив с программой, содержащий 3 файла.

Разархивируем их в папку SAM на Рабочий стол

Теперь, после разархивации программы нужно зайти в Steam (если еще не зашли).Только потом, после того, как зашли в Steam, открываем программу.

Запускаем файл “SAM.Picker.exe” и перед нашими глазами появляется вот такое вот окно:

Я покажу вам открытие достижений на примере игры Dead Island Epidermic (т.к. во всех остальных играх у меня все достижения открыты).

Чтобы долго не искать нашу игру в списке, я покажу как найти ее намного быстрее.

Выбираем нашу игру в Steam (Dead Island)Нажимаем на нее ПКМ—>Перейти на форум.Нас перекидывает на форум, нам нужна ссылка, которая расположена вверху стима:

Точнее не ссылка, а только цифры из нее, в данном случае это 222900 . Для удобства будем называть эту цифру “ID игры” (по крайней мере я ее так и называю, это тоже самое, что и ID ВКонтакте).

Теперь вставляем наш ID игры в строку поиска в нашей программе и жмем “Add game”.Мы видим что нашу игру нашло:

Теперь, когда выбрали все или отметили галочками нужные достижения жмем кнопку “Store” в правом верхнем углу:

Нам выскакивает окошко “Information”, в котором нужно нажать “ОК”:

ВУАЛЯ! Спустя секунду мы видим, как побежали достижения в правом нижнем углу экрана:

Карточки:Что бы получить карточки вам нужно просто запустить Steam Achievement Manager и щёлкнуть 2 раза на игре из списка.

И будет показывать, что вы играете в ту игру, которую выбрали.Если вы выберете игру, которой у вас нету, то карточки не будет, и не будет показывать, что вы в нее играет

ВНИМАНИЕ!Многие пишут, что Steam за это не банит. Меня тоже не забанил

Я пробовал на двух аккаунтах очень давно, все отлично.Достижения крутил в тех играх, в которые даже не играл.НО! Если конечно с вашим аккаунтом что нибудь случится-Я НИ КАКОЙ ОТВЕТСТВЕННОСТИ НЕ НЕСУ! ДЕЛАЙТЕ ВСЕ НА СВОЙ СТРАХ И РИСК!

Описание

Steam Achievement Manager была создана обычным юзером с ником Rick, о котором в интернете мало информации. Мы можем утверждать разве что о том, что он является фанатом площадки Steam, и больше к разработке никаких программ отношения не имеет. Суть утилиты состоит в том, чтобы без особого труда завладеть карточками и достижениями любимых игр. Без использования Steam Achievement Manager получение трофеев могло бы занять месяца. Программа является легальной, и вы можете не переживать, что получите штраф или бан.

Естественно, вы можете быть наказаны, если будете злоупотреблять услугами приложениями. К примеру, самые популярные игры в Steam оснащены VAC-защитой, которая может сработать в случае, если заподозрит вас в читерстве. Допустим, у вас сыграно в определенную игру 0 часов, а уже имеются достижения в той или иной области. Тогда вы можете получить бан, именно поэтому не нужно пренебрегать программой, и делать все с умом.

The AVGRATE stat type

  • Note that, because the average will be «per hour», the time units on all time parameters associated with this stat will be «hours». This applies to the Window property on the stat itself, and also for the «dSessionLength» parameter passed in to below.
  • Create an AVGRATE stat named «AvgPointsPerHour», and a Window property of 20.0 (remember, that’s in «hours»)
  • At appropriate points during your game, call with the following parameters:
    • pchName — «AvgPointsPerHour»
    • flCountThisSession — The number of points the player earned since the last call to UpdateAvgRateStat.
    • dSessionLength — The amount of game time since the last call to UpdateAvgRateStat. The unit should be the same as the unit on the stat’s Window property. In this case, it is «hours».
  • For instance, if the player earned 77 points in the last round, which lasted 0.225 hours (13.5 minutes), that would be
Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector