Jump to content

Search the Community

Showing results for tags 'client'.



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 63 results

  1. Foxseiz

    Simple Archive

    This archive might be useful for you if you're looking an old files. I'm also trying to update it whenever there's a new releases from members. Enjoy! https://mega.nz/#F!OUMUgTYb!jtCsqh7halK_O9uzWyaG0g
  2. Hello and Welcome Everyone! I am Fhandror and i bring to you my latest Plug&Play Kit, a "All You Need Kit" for PKO 2.4(2.7) offline server and client, the kit contains: All Server Files 2.4(2.7) you gonna need IGS 100% working + Xer0 Shop Manager Powerful Client 2.4(2.7) ready to go Everything is pre-configured and done, you just need to follow the video tutorials to "plug" it into your PC 2 Video Guides that shows everything you need to do, step by step, including how to add items and crystals to the IGS , in case you can't watch it from YouTube Maps and Apparels ready for implementation and some other projects too, like Admirals Cape All the Tools you gonna need, even Yammi Map Editor GM Commands Guide Both SQL Server 2012 and SQL Server Management Studio 2012 All pre-configured to a offline server, ready to go, and the link is from Media Fire, so no more you have to suffer people putting links from Megaupload, so you don't need to worry about download limits. This files are NOT mine, this Kit is meant to help everyone that passes by the troubles that i did in searching this pkodev website, almost no guides step-by-step, people just posting codes and saying "this is a guide" and leaving you to figure it all out by your own, never again my friend! BECAUSE NOW YOU HAVE THIS KIT! FOR YOU! FOR FREE! Here are the links: Download Plug'n Play Kit: https://www.mediafire.com/file/hzf2euxej0zc8s1/PKO_II_-_Full_Kit_-_Client_%26_Server_2.4_%282.7%29_-_Plug_%26_Play.rar/file YouTube Videos part 1: part 2
  3. [Mod] System of daily rewards for entering the game This mod implements a system of daily rewards for entering the game. Players need to enter the game every day in order to receive the next reward - with each new day the reward becomes more valuable. The chain resets and starts over from the first day if a player misses a day. The chain is also reset every week. The chain of rewards is configured by the administrator in a special lua function and is generated for a week forward, after which it is saved in the server database. Requirements Installed mod loading system for server and client (PKOdev.NET mod loader). Modification information Name: pkodev.mod.reward; Version: 1.0; Author: V3ct0r; Type: for client and server (Game.exe and GameServer.exe); Supported executable .exe files: GAME_13X_0, GAME_13X_1, GAME_13X_2, GAME_13X_3, GAME_13X_4, GAME_13X_5, GAMESERVER_136 and GAMESERVER_138. Installation Server: 1) In the "GameServer\mods" directory of your server, create a "pkodev.mod.reward" folder; 2) Place into the folder the mod DLL file "pkodev.mod.reward.server.13<x>.dll" for your version of GameServer.exe; 3) In the functions.lua file ("GameServer\resource\script\calculate\") write the following script: -- Daily reward system (pkodev.mod.reward) -- Transfer the list of items to the system function GetRewardArrayAdapter(role) -- Get a list of items for daily reward local arr = GetRewardArray(role) -- Transfer the list to the system return arr[1].id, arr[1].number, arr[2].id, arr[2].number, arr[3].id, arr[3].number, arr[4].id, arr[4].number, arr[5].id, arr[5].number, arr[6].id, arr[6].number, arr[7].id, arr[7].number end -- Daily reward system (pkodev.mod.reward) -- Get a list of items for daily reward function GetRewardArray(role) -- Select an item depending on character race local hairstyle_book = function(role) -- List of items -- ID: 931 Lance Trendy Hairstyle Book -- ID: 932 Carsise Trendy Hairstyle Book -- ID: 933 Phyllis Trendy Hairstyle Book -- ID: 934 Ami Trendy Hairstyle Book local items = {931, 932, 933, 934} -- Get character type ID local id = GetChaTypeID(role) -- Return item id depending on the type ID return items[id] or 0 end -- Make a list of items for daily reward local items = { -- Day 1 (Short Sword x 1 or Long Sword x 1 or Fencing Sword x 1) {id = math.random(1, 3), number = 1}, -- Day 2 (Apple x 99 or Bread x 99 or Cake x 99) {id = math.random(1847, 1849), number = 99}, -- Day 3 (Fairy Coin x 50) {id = 855, number = 50}, -- Day 4 (Random fairy ID 183 ... 193 x 1) {id = math.random(183, 193), number = 1}, -- Day 5 (Hairstyle Book x 1) {id = hairstyle_book(role), number = 1}, -- Day 6 (Fairy Ration x 10) {id = 227, number = 10}, -- Day 7 (Refining Gem x 1) {id = 885, number = 1} } -- We have to return an array of items to caller function return items end 4) In MSSQL Management Studio, execute the SQL query: USE GameDB ALTER TABLE character ADD reward VARCHAR(128) NOT NULL DEFAULT '0' WITH VALUES Client: 1) In the "mods" directory of your client create a "pkodev.mod.reward" folder; 2) Place into the folder the mod DLL file "pkodev.mod.reward.client.13x_<x>.dll" for your version of Game.exe; 3) Place the daily reward form texture files "main.png" and "buttons.tga" into the "texture\mods\pkodev.mod.reward\" directory of your client; 4) Add the code for the daily reward form into the "main.clu" script file ("scripts\lua\forms\"): ---------------------------------------------------------------------------------------------------- -- Daily login reward form ---------------------------------------------------------------------------------------------------- -- The form frmReward = UI_CreateForm( "frmReward", FALSE, 366, 158, 150, 200, TRUE, FALSE ) UI_SetFormStyle( frmReward , 0 ) UI_AddFormToTemplete( frmReward, FORM_MAIN ) UI_FormSetIsEscClose( frmReward, FALSE ) UI_SetIsDrag( frmReward, TRUE ) -- Form background frmRewardImg = UI_CreateCompent( frmReward, IMAGE_TYPE, "frmRewardImg", 366, 158, 0, 0 ) UI_LoadImage( frmRewardImg, "texture/mods/pkodev.mod.reward/main.png", NORMAL, 366, 158, 0, 0 ) -- Form title labTitle = UI_CreateCompent( frmReward, LABELEX_TYPE, "labTitle", 400, 150, 10, 7 ) UI_SetCaption( labTitle, "Daily reward!") UI_SetTextColor( labTitle, COLOR_WHITE ) -- Reward button btnGetReward = UI_CreateCompent( frmReward, BUTTON_TYPE, "btnGetReward", 67, 24, 150, 120 ) UI_LoadButtonImage( btnGetReward, "texture/mods/pkodev.mod.reward/main.png", 67, 24, 0, 158, TRUE ) -- Close button btnClose = UI_CreateCompent( frmReward, BUTTON_TYPE, "btnClose", 21, 21, 343, 2 ) UI_LoadButtonImage( btnClose, "texture/mods/pkodev.mod.reward/buttons.tga", 21, 21, 270, 0, TRUE ) UI_SetButtonModalResult( btnClose, BUTTON_CLOSE ) -- Item slots cmdItemSlot0 = UI_CreateCompent( frmReward, COMMAND_ONE_TYPE, "cmdItemSlot0", 32, 32, 20, 73 ) UI_SetIsDrag( cmdItemSlot0, FALSE ) cmdItemSlot1 = UI_CreateCompent( frmReward, COMMAND_ONE_TYPE, "cmdItemSlot1", 32, 32, 69, 73 ) UI_SetIsDrag( cmdItemSlot1, FALSE ) cmdItemSlot2 = UI_CreateCompent( frmReward, COMMAND_ONE_TYPE, "cmdItemSlot2", 32, 32, 118, 73 ) UI_SetIsDrag( cmdItemSlot2, FALSE ) cmdItemSlot3 = UI_CreateCompent( frmReward, COMMAND_ONE_TYPE, "cmdItemSlot3", 32, 32, 167, 73 ) UI_SetIsDrag( cmdItemSlot3, FALSE ) cmdItemSlot4 = UI_CreateCompent( frmReward, COMMAND_ONE_TYPE, "cmdItemSlot4", 32, 32, 216, 73 ) UI_SetIsDrag( cmdItemSlot4, FALSE ) cmdItemSlot5 = UI_CreateCompent( frmReward, COMMAND_ONE_TYPE, "cmdItemSlot5", 32, 32, 265, 73 ) UI_SetIsDrag( cmdItemSlot5, FALSE ) cmdItemSlot6 = UI_CreateCompent( frmReward, COMMAND_ONE_TYPE, "cmdItemSlot6", 32, 32, 314, 73 ) UI_SetIsDrag( cmdItemSlot6, FALSE ) ---------------------------------------------------------------------------------------------------- Mod customization 1) In the GetRewardArray(role) function, write the code that will generate the chain of rewards for the character role for the next seven days. The function must return a table of 7 elements with fields id and number, where id is the ID of the item that is issued as a reward, and number is the number of items in the reward. Each element corresponds to its own day (1st element is the first day, 2nd element is the second day, and so on). Example: function GetRewardArray(role) local items = { -- Day 1: Apple x 20 {id = 1847, number = 20}, -- Day 2: Bread x 40 {id = 1848, number = 40}, -- Day 3: Cake x 60 {id = 1849, number = 60}, -- Day 4: Fairy coin x 55 {id = 855, number = 55}, -- Day 5: Fairy ration x 15 {id = 227, number = 15}, -- Day 6: Bread x 99 {id = 1848, number = 99}, -- Day 7: Cake x 99 {id = 1849, number = 99} } return items end Item IDs and their number can be generated randomly or depending on the character's race, profession, etc 2) By default, the reward period is 24 hours. You can change this value in the mod server-side source code (pkodev.mod.reward.server project, structure.h file), then compile the project: // Reward interval in seconds static const unsigned int interval{ 24 * 60 * 60 }; // 24 hours 3) No client side configuration required. Old style GUI (Thanks to @Masuka00!) main.clu: -- Close button btnClose = UI_CreateCompent( frmReward, BUTTON_TYPE, "btnClose", 14, 14, 342, 4 ) UI_LoadButtonImage( btnClose, "texture/mods/pkodev.mod.reward/main.png", 14, 14, 271, 174, TRUE ) UI_SetButtonModalResult( btnClose, BUTTON_CLOSE ) Download Download 1) Binary release (.dll); 2) The source code of the mod for Visual Studio 2019 Community (C++). If you encounter any problem, bug or have any questions, then feel free to write in this thread.
  4. [Mod] Cleaning up chats The mod allows GM and HD to delete all messages in players chats (local, world, trade, party, guild, PM, camp). To do this, on the server side for GameServer, the ClearChat(role) lua function is implemented, into which the descriptor of the character controlled by the administrator is passed. Thus, it is possible, for example, to implement a GM command that will clear chats (if there are HandleChat() and GetGmLv() functions present in GameServer.exe). function HandleChat(role, msg) if (msg == "&clearchat") then if (GetGmLv(role) == 99) then ClearChat(role) else SystemNotice(role, "Not enough access!") end return 0 end return 1 end The disadvantage of the mod is that it deletes all chats at once without the ability to specify specific channels. That is, along with the general channels (world, trade, local), the channels with messages to the guild, party, camp and PM will also be cleared. It should also be remembered that the player can remove the .dll mod library from the client and chats will no longer be cleared on command from the server. Requirements Installed mod loading system for server and client (PKOdev.NET mod loader). Modification information Name: pkodev.mod.clearchat; Version: 1.0; Author: V3ct0r; Type: for client (Game.exe); Supported executable .exe files: GAME_13X_0, GAME_13X_1, GAME_13X_2, GAME_13X_3, GAME_13X_4, GAME_13X_5. Installation Client: Place the mod DLL file "pkodev.mod.clearchat.client.13x_<ID>.dll" for your version of Game.exe into the "mods" folder of the game client. Server: 1) Create a file named "pkodev.mod.clearchat.lua" in the following server directory: \GameServer\resource\script\calculate\mods 2) Write the following code into it: -- Print a log print("Loading pkodev.mod.clearchat.lua") -- Clear all chats function ClearChat(role) -- Get moderator's name local name = GetChaDefaultName(TurnToCha(role)) -- Send system command Notice("{system:clearchat}") -- Send message to all players Notice(string.format("Chats have been cleared by moderator [%s]!", name)) end 3) Include the "pkodev.mod.clearchat.lua" file at the beginning of the SkillEffect.lua file (\GameServer\resource\script\calculate) : dofile(GetResPath("script\\calculate\\mods\\pkodev.mod.clearchat.lua")) 4) Use the ClearChat() function to clear chats as you wish. Download 1) Binary release (.dll); 2) The source code of the mod for Visual Studio 2019 Community (C++). If you encounter any problem, bug or have any questions, then feel free to write in this thread.
  5. [Mod] 60 frames per second (60 FPS) This mod increases the graphics rendering speed of the game client from 30 to 60 frames per second. The mod has several problems: 1) When movement speed is too quick, the player's character can be thrown back; 2) When rmovement speed is too quick, the map, NPCs, monsters and players may not have time to load; 3) Animations of characters and objects are played too fast. Requirements Installed mod loading system for server and client (PKOdev.NET mod loader). Modification information Name: pkodev.mod.60fps; Version: 1.0; Author: V3ct0r, BotPRO; Type: for client (Game.exe); Supported executable .exe files: GAME_13X_0, GAME_13X_1, GAME_13X_2, GAME_13X_3, GAME_13X_4, GAME_13X_5. Installation 1) In the "mods" directory of the game client, create a folder named "pkodev.mod.60fps"; 2) Place the DLL file of the mod "pkodev.mod.60fps.client.13x_<ID>.dll" for your version of Game.exe into the folder "mods\pkodev.mod.60fps" of the game client; 3) Place the mod DLL file "pkodev.mod.60fps.impl_<ID>.dll" for your of version Game.exe into the folder "mods\pkodev.mod.60fps\impl" of the game client. Download 1) Binary release (.dll); 2) The source code of the mod for Visual Studio 2019 Community (C++). If you encounter any problem, bug or have any questions, then feel free to write in this thread.
  6. Program for fixing a bug with Swings The essence of the bug: After installing models of swings in the full-screen mode of the game, models of objects, characters, NPCs and monsters disappear. sceneeffectinfo.txt 4060 01020029.par ????(?) ?? 1 0 3,-1,-1,-1,-1,-1,-1,-1 -1 0 0.0 0.0 -1.0 4061 01020029(2).par ????(?) ?? 1 0 3,-1,-1,-1,-1,-1,-1,-1 -1 0 0.0 0.0 -1.0 4062 01020029(3).par ????(?) ?? 1 0 24,-1,-1,-1,-1,-1,-1,-1 -1 0 0.0 0.0 -1.0 4063 01020029(4).par ????(?) ?? 1 0 3,-1,-1,-1,-1,-1,-1,-1 -1 0 0.0 0.0 -1.0 4064 01020031.par ????(?) ?? 1 0 3,-1,-1,-1,-1,-1,-1,-1 -1 0 0.0 0.0 -1.0 4065 01020031(2).par ????(?) ?? 1 0 3,-1,-1,-1,-1,-1,-1,-1 -1 0 0.0 0.0 -1.0 4066 01020031(3).par ????(?) ?? 1 0 24,-1,-1,-1,-1,-1,-1,-1 -1 0 0.0 0.0 -1.0 4067 01020031(4).par ????(?) ?? 1 0 3,-1,-1,-1,-1,-1,-1,-1 -1 0 0.0 0.0 -1.0 4068 01020037.par HelloKitty??( ?? 1 0 3,-1,-1,-1,-1,-1,-1,-1 -1 0 0.0 0.0 -1.0 4069 01020037(2).par HelloKitty??( ?? 1 0 3,-1,-1,-1,-1,-1,-1,-1 -1 0 0.0 0.0 -1.0 4070 01020037(3).par HelloKitty??( ?? 1 0 24,-1,-1,-1,-1,-1,-1,-1 -1 0 0.0 0.0 -1.0 4071 01020037(4).par HelloKitty??( ?? 1 0 3,-1,-1,-1,-1,-1,-1,-1 -1 0 0.0 0.0 -1.0 4072 01020039.par ?????(?) ?? 1 0 3,-1,-1,-1,-1,-1,-1,-1 -1 0 0.0 0.0 -1.0 4073 01020039(2).par ?????(?) ?? 1 0 3,-1,-1,-1,-1,-1,-1,-1 -1 0 0.0 0.0 -1.0 4074 01020039(3).par ?????(?) ?? 1 0 24,-1,-1,-1,-1,-1,-1,-1 -1 0 0.0 0.0 -1.0 4075 01020039(4).par ?????(?) ?? 1 0 3,-1,-1,-1,-1,-1,-1,-1 -1 0 0.0 0.0 -1.0 4076 01020041.par ???????( ?? 1 0 3,-1,-1,-1,-1,-1,-1,-1 -1 0 0.0 0.0 -1.0 4077 01020041(2).par ???????( ?? 1 0 3,-1,-1,-1,-1,-1,-1,-1 -1 0 0.0 0.0 -1.0 4078 01020041(3).par ???????( ?? 1 0 24,-1,-1,-1,-1,-1,-1,-1 -1 0 0.0 0.0 -1.0 4079 01020041(4).par ???????( ?? 1 0 3,-1,-1,-1,-1,-1,-1,-1 -1 0 0.0 0.0 -1.0 4080 01020042.par ?????(?) ?? 1 0 3,-1,-1,-1,-1,-1,-1,-1 -1 0 0.0 0.0 -1.0 4081 01020042(2).par ?????(?) ?? 1 0 3,-1,-1,-1,-1,-1,-1,-1 -1 0 0.0 0.0 -1.0 4082 01020042(3).par ?????(?) ?? 1 0 24,-1,-1,-1,-1,-1,-1,-1 -1 0 0.0 0.0 -1.0 4083 01020042(4).par ?????(?) ?? 1 0 3,-1,-1,-1,-1,-1,-1,-1 -1 0 0.0 0.0 -1.0 4084 01020043.par ????(?) ?? 1 0 3,-1,-1,-1,-1,-1,-1,-1 -1 0 0.0 0.0 -1.0 4085 01020043(2).par ????(?) ?? 1 0 3,-1,-1,-1,-1,-1,-1,-1 -1 0 0.0 0.0 -1.0 4086 01020043(3).par ????(?) ?? 1 0 24,-1,-1,-1,-1,-1,-1,-1 -1 0 0.0 0.0 -1.0 4087 01020043(4).par ????(?) ?? 1 0 3,-1,-1,-1,-1,-1,-1,-1 -1 0 0.0 0.0 -1.0 As a result, we have the following: Solution method: Delete unused models from the Client\model\effect folder. This program automatically looks for unused models and removes them from the game client, after which the client starts working as expected: How to use: Place the program in the root folder of the game client and start. Attention! The program does not guarantee 100% fix of this bug, it is also possible the appearance of new bugs. Make backup copies. Use at your own risk! Download (230 KB) Update 06/06/2018 The Rebirth Wings models disappear аfter using this program: To fix this you need restore the followings files in Client\model\effect folder: 1chi.lgo 1chig2.lgo 1chim1.lgo 1chim2.lgo 2chi.lgo 2chig2.lgo 2chim1.lgo 2chim2.lgo 3chi.lgo 3chig2.lgo 3chim1.lgo 3chim2.lgo You can download them here. Just copy files from .zip to your Client\model\effect folder. Thanks to @Farido!
  7. Mod loading system for server and client (PKOdev.NET mod loader) The Problem Many developers and administrators of Tales of Pirates servers in our community know that the functionality of the client and server can be changed by mods (addons, plugins, patches). Some examples of mods: 1) The fix of SQL Injections in AccountServer.exe and GroupServer.exe; 2) Increasing the limits for .txt / .bin files (ItemInfo, CharacterInfo, SkillInfo, etc.); 3) Local chat message handling using the lua function HandleChat(); 4) Character transformation using the lua function TransformCha(); 5) Character effects panel; 6) Displaying the levels of HP and SP under characters and monsters. Thus, with the help of mods, you can fix critical bugs and vulnerabilities, change settings, add new functionality and features. Initially, the appearance of mods was caused by the lack of open access to the source codes of the client and the server: the developers had no choice but to edit executable .exe files, developing and applying reverse engineering skills. After the publication of the source codes, the popularity of mods still remains at a high level. This is due to a few reasons: 1) Low quality of the received source codes, lack of experience in their use. To use them, the administrator needs to have an extensive knowledge of the C++ programming language, understand the client-server architecture, and understand how the server and the client work. In addition, the source codes require a long study and research for bugs and vulnerabilities, including the testing process; 2) The existing official builds of the server and client fully satisfy the requirements of most administrators and players, in addition, their performance and reliability have been confirmed by years of use. Many programs, scripts and mods were written for them, which may be incompatible with the server and client executable files compiled from the source codes; 3) The source code researching allows you to better understand the structure of the server and client executables (GameServer.exe, Game.exe). The knowledge gained makes it possible to create mods of increased complexity. When implementing their projects, administrators and developers can go in two ways: use the old, official builds of the server and client, and change their functionality using mods, or go towards the development of source codes. As it should already be clear, this topic supports the first way. At the moment, mod development is associated with some problems: 1) Our community lacks a clear standard and culture for writing mods. Someone injects the code directly into the executable file ("patching"), others prefer to write DLL. Some mods can conflict with each other, which leads to errors and subtle bugs; 2) Installing mods involves certain difficulties: for example, how to transfer a mod from one GameServer.exe to another one? Each time you need to do editing (patching) .exe file, and for this you need to have special knowledge and skills. If the mods are made in the form of DLL libraries, then each mod must be manually added into the import table of the executable file. All this is inconvenient, time-consuming and creates the possibility of errors and bugs during the installation process; 3) There are many versions of GameServer.exe and Game.exe (the rest of the server .exe's are not taken into account), which have a different binary structure. In other words, the developed mod for GameServer.exe version 1.36 will not work with GameServer.exe version 1.38 - you need to develop the mod for a specific .exe file. As a result, there is confusion about the versions of the executable files. A shining example is the addresses of the limits for .txt/.bin tables, I think many have noticed that they are different for different .exe. Based on the above, it was decided to create a system that would solve the current state of affairs in regards to mods and simplify their usage. The Mod Loader The mod loader performs several tasks: 1) Determining the type and version of the executable file (.exe) to be modified; 2) Searching for mods, determining their version, attaching to the process of the executable file; 3) Unification of the process of creating, installing and uninstalling mods. It is a DLL library that attaches one-time to the executable file of the server or client. Mods are also DLL libraries that are placed in a specific directory and are automatically launched by the loader when the server or client executable file starts. Before running the executable file, control is transferred to the loader. The loader determines the type and version of the .exe file to which it is attached and starts the process of searching for DLL libraries in the "mods" directory from the server or client root folder. The DLLs found are dynamically attached to the server or client process after which the loader requests the library information regarding the mod name, type, version of the executable target file, name and the author of the mod. If the type and version of the .exe file with attached loader matches the type and version of the .exe file obtained from the mod's library, then the loader gives the mod a command to start. Furthermore, changes to the code of the process of the executable file, thereby carrying out the modification. Before terminating the server or client process, control is again gained to the loader, which in turn detaches all mods from the process. The current version of the mod loader can work with the official 1.3x versions of GameServer.exe (server) and Game.exe (client). The type of executable file (GameServer.exe or Game.exe) and its version is determined by the build timestamp (linker timestamp), which is written in the COFF header of each executable. Supported GameServer.exe and Game.exe ---------------------+----+----------------+-------------- Name | ID | Designation | Time stamp ---------------------+----+----------------+-------------- GameServer.exe 1.36 | 1 | GAMESERVER_136 | 1204708785 ---------------------+----+----------------+-------------- GameServer.exe 1.38 | 2 | GAMESERVER_138 | 1204708785 ---------------------+----+----------------+-------------- Game.exe | 3 | GAME_13X_0 | 1222073761 ---------------------+----+----------------+-------------- Game.exe | 4 | GAME_13X_1 | 1243412597 ---------------------+----+----------------+-------------- Game.exe | 5 | GAME_13X_2 | 1252912474 ---------------------+----+----------------+-------------- Game.exe | 6 | GAME_13X_3 | 1244511158 ---------------------+----+----------------+-------------- Game.exe | 7 | GAME_13X_4 | 1585009030 ---------------------+----+----------------+-------------- Game.exe | 8 | GAME_13X_5 | 1207214236 ---------------------+----+----------------+-------------- GateServer.exe 1.38 | 101| GATESERVER_138 | 1224838480 ---------------------+----+----------------+-------------- Installing the Mod Loader 1) In the root directory of the executable file, create a folder called "mods" *. This folder will store DLL libraries of mods; 2) Open the executable file in CFF Explorer. Go to the "Import adder" tab (1); 3) Click the "Add" button (2) and select the pkodev.mod.loader.dll file (see the attachments at the end of this post); 4) In the "Exported functions" list, select "ExportedFunction" (3); 5) Click the "Import By Name" button (4); 6) Uncheck the "Rebuild OFTs" checkbox (5); 7) Click the "Rebuild Import Table" button (6); 8 ) Save the file (7). 9) Run the executable file. You should see the following message in the console window: [pkodev.mod.loader] ----------------------------------------------- [pkodev.mod.loader] PKOdev.NET mod loader ver. 1.0 by V3ct0r [pkodev.mod.loader] ----------------------------------------------- If the executable file does not have a console window, for example, Game.exe, then run it as follows: system\Game.exe startgame > output.txt The console output will now be redirected to the text file output.txt. * Note: for Game.exe, the mods folder must be in the client's root directory, not in the "system" folder. Installing mods To install a mod, just place its DLL library in the "mods" folder. For convenience, each mod can be placed in a separate folder. An example of a folder structure for GameServer.exe: GameServer | -> Mods | -> .disabled | -> .priority | -> pkodev.mod.example1.server.138.dll | -> pkodev.mod.example2 | -> pkodev.mod.example2.server.138.dll | -> pkodev.mod.example3 | -> pkodev.mod.example3.server.138.dll After launching the executable file, you should see the new mod in the list of loaded mods: Uninstalling mods To uninstall a mod, you need to delete its DLL library from the "mods" folder. Temporary disabling of mods To disable the loading of certain mods, create a ".disabled" file in the root directory with mods ("mods" folder) and write the names of the mods that you want to temporarily disable into it from a new line. For example: // File: mods\.disabled // Write here the names of mods that do not need to be loaded pkodev.mod.fullmap pkodev.mod.tablelimit Thus, mods "pkodev.mod.fullmap" and "pkodev.mod.tablelimit" will be ignored by the loader. Mod loading priority The mod loader allows you to load certain mods in the specified order. To do this, create a ".priority" file in the root directory with mods ("mods" folder) and write down the names of mods in it in descending order of priority. Mods not listed in this file will be loaded after mods with priority, in random order. For example: // File mods\.priority // Write down mods loading priority in descending order here pkodev.mod.power pkodev.mod.tablelimit pkodev.mod.fullmap Mods will be loaded in the following order: 1. pkodev.mod.power; 2. pkodev.mod.tablelimit; 3. pkodev.mod.fullmap; 4. Next - all other mods found in the "mods" folder in random order. Creating a mod In order for a mod to be loaded by the mod loader, it must meet the following requirements: 1) The name of the DLL library of the mod should be like: pkodev.mod.<mod name>.<client or server>.<.exe designation >.dll Examples: pkodev.mod.tablelimit.client.13x_0.dll pkodev.mod.mobspawn.server.138.dll 2) DLL library of the mod should export 3 functions: __declspec(dllexport) void __cdecl GetModInformation(mod_info& info) Fill in the structure of type mod_info. This structure contains basic information about the mod: its name, version, author name, executable file ID for which the mod is intended. // Mod information structure struct mod_info { // Mod name char name[128]; // Mod version char version[64]; // Author’s name char author[64]; // Type and version of the target .exe file (see the table) unsigned int exe_version; }; __declspec(dllexport) void __cdecl Start(const char* path) Enable the mod and modify the process of the executable file. The path variable contains the path to the root directory of the mod. In this function, the mod must perform its initialization, load the necessary settings and modify the process of the executable file. __declspec(dllexport) void __cdecl Stop() Disable the mod. In this function, the mod must save its settings, roll back the process modification (optional) and free resources. 3) The type and version of the executable file specified in the DLL library of the mod (structure modinfo, field exe_version) must match the type and version of the executable file for which it is intended. If the loader has defined the type and version of the executable file as GameServer.exe 1.38 (GAMESERVER_138) with ID 2, then the mod's DLL library should write the value 2 in the exe_version field, otherwise the mod will be determined as unsuitable. Mod development example Any programming language can be used to develop the mod which supports creating DLLs. I will use the C++ as programming language and the Visual Studio 2019 Community as development environment. As an example, let's create a mod for GameServer.exe version 1.38 that will display the "Hello world!" message in its window. 1) Let's define the name of the mod, let it be: pkodev.mod.helloworld Then the name of the DLL library of the mod will be: pkodev.mod.helloworld.server.138.dll 2) Create a Dynamic-Link Library (DLL) project; 3) Add the loader.h file to the project (see the attachments at the end of this post); 4) Implement the function GetModInformation(): void GetModInformation(mod_info& info) { strcpy_s(info.name, "pkodev.mod.helloworld"); strcpy_s(info.version, "1.0"); strcpy_s(info.author, "V3ct0r"); info.exe_version = GAMESERVER_138; } 5) Implement the function Start() void Start(const char* path) { std::cout << "Hello world!" << std::endl; std::cout << "path = " << path << std::endl << std::endl; } 6) Implement the function Stop() void Stop() { } 7) Compile the project. As a result, we’ll get the file pkodev.mod.helloworld.server.138.dll; 8 ) Install and test the mod. In the GameServer.exe window, we should see the message "Hello world!" and the path to the root directory of the mod. The sample mod project can be found in the attachments. Download 1) The mod loader; 2) Source code of the mod loader (C++); 3) Interface for creating mods (file loader.h); 4) The project of the sample mod "Hello world!" for Visual Studio 2019 Community (C++); 5) Samples of client and server executables from the table (7.3 MB); 6) PKOdev .NET mod loader project template for Visual Studio 2019 Community (C++). Available mods 1) Connecting Game.exe to Stall Server ("offline" stalls server connector); 2) Fixing instant respawn of killed monsters after GameServer restart; 3) Editing the limits of .txt tables; 4) Player rating system; 5) System of daily rewards for entering the game; 6) Automatically connect to the server / enter the game (Client modification that allows you to automatically connect to the server); 7) Displaying coordinates under the NPC; 8 ) Displaying additional parameters on the form with character characteristics (frmState); 9) Displaying the cooldown of skills; 10) Displaying the player's character level next to its name; 11) Antibot; 12) Displaying the name of the item in the apparel; 13) Displaying the level of items on their icons ("smart icons"); 14) Change the size of the monsters; 15) Server time; 16) Social buttons (Discord, Youtube, Twitch and etc); 17) Medals (necklaces) with titles; 18) Displaying servers response time ("ping") on the server selection form; 19) Contract system; 20) Disabling error messages when compiling .txt tables (table_bin); 21) Colored GM messages (GM notice); 22) Fixing the resetting character professions when reconnecting to the server; 23) Cleaning up chats; 24) Disabling password verification when entering into the in-game shop (IGS); 25) 60 frames per second (60 FPS); 26) Flying effect for wings; 27) Full area map for the region; 28) Highlight friends and enemies with color. (updated on 02/18/2022) If you have any questions or have problems, then feel free to write in this thread.
  8. [Mod] Colored GM messages (GM notice) This mod allows you to send colored GM messages to players (see screenshot above) using the input field in the game client (ALT + P), or using the GMNotice() function. To make the text of the message colored, you should write the following code at the beginning of the message: {color:color}Message The message color is specified in RGB format as a hexadecimal number (FFRRGGBB). The following example will send the GM message "Hello PKOdev.NET" to the players in orange: {color:FFFF8000}Hello PKOdev.NET! You can also use the GMNotice() function: GMNotice("{color:FFFF8000}Hello PKOdev.NET!") Requirements Installed mod loading system for server and client (PKOdev.NET mod loader). Modification information Name: pkodev.mod.colorgmnotice; Version: 1.0; Author: V3ct0r; Type: for client (Game.exe); Supported executable .exe files: GAME_13X_0, GAME_13X_1, GAME_13X_2, GAME_13X_3, GAME_13X_4, GAME_13X_5. Installation Place the mod DLL file "pkodev.mod.colorgmnotice.client.13x_<ID>.dll" for your version of Game.exe into the "mods" folder of the game client. Download 1) Binary release; 2) The source code of the mod for Visual Studio 2019 Community (C++). If you encounter any problem, bug or have any questions, then feel free to write in this thread.
  9. [Mod] Server time The mod adds a text label with a clock to the game - the current server time. The server time is taken from the packet ID: 940 that the server sends to the client upon connection, for example: [01-17 10:44:47:879] The clock label is bound to the minimap form "frmMinimap" from the GUI script file "\scripts\lua\forms\minimap.clu". Requirements Installed mod loading system for server and client (PKOdev.NET mod loader). Modification information Name: pkodev.mod.clock; Version: 1.0; Author: V3ct0r; Type: for client (Game.exe); Supported executable .exe files: GAME_13X_0, GAME_13X_1, GAME_13X_2, GAME_13X_3, GAME_13X_4 and GAME_13X_5. Installation 1) In the "mods" directory of your client, create a "pkodev.mod.clock" folder; 2) Place into it the mod DLL file "pkodev.mod.clock.client.13x_<ID>.dll" for your version of Game.exe; 3) Place into it the mod settings file "pkodev.mod.clock.cfg" and write to the file the desired server time output format in accordance with the documentation for the strftime() function. For example, the format: Server time: %H:%M:%S %d.%m.%y May give the following output: Server time: 10:51:20 17.01.2022 4) In the GUI script file "\scripts\lua\forms\minimap.clu" add the code for the "labClock" text label, which will be responsible for displaying the server time: ------------------------------------------------------------------------------------------ -- Clock label ------------------------------------------------------------------------------------------ labClock = UI_CreateCompent(frmMinimap, LABELEX_TYPE, "labClock", 20, 15, 20, 220) UI_SetCaption(labClock, "Clock") UI_SetTextColor(labClock, COLOR_WHITE) UI_SetLabelExFont(labClock, DEFAULT_FONT, TRUE, COLOR_BLACK) ------------------------------------------------------------------------------------------ Download 1) Binary release (.dll); 2) The source code of the mod for Visual Studio 2019 Community (C++). If you encounter any problem, bug or have any questions, then feel free to write in this thread.
  10. Pirate Royalty - Unreal Engine 5 Project Goal: to bring over the functionality, gameplay mechanics, and story from Tales of Pirates old game client to Unreal Engine and new server infrastructure with improved game experience & modern technology. This topic will help you see the progress and invite you to share some of your feedback/ideas on how to make the project better. Для русско говоряших - пишите на русском, я вас пойму. Не хотел создавать две темы на двух разных языках. Join Discord channel to get most up to date information and images https://discord.gg/5MPvYeg3T6
  11. [Mod] Medals (necklaces) with titles The modification allows you to create medals (necklaces) with different titles that appear in brackets before the name of the character (see screenshot). Also, these necklaces allow you to change the color of the names of the characters. The text, color of the title and color of the character's name are specified in the file ItemInfo.txt for items with type 25 (necklace). 1) The text of the title is specified in the description of the item The maximum title length is 15 symbols; 2) The color of the title is specified in the 5th field instead of model for Lance. Color has format FFRRGGBB; 3) The color of the name is specified in the 6th field instead of model for Carsise. Color has format FFRRGGBB; Some examples of medals with titles: XXXX Medal 1 (Red Admin) l0005 10130005 FFFF0000 0 0 0 0 0 25 0 0 0 0 0 1 1 1 1 1 1 32 -1 1 -1 0 0 5 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0 0,1000 10000,10000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Admin XXXX Medal 2 (Green maindev) l0005 10130005 FF00FF00 0 0 0 0 0 25 0 0 0 0 0 1 1 1 1 1 1 32 -1 1 -1 0 0 5 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0 0,1000 10000,10000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 maindev XXXX Medal 3 (Blue PkoDEV) l0005 10130005 FF0000FF 0 0 0 0 0 25 0 0 0 0 0 1 1 1 1 1 1 32 -1 1 -1 0 0 5 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0 0,1000 10000,10000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 PkoDEV Example of medal with title and colored character name: XXXX Medal 2 l0005 10130005 FF00FF00 FFFF8000 0 0 0 0 25 0 0 0 0 0 1 1 1 1 1 1 32 -1 1 -1 0 0 5 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0 0,1000 10000,10000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 PKOdev.NET Requirements Installed mod loading system for server and client (PKOdev.NET mod loader). Modification information Name: pkodev.mod.title; Version: 1.0; Author: V3ct0r; Type: for client (Game.exe); Supported executable .exe files: GAME_13X_0, GAME_13X_1, GAME_13X_2, GAME_13X_3, GAME_13X_4, GAME_13X_5. Installation 1) In the "mods" directory of your client, create a "pkodev.mod.title" folder; 2) Place into it the mod DLL file "pkodev.mod.title.client.13x_<ID>.dll" for your version of Game.exe; 3) Add new medals (necklaces) with titles to the file ItemInfo.txt of the server and client according to the example from the topic header. Compile ItemInfo.txt for the client. Download 1) Binary release (.dll); 2) The source code of the mod for Visual Studio 2019 Community (C++). If you encounter any problem, bug or have any questions, then feel free to write in this thread.
  12. [Mod] Displaying the level of items on their icons ("smart icons") Some information appears on the icons of specific items: 1) For items with inserted gems, the level of fusion is displayed; 2) For gems, their level is displayed; 3) For fairies, their level is displayed; 4) For apparels, the inscription "App" is displayed. Requirements Installed mod loading system for server and client (PKOdev.NET mod loader). Modification information Name: pkodev.mod.itemlv Version: 1.0; Author: V3ct0r; Type: for client (Game.exe); Supported executable .exe files: GAME_13X_0, GAME_13X_1, GAME_13X_2, GAME_13X_3, GAME_13X_4 and GAME_13X_5. Installation Place the mod DLL file "pkodev.mod.itemlv.client.13x_<ID>.dll" for your version of Game.exe into the "mods" folder of the game client. Download 1) Binary release (.dll); 2) The source code of the mod for Visual Studio 2019 Community (C++). If you encounter any problem, bug or have any questions, then feel free to write in this thread.
  13. [Mod] Displaying the name of the item in the apparel In the description of the apparel item, the name of the equipment that is fused in it appears. Requirements Installed mod loading system for server and client (PKOdev.NET mod loader). Modification information Name: pkodev.mod.apparel Version: 1.0; Author: V3ct0r; Type: for client (Game.exe); Supported executable .exe files: GAME_13X_0, GAME_13X_1, GAME_13X_2, GAME_13X_3, GAME_13X_4 and GAME_13X_5. Installation Place the mod DLL file "pkodev.mod.apparel.client.13x_<ID>.dll" for your version of Game.exe into the "mods" folder of the game client. Download 1) Binary release (.dll); 2) The source code of the mod for Visual Studio 2019 Community C++). If you encounter any problem, bug or have any questions, then feel free to write in this thread.
  14. Client .txt tables compiling 1) Make compile.bat batch file in client root folder: start system\game.exe startgame table_bin 2) Put .txt tables in table folder (Client\scripts\table); 3) Run compile.bat. You might notice many errors incoming, that's because you haven't placed some .txt files into table folder. Just ignore the errors. 4) If .txt files have no errors and they are correct, then new .bin files will appear in your table folder.
  15. Hi guys, thought I would give a guide on how to create your own shortcut instead of using the Start Game.bat file You will need: Advanced BAT to EXE converter (Free) - https://www.battoexeconverter.com/ Your own 32x32 icon file (ICO type only) Start Advanced Bat to EXE Go File-Open and go Select the Start Game.bat file in your client folder. After go File-Build Exe Fill in Name, Set Icon image and make sure to tick START INVISIBLE (this hides the CMD window popup for the start game BAT file) Click Build EXE and then save it in your game client folder DONE - Now you can even right click your new EXE and send to desktop as shortcut (much nicer then the BAT file) If you need any help please let me know. happy to assist.
  16. *Good afternoon everyone in this group* I introduce myself, I am Tera, a character who started in the world of such of pirates approximately more than 10 years ago, for a long time I was a player on different servers, both official top2 and private, everything was better when there were few servers , but with the passage of time files were released and anyone believed that by editing an NPC or the Iteminfo you were already a developer, with the passage of time I became interested in creating a server and little by little I was looking for information and trying to learn and with the collaboration of serverdev and pkodev we improved and learned a lot, I launched some servers but my knowledge of protection was not very good so they hacked me a few times, so I started working from local in my spare time doing it for fun, everything It was going well when I was bored I went to edit, change, create, until one day I made the mistake of trusting someone who offered me to host my files approximately 3 months by then I did not have a 100% server but I decided to put my files, at first I was suspicious but I already had a lot of editing and wanted to try things from a host, well the truth was my mistake and this person copies my files and now many people they have that file although it is incomplete because I always tried to add more things that is why I am retiring after many years and leaving the public files for anyone who wants to use them since the people who copied it have 0 knowledge and will only seek to get money from it by opening 10 servers close them a month and scam, that's why I tell them not to trust anyone because seeing that a person scams with files that cost you hours of sleep and research is not pretty, the files are not yet 100% but they are more up-to-date and the client the same, the person who copied the files is a certain JaloCruz called Manuel Atencio, do not trust him since he has opened thousands of servers and all of them are bankrupt, the files in itself they are not perfect if you are interested you can use them as you wish. thanks for all PKODEV team Server Files : https://www.mediafire.com/file/ovx65dnncac8mi4/TERAPKO+2.0.rar/file Client Files: https://www.mediafire.com/file/hctgov46eculj51/The+New+World+Online+Client.rar/file Here some images: https://imgur.com/gallery/6wZ7wyt
  17. 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
  18. [Mod] Flying effect for wings This modification for the game client allows you to add a flight effect to any Wings (items with type 44), similar to the effect of the Wings of Rebirth. Information about the modification Name: pkodev.mod.wings; Version: 1.1; Author: V3ct0r; Type: for client (Game.exe); Supported executable .exe files: GAME_13X_0, GAME_13X_1, GAME_13X_2, GAME_13X_3, GAME_13X_4 and GAME_13X_5. Installing the modification 1. Install mod loading system pkodev.mod.loader if it hasn't already been installed; 2. Place the mod DLL file pkodev.mod.wings.client.13x_{ID}.dll for your version of Game.exe and the mod settings file pkodev.mod.wings.cfg in the mods\pkodev.mod.wings folder of the game client. 3. Open the mod settings file pkodev.mod.wings.cfg and write in it the list of IDs of the wings to which you want to apply the flight effect. Each ID is written on a new line, for example: 935 936 937 This will apply the flying effect to Elven Wings, Butterfly Wings and Angelic Wings respectively. 4. Modification installation completed! Launch the game client and make sure the modification works. Download 1) Modification binary files for the client (.dll); 2) Repository on GitHub with the source code of the modification for Visual Studio 2022 Community (C++). If you encounter any problem, bug or have any questions, then feel free to write in this thread.
  19. [Mod] Highlight friends and enemies with color This modification highlights friendly and hostile players on the screen: the names of the characters change color, and colored circles are displayed under the characters (see screenshot above). If there are enemies near the player's character, a warning icon is displayed next to the character's avatar: Characters are considered friendly if they: 1) Are in the same party; 2) Are in the same guild; 3) Are in the same fraction. The mod only works on PvP maps that are specified in the settings. Requirements Installed mod loading system for server and client (PKOdev.NET mod loader). Modification information Name: pkodev.mod.enemy; Version: 1.0; Author: V3ct0r; Type: for client (Game.exe); Supported executable .exe files: GAME_13X_0, GAME_13X_1, GAME_13X_2, GAME_13X_3, GAME_13X_4, GAME_13X_5. Installation 1) In the "mods" directory of your client, create a "pkodev.mod.enemy" folder; 2) Place into it the mod DLL file "pkodev.mod.enemy.client.13x_<ID>.dll" for your version of Game.exe; 3) Place into it the mod settings file "pkodev.mod.enemy.cfg" and customize it as you wish: // pkodev.mod.enemy settings file // (c) V3ct0r from PKOdev.NET // 02/16/2022 [show] main_cha = true // Should the player character be displayed as a teammate? colored_name = true // Colorize character names? colored_circle = true // Show circles under characters? [color] enemy_color = FFFF0000 // Enemy character name color (in the hexadecimal form: FFRRGGBB) friend_color = FF00FF00 // Teammate character name color (in the hexadecimal form: FFRRGGBB) [icon] warning_show = true // Should the 'warning' icon be shown when enemies are near? warning_x = 208 // 'x' position of the icon on the screen warning_y = 16 // 'y' position of the icon on the screen [map] maps = garner,magicsea,darkblue // Maps on which the mod is enabled 4) In the "texture" directory of the game client, create a folder "mods", and in it a subfolder "pkodev.mod.enemy". Place the "warning.png" icon from the archive with the mod into this subfolder. You can replace this icon with any other with the same name, 32 x 32 pixels and in .png format. Download 1) Binary release (.dll); 2) The source code of the mod for Visual Studio 2019 Community (C++). If you encounter any problem, bug or have any questions, then feel free to write in this thread.
  20. https://prnt.sc/rWJbqwdSD_hO look the picture, i just want to change the link discord, game guide and for crystal, someone can explain me how or have a video guide to do this?
  21. [Tweak] Screenshots in one folder Hello friends! In this thread, I want to talk about a small client tweak that will allow you to save screenshots of the gameplay directly in the "screenshot" folder. Originally, the client creates screenshots in the "screenshot\1", "screenshot\2", "screenshot\3" ... "screenshot\N" subfolders, which may not be very convenient for searching and viewing screenshots. Actually, the participant of our forum @dragontechi faced this problem: To fix this inconvenience of storing screenshots, you need to make the following changes to the client: 1) Open the game engine DLL "MindPower3D_D8R.dll" (located in the "system" folder) in any HEX editor, for example, in HxD; 2) Search for the line: screenshot\%d\ and replace it with the following: screenshot\%d_ 3) Next, find the sequence of bytes: E8 83 2C F9 FF and replace them with: 90 90 90 90 90 4) Now find the bytes: C7 85 74 FF FF FF 00 00 00 00 B8 01 00 00 00 85 C0 74 53 8B 85 74 FF FF FF 50 and replace them with: 6A 00 E8 84 E9 16 00 83 C4 04 50 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 5) Save the changes made in the file "MindPower3D_D8R.dll". The result will be the following: All screenshots are now stored in the same "screenshot" folder. Additionally, the title of each screenshot contains the timestamp when it was created (in the context of the time of the operating system on which the client was running at the time the screenshot was created). Thank you for attention!
  22. The source code is available! Dear PkoDev.Net community members, Today we are releasing TOP/PKO source codes and it means that they will be available to everyone. I'd really want to thank our friendly and cohesive community for helping us in the fundraising event. Thank you for your help! I wish you best of luck in the studying process and I hope they will help us to make the game better! Congratulations! Special thanks to: RU: ZEST Online Team (@e1mer), World of Chaos Team (@NMS3RR), Mordo Online Team, @Chad, @insider, @V1tor, @Chudik, @BotPRO, @BETEP/macs509, @lyon, @Am*n9ma (Pastuh). EN: @KONG, @Wrexor, @Yudha, @Jones, @Andy, @Foxseiz, @Andrew, @Lucky, @Sea King, @DevMorgan, @LazyKid, @Sultan, @TheLegend, @Onioni, @7n6, @GustavoHMA, @Xeon, @Ishcurry. Soon you'll see different kind of tutorials regarding work with the source code (code modifications, explanation). You can get link to download the source code from attachment (Source Code.txt)
  23. [Mod] Contracts system This system is a "Monster Hunt" type quest, the purpose of which is to defeat a certain amount of specific monsters. A player is given a special item - “Contract”, which indicates which monster and how many the player have to defeat. As monsters are defeated, the player's current progress is updated in the "Contract". After defeating the required number of monsters, the "Contract" is considered completed, and the player can receive a reward by using the "Contract" item. The system consists of a pkodev.mod.loader modification for the game client (Game.exe) and a Lua script for the game server (GameServer.exe). Modification of the client is necessary to visualize the specified characteristics of the item in the hint field for the "Contract" when the player hover the mouse cursor over it's item. The target monster ID, the number of monsters already defeated, and the number of monsters needed to complete the "Contract" are stored in the following item stats: ITEMATTR_VAL_STR, ITEMATTR_VAL_DEX, and ITEMATTR_VAL_AGI, respectively. The purpose of the mod is to display these item characteristics in a form understandable to the player. For example, if ITEMATTR_VAL_STR = 103, ITEMATTR_VAL_DEX = 5, and ITEMATTR_VAL_AGI = 10, then the player will see the following information when hovering the mouse over "Contract": Hunt: 'Forest Spirit' x 10 Progress: 5 / 10 The Lua script for the game server is the core of the Contracts system, which contains the System settings and the logic of its operation. For example, when defeating next monster, the script will search the character's inventory for a suitable active "Contract", and if such the item is found, the System will update its state. An important setting of the script is the function that is necessary for issuing a reward after the player successfully completes the "Contract". Some features of the System: 1. "Contract" can be picked up, thrown away, transferred to another player, put in a bank or sold; 2. If a player has multiple "Contracts" in his inventory to hunt the same monster, then when defeating this monster, the "Contract" is selected randomly; 3. To receive a reward after completing a "Contract", the player should use an item of the "Contract", for example by double-clicking on it. The player will see a corresponding message in the system chat if the "Contract" has not yet been completed; 4. The content and amount of the reward are determined by the administrator in a special function of the System script; 5. ID and item type for "Contract" must be unique and set by the administrator in the System settings. The default item type is 99, the default item ID is undefined. Information about the modification Name: pkodev.mod.contract; Version: 1.1; Author: V3ct0r; Type: for the game client (Game.exe); Supported executable files (.exe): GAME_13X_0, GAME_13X_1, GAME_13X_2, GAME_13X_3, GAME_13X_4 and GAME_13X_5. Installing the Contracts system Game server 1. Add a "Contract" item to the GameServer\resource\ItemInfo.txt file. To do this, select any suitable ID (XXXX) and item type (99 by default): XXXX Contract n0184 10130005 0 0 0 0 0 00 99 0 0 0 0 0 1 1 1 1 1 1 0 -1 0 -1 0 0 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0 10,10 0,0 0 0 0 0 0 0 0 0 0 ItemUse_PKOdevContract 0 0 0 0 0 0 After completion you will receive a reward! 2. Place Lua script pkodev.contract.lua in GameServer\resource\script\calculate\mods directory (create mods folder if necessary). 3. Open the pkodev.contract.lua file and configure it as follows: 3.1 Write the "Contract" item ID from ItemInfo.txt (XXXX) to the item_id variable: item_id = XXXX, 3.2 In the CompletionCallback() function, write a code that will give players a reward after completing "Contracts". By default, the function gives a player 1,000 gold coins, a random item (Refining Gem x 1, or Gem of Rage x 2, or Cake x 60, or Fairy of Luck x 1) and launches fireworks: CompletionCallback = function(role, item) -- Give 1,000 gold AddMoney (role, 0, 1000) -- Set of items local arr = { {id = 885, count = 1 }, -- Refining Gem x 1 {id = 863, count = 2 }, -- Gem of Rage x 2 {id = 1849, count = 60}, -- Cake x 60 {id = 231, count = 1 } -- Fairy of Luck x 1 } -- Give a random item local idx = math.random(1, table.getn(arr)) GiveItem(role, 0, arr[idx].id , arr[idx].count, 4) -- Launch fireworks PlayEffect(role, 361) end 3.3 Open the file GameServer\resource\script\calculate\SkillEffect.lua and at the very beginning write the line: dofile(GetResPath("script\\calculate\\mods\\pkodev.contract.lua")) 4. The Contracts system has been successfully installed on your server. Congratulations! Also take a look at @Angelix's Contract System script implementation. It is more flexible and advanced than the one suggested above. Description of the script and installation instructions can be found in the corresponding topic: Game client 1. Add a "Contract" item to the Client\scripts\table\ItemInfo.txt file (see above "Installing the Contracts system" > "Game server" > point 1). Compile ItemInfo.txt. 2. Add to the file Client\scripts\table\StringSet.txt the following strings that a player will see when hovering the mouse over the "Contract": [1000] "(Completed)" [1001] "(Active)" [1002] "Hunt: '{0}' x {1}" [1003] "Progress: {0} / {1}" Note 1: If IDs of strings 1000 - 1003 are already taken, then write any free IDs instead. Note 2: After adding these strings to the StringSet.txt file, delete the StringSet.bin file if it exists, otherwise the changes will not be applied. Note 3: In string 1002, marker {0} is the name of the monster, and {1} is the number of monsters to defeat. In string 1003 marker {0} indicates the number of monsters already defeated, marker {1} is similar to string 1002. 3. Install mod loading system pkodev.mod.loader if it hasn't already been installed. 4. Place the mod DLL file pkodev.mod.contract.client.13x_{ID}.dll for your version of Game.exe and the mod settings file pkodev.mod.contract.json in the mods\pkodev.mod.contract folder of the game client. 5. Open the mod's settings file pkodev.mod.contract.json and write the following parameters into it according to your choice: 1. itemType - type of the item "Contract" specified in the ItemInfo.txt file. The default value is 99. 2. colorCompleted - the color of the "(Completed)" label in the hint for the "Contract" item in the format 0xAARRGGBB. The default value is 0xFF00FF00 (Green). 3. colorActive - the color of the "(Completed)" label in the hint for the "Contract" item in the format 0xAARRGGBB. The default value is 0xFFFFA500 (Orange). 4. STRING_001 - string ID for the "(Completed)" label from the StringSet.txt file. The default value is 1000. 5. STRING_002 - string ID for the "(Active)" label from the StringSet.txt file. The default value is 1001. 6. STRING_003 - string ID for the "Hunt: '{0}' x {1}" label from the StringSet.txt file. The default value is 1002. 7. STRING_004 - string ID for the "Progress: {0} / {1}" label from the StringSet.txt file. The default value is 1003. Note: This file can be left unchanged if you used the default values in the ItemInfo.txt and StringSet.txt files. 6. The contracts system setup for the game client is now complete! Creating "Contracts" and issuing them to the players "Contracts" are created using the contract.create() function, which takes as its arguments the handle of a character to which the contract is to be issued, the ID of a monster a player will need to defeat, and a number of monsters that the player have to defeat. As a result, the function returns a tuple of three elements: success flag, new item descriptor, and item slot number in the character's inventory. Syntax: local <Result LUA_TRUE|LUA_FALSE>, <Item descriptor>, <Item slot> = contract.create(<Character descriptor>, <Monster ID>, <Number of monsters>) Example: local ret, item, pos = contract.create(role, 103, 7) As the result, a "Contract" will be created to defeat the seven Forest Spirits, which will appear in the inventory of the role character. In case of an error, the function will return the value LUA_FALSE to the ret variable and write a log message to the pkodev.contract.txt file. Note: Creation of "Contracts" can be organized, for example, through a special NPC or other item. Useful links 1) Modification binary files for the client (.dll); 2) The file with the modification settings for the client (pkodev.mod.contract.json); 3) Repository on GitHub with the source code of the modification for Visual Studio 2022 Community (C++); 4) Lua script of the Contracts system for the game server; 5) ItemInfo.txt with an example of the "Contract" item; 6) Strings for the file StringSet.txt; 7) Mod loading system pkodev.mod.loader. If you encounter any problem, bug or have any questions, then feel free to write in this thread.
  24. [Mod] Displaying coordinates under NPC This modification for the game client displays coordinates under non-player characters (NPC) and highlights NPC names in yellow. Information about the modification Name: pkodev.mod.npcpos; Version: 1.1; Author: V3ct0r; Type: for the game client (Game.exe); Supported executable .exe files: GAME_13X_0, GAME_13X_1, GAME_13X_2, GAME_13X_3, GAME_13X_4 and GAME_13X_5. Installing the modification 1. Install mod loading system pkodev.mod.loader if it hasn't already been installed; 2. Place the mod DLL file pkodev.mod.npcpos.client.13x_{ID}.dll for your version of Game.exe in the mods folder of the game client; 3. Modification installed! Customizing the modification If necessary, the coordinates display format can be changed in the "dllmain.cpp" file in the "void __fastcall hook::CHeadSay__Render(void* This, void*, structure::D3DXVECTOR3& Pos)" function: const std::string text = std::format("({0}, {1})", cha->GetX(), cha->GetY()); The color used to highlight the NPC names can be changed in the same function: utils::set<unsigned int, 0x38>(This, 0xFFFFFF00); // Set NPC color name (Yellow) Note: After the changes are made, you need to rebuild the modification. Download 1) Modification binary files for the client (.dll); 2) Repository on GitHub with the source code of the modification for Visual Studio 2022 Community (C++). If you encounter any problem, bug or have any questions, then feel free to write in this thread.
  25. [Mod] Increasing the characteristics of a character by holding the left mouse button This modification for the game client adds the feature to automatically upgrade the characteristics of a player's character by holding the left mouse button on the "+" button next to corresponding characteristic on the "Character" form. The modification based on @Graf's topic: Information about the modification Name: pkodev.mod.statsclicker; Version: 1.0; Author: V3ct0r; Type: for the game client (Game.exe); Supported executable .exe files: GAME_13X_0, GAME_13X_1, GAME_13X_2, GAME_13X_3, GAME_13X_4 and GAME_13X_5. Installing the modification 1. Install mod loading system pkodev.mod.loader if it hasn't already been installed; 2. Place the mod DLL file pkodev.mod.statsclicker.client.13x_{ID}.dll for your version of Game.exe in the mods folder of the game client; 3. Modification installed! Download 1) Modification binary files for the client (.dll); 2) Repository on GitHub with the source code of the modification for Visual Studio 2022 Community (C++). If you encounter any problem, bug or have any questions, then feel free to write in this thread.
×
×
  • Create New...