Jump to content

Search the Community

Showing results for tags 'Development'.



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

  1. Hi Comunity, I have a small problem, I want to add 1 or more rows to a file as they did with stoneinfo.txt in CO files with the RGB column, in this case it would be Characterposeinfo.txt which consists of 7 arguments which are Fists Sword 2H Sword Dual Swords Firegun Bow Dagger My knowledge is not enough that's why I come to ask for help, the file I modified was Characterposet.h This Characterposet.h is a original #pragma once #include "TableData.h" class CPoseInfo : public CRawDataInfo { public: CPoseInfo() { for(int i = 0; i < 7; i++) sRealPoseID[i] = 0; } short sRealPoseID[7]; // 5�ֶ�������, ����, ��������, ˫������, ����..... }; class CPoseSet : public CRawDataSet { public: static CPoseSet* I() { return _Instance; } CPoseSet(int nIDStart, int nIDCnt) : CRawDataSet(nIDStart, nIDCnt) { _Instance = this; _Init(); } protected: static CPoseSet* _Instance; // �൱�ڵ���, ���Լ���ס virtual CRawDataInfo* _CreateRawDataArray(int nCnt) { return new CPoseInfo[nCnt]; } virtual void _DeleteRawDataArray() { delete[](CPoseInfo*) _RawDataArray; } virtual int _GetRawDataInfoSize() { return sizeof(CPoseInfo); } virtual void* _CreateNewRawData(CRawDataInfo* pInfo) { return NULL; } virtual void _DeleteRawData(CRawDataInfo* pInfo) { //SAFE_DELETE(pInfo->pData); } virtual BOOL _ReadRawDataInfo(CRawDataInfo* pRawDataInfo, vector<string>& ParamList) { if(ParamList.size() == 0) return FALSE; CPoseInfo* pInfo = (CPoseInfo*)pRawDataInfo; pInfo->sRealPoseID[0] = (short)Str2Int(ParamList[0]); pInfo->sRealPoseID[1] = (short)Str2Int(ParamList[1]); pInfo->sRealPoseID[2] = (short)Str2Int(ParamList[2]); pInfo->sRealPoseID[3] = (short)Str2Int(ParamList[3]); pInfo->sRealPoseID[4] = (short)Str2Int(ParamList[4]); pInfo->sRealPoseID[5] = (short)Str2Int(ParamList[5]); pInfo->sRealPoseID[6] = (short)Str2Int(ParamList[6]); // LG("poseset", "Read Pose List [%d][%s]\n", pInfo->nID, pInfo->szDataName); return TRUE; } }; inline CPoseInfo* GetPoseInfo(short sPoseID) { return (CPoseInfo*)CPoseSet::I()->GetRawDataInfo(sPoseID); } inline short GetRealPoseID(short sPoseID, short sPoseType) { CPoseInfo* pInfo = GetPoseInfo(sPoseID); return pInfo->sRealPoseID[sPoseType]; } and this Characterposet.h is a edited #pragma once #include "TableData.h" class CPoseInfo : public CRawDataInfo { public: CPoseInfo() { for(int i=0; i<9; i++) sRealPoseID[i] = 0; } short sRealPoseID[9]; // }; class CPoseSet : public CRawDataSet { public: static CPoseSet* I() { return _Instance; } CPoseSet(int nIDStart, int nIDCnt) :CRawDataSet(nIDStart, nIDCnt) { _Instance = this; _Init(); } protected: static CPoseSet* _Instance; // 相当于单键, 把自己记住 virtual CRawDataInfo* _CreateRawDataArray(int nCnt) { return new CPoseInfo[nCnt]; } virtual void _DeleteRawDataArray() { delete[] (CPoseInfo*)_RawDataArray; } virtual int _GetRawDataInfoSize() { return sizeof(CPoseInfo); } virtual void* _CreateNewRawData(CRawDataInfo *pInfo) { return NULL; } virtual void _DeleteRawData(CRawDataInfo *pInfo) { SAFE_DELETE(pInfo->pData); } virtual BOOL _ReadRawDataInfo(CRawDataInfo *pRawDataInfo, vector<string> &ParamList) { if(ParamList.size()==0) return FALSE; CPoseInfo *pInfo = (CPoseInfo*)pRawDataInfo; pInfo->sRealPoseID[0] = (short)Str2Int(ParamList[0]); pInfo->sRealPoseID[1] = (short)Str2Int(ParamList[1]); pInfo->sRealPoseID[2] = (short)Str2Int(ParamList[2]); pInfo->sRealPoseID[3] = (short)Str2Int(ParamList[3]); pInfo->sRealPoseID[4] = (short)Str2Int(ParamList[4]); pInfo->sRealPoseID[5] = (short)Str2Int(ParamList[5]); pInfo->sRealPoseID[6] = (short)Str2Int(ParamList[6]); pInfo->sRealPoseID[7] = (short)Str2Int(ParamList[7]); pInfo->sRealPoseID[8] = (short)Str2Int(ParamList[8]); LG("poseset", "Read Pose List [%d][%s]\n", pInfo->nID, pInfo->szDataName); return TRUE; } }; inline CPoseInfo* GetPoseInfo(short sPoseID) { return (CPoseInfo*)CPoseSet::I()->GetRawDataInfo(sPoseID); } inline short GetRealPoseID(short sPoseID, short sPoseType) { CPoseInfo *pInfo = GetPoseInfo(sPoseID); return pInfo->sRealPoseID[sPoseType]; } but but when I compile it gives me a parameter error when adding another column (parameter) more, What else do I need to modify or is my modification incorrect?
  2. Hello Future Server Owners! Welcome to the world of server creation! Whether you're a seasoned developer or a newcomer to the scene, this thread is dedicated to helping you navigate the process of setting up your server and providing assistance with simple Lua codes. Server Setup Tips: Choosing the Right Hosting Service: Share your thoughts and experiences with different hosting providers. Discuss factors like performance, reliability, and customer support. Selecting the Game/Software: Are you creating a gaming server, a web server, or something else? Let's talk about the specific needs of your server and the best software for the job. Security Considerations: Tips on securing your server against potential threats and best practices for maintaining a safe online environment. Lua Coding Assistance: If you're in need of help with Lua scripting, don't hesitate to ask! Whether you're looking to implement a specific feature, fix a bug, or just need a general introduction to Lua, the community is here for you. Ask Questions: Stuck on a particular piece of code? Describe the issue, and our experienced community members will provide guidance. Share Code Snippets: If you have some simple Lua code snippets that might help others, feel free to share them. Collaboration is the key to improvement! Coding Standards: Discuss coding best practices and standards to ensure that your Lua code is clean, efficient, and easy to maintain. Community Support: Remember, we're all here to learn and grow together. Whether you're a newcomer seeking advice or an experienced developer willing to share your knowledge, let's make this thread a supportive and informative space for everyone. Feel free to introduce yourself, share your server project details, or jump in with any questions you may have. Happy coding, and best of luck with your server endeavors!
  3. [News] Tales of Pirates development project on the Unity3D engine ("Top Mobile") Hello friends! In this news, I want to tell you about the project of porting Tales of Pirates to the Unity3D game engine - Top Mobile. According to the owner of this project, @UnityDev, the work is almost completed: all the main game systems have been implemented and tested, but now there is a difficult task of recreating game locations left. Actually, @UnityDev reached out to our community in order to find people who will help him with the task. Therefore, if you are interested in the project and have some experience with the Unity3D engine, then contact (in English language) @UnityDev on Discord: MiniMan#9579 The project has a YouTube channel with videos demonstrating how the client works on the new engine: In the first video you can see familiar locations - Argent and Arena Island. PvP is demonstrated between the Sharpshooter and the Crusader. You can notice the elements of the graphical user interface (character characteristics, inventory, controls for the touch screen). At the end of the video, the chat is shown. The second video shows the process of completing the quest in the Silver Mines location, the purpose of which is to hunt for local inhabitants - Moles, Bats and Mud Monsters. New GUI elements also appear here - an avatar with HP and MP of the player's character and a minimap. Judging by the characteristic glow, gems are inserted into the player's weapons. At the end of the video we see the Icicle Castle fountain. A short interview with @UnityDev: V3ct0r: Hello and welcome to our forum! If you don't mind, I would like to ask you a few questions. UnityDev: Hi, V3ct0r. V3ct0r: Are you working on the project alone or do you have a team? UnityDev: I mostly work alone, but I hired many professional developers to help me with the project. I'm also the only owner of the project. V3ct0r: How long did it take to work on the project? UnityDev: Actually, this is already my second Tales of Pirates project on the Unity3D engine. For the first one, I hired someone from the ToP community, but we had some problems and I decided to close the project. It was two years ago. I have since started this project. As they say, we learn from mistakes, so this new project should be better. V3ct0r: What programs did you use to extract the assets from the original game client? UnityDev: We used 3D max and Blender. V3ct0r: As far as I understand you have server side and client support multiplayer. Is your Unity3D client compatible with the original server files or is your server a separate development? UnityDev: Yes, at first I thought about making the client compatible with the original server files, but then I decided to abandon this idea, since the original server files have a bunch of exploits and unknown backdoors [vulnerabilities]. So I decided to make my own server side. V3ct0r: Are you a professional game developer or is it just your hobby? UnityDev: I can't say that I am a professional developer, but I have worked a lot with the Unity3D engine and I have very good knowledge on it. Sometimes I have to hire people to do some work that I get stuck with. V3ct0r: Will it be a private development or will you release your work to the public? Do you plan to launch your own server based on this development? UnityDev: I will release my work to the public. Of course, I will launch the server. V3ct0r: How long do you think it will take to release the project? UnityDev: About how long it will take, well, actually, I can already release the beta. Game systems are finished and tested. We have already done a lot of tests and everything works perfectly. All that's left to do is maps [game locations]. As you know, in Unity3D you need to create locations from scratch, and this takes some time. V3ct0r: BTW, my friend and I also once tried to port the game to the Unity3D engine UnityDev: Yes, I have seen your project for a long time ago. You did a great job, but I wonder why you didn't kept working on it. V3ct0r: Thanks a lot for your answers! I will create a news about your project so that the whole community can see it, if you don't mind. UnityDev: Ooh yea that would be cool thank you. Thank you for your attention, I hope you enjoyed it! In my turn, I am glad to support this project in this way and wish it development and good luck!
  4. Offline stalls system One of the gaming aspects of the game is trading between characters through special stalls, which players can open by learning a special skill. The player sell his items for a certain price, and other players can buy them. However, for such trading, the player have to be in the game, that is, be connected to the server, which makes him to leave his computer constantly turned on and keep the game client minimized. This is very inconvenient, so the system of "offline" stalls was invented, which allows players to disconnect from the server and still remain trading in the stalls. There are several ways to implement such a system, but the most common system is "offline" stalls through a proxy server: 1) The game client (Game.exe) connects to the proxy server; 2) The proxy server, in turn, opens a connection to the GateServer.exe; 3) Further, the proxy server transfers all packets between Game.exe and GateServer.exe, while analyzing them; 4) When a player opens a trade stall, the proxy server captures this (GateServer.exe sent Game.exe a successful stall opening packet); 5) If a player disconnects from the server while in a trading stall, then the proxy server closes the connection to Game.exe, but at the same time keeps the connection to GateServer.exe and starts imitating Game.exe. Thus, GateServer.exe is unaware of the fact that Game.exe is disconnected and the player's character remains to trade in the stall on the server. Game.exe | Game.exe | <---------> pkodev.stallserver.exe <---------> GateServer.exe Game.exe | This topic discusses the development of such a proxy server - PKOdev.NET Stall Server. Warning! The application is currently under development. The application has not been fully tested and is not stable. This means that errors, bugs and critical vulnerabilities may be present. Use it for testing purposes only! Features 1) Offline stalls system; 2) Limiting the number of offline stalls from one IP address; 3) Limiting the trading time in an offline stall; 4) Automatic disconnection of the account from the server when a player tries to enter his account while trading in an offline stall; 5) Notification of players in the chat that a player trades in an offline stall (in PM); 6) Prevention of SQL-injections in login and PIN create (change) packets from game client; 7) Setting for the maximum number of connections from the same IP address and the interval between connections. to-do 1) Translate comments in files Server.h and Server.cpp to English language; 2) Fix application crash when processing packets; 3) Fix application crash on startup when local port is closed; 4) Fix bridge hanging when blocking packets on enabled encryption in GateServer.cfg (thanks to @small666 for finding the bug); 5) Make thread synchronization when processing packets; 6) Close the offline stall if it is empty; 7) Modification of GateServer.exe to determine the IP addresses of clients that are behind the server of offline stalls. At this point in the logs and database, the IP addresses of all clients will be written as 127.0.0.1 (if both GateServer.exe and pkodev.stallserver.exe are running on the same machine). 8 ) Compatibility with Corsairs Online (CO) source code. Building and running 1) Clone the repository with the project to your disk (the link will be below); 2) Open the solution file pkodev.stallserver.sln in Visual Studio 2022 Community (or higher version); 3) Build the solution. The server executables will appear in the bin folder; 4) Place the configuration file pkodev.stallserver.cfg from the cfg folder in the same directory as the server executable file pkodev.stallserver.exe; 5) Customize the configuration file pkodev.stallserver.cfg (the file is well commented); 6) To connect the game client (Game.exe) to the offline stall server, you need to install the pkodev.mod.stallserver mod; 7) To connect the offline stall server to GateServer.exe, the GateServer should be without any modifications, for example, from the PKO 1.38 server files. 8 ) Run offline stall server executable pkodev.stallserver.exe. Git repository https://github.com/V3ct0r1024/pkodev.stallserver
  5. How can I add welcome notice? I have seen it in many server. ex: Hey, [Char Name] Welcome to [Server Name]. How can I add this feature?
  6. PKOdev.NET mod loader project template for Visual Studio 2019 Community I am posting a template project for Visual Studio 2019 Community, which is designed to develop mods for PKOdev.NET mod loader using the C++ programming language. The project includes 1) File structure (address.h, pointer.h, hook.h, structure.h, dllmain.cpp); The address.h file contains the addresses of imported functions and objects from the .exe file. This file also defines the namespaces for the corresponding versions of the .exe file, within which it is necessary to specify the addresses for each version of the executable file. All addresses should be in the address namespace. namespace address { // Game.exe 2 (1252912474) namespace GAME_13X_2 { // void CHeadSay::Render(D3DXVECTOR3& pos) const unsigned int CHeadSay__Render = 0x00470770; } // Game.exe 4 (1585009030) namespace GAME_13X_4 { // void CHeadSay::Render(D3DXVECTOR3& pos) const unsigned int CHeadSay__Render = 0x004707D0; } } The pointer.h file contains pointers to imported functions from the .exe file. All pointers should be in the pointer namespace. namespace pointer { // void CHeadSay::Render(D3DXVECTOR3& pos) typedef void(__thiscall* CHeadSay__Render__Ptr)(void*, D3DXVECTOR3&); CHeadSay__Render__Ptr CHeadSay__Render = (CHeadSay__Render__Ptr)(void*)(address::MOD_EXE_VERSION::CHeadSay__Render); } The hook.h file contains the definitions of the hook functions of the original functions from the .exe file. All hooks should be in the hook namespace. namespace hook { // void CHeadSay::Render(D3DXVECTOR3& pos) void __fastcall CHeadSay__Render(void* This, void* NotUsed, D3DXVECTOR3& Pos); } The structure.h file contains various data structures necessary for the mod to work. // 3D vector structure struct D3DXVECTOR3 { float x; float y; float z; }; The dllmain.cpp file contains the entry point, the implementation of the loader interface functions, the implementation of the hook functions, and the mod code itself. 2) Mod loader interface (loader.h) and its implementation. 3) Build configurations for all supported .exe files with appropriate preprocessor definitions. 4) MS Detours library for hooking functions calls in .exe files. DetourAttach(&(PVOID&)pkodev::pointer::CHeadSay__Render, pkodev::hook::CHeadSay__Render); How to set up your own project 1) Rename the project files (pkodev.mod.dummy) to the name of your new mod; 2) Remove unnecessary build configurations; 3) For each build configuration, specify the name of the mod's output DLL file (Target Name); 4) For each build configuration, specify preprocessor definitions MOD_NAME, MOD_AUTHOR, and MOD_VERSION. Download PKOdev .NET mod loader project template for Visual Studio 2019 Community (C++).
  7. hey comunity i am also interested if someone can gimme 1 hour lesson i pay 10$ i have a good pc for team viewer i cant move on without passing account server hang i did it one time but then it came back .
  8. New forum section on developing Tales of Pirates using Unity3D game engine Hello friends! At the request of users, a new section was created on the forum to discuss and develop Tales of Pirates on the Unity3D game engine. Wikipedia
  9. Hello Guys! I've set up a website hosting service in its development/beta phase, so for now, I'm offering FREE HOSTING on websites (during testing phase). Make back-ups, as it is not a fully stable server yet. https://www.pko.host - My hosting website. http://example.pko.host - Mssql and PHP compatible for typical PKOSites http://example2.pko.host http://example3.pko.host http://example4.pko.host http://example5.pko.host http://example6.pko.host (credits to @DangThao for the PKOSite Template 1) Other website files gotten from toperunlimited. Credits to all the creators. All you have to do is: PM me for an account, and I will make one with the "Mini Plan", which is: 1 Domain 100 MB Disk Space 1000 MB Bandwidth Limit 100 Mbps Connection Speed Login Details will be sent to your e-mail. You will be able to add your domain through a control panel, and transfer your files through FTPS. It's enough to host a PKOSite, do you guys think it's enough? I'm open to feedback. Why am I giving people free hosting on websites? - Because I'm testing the stability of the server I set up, and to find any bugs that I might not have known. Cheers! ShaKo
  10. Hi, i'm going to start a private server, i have a lot of files here, i did download a Mega Pack with clean files, clients, scripts/others... So my question is, how I can do theserver works? I did put my serverfiles modified in SQL Express 2014, the .exes are working fine, but how can I configure cliente to connevt them fine, and then how to implement the website in a good way? I do count with a host dedicated for this, and i know very much about programming .Lua and database files. But I have never make a server works before... Thanks and cheers from Chile!
×
×
  • Create New...