1 / 18

Санкт-Петербург, 2011 г.

«Программирование для игры GTA San Andreas: Multiplayer ». Работу выполнил: Сивачук Владислав, 11«А» класс. Санкт-Петербург, 2011 г. San Andreas Multiplayer (сокращённо: SA-MP) — бесплатная многопользовательская модификация для видеоигры Grand Theft Auto: San Andreas в версии для Windows,

elton
Download Presentation

Санкт-Петербург, 2011 г.

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. «Программирование для игры GTA San Andreas: Multiplayer» Работу выполнил: Сивачук Владислав, 11«А» класс Санкт-Петербург, 2011 г.

  2. San Andreas Multiplayer (сокращённо: SA-MP) — бесплатная многопользовательская модификация для видеоигры Grand Theft Auto: San Andreas в версии для Windows, с закрытым исходным кодом. Разрабатывается командой The SA-MP team на добро- вольной основе, ведущими программистами проекта являются два человека с никами Kye и spookie.

  3. Игровой сервер Сервер представляет собой набор: -Собственно, сам сервер (.exe файл); -Программа Pawno с набором стандартных .inc файлов (includes); -Набор стандартных Filterscripts; -Набор стандартных Gamemodes; -Файлы лога, конфигурации и проч.

  4. Программа Pawno Стандартные моды (режимы) для игры

  5. пароль RCON администратора • максимальное кол-во игроков • порт • -имя сервера • игровой мод • -фильтрскрипты (доп. моды) • сайт сервера. Конфигурация

  6. PAWN PAWN, также известный как Small - язык программирования c открытым исходным кодом. В первую очередь предназначен как встраиваемый язык сценариев. Он разрабатывается голландской компанией CompuPhase, которая выпустила первую версию в 1998 году. PAWN – язык с C-подобным синтаксисом. Он был использован в нескольких проектах: PAWN является главным языком кодирования, наряду с C++, в игре Grand Theft Auto: San Andreas Multiplayer. Также он используется в Half-Life Mod, AMX Mod X и Source Engine. Исходный код хранится в файле собственного формата (.pwn), который является эквивалентом текстового файла. После компиляции создается файл формата AMX, в которой, фактически, хранится зашифрованный код.

  7. Pawno - программное обеспечение, поставляющееся вместе с игровым сервером. Pawno является средой программирования на языке PAWN. В программу встроен компилятор, который и cоздает файлы с расширением .amx.

  8. При наличии ошибок компилятор выдаёт подробную информацию о файле и строке, в которой присутствует ошибка.

  9. Ban System • В игре GTA San Andreas Multiplayer, также как и во всех других онлайн • играх (да и не только в них), существует потребность в наличии какого- • либо способа запрета для игрока заходить в игру (ban). • В SA:MP имеется своя стандартная система для бана игроков. • Схема её действия: • Администратор сервера производит бан игрока. • IP адрес игрока, а также его ник (игровое имя) и причина бана • помещаются в специальный файл samp.ban в корневой папке сервера. • 3) При подключении к серверу игрока, данные которого были занесены • в файл samp.ban,связь разрывается и игрок не может зайти на сервер. • 4) При необходимости снова предоставить доступ к сарверу забаненному • игроку, владельцу сервера (тому, кто имеет доступ ко всем файлам и, • непосредственно, файлу samp.ban) требуется вручную открывать этот • файл, искать в нём нужные данные, а затем их удалять.

  10. ~С помощью данной системы возможно обеспечить недоступность игрового сервера для определенных игроков. ~Крайне неудобное управление данными забаненных игроков: произвести разбан (unban) игрока может только владелец сервера, причем удаляя данные вручную. ~Сохраняются только некоторые данные о произведенном бане (IP, имя и причина). ~Приходится вести журнал в том случае, если вам необходимо закрыть доступ к серверу только на определенный срок. ~Когда забаненный игрок заходит на сервер, он видит только надпись ‘Server closed the connection’ – Сервер закрыл соединение; игрок не имеет понятия, почему он был забанен и куда ему обратиться.

  11. Стоявшие задачи: -Сделать возможным управление данными забаненных игроков для администраторов, не имеющих доступа к файлам сервера. -Сделать разбан игрока одним нажатием кнопки. -Сохранять большее количество информации о произведенном бане. -Предоставить удобное управление всеми данными. -Показать забаненному игроку всю информацию о его бане. -Кое-что ещё… -Все основные возможности обычного программирования; А также: -Возможность создавать в игре диалоговые окна (окно с двумя кнопками) трёх различных видов. Возможности:

  12. И была создана! Ban System Это, в принципе, своего рода база данных и система управления этой базой данных. Все функции системы: -Возможность просматривать список забаненных игроков.

  13. -Просмотр информации по каждому бану отдельно (Выбор из списка).=> <= -Возможность производить действия с информацией о бане.

  14. А именно: добавлять дату Автоматического разбана и изменять причину бана, если она была указана неверно. <= Информация о бане после изменения причины и добавления даты разбана. Обещанный разбан одним нажатием кнопки:

  15. Возможность производить бан игрока при отсутствии его на сервере, зная его имя и/или IP адрес: Вот что получает забаненный игрок при входе на сервер (даже сменив имя и, возможно, IP адрес):

  16. Функция поиска. Так как обычно через 1-2 месяца работы системы на оживленном игровом сервере количество забаненных игроков достигает 2-3 тыс., то требуется возможность быстрого поиска нужной информации по заданным параметрам. Программа производит поиск заданной символьной комбинации во всех полях каждой записи базы данных (имя, IP адрес, причина, имя администратора, дата) и выводит результат на экран в виде списка.

  17. Итог: Команды: /ban [id] [reason] – бан игрока в игре по его ID (номеру); /aban [name] [IP] [reason] – бан игрока, который вне игры; /bans – список всех забаненных игроков; /baninfo [№] – открыть информацию о нужном бане; /searchban [key] – поиск в базе данных. Сделана программа с удобным интерфейсом и новыми возможностями. Теперь управлять банами могут все администраторы сервера. Можно увидеть всю информацию о бане – добавлены имя администратора, дата бана и дата разбана. «Умная» система распознавания забаненных данных не даст никакой возможности нарушителям проникнуть на сервер. Данная система имеет только один аналог в мире – это система бана,созданная немецким скриптером Jeffry для сервера Ultimative Gamers Playground (188.40.86.76:8001).

  18. С технической точки зрения: При совершении бана все данные записываются в специальный файл ban.log, каждая запись имеет свой номер. При запуске сервера все данные считываются из файла и загружаются в систему. Определяется количество записей - для ускорения дальнейшей обработки. При заходе игрока на сервер стартует таймер на 10 секунд, после чего происходит проверка данных игрока на совпадение их с забаненными данными. Тут работает «умная» система: Если имя игрока совпадает с забаненным, то IP адрес проверяется на соответствие по первым 6 знакам. Иначе, если в забаненном IP адресе есть знак * (звездочка), то адреса проверяются на соответствие по количеству знаков до звездочки. Если адрес записан целиком (без звездочки) - проверяются 15 символов. Такая проверка помогает усилить защиту от входа забаненных игроков, имеющих динамический IP адрес, а также пропустить тех, кто имеет похожий IP адрес, но является добропорядочным игроком. Обычно диалоговые окна используют со статичесткими данными, то есть заранее прописывают их содержимое. В данном же случае содержимое зависит от конкретной сложившейся ситуации. Одним из сложных моментов является создание переходов с одной страницы на другую в списке забаненных игроков, так как требуется учитывать общее количество записей, количество на данной странице и определять с какого по какой номер необходимо выводить данные сейчас. Когда вы нажимаете кнопку Разбанить в меню Действия, программа изменяет данные в файле ban.log, а также заменяет данные в рабочих массивах на сервере. Всё делается автоматически и не требует вмешательства в процесс человека. Место записи, которая была удалена (игрока разбанили), становится свободным и следующий забаненный игрок получит номер бана не тот, кторый идет после последнего, а освободившийся номер. Возможность бана игрока в момент его отсутствия на сервере - очень важная вещь. Не всегда можно за всеми уследить, так что если поступили проверенные сведения, можно записать данные игрока вручную. Опять же всё будет сохранено автоматически. При поиске в базе забаненных используется стандартная функция поиска в строке. Поиск производится по всем полям во всех записях. Он не требует заведения отдельных массивов для хранения найденных данных - во время поиска сразу же берутся номера банов, данные которых соответствуют критериям, а при выводе на экран просто подставляются данные из массивов с нужными номерами. Для получения более конкретных сведений по интересующим вопросам: support@pepperoni-inc.ru

More Related