Jump to content

Search the Community

Showing results for tags 'Tool'.



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
  • 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 8 results

  1. [Tools] Program for editing GM commands This toolkit is intended for editing (renaming) GM commands in GameServer.exe (commands &) and GroupServer.exe (commands @@). A distinctive feature of the program is that it allows you to set new names for GM commands, both shorter and longer than the original names. For example, the &updateall command can be replaced with &upd, and the &move command with &letsmove. Usage The program is a console application and, accordingly, work with it occurs using the command line in the following form: pkodev.tool.editgmcmd <command> [command-specific parameters] First, the path to the executable .exe file of the program is specified, then the command is selected, and then its parameters are set. To be able to work with a specific target GameServer.exe or GroupServer.exe file, a GM command database file in the .json format is used. This file contains: 1) The name of the target .exe file; 2) The timestamp of its assembly (linker timestamp); 3) GM command character (for example, '&' or '@@'); 4) List of strings with GM command names and their addresses in the target .exe file. An example .json file with the GM-commands database can be found here. The toolkit currently supports (7) commands, which will be discussed next. 1. Command 'name' Display the current GM command name in the target .exe file. Parameters: --in "Path to target .exe file" --db "Path to .json file with GM commands database" (optional*) --old "Original GM command name" For example, the &updateall GM command was once renamed to the &updateall1024 GM command, then the command: pkodev.tool.editgmcmd.x64.Release name --in "GameServer.exe" --old "updateall" --db "pkodev.tool.editgmcmd.json" Will return the following result: The GM-command '&updateall' is defined as '&updateall1024'. 2. Command 'rename' Change the name of the GM command in target .exe file. Parameters: --in "Path to target .exe file" --db "Path to .json file with GM commands database" (optional*) --bp "Backup mode" (optional**) --old "Original GM command name" --new "New GM command name" Example: pkodev.tool.editgmcmd.x64.Release rename --in "GameServer.exe" --old "move" --new "letsmove" --db "pkodev.tool.editgmcmd.json" This will change the GM command &move to &letstmove. 3. Command 'reset' Reset all modified GM command names in target .exe file to the original ones. Parameters: --in "Path to target .exe file" --db "Path to .json file with GM commands database" (optional*) --bp "Backup mode" (optional**) Example: pkodev.tool.editgmcmd.x64.Release reset --in "GameServer.exe" --db "pkodev.tool.editgmcmd.json" Attention! As a result, all previously modified GM commands in the target .exe file will be replaced with the old (original) names. 4. Command 'enum' Output a list of all GM commands in target .exe file as a table to the console. Parameters: --in "Path to target .exe file" --db "Path to .json file with GM commands database" (optional*) Example: pkodev.tool.editgmcmd.x64.Release enum --in "GameServer.exe" --db "pkodev.tool.editgmcmd.json" For an approximate output result, see the image in the topic header. 5. Command 'supported' Print the list of supported target .exe files as a table to the console. Parameters: --db "Path to .json file with GM commands database" (optional*) Example: pkodev.tool.editgmcmd.x64.Release supported --db "pkodev.tool.editgmcmd.json" As a result of the command execution, a list of supported .exe files will be displayed in the console, for example: +------+------------------------------------------------+-----------------+------------------+ | # | 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. Command 'check' Check if target .exe file is supported by the program. Parameters: --in "Path to target .exe file" --db "Path to .json file with GM commands database" (optional*) Example: pkodev.tool.editgmcmd.x64.Release check --in "GameServer.exe" --db "pkodev.tool.editgmcmd.json" Result: GameServer.exe 1.38 (GAMESERVER_138) (Version: 1225867911) is supported! 7. Command 'help' Get help with the program. Parameters: No parameters Example: pkodev.tool.editgmcmd.x64.Release help Result: 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' parameter This parameter is responsible for the path to the .json file of the GM-commands database, is optional and may be absent. If the '--db' parameter is not specified, then the program automatically searches for this file in the same directory it is in and with the same name as its .exe file, but with the .json extension. For example, if the program's .exe file is located along the path: "D:\tools\pkodev.tool.editgmcmd.x64.Release.exe", then the program will try to load the GM command database from the file: "D:\tools\pkodev .tool.editgmcmd.x64.Release.json". ** '--bp' parameter Some commands make changes to the target .exe file. In order to prevent data corruption, the program can make a backup copy of the target .exe file. This parameter is optional and, if it is not present, the default value is assumed. The '--bp' parameter only accepts the following values: 1) --bp "name" (default value) - the backup file will have the same name as the target .exe file, but with the .backup extension; 2) --bp "time" - the backup file will have the same name as the target .exe file, but with the .backup extension, plus a timestamp at the time the backup was created is added to the beginning of the name; 3) --bp "off" - do not create a backup copy of the target .exe file. Downloads 1. Actual executable files of the program (.exe) and the GM commands database file (.json).; 2. Repository with the source code of the program in C++ (Visual Studio 2022 Community). If you encounter any problem, bug or have any questions, then feel free to write in this thread.
  2. Map glue and cut tool This tool allows you to cut square map sections from game client side .map and .obj files, as well as add fragments to existing maps, thus, combine several maps into one. With its help, for example, you can cut out a separate island or create a unified world map with three main continents and islands. The .map files contain all the basic information about the maps of the game world: 1) Areas of land and water; 2) ID of textures of the surface of the land; 3) IDs of regions from areaset.bin; 4) Terrain relief, heights; 5) Passable and impassable areas; 6) Combat and safe zones. The .obj files contain a list of all inanimate objects that are present on the map (buildings, structures, trees, plants, stones, etc.). The tool itself is not a complete program in the traditional sense, it is rather a set of programming codes, software development kit (SDK), that allows you to work with maps - the user have to independently write a program that will create the required map. The programming language is C++, and the programming environment is Visual Studio 2019 Community. Thus, basic knowledge of the C++ language is required to use this tool. API The toolkit is mainly represented by two classes, which are located in the Map.h file: 1) pkodev::MapFile – class for working with maps in the format .map; 2) pkodev::ObjFile – class for working with maps in the format .obj. These classes have the same interface (they have the same methods for working with maps) In addition, the pkodev::point structure is defined in the Map.h file, which describes a point with coordinates (x, y). Since, basically, you need to edit .map and .obj files at the same time, the pkodev::MapWrapper class was defined, which encapsulates the pkodev::MapFile and pkodev::ObjFile objects within itself, and ensures that they are modified at the same time. Has the same interface as these classes. In the process of working with maps, various errors may occur. To handle them, the pkodev::map_file_exception and pkodev::obj_file_exception classes are defined, which inherit from the std::runtime_error class. MapFile::MapFile(), ObjFile::ObjFile() Create an empty map with zero size. MapFile(unsigned int width, unsigned int height), ObjFile:: ObjFile(unsigned int width, unsigned int height) Create an empty map with dimensions width x height. void MapFile::load(const std::string& path), void ObjFile::load(const std::string& path) Load the map from a file. Throws pkodev::map_file_exception and pkodev::obj_file_exception, respectively. void MapFile::save(const std::string& path), void ObjFile:: save (const std::string& path) Save the map to a file. Throws pkodev::map_file_exception and pkodev: :obj_file_exception, respectively. MapFile MapFile::cut(const point& start, const point& end), ObjFile ObjFile::cut(const point& start, const point& end) Cut out a square section of the map. start - start coordinates (x0, y0), end - end coordinates (x1, y1). Throws pkodev::map_file_exception and pkodev::obj_file_exception, respectively. void MapFile::glue(const point& pos, MapFile& map), void ObjFile::glue(const point& pos, ObjFile& map) Add a square section to the map. pos - coordinates at which to place the section, map - the section to glue. Throws pkodev::map_file_exception and pkodev: :obj_file_exception, respectively. void MapFile::del(const point& start, const point& end), void ObjFile::del(const point& start, const point& end) Remove a square section from the map. start - start coordinates (x0, y0), end - end coordinates (x1, y1). The section is replaced by the sea. Throws pkodev::map_file_exception and pkodev: :obj_file_exception, respectively. void MapFile::clear(), void ObjFile::clear() Remove the map and free memory. Class pkodev::MapWrapper has a similar interface, but there is a difference in the load() and save() methods: the path to the file is specified without the extension. Examples of usage Cut a map section Let's write a program that will cut the "Isle of Fortune" out of the "Deep Blue" location. Accordingly, we need to work with the files darkblue.map and darkblue.obj. Open Visual Studio 2019 Community, create a C++ console application project and add Map.h and Map.cpp files to the project, or load a ready-made project from the attached .zip. The program algorithm will be as follows: 1) Open files darkblue.map and darkblue.obj; 2) Cut out a map section from them with coordinates x0 = 1430, y0 = 1675, x1 = 1780, y1 = 2025; 3) Save the section to the files fortune.map and fortune.obj. Write the code: #include <iostream> #include "Map.h" // Entry point int main(int argc, char* argv[]) { try { // Create an object for simultaneous work with .map and .obj files pkodev::MapWrapper darkblue; // Load a map from "darkblue.map", "darkblue.obj" files darkblue.load("C:\\pkodev\\Client\\map\\darkblue"); // Cut "Isle of Fortune" from the map pkodev::MapWrapper fortune = darkblue.cut({ 1430, 1675 }, { 1780, 2025 }); // Save "Isle of Fortune" to the "fortune.map", "fortune.obj" files 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 } As a result, we will get a map (screenshot from YAMMI): Glue several maps into the one map Now let's try to glue some maps into the one map. For example, let's create an array of "Isles of Fortune" from the island we got in the previous example. The program algorithm will be as follows: 1) Create an empty map with a size of 1024 x 1024; 2) Load "Isle of Fortune" from files fortune.map and fortune.obj; 3) Place the "Isle of Fortune" at coordinates (128, 32) on the map; 4) Place the "Isle of Fortune" at coordinates (512, 320) on the map; 5) Place the "Isle of Fortune" at coordinates (128, 576) on the map; 6) Save the map to array.map and array.obj files. Write the code: #include <iostream> #include "Map.h" // Entry point int main(int argc, char* argv[]) { try { // Create an empty map 1024 x 1024 pkodev::MapWrapper map(1024, 1024); // "Isle of Fortune" map pkodev::MapWrapper fortune; // Load the "Isle of Fortune" map from "fortune.map", "fortune.obj" files fortune.load("C:\\pkodev\\Client\\map\\fortune"); // Adding several "Isles of Fortune" to the empty map map.glue({ 128, 32 }, fortune); map.glue({ 512, 320 }, fortune); map.glue({ 128, 576 }, fortune); // Save the map 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; } As a result, we will get a map (screenshot from YAMMI): Download the tool (9 KB)
  3. Tool for compressing .map files When working with the YAMMI map editor, there may be a problem that the output .map file will be very large. For example, if you open the map darkblue.map (Deep Blue) in YAMMI and save it to disk, then the size of the map will be about 240 MB, instead of the original 46 MB! This is due to the fact that most of the darkblue map is occupied by the sea, i.e. essentially the same cells that do not differ from each other, and such cells do not need to be written to the .map file - the game client will automatically replace them with water when rendering, but YAMMI does not use this optimization and still writes "empty" cells to the output .map file. This tool solves the problem described above and allows you to significantly reduce the size of .map files on disk after they have been edited in YAMMI. To do this, the program looks for "empty" cells in the .map file and removes them from the file. Download 1) The tool (pkodev.tool.mapcompressor.exe); 2) Source code (C++). The tool is a console program, so the paths to the source and output .map files are passed through the startup parameters: > pkodev.tool.mapcompressor darkblue.map darkblue_c.map darkblue.map is the uncompressed .map file that needs to be reduced; darkblue_c.map is a compressed .map file after being processed by the program. The output of the program will be something like this: PKOdev.NET .map file compressor program Version: v1.0.0 (03/01/2022) Author: V3ct0r Input .map file: darkblue.map Output .map file: darkblue_c.map Input .map file information: * Width: 4096 * Height: 4096 * Section width: 8 * Section height: 8 * Sections number: 262144 Please wait . . . Done! * Sections compressed: 222007 * Percentage: 84.69% * Bytes freed: 213126720 As you can see from the output, the size of the .map file has been reduced by about 203 MB! Attention! At the moment, the program has not yet been properly tested, so after compression, certain errors may occur on the maps. Keep this in mind when working and keep backup copies of the original .map files.
  4. With this PHP script you can search for different items in characters bag, temporary bag and bank. Requirements: PHP 7.0+; PDO support; sqlsrv driver for PDO. How to install and use: 1) Put the script to your web server working folder, usually it named htdocs. 2) Open index.php and configure it; First of all, fill the data to connect to the MSSQL server: // MSSQL Settings $db_host = ''; $db_user = ''; $db_pass = ''; $db_name = 'GameDB'; Then enter the access key. It is needed to access the script from the web browser. // Secret key $access_key = 'E10ADC3949BA59ABBE56E057F20F883E'; Fill the list of items you need to search for: // List of items to search for // ID, Name, Icon $items = array( // new Item(Item_ID, 'Item_Name', 'Item_Icon'), 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') ); That's all! 3) Run the script in the your web browser and you will see the results of the search. http://localhost/search_items/index.php The script is based on the PHP class for working with inventory from user Matt from forum serverdev.net. Icons of items are included. Do not use on a production server for security reasons. Download
  5. V3ct0r

    Game.exe Info

    Game.exe Info With this program you can view and edit the information in the game client executable file (Game.exe), which is necessary to launch it and connect to the server: 1) Startup parameter ("startgame"); 2) Server port; 3) Game version that is sent in the login packet when connecting to the server; 4) ID of the game executable file in the PKOdev.NET mod loader system and build timestamp from the COFF header (read-only). Only Game.exe version 1.3x is supported. You can also view the build time and MD5 hash of any executable .exe file. Download
  6. PKOdev.NET Database password (.cfg) To establish a connection and work with the MSSQL server, AccountServer, GroupServer and GameServer load the server address and database user data from the corresponding configuration files (.cfg). In this case, the user's password must be encrypted in a certain way using DES and Base64 algorithms. For example, GameServer.cfg: [DB] db_ip = 127.0.0.1 db_usr = PKODev_User db_pass = SUOh8nJKCe387P/eUVMf+A== This program is developed to encrypt and decrypt database user passwords for use in .cfg files of the game server. How to use: 1) Start the program; 2) On the "Encrypt" tab, in the "Password" field, enter the desired password for encryption*. You will see encrypted password in the "Encrypted password for .cfg" field; 3) On the "Decrypt" tab, in the "Encrypted password for .cfg" field, enter encrypted password. You will see decrypted password in the "Password" field. * Note: The maximum password length is 16 characters. This limitation is caused by the size of the 32-byte buffer for reading the encrypted password from the configuration files in the server executables. Download the program (150 KB)
  7. Мини инструкция: 1) Source:Ваш диск\Пиратия\texture\character (файлы формата .bmp) 2) Destination:Место куда она будет падать\Рабочий стол (к примеру) 3) Нажимаете кнопочку "Decode" получаете картинку 4) Для уже измененной картинки выбираете ее и нажимаете "Encode" все картинка заменена - далее идете в клиент и тестите. Ccылка : "ТУТ" MD5 29272fe3f934e24b29aa04e7835925bd SHA1 d580b5920f4b6eaf61ea419579de5b5e71f482ea SHA256 551642aec7c112fe224c6b002e3e2e8a68a193af6d76627c6e33df5736afd781 Disc.Yandex Mega.nz Автор @GustavoHMA
  8. Drop Rate Calculator Credits: razvakid92 With this program you can calculate the drop rate of items from monsters. Server drop rate (MF_RAID) taken as x1. Download
×
×
  • Create New...