Jump to content

Search the Community

Showing results for tags 'разработка'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Russian Section
    • Новости и объявления
    • Пиратия: Документация
    • Пиратия: Релизы
    • Пиратия: Разработка
    • Пиратия: Web
    • Пиратия: Помощь
    • Совместные проекты / набор команды
    • Доска объявлений
    • Программирование
    • Оффтопик
    • Корзина
  • English Section
    • News & Announcements
    • Guides
    • Releases
    • Development
    • Web
    • Questions & Help
    • Shared Projects / Team search
    • Paid services & Requests
    • Programming
    • Offtopic
    • Recycle bin
  • Portuguese Section
    • Dúvidas & Ajuda
  • Spanish Section
    • Preguntas y Ayuda
  • Servers
    • Russian servers
    • English servers

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Found 4 results

  1. Система "оффлайн" ларьков Одним из игровых аспектов игры является торговля между персонажами посредством особых ларьков (лавок), которые могут открывать игроки изучив специальное умение. Игрок выставляет свои предметы за определенную цену, а остальные игроки могут покупать их. Однако, для такой торговли игрок должен находиться в игре, то есть быть подключенным к серверу, что вынуждает его оставлять свой компьютер постоянно включенным и держать игровой клиент свернутым. Это очень неудобно, поэтому была придумана система "оффлайн" ларьков, которая позволяет игрокам отключаться от сервера и при этом оставаться торговать в ларьках. Возможно несколько способов реализации такой системы, но наиболее распространена система "оффлайн" ларьков через прокси-сервер: 1) Игровой клиент (Game.exe) подключается к прокси-серверу; 2) Прокси-сервер, в свою очередь, открывает соединение с GateServer.exe; 3) Далее, прокси-сервер передает все пакеты между Game.exe и GateServer.exe, при этом анализируя их; 4) Когда игрок открывает торговый ларек, прокси-сервер фиксирует это (GateServer.exe отправил Game.exe пакет успешного открытия ларька); 5) Если игрок отключается от сервера будучи в торговом ларьке, то прокси-сервер закрывает соединение с Game.exe, но при этом сохраняет соединение с GateServer.exe и начинает имитировать Game.exe. Таким образом, GateServer.exe не подозревает о факте отключения Game.exe и персонаж игрока остается торговать в ларьке на сервере. Game.exe | Game.exe | <---------> pkodev.stallserver.exe <---------> GateServer.exe Game.exe | В данной теме обсуждается разработка такого прокси-сервера - PKOdev.NET Stall Server. Внимание! Сервер находится на стадии разработки и не предназначен для применения в "продакшене". Это означает что приложение полностью не протестировано и может содержать ошибки, баги и критические уязвимости. Возможности 1) Система оффлайн ларьков; 2) Ограничение количества оффлайн ларьков с одного IP-адреса; 3) Ограничение времени торговли в оффлайн-ларьке; 4) Автоматическое отключение аккаунта, торгующего в оффлайн ларьке, при подключении игрока с использованием того же аккаунта; 5) Оповещение игроков в чат о том, что персонаж находится в оффлайн ларьке и в данный момент не в сети (при обращении в ЛС); 6) Исправление SQL-инъекций в пакетах авторизации и создания (смены) секретного кода; 7) Установка максимального числа подключений к серверу с одного IP-адреса и интервала между подключениями. To-do: 1) Перевод комментариев в файлах Server.h and Server.cpp на английский язык; 2) Исправление падения сервера при обработке пакетов от клиента; 3) Исправление падения сервера при запуске, когда локальный порт занят; 4) Исправление зависания моста при блокировке пакета при включенном шифровании (спасибо @small666 за обнаруженный баг); 5) Синхронизация между потоками при обработке пакетов; 6) Закрытие оффлайн ларька, если все предметы проданы; 7) Модификация GateServer.exe для определения IP-адресов клиентов, которые находятся за сервером оффлайн ларьков. В данный момент в логах и базе данных IP-адреса всех клиентов будут записываться как 127.0.0.1 (если GateServer.exe и pkodev.stallserver.exe запущены на одной машине). 8 ) Совместимость с исходным кодом Corsairs Online (CO). Сборка и запуск 1) Выполните клонирование репозитория с проектом сервера к себе на диск (ссылка будет ниже); 2) Откройте файл решения pkodev.stallserver.sln в Visual Studio 2022 Community; 3) Соберите решение. Исполняемые файлы сервера появятся в папке bin; 4) Поместите конфигурационный файл pkodev.stallserver.cfg из папки cfg в одну директорию с исполняемым файлом сервера pkodev.stallserver.exe; 5) Настройте конфигурационный файл pkodev.stallserver.cfg по своему усмотрению (файл хорошо прокомментирован); 6) Для подключения игрового клиента (Game.exe) к серверу оффлайн ларьков нужно установить мод pkodev.mod.stallserver; 7) Для подключения сервера оффлайн ларьков к GateServer.exe, последний должен быть без каких-либо модификаций ("чистым"), например, из сборки PKO 1.38; 8 ) Запустите исполняемый файл сервера оффлайн ларьков pkodev.stallserver.exe. Репозиторий Git https://github.com/V3ct0r1024/pkodev.stallserver
  2. [Новость] Проект по разработке Пиратии на движке Unity3D ("Top Mobile") Всем привет! В этой новости я хочу вам рассказать о существовании проекта по портированию Пиратии на игровой движок Unity3D - Top Mobile. Как сообщил владелец данного проекта, участник нашего форума @UnityDev, работа практически завершена: реализованы все основные игровые системы и проведено их тестирование, но сейчас стоит трудоемкая задача по воссозданию игровых локаций. Собственно, @UnityDev и обратился к нашему сообществу с целью поиска людей, которые помогут ему c этой задачей. Поэтому, если Вам интересен проект и у Вас есть некоторый опыт работы с движком Unity3D, то свяжитесь (на английском языке) с @UnityDev в Discord: MiniMan#9579 У проекта есть YouTube-канал, на котором выкладываются видео-ролики с демонстрацией работы клиента на новом движке: На первом видео можно увидеть знакомые локации - Аргент и остров Арены. Демонстрируется PvP между Стрелком и Воителем. Можно заметить элементы графического интерфейса пользователя (характеристики персонажа, инвентарь, элементы управления для тач-скрина). В конце видео показана работа чата. На втором видео демонстрируется процесс прохождения квеста в локации Серебряные шахты, целью которого является охота на местных обитателей - Кротов, Летучих мышей и Грязевых монстров. Здесь также появляются новые элементы GUI - аватарка с ЖЗ и МН персонажа игрока и миникарта. Судя по характерному свечению, в оружие игрока вставлены самоцветы. В конце видео мы видим фонтан Ледыни. Небольшое интервью с @UnityDev: V3ct0r: Привет и добро пожаловать на наш форум! Если ты не против, то я хотел бы задать тебе несколько вопросов. UnityDev: Привет, V3ct0r. V3ct0r: Ты один работаешь над проектом или у тебя есть команда? UnityDev: В основном работаю один, но я нанимал много профессиональных разработчиков, чтобы помочь мне с проектом. Так же я единственный владелец проекта. V3ct0r: Как долго ты трудишься над проектом? UnityDev: На самом деле, это уже мой второй проект Пиратии на движке Unity3D. Для прошлого проекта я нанял кое-кого из сообщества Пиратии, но у нас были некоторые проблемы и я решил закрыть проект. Это было два года назад. С тех пор я начал этот проект [о котором идет речь в новости]. Как говорится, мы учимся на ошибках, поэтому этот новый проект должен быть лучше. V3ct0r: Какие программы вы использовали чтобы извлечь ресурсы [модели, анимации, текстуры] из оригинального клиента игры? UnityDev: Мы использовали 3D max и Blender. V3ct0r: Насколько я понимаю, у тебя есть сервер и клиент поддерживает мультиплеер. Твой клиент на движке Unity3D совместим с оригинальными серверными файлами или твой сервер это отдельная разработка? UnityDev: Да, сначала я думал над тем, чтобы сделать клиент совместимым с оригинальными серверными файлами, но потом я решил отказаться от этой идеи, поскольку оригинальные серверные файлы имеют [уязвимости] кучу эксплоитов и неизвестных бэкдоров. Поэтому я решил сделать свой сервер. V3ct0r: Ты профессиональный разработчик игр или это твое хобби? UnityDev: Я не могу сказать что я профессиональный разработчик, но я много работал с движком Unity3D и хорошо его знаю. Иногда я прибегаю к помощи других разработчиков на платной основе, когда сталкиваюсь с проблемами, которые не могу решить самостоятельно. V3ct0r: Это будет приватная разработка или ты выложишь проект в открытый доступ? Планируешь ли ты запускать сервер, основанный на результатах данного проекта? UnityDev: Я выложу свою работу в открытый доступ. Конечно, я планирую запускать сервер. V3ct0r: Как ты думаешь, сколько тебе еще понадобится времени, чтобы зарелизить проект? UnityDev: О том, сколько времени это займет, ну, на самом деле, я уже могу выпустить бета-версию. Игровые системы закончены и протестированы. Мы уже провели много тестов, и все работает идеально. Все что осталось сделать - это карты [игровые локации]. Как ты знаешь, в Unity3D нужно создавать локации с нуля, а это занимает некоторое время. V3ct0r: Кстати, мы с другом тоже когда-то пытались портировать Пиратию на движок Unity3D UnityDev: Да, я давно видел ваш проект. Вы отлично поработали, но я не понимаю почему вы не продолжили над ним работать. V3ct0r: Благодарю тебя за ответы на мои вопросы! Если ты не против, я создам новость о твоем проекте, чтобы его могло заметить все сообщество Пиратии. UnityDev: О да, это было бы круто, спасибо! Благодарю за внимание, надеюсь, Вам было интересно! В свою очередь, я рад поддержать данный проект таким способом и желаю ему развития и удачи!
  3. Раздел по разработке игры на движке Unity3D Всем привет! По просьбе пользователей на форуме был создан раздел для обсуждения и разработки Пиратии на игровом движке Unity3D. Википедия
  4. Шаблон проекта мода PKOdev.NET loader для Visual Studio 2019 Community Выкладываю шаблонный проект под Visual Studio 2019 Community, который предназначен для разработки модов для PKOdev.NET mod loader на языке программирования C++. Проект включает в себя 1) Структуру файлов (address.h, pointer.h, hook.h, structure.h, dllmain.cpp); В файл address.h записываются адреса импортируемых функций и объектов из .exe файла. В данном файле также определены пространства имен для соответствующих версий .exe файла, в пределах которых необходимо указать адреса для каждой версии исполняемого файла. Все адреса должны находится в пространстве имен address. namespace address { // Game.exe 2 (1252912474) namespace GAME_13X_2 { // void CHeadSay::Render(D3DXVECTOR3& pos) const unsigned int CHeadSay__Render = 0x00470770; } // Game.exe 4 (1585009030) namespace GAME_13X_4 { // void CHeadSay::Render(D3DXVECTOR3& pos) const unsigned int CHeadSay__Render = 0x004707D0; } } В файле pointer.h находятся указатели на импортируемые функции из .exe файла. Все указатели должны находиться в пространстве имен pointer. namespace pointer { // void CHeadSay::Render(D3DXVECTOR3& pos) typedef void(__thiscall* CHeadSay__Render__Ptr)(void*, D3DXVECTOR3&); CHeadSay__Render__Ptr CHeadSay__Render = (CHeadSay__Render__Ptr)(void*)(address::MOD_EXE_VERSION::CHeadSay__Render); } В файле hook.h находятся определения функций-перехватчиков оригинальных функций из .exe файла. Все перехватчики должны находиться в пространстве имен hook. namespace hook { // void CHeadSay::Render(D3DXVECTOR3& pos) void __fastcall CHeadSay__Render(void* This, void* NotUsed, D3DXVECTOR3& Pos); } В файле structure.h находятся различные структуры данных, необходимые для работы мода. // 3D vector structure struct D3DXVECTOR3 { float x; float y; float z; }; В файле dllmain.cpp находятся точка входа, реализация функций интерфейса загрузчика, реализация функций-перехватчиков и непосредственно код мода. 2) Интерфейс загрузчика модов (loader.h) и его реализацию. 3) Конфигурации сборки для всех поддерживаемых .exe файлов с соответствующими определениями препроцессора. 4) Библиотеку MS Detours для перехвата вызова функций в .exe файлах. DetourAttach(&(PVOID&)pkodev::pointer::CHeadSay__Render, pkodev::hook::CHeadSay__Render); Как настроить проект 1) Переименуйте файлы проекта (pkodev.mod.dummy) на название Вашего мода; 2) Удалите ненужные конфигурации сборки; 3) Для каждой конфигурации сборки укажите название выходной DLL-библиотеки мода (Target Name); 4) Для каждой конфигурации сборки укажите определения препроцессора MOD_NAME, MOD_AUTHOR и MOD_VERSION. Скачать Шаблон проекта мода для Visual Studio 2019 Community (C++).
×
×
  • Create New...