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. С помощью данного PHP-скрипта Вы можете искать различные предметы в мешках, временных мешках и банках персонажей. Требования: PHP 7.0+; Поддержка PDO; Драйвер sqlsrv для PDO. Как установить и пользоваться: 1) Поместите скрипт в рабочую директорию Вашего веб-сервера, обычно она называется htdocs; 2) Откройте файл index.php и настройте его; Сначала укажите данные для подключения к MSSQL-серверу: // MSSQL Settings $db_host = ''; $db_user = ''; $db_pass = ''; $db_name = 'GameDB'; Затем введите секретный код. Секретный код нужен для доступа к скрипту из веб-браузера: // Secret key $access_key = 'E10ADC3949BA59ABBE56E057F20F883E'; Заполните список предметов, которые необходимо искать: // List of items to search for // ID, Name, Icon $items = array( // new Item(ID предмета, 'Название предмета', 'Иконка предмета'), new Item(1, 'Short sword', 'w0001'), new Item(2, 'Long sword', 'w0002'), new Item(863, 'Gem of Rage', 'n1182'), new Item(855, 'Fairy Coin', 'n1482'), new Item(1847, 'Apple', 'n0275') ); На этом настройка скрипта завершена! 3) Запустите скрипт в Вашем веб-браузере и Вы увидите результаты поиска. http://localhost/search_items/index.php Скрипт основан на PHP-классе для работы с инвентарем от пользователя Matt с форума serverdev.net. Иконки предметов идут в комплекте. В целях безопасности, не используйте скрипт на рабочем сервере. Скачать
  2. [Программа] Программа для редактирования GM-команд (pkodev.tool.editgmcmd) Данный инструментарий предназначен для редактирования (переименовывания) GM-команд в GameServer.exe (команды &) и GroupServer.exe ( команды @@). Отличительной особенностью программы является то, что она позволяет задавать новые имена для GM-команд как короче, так и длиннее оригинальных имен. Например, команду &updateall можно заменить на &upd, а команду &move - на &letsmove. Использование Программа представляет собой консольное приложение и, соответственно, работа с ней происходит с помощью командной строки в следующем виде: pkodev.tool.editgmcmd <команда> [параметры команды] Сначала указывается путь до исполняемого .exe файла программы, далее выбирается команда, а после задаются её параметры. Для возможности работы с конкретным целевым файлом GameServer.exe или GroupServer.exe применяется файл базы данных GM-команд в формате .json. В данном файле указываются: 1) Название целевого .exe файла; 2) Метка времени его сборки (linker timestamp); 3) Символ GM-команды (например, '&' или '@@'); 4) Список строк с именами GM-команд и их адреса в целевом .exe файле. С примером .json файла базы данных GM-команд можно ознакомиться по ссылке. В данный момент инструментарий поддерживает (7) команд, которые будут рассмотрены далее. 1. Команда 'name' Отобразить текущее название GM-команды в целевом .exe файле. Параметры: --in "Путь до целевого .exe файла" --db "Путь до .json файла с базой данных GM-команд" (необязателен*) --old "Оригинальное название GM-команды" Например, команда &updateall была переименована в команду &updateall1024, тогда вызов: pkodev.tool.editgmcmd.x64.Release name --in "GameServer.exe" --old "updateall" --db "pkodev.tool.editgmcmd.json" Вернет следующий результат: The GM-command '&updateall' is defined as '&updateall1024'. 2. Команда 'rename' Изменить название GM-команды в целевом .exe файле. Параметры: --in "Путь до целевого .exe файла" --db "Путь до .json файла с базой данных GM-команд" (необязателен*) --bp "Режим резервного копирования" (необязателен**) --old "Оригинальное название GM-команды" --new "Новое название GM-команды" Пример: pkodev.tool.editgmcmd.x64.Release rename --in "GameServer.exe" --old "move" --new "letsmove" --db "pkodev.tool.editgmcmd.json" В результате GM-команда &move будет заменена на GM-команду &letstmove. 3. Команда 'reset' Сбросить все измененные названия GM-команд в целевом .exe файле на оригинальные. Параметры: --in "Путь до целевого .exe файла" --db "Путь до .json файла с базой данных GM-команд" (необязателен*) --bp "Режим резервного копирования" (необязателен**) Пример: pkodev.tool.editgmcmd.x64.Release reset --in "GameServer.exe" --db "pkodev.tool.editgmcmd.json" Внимание! В результате все ранее измененные GM-команды в целевом .exe файле приобретут старые (оригинальные) названия. 4. Команда 'enum' Вывести список всех GM-команд в целевом .exe файле в виде таблицы в консоль. Параметры: --in "Путь до целевого .exe файла" --db "Путь до .json файла с базой данных GM-команд" (необязателен*) Пример: pkodev.tool.editgmcmd.x64.Release enum --in "GameServer.exe" --db "pkodev.tool.editgmcmd.json" Примерный результат вывода см. в изображении в шапке темы. 5. Команда 'supported' Вывести список поддерживаемых целевых .exe файлов в виде таблицы в консоль. Параметры: --db "Путь до .json файла с базой данных GM-команд" (необязателен*) Пример: pkodev.tool.editgmcmd.x64.Release supported --db "pkodev.tool.editgmcmd.json" По итогам выполнения команды в консоль будет выведен список поддерживаемых .exe файлов, например: +------+------------------------------------------------+-----------------+------------------+ | # | Executable file name | Version | GM-commands | +------+------------------------------------------------+-----------------+------------------+ | 1.| GameServer.exe 1.36 (GAMESERVER_136) | 1204708785 | 53 | | 2.| GameServer.exe 1.38 (GAMESERVER_138) | 1225867911 | 53 | | 3.| GroupServer.exe 1.38 (GROUPSERVER_138) | 1224838510 | 8 | +------+------------------------------------------------+-----------------+------------------+ 6. Команда 'check' Проверить, поддерживается ли целевой .exe файл программой. Параметры: --in "Путь до целевого .exe файла" --db "Путь до .json файла с базой данных GM-команд" (необязателен*) Пример: pkodev.tool.editgmcmd.x64.Release check --in "GameServer.exe" --db "pkodev.tool.editgmcmd.json" Результат: GameServer.exe 1.38 (GAMESERVER_138) (Version: 1225867911) is supported! 7. Команда 'help' Получить помощь по программе. Параметры: Отсутствуют Пример: pkodev.tool.editgmcmd.x64.Release help Результат: Usage: pkodev.tool.editgmcmd.x64.Release <command> [parameters] There are supported commands: 1) name --in <.exe file> --old <GM-command> {--db <addresses file>} Get the original name of a given GM-command. 2) rename --in <.exe file> --old <GM-command> --new <GM-command> {--db <addresses file>} {--bp <backup mode [off|name|time]>} Rename a given GM-command. 3) reset --in <.exe file> {--db <addresses file>} {--bp <backup mode [off|name|time]>} Reset all GM-command names to the original ones. 4) enum --in <.exe file> {--db <addresses file>} Print a list of GM-commands as a table. 5) supported {--db <addresses file>} Print a list of supported .exe files as a table. 6) check --in <.exe file> {--db <addresses file>} Check if an .exe file is supported by the tool. Parameters in the curly braces {} are optional. * Параметр '--db' Данный параметр отвечает за путь до .json файла базы данных GM-команд, является необязательным и может отсутствовать. Если параметр '--db' не указан, то программа автоматически ищет этот файл в той же директории, в которой находится, и с таким же названием, что и её .exe файл, но с расширением .json. Например, если .exe файл программы находится по пути: "D:\tools\pkodev.tool.editgmcmd.x64.Release.exe", то программа будет пытаться загрузить базу данных GM-команд из файла: "D:\tools\pkodev.tool.editgmcmd.x64.Release.json". ** Параметр '--bp' Некоторые команды вносят изменения в целевой .exe файл. С целью предотвращения порчи данных, программа может сделать резервную копию целевого .exe файла. Данный параметр необязателен и при его отсутствии принимается значение по умолчанию. Параметр '--bp' принимает только следующие значения: 1) --bp "name" (значение по умолчанию) - файл резервной копии будет иметь такое же название, что и целевой .exe файл, но с расширением .backup; 2) --bp "time" - файл резервной копии будет иметь такое же название, что и целевой .exe файл, но с расширением .backup, плюс в начало названия добавляется временная метка на момент создания резервной копии; 3) --bp "off" - не создавать резервную копию целевого .exe файла. Скачать 1. Исполняемый файл (.exe) программы и файл (.json) с базой данных GM-команд; 2. Репозиторий с исходным кодом программы на языке C++ (Visual Studio 2022 Community). Если Вы столкнулись с какой-либо проблемой, багом или у Вас возникли вопросы, то пишите в данной теме.
  3. Инструмент для обрезания и склеивания карт Данный инструмент позволяет вырезать квадратные фрагменты из файлов карт клиента .map и .obj, а так же добавлять фрагменты уже к существующим картам, таким образом, объединять несколько карт в одну. С её помощью, например, можно вырезать отдельный остров или создать объединенную карту мира. В .map файлах содержится вся основная информация о картах игрового мира: 1) Области суши и воды; 2) ID текстур поверхности суши; 3) ID регионов из areaset.bin; 4) Рельеф местности, высоты; 5) Проходимые и непроходимые участки; 6) Боевые и безопасные зоны. В .obj файлах находится список всех неживых объектов, которые присутствуют на карте (здания, постройки, деревья, растения, камни и тому подобное). Сам по себе инструмент не является законченной программой – пользователь должен самостоятельно написать программу, которая создаст требуемую карту. В качестве языка программирования используется C++, а средой программирования выступает Visual Studio 2019 Community. Таким образом, для использования данного инструмента потребуются базовые знания языка C++. API Инструментарий представлен двумя классами, которые находятся в файле Map.h: 1) pkodev::MapFile – класс для работы с картами в формате .map; 2) pkodev::ObjFile – класс для работы с картами в формате .obj. Данные классы обладают одинаковым интерфейсом. Кроме того, в файле Map.h определена структура pkodev::point, которая описывает точку с координатами (x, y). Поскольку, в основном, требуется одновременное редактирование .map и .obj файлов, был определен класс pkodev::MapWrapper, который инкапсулирует внутри себя объекты pkodev::MapFile и pkodev::ObjFile, и обеспечивает их одновременное изменение. Обладает таким же интерфейсом, как и указанные классы. В процессе работы могут возникнуть ошибки. Для их обработки определены классы исключений pkodev::map_file_exception и pkodev::obj_file_exception, которые являются наследниками класса std::runtime_error. MapFile::MapFile(), ObjFile::ObjFile() Создать пустую карту с нулевым размером. MapFile(unsigned int width, unsigned int height), ObjFile:: ObjFile(unsigned int width, unsigned int height) Создать пустую карту с размерами width x height. void MapFile::load(const std::string& path), void ObjFile::load(const std::string& path) Загрузить карту из файла. Выбрасывают исключения pkodev::map_file_exception и pkodev::obj_file_exception соответственно. void MapFile::save(const std::string& path), void ObjFile:: save (const std::string& path) Сохранить карту в файл. Выбрасывают исключения pkodev::map_file_exception и pkodev::obj_file_exception соответственно. MapFile MapFile::cut(const point& start, const point& end), ObjFile ObjFile::cut(const point& start, const point& end) Вырезать квадратный фрагмент карты. start – начальные координаты (x0, y0), end – конечные (x1, y1). Выбрасывают исключения pkodev::map_file_exception и pkodev::obj_file_exception соответственно. void MapFile::glue(const point& pos, MapFile& map), void ObjFile::glue(const point& pos, ObjFile& map) Добавить на карту квадратный фрагмент. pos – координаты, по которым разместить фрагмент, map – добавляемый фрагмент карты. Выбрасывают исключения pkodev::map_file_exception и pkodev::obj_file_exception соответственно. void MapFile::del(const point& start, const point& end), void ObjFile::del(const point& start, const point& end) Удалить с карты квадратный фрагмент. start – начальные координаты (x0, y0), end – конечные (x1, y1). Фрагмент заменяется морем. Выбрасывают исключения pkodev::map_file_exception и pkodev::obj_file_exception соответственно. void MapFile::clear(), void ObjFile::clear() Удалить карту и освободить память. Класс pkodev::MapWrapper обладает аналогичным интерфейсом, но есть разница в методах load() и save(): путь до файла указывается без расширения. Примеры использования Вырезание фрагмента Напишем программу, которая вырежет "остров Удачи" из локации "Великий Синий океан". Соответственно, нам необходимо работать с файлами darkblue.map и darkblue.obj. Открываем Visual Studio 2019 Community, создаем консольное приложение C++ и подключаем файлы Map.h и Map.cpp, либо загружаем уже готовый проект из архива во вложении. Алгоритм программы будет следующий: 1) Открыть файлы darkblue.map и darkblue.obj; 2) Вырезать из них фрагмент с координатами x0 = 1430, y0 = 1675, x1 = 1780, y1 = 2025; 3) Сохранить фрагмент в файлы fortune.map и fortune.obj. Пишем код: #include <iostream> #include "Map.h" // Точка входа int main(int argc, char* argv[]) { try { // Создаем объект для одновременной работы с .map и .obj файлами pkodev::MapWrapper darkblue; // Загружаем карту из файла darkblue darkblue.load("C:\\pkodev\\Client\\map\\darkblue"); // Вырезаем остров удачи pkodev::MapWrapper fortune = darkblue.cut({ 1430, 1675 }, { 1780, 2025 }); // Сохраняем остров удачи fortune.save("C:\\pkodev\\Client\\map\\fortune"); } catch (const pkodev::map_file_exception& e) { std::cout << ".map file error: " << e.what() << std::endl; return 1; } catch (const pkodev::obj_file_exception& e) { std::cout << ".obj file error: " << e.what() << std::endl; return 2; } catch (...) { std::cout << "Unknown error!" << std::endl; return 3; } return 0 } В результате получим карту (скриншот из YAMMI): Склеивание карт Теперь попробуем склеить несколько карт в одну. Для примера создадим массив "островов Удачи", из острова, который мы получили в прошлом примере. Алгоритм программы будет следующий: 1) Создать пустую карту размером 1024 x 1024; 2) Загрузить "остров Удачи" из файлов fortune.map и fortune.obj; 3) Поместить "остров Удачи" по координатам (128, 32) на карту; 4) Поместить "остров Удачи" по координатам (512, 320) на карту; 5) Поместить "остров Удачи" по координатам (128, 576) на карту; 6) Сохранить карту в файл array.map и array.obj. Пишем код: #include <iostream> #include "Map.h" // Точка входа int main(int argc, char* argv[]) { try { // Создаем пустую карту 1024 x 1024 pkodev::MapWrapper map(1024, 1024); // Остров Удачи pkodev::MapWrapper fortune; // Загружаем остров Удачи из файла fortune.load("C:\\pkodev\\Client\\map\\fortune"); // Добавляем несколько островов Удачи на пустую карту map.glue({ 128, 32 }, fortune); map.glue({ 512, 320 }, fortune); map.glue({ 128, 576 }, fortune); // Сохраняем карту map.save("C:\\pkodev\\Client\\map\\array"); } catch (const pkodev::map_file_exception& e) { std::cout << ".map file error: " << e.what() << std::endl; return 1; } catch (const pkodev::obj_file_exception& e) { std::cout << ".obj file error: " << e.what() << std::endl; return 2; } catch (...) { std::cout << "Unknown error!" << std::endl; return 3; } return 0; } В результате получим карту (скриншот из YAMMI): Скачать инструмент (9 Кб)
  4. Установка CMake "CMake (от англ. cross platform make) — это кроссплатформенная система автоматизации сборки программного обеспечения из исходного кода. CMake не занимается непосредственно сборкой, a лишь генерирует файлы управления сборкой из файлов CMakeLists.txt" - Википедия Привет! В данной статье мы установим CMake под Windows. Этот полезный инструмент позволяет автоматизировать процесс сборки различных проектов. 1) Скачайте дистрибутив CMake с официального сайта. В разделе "Latest Release" (самый последний релиз) найдите таблицу "Binary distributions" (бинарные дистрибутивы) и, в зависимости от разрядности Вашей операционной системы (x86 или x64) и формата дистрибутива (архив .zip или установочный файл .msi), выберите нужную ссылку на скачивание: 2) Вы выбрали дистрибутив в формате .msi. Запустите скачанный установочный файл: 2.1) Согласитесь с лицензионным соглашением: 2.2) В окне "Install options" (настройки установки) установите радио-переключатель в положение "Add CMake to the system PATH for the current user". Это добавит программу в системный путь PATH для текущего пользователя. Опция "Add CMake to the system PATH for all users" добавит CMake в системный путь для всех пользователей компьютера. Также Вы можете попросить установщик создать иконку для запуска CMake на рабочем столе, установив флажок "Create CMake Desktop Icon": 2.3) В окне "Destination Folder" выберите путь, куда Вы хотите установить CMake. Для этого нажмите кнопку "Change" (изменить путь): 2.4) Нажмите кнопку "Install" (установить) в следующем окне, чтобы начать установку: 2.5) Дождитесь конца процесса установки программы: 2.6) CMake установлен! 3) Вы выбрали дистрибутив в формате .zip-архива. Распакуйте архив в нужное Вам место. Например, в D:\cmake Получаем следующую структуру папок: D:\cmake\bin D:\cmake\doc D:\cmake\man D:\cmake\share 3.1) Добавьте CMake в системный путь PATH. Для этого в Свойствах системы нажмите на ссылку "Дополнительные параметры системы": Появится окно "Свойства системы", нажмите на кнопку "Переменные среды": В окне "Переменные среды" выберите переменную Path и нажмите кнопку "Изменить" в нужном разделе: "Переменные среды пользователя" определяет переменные для текущего пользователя, а "Системные переменные" определяет переменные для всех пользователей компьютера. В появившемся окошке "Изменить переменную среды" нажмите на кнопку "Создать" (1), далее в новом поле ввода (2) укажите путь до папки bin из дистрибутива CMake. Для моего примера (см. п. 3): D:\cmake\bin В конце нажмите на кнопку "ОК" (3). Теперь CMake добавлен в системный путь и доступен из любого места! 4) Проверьте работоспособность CMake. Для этого запустите Командную строку (cmd.exe) и выполните следующую команду: cmake --version Вы должны увидеть текущую версию программы: C:\Users\Виктор>cmake --version cmake version 3.12.0 CMake suite maintained and supported by Kitware (kitware.com/cmake). На этом установка CMake завершена! Более детальную информацию по установке и использованию CMake Вы можете найти на официальном сайте.
×
×
  • Create New...