Хонич А.
Как самому создать трехмерную игру
стр. 80

разработчики игр вводят возможность использования CHEAT кодов в отладочных целях Так же маловероятно, что эти коды с момента приобретения коммерческой лицензионной версии игры общедоступны, т.к. о них в доку ментации ничего не сказано (исключением является лишь игра Descent В файле ReadMe для данной игры описаны CHEAT коды) На данную мысль наводит также то обстоятельство, что в самой игре эти коды находятся не в явном виде (ASCII коды) - они закодированы. Каким же образом они кодиру тотся и как осу ществляется их проверка? Это очень просто, и мы покажем, как это делается, на примере проверки кода “IDDQD” - кода бессмертия в DOOM’e. Как было показано, проверкой CHEAT кодов занимается функция ControlCheatCodes, вызов которой осуществляется из функции OtherControl. В данную функцию передается указатель на текущую структуру CONTROL, которая несет информацию об очередной нажатой клавише. В данной функции нам нужен только код этой нажатой клавиши. Мы не будем здесь приводить пример фу нкции ControlCheatCodes. Можно лишь сказать, что в ней коды проверяются лишь в том случае, если игра не в сети, и если текущий уровень сложности (Skill Level) у вас не четвертый (Nightmare). Проверяет конкретный код функция CheckCheatCode, в которую передаются два параметра:

1.    Адрес на данные проверяемого кода.

2.    Текущий код нажатой клавиши. Функция CheckCheatCode возвращает единицу в том слу чае, если пароль совпал. Если возвращается 0, то это может означать, что пароль не совпал, или еще не все символы пароля были введены, т.к. для того, чтобы пароль совпал, вы должны ввести последовательно все символы этого кода (в нашем случае их 5). Причем никакого тайм-аута здесь нет: вы можете один символ пароля ввести сейчас, а следующий через час, и он будет воспринят. Важно лишь, чтобы между' этими двумя кодами не прошел еще один посторонний код от клавиатуры (заметьте, что только от клавиатуры, т.к. другие устройства ввода в паролях участия не принимают).

Для нашего случая вызов функции CheckCheatCode будет выглядеть так:

Новости
Сценарист Uncharted рассказала о проблемах одиночных игр
Над игрой работала Эми Хенниг, сценарист серий Uncharted и Legacy of Kain.
Готовится выход дополнения «Апокалипсис» для Battlefield 1
Компания Electronic Arts, которая занимается изданием компьютерных игр, и студия-разработчик DICE готовят выход дополнения «Апокалипсис» для игрового проекта Battlefield 1. В дополненной версии появится пять новых карт.