Jump to content


Popular Content

Showing content with the highest reputation since 12/01/2022 in all areas

  1. 2 points
    Hello @Mdrst and @dragontechi! We will try to understand the reasons for blacklisting our forum among some antiviruses and will check the website files for viruses. Presumably, the problem is in some links that lead to Discord resources. Thank you for your attention to the problem!
  2. 2 points
    На настоящий момент разработано 2 мода (один, кстати, по одной из твоих тем) и еще несколько модов в разработке. Скоро их опубликую.
  3. 1 point
    Description: I've modified the lua scripts from @V3ct0r's Contract System Mod to be a bit more customizable. With this script you don't need to give player contracts directly via NPC since they can now be random map drops (given directly to their inventory). Download: GitHub It's hosted on GitHub to prevent loss of the script and potentially fix issues in the future if I feel like it. Installation: Just load the file in your server! If you have a mod/extension folder, you can go ahead and call it from there. Obviously you need V3ctor's Contract System Mod. This script can work on sources, but you will need to modify client source to show the item hints properly. Not hard to do, but I won't be providing anything related to that here! Like I said, just load the file, I won't help with that, sorry! The script is a stand-alone, no other functions are needed (hopefully). The only function neeeded is already hooked. Usage Details: As stated on V3ctor's original thread, create a new item within your ItemInfo. The item's ID must match what is defined in ContractSys.Conf.ItemID. ContractSys.Conf.ItemID = XXXXX The item's type must match ContractSys.Conf.ItemType. ContractSys.Conf.ItemType = 99 The item's function must be the following: ItemUse_ContractSys The system must be enabled by setting ContractSys.Conf.Enabled to true. ContractSys.Conf.Enabled = true If you want contract to be given randomly by killing monsters, then this variable ContractSys.Conf.World.Enabled must be set to true. ContractSys.Conf.World.Enabled = true In reality, this must be always set to true since there's no other option to get contracts from, they were not implemented! Adjust the maximum of active contracts a player can have at a single time. ContractSys.Conf.Limit Add your map to the allowed list, set it to true and adjust the probability to your needs. The probability is from 0 to 100. ContractSys.Conf.Maps['<MAP_NAME>'] = {Allow = true, Probability = 10} I have some examples in there for Forsaken City, Dark Swamp and Demonic World. You can follow those as guidance. Add some monsters that spawn in your map, along with their probability, minimum and maximum quantities. ContractSys.Monsters['<MAP_NAME>'] = { {Allow = true, ID = <MONSTER_ID>, Min = <MIN_QTY>, Max = <MAX_QTY>, Rate = <MONSTER_RATE>}, } <MAP_NAME>: This is your map's name like "abandonedcity". <MONSTER_ID>: The monster's ID that spawns in that map. <MIN_QTY> / <MAX_QTY>: The minimum and maximum quantity that the player can be tasked to killed. <MONSTER_RATE>: The rate as a number that is used to add weight to the item. This number will be added with the other rates from the monsters in this map's monster list, the lower the number compared to others, the lower probability this monster will appear in a contract. I have some examples in there from Forsaken City, Dark Swamp and Demonic World. Add some rewards to be given when completing contracts obtained from your map. ContractSys.Rewards.Maps['<MAP_NAME>'] = { {Allow = true, Gold = <GOLD_AMOUNT>, ID = <ITEM_ID>, Min = <MIN_QTY>, Max = <MAX_QTY>, Quality = <ITEM_QUALITY>, Rate = <REWARD_RATE>}, {Allow = true, Gold = <GOLD_AMOUNT>, ID = <ITEM_ID>, Min = <MIN_QTY>, Max = <MAX_QTY>, Quality = <ITEM_QUALITY>, Rate = <REWARD_RATE>}, {Allow = true, Gold = <GOLD_AMOUNT>, ID = <ITEM_ID>, Min = <MIN_QTY>, Max = <MAX_QTY>, Quality = <ITEM_QUALITY>, Rate = <REWARD_RATE>}, {Allow = true, Gold = <GOLD_AMOUNT>, ID = <ITEM_ID>, Min = <MIN_QTY>, Max = <MAX_QTY>, Quality = <ITEM_QUALITY>, Rate = <REWARD_RATE>}, } <MAP_NAME>: Your maps' name, such as "abandonedcity". <GOLD_AMOUNT>: The amount of gold to be given (if none, just set to zero). <ITEM_ID>: The item's ID to be given. <MIN_QTY> / <MAX_QTY>: The minimum and maximum quantity that can be given from the previous item. <ITEM_QUALITY>: The quality of the item (mostly used for gems). <REWARD_RATE>: The rate as a number that is used to add weight to the reward. This number will be added with the other rates from the items in this map's reward list, the lower the number compared to others, the lower probability this reward will appear in a contract. Now, if you want a monster to have specific reward, you can also add that. This will override other reward tables. ContractSys.Rewards.Specific[<MONSTER_ID>] = { {Allow = true, Gold = <GOLD_AMOUNT>, ID = <ITEM_ID>, Min = <MIN_QTY>, Max = <MAX_QTY>, Quality = <ITEM_QUALITY>, Rate = <REWARD_RATE>}, {Allow = true, Gold = <GOLD_AMOUNT>, ID = <ITEM_ID>, Min = <MIN_QTY>, Max = <MAX_QTY>, Quality = <ITEM_QUALITY>, Rate = <REWARD_RATE>}, {Allow = true, Gold = <GOLD_AMOUNT>, ID = <ITEM_ID>, Min = <MIN_QTY>, Max = <MAX_QTY>, Quality = <ITEM_QUALITY>, Rate = <REWARD_RATE>}, {Allow = true, Gold = <GOLD_AMOUNT>, ID = <ITEM_ID>, Min = <MIN_QTY>, Max = <MAX_QTY>, Quality = <ITEM_QUALITY>, Rate = <REWARD_RATE>}, } <MONSTER_ID>: The monster's ID that will have specific rewards. <GOLD_AMOUNT>: The amount of gold to be given (if none, just set to zero). <ITEM_ID>: The item's ID to be given. <MIN_QTY> / <MAX_QTY>: The minimum and maximum quantity that can be given from the previous item. <ITEM_QUALITY>: The quality of the item (mostly used for gems). <REWARD_RATE>: The rate as a number that is used to add weight to the reward. This number will be added with the other rates from the items in this map's reward list, the lower the number compared to others, the lower probability this reward will appear in a contract. Script Logic: Player defeats a monster. System will look if the map where the player is located is defined. If defined, then it will grab a monster from that list. If not defined, it will grab a monster from the generic list. It will set the monster to the contract and a random amount between the minimum and maximum quantity available. Player must defeat the quantity of the monster set within the contract. Upon completion, player must double click the contract to finish. System will look if the monster has a specific reward and choose one from there. If no specific reward is set for that monster, then it will iterate through all the maps defined to see if the monster is defined within there. If a defined monster is found, then it will grab a reward from that map's list. If no reward has been chosen, then it will grab a reward from the generic list. The gold (if any) and item (if any) will be given to player. The quantity will be random from the minimum and maximum set.
  4. 1 point
    Keep in mind..you will also need a strong internet connection and if you plan to bring people to the server outside your friends/family I highly suggest getting an ipchanger to mask the I.p. noip.com is a commonly used site for it
  5. 1 point
    - You need to find your computer's ipv4 a dress and use that instead of - you have to port forward (open ports) of every port being used by your files. ( the port: #### from gameserver.cfg, accountserver.cfg,group and so on) -- to open the ports you need to find out what router /isp you are using and log into that routers website to open the ports along with making exceptions in your firewalls. -- every router is different so you will have to Google how to access your specific router / get the login information for it. Alternatively you can host it on a Windows vps, wich usually has most of this work done for you. Or you can download and use hamachi if its just for your friends.
  6. 1 point
    Update. This has been implemented now! I just went ahead and added a new function that should handle the randomness altogether now. With this function, some of the scripts functions were modified to use that new function and all the rewards can be selected. Just grab the file again from GitHub and you're good to go! Don't forget to modify it to your needs.
  7. 1 point
    Воскресные Новости #2 | Все на эвентах, протокол сети, разделение моделей, сайт и сервер
  8. 1 point
    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
  9. 1 point
    Title says it all. Any reason why Kasperksy and others are claiming it's Malware? @V3ct0r VirusTotal
  10. 1 point
    I am also having the same problem for 3 days or more @V3ct0r @Mdrst
  11. 1 point
    Данный скриншот является вырезкой из оригинального кода игры, мы больше не используем этот менеджер ресурсов. Просто обращаем внимание разработчиков на те или иные моменты в легаси.
  12. 1 point
    Hello @kyleflow, I received your server files, thank you! I will check them in a few days.
  13. 1 point
    Hello! You can find some functions that need to be changed in the CO sources, in the hook.h file. Also specific changes can be found in the dllmain.cpp file.
  14. 1 point
    Привет, @nyarum12! Рад, что ты все-таки не забросил это дело. Буду ждать завтра новостей на ютубе.
  15. 1 point
    Интересный факт. Менеджер ресурсов - норма для любого высоконагруженного приложения, в нём хранятся все ресурсы необходимые для работы приложения, так называемый кэш. Когда мы начали работать над эффектами, мы задумались о создании собственного менеджера ресурсов, который будет работать в многопоточном режиме для улучшения производительности. Пока мы анализировали код старого менеджера ресурсов, мы обратили внимание на две интересные реализации: 1. Менеджер ресурсов загружает все необходимые ресурсы в оперативную память при запуске игры и помещает в список std::vector. Это примерно 700 элементов. 2. При создании любого элемента в игре (эффект/объект/персонаж) менеджер ресурсов бегает по списку всех элементов внутри себя и вытаскивает необходимый. Если с первым пунктом это не сильно трогает, т.к лишние 200-300 МБ ОЗУ не является сейчас проблемой для современных ПК, то второй пункт открывает глаза на причины просадок при хороший замесах. С персонажами всё понятно, зашли в зону видимости, создали и работаем с ним, а вот с эффектами становится очень интересно. Каждый удар меча по цели создаёт на цели эффект хита, чем больше скорость атаки тем больше создаётся эффектов на цели, каждый раз при этом мы бегаем по списку из 700 элементов ищем подходящий и отдаём из менеджера ресурсов. Для нас это было очень забавно. Использовать ассоциативный контейнер (std::map) вместо обычного списка (std::vector) - это переписать от силы 10 строчек, может дать серьёзный прирост производительности при замесах. Еще больше интересных фактов вы можете узнать в нашем телеграмм канале https://vk.cc/chjcxR
  16. 1 point
    Hello @Hobbiest and welcome! I don't know what do u mean by "OG" but I'm assuming u are talking about PKO's models, u can convert them in 3ds max and use them anywhere. For this you need C/C++, LUA/SQL aren't a big deal you can learn them along the way. C++/Detours, it's not that hard to grab a function pointer from any legacy EXE especially the ones with pdb. The more you learn, the more it'll become intuitive, most of these topics are mentioned almost everywhere especially in low-level stuff. Both, some Spanish/Brazilian kids are showing off and some are creating them for money You can create it on unity and all good, you have to keep networking on mind from day one most of these aren't really MMO friendly networking architecture the only thing I'd say that was good regarding TOP/PKO is their networking architecture I'm not talking about the ServerSDK or how they implemented the networking but I'm talking about the separation of concerns; 1- GateServer is acting like a proxy 2- AccountServer is validation logins for less tension on the server they even separated the login database (AccountServerDB) 3- GroupServer is handling Chat/Guilds/Teams (Partying and whatnot) 4- GameServer is handling the gamestate, hence you can scale the server by spawning more GameServers the only issue I can tell so far about this is the Data Race when player moves between instances (hence the infamous items duplication bug) You can learn alot reading from unreal's docs networking docs and not just networking by the way: https://docs.unrealengine.com/udk/Three/NetworkingOverview.html Good luck.
  17. 1 point
    Sunday News #1 | Model of events, async, refactoring (Enable subtitles to understand what's going on)
  18. 1 point
    there is a step u miss when u used tradetools. the sql should have some setting to be done.
  19. 1 point
    Ok i just go some clean files, did all the setup again it worked
  20. 1 point
  21. 1 point
    Try to replace it to: $hash = md5($name . time()); time() method might also need to be casted to string before concatenation.
  22. 1 point
    Мод на добавление аттрибутов.. С учетом того, что LuaSQL ведет себя неоднозначно и может критично влиять на производительность сервера.. Предлагаю сделать мод, который добавляет ATTR_RANDOM, то есть N-e колличество аттрибутов и функций к ним(читать, записать). Можно будет считать теже pvp/pk/какие-нибудь ресеты.. По идее не сложно, но я не понимаю, как создаются моды)) Плюсы даются намного проще, но у меня лишь клиентская часть)
  23. 1 point
    Hi @V3ct0r, can make a mod whit gems stack. example: that each gem according to its level joins the stack of its level, lv1 whit lv1 and lv2 whit lv 2 etc
  24. 0 points
  25. 0 points
    Hello @ADELIJAH, Yes, since this function is originally presented only in 2.x version of the server, it is need to patch 1.3x server executables. GameServer.exe and GroupServer.exe (not GateServer.exe). Have you tried looking for patched files on the forum? It looks like they're in the public share.
  • Newsletter

    Want to keep up to date with all our latest news and information?
    Sign Up
  • Create New...