Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation since 07/14/2020 in all areas

  1. 12 points
    Hello friends! There have been changes in the system of user groups: 1) "Moderators" group is returned. The forum is currently recruiting moderators; 2) "Community" group no longer has moderation rights. User groups have been updated: Moderators These guys are keeping order on the forum: @Snowfall, @Dan, @patrick13. Server administrator They are currently have game projects and thanks to them our game lives on: @Faller, @estrangulador, @Fisal Moha, @Phai, @Sultan, @Hard Wood, @xEvo7, @emofc, @Дракан, @Buccaneers Online, @V1k1NGO, @noanshadow, @luamaster, @Pirate X-Z, @NobleNutz, @[email protected], @Kraken Online, @Awatawa, @K1D0, @Chudik, @Kara Online, @HappinessMAPKO, @Tempest, @Vehd, @kiberhack, @Dimasik, @jordan. Community Made a great contribution to the development of the forum and the community as a whole: @Graf, @BETEP/macs509, @Fomin, @NMS3RR, @1g0rS1lv4, @small666, @yagura2k, @Snre3n, @wolfenx, @Duduf, @Angelix, @aleksandr, @mkhzaleh, @Lua, @patrick13, @Danny, @Eviles, @Greaux, @Engrain, @GustavoHMA, @cpworkerz, @xSeth, @e1mer, @Tera, @Kovu, @Spidpex, @Madwizard, @DangThao, @Ximboliex, @Jap, @Totoka, @Billy, @Foxseiz, @Rinor, @Vasil, @FapFap, @Shako, @blazi10, @Lucky, @Darling, @Home, @Nobre, @Jones, @Onioni, @OldHero, @Anthoni, @x3w0r, @flamyman1412, @BlackBarba, @J0k3r, @iZae, @RedMAN, @saa0d, @DevMorgan, @Knight, @XXD, @Xeon, @Wrexor, @deguix, @Blanquitoh, @mangojkee, @Gamez Pirates, @Masuka00, @Silfro, @MonkeyCode. Thank you for attention!
  2. 4 points
    Hello friends! I want to show you some interesting things that I have done recently. 1. Numeric skill bar 1 - 0 Expands the set of shortcuts for activating skills and items: together with the F1-F12 keys, you can use the number keys 1 - 0. 2. Chat server and chat client My task was to develop an interface in the form of a chat server for exchanging messages with a game server. The chat server receives information from the client about the game server (address, port, version) and about the user account (login, password). Then it connects to the game server and logs into the account, after which it sends the client a list of characters. The client should select a character and send it to the chat server so that the chat server can enter the game world with it. After these actions, the chat server starts receiving messages from the client and forwarding messages received from the game world to it. The chat client can be any application that transmits data over TCP: Windows application, website, Android application, and so on. To test the interface, a lightweight client was developed with which you can exchange messages with the game world from Windows desktop environment: With the help of such a system, you can, for example, create real-time chat with the game on your website or develop Android and iOS clients for communication between players. 3. Setting to display the names of characters, monsters, NPC A checkbox is added to the game settings menu to enable or disable the display names of game objects. 4. Additional characteristics of the character In the character window, you can display various characteristics that are hidden, for example, movement speed, chance of a critical hit, luck and others. 5. Respawn of bosses There is a problem when after killing a boss like Black Dragon the server restarts. Despite the fact that it takes a long time to revive the boss, the boss appears immediately after the server starts, which allows some players to gain an advantage. That is, in a short period of time, the boss can be killed several times. A modification has been developed for GameServer.exe that fixes the problem. 6. Discord integration A new chat channel is added to the game to communicate with other players on Discord. The game client connects to a special program, which, on the one hand, is a server for game clients, receives messages from them to be sent to the Discord server and sends them messages received from the Discord server, and on the other, a client-bot that interacts with the Discord API. On the Discord server, messages from the game world are displayed on behalf of the bot.
  3. 4 points
    Всем привет! В системе групп пользователей произошли изменения: 1) Возвращена группа "Модераторы". В данный момент на форуме идет набор модераторов; 2) Группа "Комьюнити" более не обладает модераторскими правами. Группы пользователей были обновлены: Модераторы Эти парни охраняют порядок на форуме: @Snowfall, @Dan, @patrick13. Администраторы сервера Они в данный момент держат игровые проекты и благодаря им наша игра живет: @Faller, @estrangulador, @Fisal Moha, @Phai, @Sultan, @Hard Wood, @xEvo7, @emofc, @Дракан, @Buccaneers Online, @V1k1NGO, @noanshadow, @luamaster, @Pirate X-Z, @NobleNutz, @[email protected], @Kraken Online, @Awatawa, @K1D0, @Chudik, @Kara Online, @HappinessMAPKO, @Tempest, @Vehd, @kiberhack, @Dimasik, @jordan. Комьюнити Внесли большой вклад в развитие форума и сообщества в целом: @Graf, @BETEP/macs509, @Fomin, @NMS3RR, @1g0rS1lv4, @small666, @yagura2k, @Snre3n, @wolfenx, @Duduf, @Angelix, @aleksandr, @mkhzaleh, @Lua, @patrick13, @Danny, @Eviles, @Greaux, @Engrain, @GustavoHMA, @cpworkerz, @xSeth, @e1mer, @Tera, @Kovu, @Spidpex, @Madwizard, @DangThao, @Ximboliex, @Jap, @Totoka, @Billy, @Foxseiz, @Rinor, @Vasil, @FapFap, @Shako, @blazi10, @Lucky, @Darling, @Home, @Nobre, @Jones, @Onioni, @OldHero, @Anthoni, @x3w0r, @flamyman1412, @BlackBarba, @J0k3r, @iZae, @RedMAN, @saa0d, @DevMorgan, @Knight, @XXD, @Xeon, @Wrexor, @deguix, @Blanquitoh, @mangojkee, @Gamez Pirates, @Masuka00, @Silfro, @MonkeyCode. Благодарю за внимание!
  4. 3 points
    Исправление SQL-инъекции в AccountServer MAC-адрес — уникальный идентификатор, присваиваемый каждой единице активного оборудования или некоторым их интерфейсам в компьютерных сетях Ethernet. Википедия - Свободная энциклопедия Привет! В данной статье я хочу поговорить об уязвимости в AccountServer.exe, которая позволяет злоумышленникам проводить внедрение вредоносного SQL-кода и редактировать базу данных AccountServer по их усмотрению. Таким образом, злоумышленник может, например, заблокировать все аккаунты на сервере, из-за чего игроки не смогут попасть в игровой мир, либо вообще удалить все учетные записи пользователей. 1. Суть и причины уязвимости После того, как игрок успешно вошел в свою учетную запись используя логин и пароль, AccountServer.exe выполняет SQL-запрос к одноименной базе данных AccountServer, чтобы обновить IP- и MAC-адреса клиента, время входа пользователя, название экземпляра GroupServer, от которого был получен пакет аутентификации, и установить флаг по которому можно определить авторизован ли пользователь в данный момент времени или нет: UPDATE account_login SET login_status = %d, login_group = '%s', enable_login_time = getdate(), last_login_time = getdate(), last_login_mac = '%s', last_login_ip = '%s' WHERE id = %d Уязвимость заключена в параметре last_login_mac, которому с помощью строкового маркера %s может присваивается любая текстовая строка: last_login_mac = '%s' В базе данных AccountServer в таблице аккаунтов account_login хранятся MAC-адреса всех клиентов. Поскольку через сеть Интернет нельзя узнать MAC-адрес сетевого адаптера пользователя, в отличие от IP-адреса, то, по идее разработчиков, игровой клиент, запущенный на пользовательском компьютере, должен получить MAC-адрес сетевого интерфейса и записать его в пакет аутентификации (ID: 431), после чего отравить MAC вместе с пакетом аутентификации на сервер. Далее адрес передается в AccountServer.exe и сохраняется в базе данных. Проблема в том, что в AccountServer.exe принятая строка с MAC-адресом никак не проверяется на соответствие формату MAC (XX-XX-XX-XX-XX-XX-XX-XX, где X символы 0 - 1 или A - F), то есть на сервер можно отправить любую строку и она будет вставлена в вышеприведенный SQL-запрос вместо маркера %s и сохранена в базе данных, что, в свою очередь, предоставляет возможность внедрения произвольного SQL-кода в запрос. В качестве примера внедрим в SQL-запрос вредоносный код, который заблокирует все учетные записи пользователей. Для этого вместо MAC-адреса необходимо отправить на сервер следующую строку: 1'; update account_login set ban=1;-- Далее она будет подставлена в изучаемый SQL-запрос и в результате будет сформирован новый запрос: UPDATE account_login SET login_status = %d, login_group = '%s', enable_login_time = getdate(), last_login_time = getdate(), last_login_mac = '1'; update account_login set ban=1;--', last_login_ip = '%s' WHERE id = %d Проанализируем что делает с базой данных SQL-запрос с внедренным вредоносным кодом: 1) Обновляет поля login_status. login_group, enable_login_time, last_login_time для ВСЕХ пользователей, что некорректно, так как эти поля должны обновляться только для текущего пользователя; 2) Присваивает значение "1" MAC-адресам ВСЕХ пользователей, что во-первых, так же некорректно в соответствии с пунктом (1), во-вторых, значение "1" не отражает какой-либо реальный MAC-адрес; 3) Присваивает значение "1" полям ban ВСЕХ пользователей, что означает блокировку всех учетных записей; 4) Поле last_login_ip не обновляется, так как часть запроса, в том числе с условием обновления данных только текущего пользователя, была закомментирована и не обрабатывается SQL Server. В итоге, после исполнения такого SQL-запроса, базе данных аккаунтов будет нанесен определенный ущерб. Последствия рассмотренного примера вполне обратимы, но злоумышленнику ничего не мешает использовать во внедряемом SQL-коде оператор DELETE, который служит для удаления записей из таблиц. В таком случае Вы можете безвозвратно потерять все учетные записи пользователей. 2. Эксплойт Для проверки наличия уязвимости в AccountServer.exe я разработал специальную программу-эксплойт, с помощью которой можно провести атаку на базу данных AccountServer. Также эксплойт понадобится для тестирования защиты, которую мы разработаем в будущем. Скачать эксплойт Исходный код эксплойта (в архиве идет проект Visual Studio 2019 Community) ВНИМАНИЕ! Данная программа не предназначена для взлома игровых серверов и должна использоваться только в учебных и испытательных целях. Автор не несет никакой ответственности за совершенные Вами действия и понесенный кем-либо ущерб. Используйте на свой страх и риск! Чтобы провести попытку внедрения SQL-инъекции запустите программу accountexploit.exe со следующими параметрами: accountexploit ip:<IP-адрес сервера> port:<Порт сервера> login:<Логин> password:<Пароль> version:<Версия сервера> Например: accountexploit ip:127.0.0.1 port:1973 login:V3ct0r password:112233 version:136 Эксплойт запустится и, при условии корректности информации, необходимой для подключения к серверу, начнется процесс тестирования Вашего сервера на уязвимость. В результате Вы должны увидеть одно из двух сообщений. 1. SQL INJECTION SUCCESFULLY DONE! ALL ACCOUNTS ARE BANNED. YOU NEED TO TAKE CARE OF THE SECURITY OF YOUR ACCOUNTSERVER! - В Вашем AccountServer.exe обнаружена уязвимость и Вам необходимо предпринять меры для её устранения; 2. SQL INJECTION FAILED! YOUR ACCOUNTSERVER IS SECURED! - Уязвимость не обнаружена. Ваш AccountServer.exe защищен. Если уязвимость была обнаружена, то нужно её незамедлительно исправить. Как это сделать будет рассмотрено далее. 3. Исправление уязвимости в AccountServer.exe Существует несколько методов исправления уязвимости: 1) Использовать специальные программы-посредники между GateServer и GroupServer, например, Gemini.X.Fail, SQLGuard, Filterserver, которые анализируют пакеты аутентификации на наличие SQL-инъекций; 2) Написать заплатку ("патч") и внедрить её в AccountServer.exe; 3) Разработать библиотеку динамической компоновки (.dll), исправляющую уязвимость, и подключить её к AccountServer.exe. В рамках данной статьи я выберу вариант (2) с написанием и внедрением заплатки как самый оптимальный ввиду относительной простоты исправления уязвимости. Вариант (1) требует разработки и применения дополнительного серверного программного обеспечения, а вариант (3) порождает дополнительные зависимости для AccountServer.exe. По моему мнению, оба последних варианта избыточны. Для заплатки потребуется разработать функцию, которая будет проверять корректность полученной от клиента строки с MAC-адресом. На вход функции будет подаваться строка, MAC-адрес для проверки соответственно, а на выходе функция будет выдавать логическое значение true в случае, если строка корректна, или false, если строка не прошла проверку и вероятно содержит вредоносный код. Чтобы разработать такую функцию, необходимо определить правила валидации. Поскольку в базе данных MAC-адреса хранятся в формате XX-XX-XX-XX-XX-XX-XX-XX, где X символы 0 - 1 или A - F, то будем использовать такой же формат для проверки: 1) Длина строки должна быть ровно 23 символа; 2) Каждый третий символ должен быть дефисом (-); 3) Каждый байт адреса должен быть представлен шестнадцатеричным значением (символы 0 - 1 и A - F). Теперь можно написать функцию проверки MAC-адресов на соответствие установленным правилам. Я применю язык C++: /* Функция для проверки MAC-адреса 1) Длина строки должна быть ровно 23 символа; 2) Каждый третий символ должен быть дефисом(-); 3) Каждый байт адреса должен быть представлен шестнадцатеричным значением(символы 0 - 1 и A - F). */ bool check_mac_address(const char* mac) { // Длина строки MAC-адреса unsigned int length = 0; // Скопируем указатель на строку const char* p = mac; // Получим длину строки MAC-адреса while (*p++) { // Увеличиваем счетчик символов length++; // Проверим длину строки if (length > 23) { // Слишком длинная строка return false; } } // Проверим длину строки if (length != 23) { // Слишком короткая строка return false; } // Проверим каждый символ в строке for (unsigned int i = 0; i < length; i++) { // Берем текущий символ unsigned char c = static_cast<unsigned char>(mac[i]); // Каждый 3-й символ должен быть дефисом (-) if (((i + 1) % 3 == 0) && c != '-') { // Некорретный формат MAC! return false; } // Остальные символы могут принимать значения // 0 - 1 // A - F if ( ((i + 1) % 3 != 0) && ((c >= '0' && c <= '9') || (c >= 'A' && c <= 'F')) == false) { // Некорретный формат MAC! return false; } } // Строка прошла проверку return true; } Скомпилируем разработанную функцию с помощью Microsoft Visual Studio 2019 Community и получим код на языке ассемблера, который можно внедрить в AccountServer.exe: 00F51000 >/$ 55 PUSH EBP 00F51001 |. 8BEC MOV EBP,ESP 00F51003 |. 83EC 18 SUB ESP,18 00F51006 |. B8 CCCCCCCC MOV EAX,CCCCCCCC 00F5100B |. 8945 E8 MOV DWORD PTR SS:[EBP-18],EAX 00F5100E |. 8945 EC MOV DWORD PTR SS:[EBP-14],EAX 00F51011 |. 8945 F0 MOV DWORD PTR SS:[EBP-10],EAX 00F51014 |. 8945 F4 MOV DWORD PTR SS:[EBP-C],EAX 00F51017 |. 8945 F8 MOV DWORD PTR SS:[EBP-8],EAX 00F5101A |. 8945 FC MOV DWORD PTR SS:[EBP-4],EAX 00F5101D |. C745 FC 000000>MOV DWORD PTR SS:[EBP-4],0 00F51024 |. 8B45 08 MOV EAX,DWORD PTR SS:[EBP+8] 00F51027 |. 8945 F8 MOV DWORD PTR SS:[EBP-8],EAX 00F5102A |> 8B4D F8 /MOV ECX,DWORD PTR SS:[EBP-8] 00F5102D |. 0FBE11 |MOVSX EDX,BYTE PTR DS:[ECX] 00F51030 |. 8955 EC |MOV DWORD PTR SS:[EBP-14],EDX 00F51033 |. 8B45 F8 |MOV EAX,DWORD PTR SS:[EBP-8] 00F51036 |. 83C0 01 |ADD EAX,1 00F51039 |. 8945 F8 |MOV DWORD PTR SS:[EBP-8],EAX 00F5103C |. 837D EC 00 |CMP DWORD PTR SS:[EBP-14],0 00F51040 |. 74 18 |JE SHORT 00F5105A 00F51042 |. 8B4D FC |MOV ECX,DWORD PTR SS:[EBP-4] 00F51045 |. 83C1 01 |ADD ECX,1 00F51048 |. 894D FC |MOV DWORD PTR SS:[EBP-4],ECX 00F5104B |. 837D FC 17 |CMP DWORD PTR SS:[EBP-4],17 00F5104F |. 76 07 |JBE SHORT 00F51058 00F51051 |. 32C0 |XOR AL,AL 00F51053 |. E9 B0000000 |JMP 00F51108 00F51058 |>^EB D0 \JMP SHORT 00F5102A 00F5105A |> 837D FC 17 CMP DWORD PTR SS:[EBP-4],17 00F5105E |. 74 07 JE SHORT 00F51067 00F51060 |. 32C0 XOR AL,AL 00F51062 |. E9 A1000000 JMP 00F51108 00F51067 |> C745 F4 000000>MOV DWORD PTR SS:[EBP-C],0 00F5106E |. EB 09 JMP SHORT 00F51079 00F51070 |> 8B55 F4 /MOV EDX,DWORD PTR SS:[EBP-C] 00F51073 |. 83C2 01 |ADD EDX,1 00F51076 |. 8955 F4 |MOV DWORD PTR SS:[EBP-C],EDX 00F51079 |> 8B45 F4 MOV EAX,DWORD PTR SS:[EBP-C] 00F5107C |. 3B45 FC |CMP EAX,DWORD PTR SS:[EBP-4] 00F5107F |. 0F83 81000000 |JNB 00F51106 00F51085 |. 8B4D 08 |MOV ECX,DWORD PTR SS:[EBP+8] 00F51088 |. 034D F4 |ADD ECX,DWORD PTR SS:[EBP-C] 00F5108B |. 8A11 |MOV DL,BYTE PTR DS:[ECX] 00F5108D |. 8855 F3 |MOV BYTE PTR SS:[EBP-D],DL 00F51090 |. 8B45 F4 |MOV EAX,DWORD PTR SS:[EBP-C] 00F51093 |. 83C0 01 |ADD EAX,1 00F51096 |. 33D2 |XOR EDX,EDX 00F51098 |. B9 03000000 |MOV ECX,3 00F5109D |. F7F1 |DIV ECX 00F5109F |. 85D2 |TEST EDX,EDX 00F510A1 |. 75 0D |JNZ SHORT 00F510B0 00F510A3 |. 0FB655 F3 |MOVZX EDX,BYTE PTR SS:[EBP-D] 00F510A7 |. 83FA 2D |CMP EDX,2D 00F510AA |. 74 04 |JE SHORT 00F510B0 00F510AC |. 32C0 |XOR AL,AL 00F510AE |. EB 58 |JMP SHORT 00F51108 00F510B0 |> 8B45 F4 |MOV EAX,DWORD PTR SS:[EBP-C] 00F510B3 |. 83C0 01 |ADD EAX,1 00F510B6 |. 33D2 |XOR EDX,EDX 00F510B8 |. B9 03000000 |MOV ECX,3 00F510BD |. F7F1 |DIV ECX 00F510BF |. 85D2 |TEST EDX,EDX 00F510C1 |. 74 3E |JE SHORT 00F51101 00F510C3 |. 0FB655 F3 |MOVZX EDX,BYTE PTR SS:[EBP-D] 00F510C7 |. 83FA 30 |CMP EDX,30 00F510CA |. 7C 09 |JL SHORT 00F510D5 00F510CC |. 0FB645 F3 |MOVZX EAX,BYTE PTR SS:[EBP-D] 00F510D0 |. 83F8 39 |CMP EAX,39 00F510D3 |. 7E 1B |JLE SHORT 00F510F0 00F510D5 |> 0FB64D F3 |MOVZX ECX,BYTE PTR SS:[EBP-D] 00F510D9 |. 83F9 41 |CMP ECX,41 00F510DC |. 7C 09 |JL SHORT 00F510E7 00F510DE |. 0FB655 F3 |MOVZX EDX,BYTE PTR SS:[EBP-D] 00F510E2 |. 83FA 46 |CMP EDX,46 00F510E5 |. 7E 09 |JLE SHORT 00F510F0 00F510E7 |> C745 E8 000000>|MOV DWORD PTR SS:[EBP-18],0 00F510EE |. EB 07 |JMP SHORT 00F510F7 00F510F0 |> C745 E8 010000>|MOV DWORD PTR SS:[EBP-18],1 00F510F7 |> 837D E8 00 |CMP DWORD PTR SS:[EBP-18],0 00F510FB |. 75 04 |JNZ SHORT 00F51101 00F510FD |. 32C0 |XOR AL,AL 00F510FF |. EB 07 |JMP SHORT 00F51108 00F51101 |>^E9 6AFFFFFF \JMP 00F51070 00F51106 |> B0 01 MOV AL,1 00F51108 |> 8BE5 MOV ESP,EBP 00F5110A |. 5D POP EBP 00F5110B \. C3 RETN Далее открываем AccountServer.exe в OllyDbg v1.10, переходим в модуль AccountServer.exe и ищем участок нулей в памяти приложения, который никогда не используется им во время исполнения - так называемый Code Cave. В AccountServer.exe из сборки Pirate King Online 1.38 (на его примере я рассмотрю процесс внедрения заплатки) Code Cave начинается с адреса 0x00452B8B. Скопируйте байты функции check_mac_address() и вставьте их в Code Cave. 55 8B EC 83 EC 18 B8 CC CC CC CC 89 45 E8 89 45 EC 89 45 F0 89 45 F4 89 45 F8 89 45 FC C7 45 FC 00 00 00 00 8B 45 08 89 45 F8 8B 4D F8 0F BE 11 89 55 EC 8B 45 F8 83 C0 01 89 45 F8 83 7D EC 00 74 18 8B 4D FC 83 C1 01 89 4D FC 83 7D FC 17 76 07 32 C0 E9 B0 00 00 00 EB D0 83 7D FC 17 74 07 32 C0 E9 A1 00 00 00 C7 45 F4 00 00 00 00 EB 09 8B 55 F4 83 C2 01 89 55 F4 8B 45 F4 3B 45 FC 0F 83 81 00 00 00 8B 4D 08 03 4D F4 8A 11 88 55 F3 8B 45 F4 83 C0 01 33 D2 B9 03 00 00 00 F7 F1 85 D2 75 0D 0F B6 55 F3 83 FA 2D 74 04 32 C0 EB 58 8B 45 F4 83 C0 01 33 D2 B9 03 00 00 00 F7 F1 85 D2 74 3E 0F B6 55 F3 83 FA 30 7C 09 0F B6 45 F3 83 F8 39 7E 1B 0F B6 4D F3 83 F9 41 7C 09 0F B6 55 F3 83 FA 46 7E 09 C7 45 E8 00 00 00 00 EB 07 C7 45 E8 01 00 00 00 83 7D E8 00 75 04 32 C0 EB 07 E9 6A FF FF FF B0 01 8B E5 5D C3 Запомните адрес, начиная с которого Вы вставили байты. Это будет адрес функции check_mac_address(). В моем случае это адрес 0x00452B90 (1). Задействуем внедренную функцию для проверки MAC-адресов. Найдите последовательность байт: 8B 8D C4 FC FF FF 89 81 9C 00 00 00 6A 00 8D 4D 08 Вы должны увидеть следующие инструкции: MOV ECX,DWORD PTR SS:[EBP-33C] MOV DWORD PTR DS:[ECX+9C],EAX PUSH 0 LEA ECX,DWORD PTR SS:[EBP+8] CALL 0041C410 PUSH EAX MOV ECX,DWORD PTR SS:[EBP-33C] ADD ECX,0A4 Инструкцию PUSH EAX (1) необходимо заменить на инструкцию безусловного перехода JMP <Адрес Code Cave> в Code Cave, например, после внедренной функции check_mac_address() (1). В моем случае это адрес 0x00452C9E. Также запомните адрес инструкции ADD ECX, 0A4 (2) - программа будет возвращаться сюда при успешной проверке MAC-адреса. В примере это адрес 0x00403EB3. Далее нужно найти адрес инструкций (1), на которые программа будет переходить при некорректном MAC-адресе. Найдите последовательность байт: 8B 85 C4 FC FF FF C6 40 14 00 C7 45 FC FF FF FF FF 8D 4D 08 В AccountServer.exe из серверных файлов Pirate King Online 1.38 они будут записаны по адресу 0x00403E4E (1). В результате мы получили 5 адресов: 1. Адрес функции check_mac_address() в Code Cave (0x00452B90); 2. Адрес инструкций проверки MAC-адреса в Code Cave (0x00452C9E); 3. Адрес перехода на инструкции проверки MAC-адреса в Code Cave из обработчика пакета аутентификации (0x00403EAC); 4. Адрес перехода из Code Cave на инструкции продолжения процесса обработки пакета аутентификации (0x00403EB3); 5. Адрес перехода из Code Cave на инструкции завершения процесса обработки пакета аутентификации (0x00403E4E); Осталось записать в Code Cave инструкции для проверки MAC-адреса и подставить в них требуемые адреса: PUSHAD PUSH EAX CALL <Адрес функции check_mac_address()> ADD ESP,4 TEST AL,AL JE SHORT <FAIL> POPAD PUSH EAX MOV ECX,DWORD PTR SS:[EBP-33C] JMP <Адрес перехода при успешной проверке MAC-адреса> <FAIL> POPAD JMP <Адрес перехода при неккоректном MAC-адресе> Сохраните проделанные изменения в файле AccountServer.exe. На этом внедрение заплатки и исправление уязвимости в AccountServer.exe завершено. Перейдем к процессу тестирования. Скачать исправленный AccountServer.exe из серверных файлов Pirate King Online 1.38 4. Проверка AccountServer.exe После того, как Вы внедрили заплатку в AccountServer.exe, необходимо убедиться что она работает, а уязвимость к внедрению вредоносного SQL-кода исчезла. Чтобы это проверить примените эксплойт к исправленному AccountServer.exe по инструкции, приведенной в разделе "Эксплойт". Вы должны увидеть сообщение: SQL INJECTION FAILED! YOUR ACCOUNTSERVER IS SECURED! Благодарю за внимание!
  5. 3 points
    Установка сервера Пиратии (Tales of Pirates, Pirate King Online) Всем привет! В данном гайде я расскажу как установить и настроить сервер Пиратии шаг за шагом на примере серверных файлов версии 1.3х. Под версией 1.3x подразумеваются самые распространенные версии игры, которые сегодня используются большинством проектов: 1.35, 1.36, 1.38 и 1.39. Это деление условно и все версии 1.3x совместимы между собой. Например, клиент версии 1.36 может работать с сервером версии 1.39. Также существуют серверные файлы версии 2.x и скомпилированные из исходных кодов, например, файлы Corsairs Online. Их так же можно установить и настроить следуя настоящей инструкции, но процесс установки может в определенной мере отличаться. Гайд предназначен для новичков в нашем Сообществе администраторов и разработчиков серверов Пиратии и содержит подробную инструкцию с изображениями, которая позволит установить сервер с нуля. По прочтении статьи читатель сможет запустить свой игровой мир и войти в него используя игровой клиент. Содержание гайда: 1. Вам понадобится; 2. Архитектура сервера Пиратии; 3. Установка Microsoft SQL Server и SQL Server Management Studio; 4. Установка и настройка серверных файлов; 5. Запуск сервера; 6. Проверка соединения с игровым сервером; 7. Остановка игрового сервера; 8. Подключение игрового клиента к серверу; 9. Распространенные ошибки и их исправление. Приступим к установке и настройке нового игрового мира. Первым шагом определим инструменты, которые понадобятся для успешного выполнения поставленной задачи. 1. Вам понадобится 0. Теоретическая подготовка. Основы работы с операционной системой семейства Windows, базовые знания архитектуры "клиент-сервер", понимание терминов "База данных (БД)" и "Система управления базами данных (СУБД)". Поскольку те или иные программы, а также сообщения об ошибках могут быть на английском языке, то понадобится знание английского языка начального уровня. 1. Компьютер под управлением операционной системы семейства Windows (серверные редакции Server и пользовательские XP/Vista/7/8/10). Исполняемые файлы сервера скомпилированы под архитектуру x86 (Win32), поэтому система должна поддерживать 32-разрядный режим работы. К аппаратной части предъявляются следующие требования: многоядерный процессор с частотой от 2.0 ГГц; от 4 Гб оперативной памяти; 2 Гб свободного места на диске для серверных файлов, баз данных и файлов журнала ("логов"); сетевое подключение со скоростью от 10 Мбит/с на 1000 клиентов. Таким образом, исходя из современных реалий, можно сделать вывод, что игровой сервер предъявляет невысокие требования к железу, поэтому вышеприведенные характеристики носят скорее рекомендательный и условный характер. Например, Вы можете запустить игровой сервер и на более слабом компьютере, но это, в свою очередь, может привести к замедлению его работы, а значит и к задержкам у игроков, что отразится на комфорте процесса игры. Если же Вы планируете запустить сервер только для себя (одиночная игра, проведение различных тестов, написание скриптов), то Вам не нужно заботиться о производительности сервера, а требования к железу будут менее строгими. 2. Система управления базами данных (СУБД) Microsoft SQL Server. Именно такую СУБД выбрали разработчики игрового сервера Пиратии для хранения состояния игрового процесса: учетных записей пользователей, персонажей, гильдий, кораблей и других объектов. Существует много версий Microsoft SQL Server. В гайде я буду использовать бесплатную версию Microsoft SQL Server 2017 Express, которую можно скачать с официального сайта Microsoft. Несмотря на ограничения Express редакции, её возможностей вполне хватит для обеспечения работы игрового сервера. Для управления SQL-сервером Вам понадобится SQL Server Management Studio, который также можно найти на сайте Microsoft. 3. Серверные файлы ("сборка"). Это приложения, файлы и скрипты, которые служат для создания и поддержания игрового процесса. В минимальной конфигурации должны включать в себя серверные приложения AccountServer.exe, GroupServer.exe, GameServer.exe и GateServer.exe. Функции и задачи данных приложений будут рассмотрены далее. Найти сборку сервера можно в разделе "Сборки серверов" на нашем форуме или в Архиве полезных файлов для сервера и клиента. В качестве примера я буду использовать серверные файлы Pirate King Online 1.38. 4. Базы данных. В соответствии с пунктом (2) определяют структуру хранения игровых объектов на диске и используются игровым сервером для хранения информации о состоянии игрового мира. Представлены файлами GameDB_Data.mdf, GameDB_log.ldf, AccountServer_Data.mdf и AccountServer_log.ldf. Как правило, поставляются вместе с серверными файлами. Если в скачанных Вами серверных файлах нет баз данных, то их можно найти в другой сборке, либо в Архиве полезных файлов для сервера и клиента. 5. Генератор паролей для .cfg. Кроме прочих настроек, в конфигурационных файлах сервера (.cfg) указываются данные для подключения к SQL-серверу, в том числе и пароли пользователей баз данных GameDB и AccountServer. В целях безопасности пароли в конфигурационных файлах должны быть зашифрованы специальным алгоритмом, для чего служит данная программа. 6. Текстовый редактор для редактирования конфигурационных файлов сервера. Подойдет стандартный блокнот (notepad.exe), но я рекомендую программу Notepad++, которая на порядок удобнее обычного блокнота. 7. Игровой клиент для подключения к установленному игровому серверу и его тестирования. Вы можете подобрать игровой клиент к выбранной сборке сервера в теме "Официальные клиенты" на нашем форуме. 8. IP Changer. Перед подключением к серверу игровому клиенту необходимо задать сетевой адрес по которому подключаться. Данная программа предназначена для настройки адреса игрового сервера в клиенте. 9. Программа для создания аккаунтов. Для того, чтобы войти в игровой мир, Вам нужна учетная запись игрока или администратора, которую можно зарегистрировать с помощью приведенной программы. После того, как мы сформулировали основные требования и определили необходимые инструменты для установки сервера Пиратии и подключения к нему клиента, проведем небольшой экскурс по архитектуре игрового сервера, чтобы получить понимание процесса его настройки и запуска в будущем. 2. Архитектура сервера Пиратии Архитектура сервера приведена на рисунке ниже. Она позволяет понять как в общем случае устроены серверные файлы и каковы взаимосвязи между серверным программным обеспечением: что в него входит, что является сервером и что является клиентом по отношению друг к другу. Как видно из схемы в состав системы входят AccountServer, GameServer, GroupServer, GateServer, Microsoft SQL Server с базами данных AccountServer и GameDB, а также игровой клиент (Client). Всё клиент-серверное взаимодействие между приложениями осуществляется с помощью сетевых пакетов по протоколу TCP. Изучим для чего нужен каждый элемент системы. 1. Игровой клиент (Client) - приложение с которым взаимодействует конечный пользователь (игрок). Визуализирует состояние игрового мира вокруг персонажа игрока, полученное от сервера через сеть Интернет. Под визуализацией понимается отрисовка игровой карты с объектами на ней (например, суша и море, деревья, здания, дороги), персонажей других игроков, монстров, неигровых персонажей (NPC) и так далее - всего того, что на своем мониторе видит игрок в процессе игры. Кроме визуализации клиент посредством графического интерфейса пользователя (GUI) предоставляет последнему возможность влиять на состояние игрового мира и процесс игры с помощью клавиатуры и мыши, отправляя на сервер различные действия, например, создание персонажа, перемещение персонажа в игровом мире, атака монстров, взаимодействие с NPC, отправка сообщений в чат и другие действия, которые разрешены на сервере правилами игры. Для пользователя клиент является игрой в обычном понимании. В рассматриваемой системе игровых клиентов может быть от 1 до нескольких тысяч. Подключается через 1973 порт к GateServer. 2. GateServer - принимает входящие соединения через 1973 порт от игровых клиентов и выступает в роли шлюза, через который игровой клиент взаимодействует с GroupServer, AccountServer и GameServer. Является сервером на 1971 порту по отношению к GameServer и клиентом на 1975 порту по отношению к GroupServer. Для распределения нагрузки в системе может быть несколько GateServer. Например, можно настроить сервер таким образом, что игроки из России подключаются к GateServer, который расположен в Москве, а игроки из Европы подключается к GateServer, который запущен на хостинге в дата-центре, расположенном в Германии, что позволит снизить задержки (пинг) при передаче сетевых пакетов от клиента на сервер и обратно. В целях безопасности игрового процесса GateServer шифрует весь сетевой трафик, который передается между сервером и клиентами. 3. GroupServer - отвечает за создание и удаление персонажей с аккаунта пользователя, систему друзей и отрядов, общение между игроками в чатах (мировой, торговый, отряд, гильдия, ЛС) и диалогах. GroupServer также участвует в процессе аутентификации игроков на сервере, передавая пакеты аутентификации, полученные от GateServer, далее в AccountServer. Является сервером на 1975 порту по отношению GateServer и клиентом по отношению к AccountServer на 1978 порту. Кроме того, подключается в роли клиента через 1433 порт к Microsoft SQL Server для работы с базой данных GameDB. Как и в случае с GateServer, в системе может быть несколько GroupServer для распределения нагрузки, но, как правило, в реальных проектах используется один экземпляр GroupServer. 4. AccountServer - нужен для аутентификации игроков на сервере путем сравнения полученных от пользователя логина и пароля с соответствующими логином и паролем в базе данных. Если игрок ввел верные логин и пароль, то он допускается к игре на сервере, в противном случае получает сообщение об ошибке авторизации и отключается от сервера. Является сервером по отношению к GroupServer на порту 1978. Работает с базой данных AccountServer, поэтому является клиентом Microsoft SQL Server на порту 1433. Как и в случае с GateServer, в системе может быть несколько AccountServer для распределения нагрузки, но обычно в реальных проектах используется один экземпляр AccountServer. 5. GameServer - основной игровой сервер, где осуществляется вся логика игры. Обеспечивает игровой процесс и синхронизацию состояния игрового мира с игровыми клиентами: является клиентом на 1971 порту по отношению к GateServer, через который принимает действия от игровых клиентов, проверяет их корректность, и, в случае соблюдения установленных правил игры, вносит изменения в состояние игрового мира, после чего оповещает об этом все остальные игровые клиенты. Параллельно с обработкой действий игровых клиентов, с определенной частотой (обычно 20 Гц) обновляет игровой мир, например, для создания погодных явлений или управления монстрами с помощью искусственного интеллекта (AI). Для сохранения состояния игрового мира использует базу данных GameDB и является клиентом Microsoft SQL Server на порту 1433. GameServer является самым высоконагруженным элементом в системе и потребляет больше всего вычислительных ресурсов и памяти, поэтому в реальных проектах нагрузка распределяется между от 3 до 5 GameServer. В игре существует три основные локации: Аскарон, Магический Океан и Великий Синий Океан размером 4096 x 4096 условных единиц - это самые большие локации в игре. Помимо того факта, что они будут занимать много памяти в ОЗУ, в этих локациях одновременно могут быть тысячи игроков, монстров и NPC, следовательно, целесообразно распределить нагрузку между несколькими экземплярами GameServer и запускать основные локации по одной вместе с частью второстепенных на разных GameServer. 6. Microsoft SQL Server и базы данных AccountServer, GameDB - Microsoft SQL Server является механизмом, с помощью которого AccountServer работает с одноименной базой данных AccountServer, а GameServer и GroupServer работают с базой данных GameDB, используя язык SQL. Является сервером на порту 1433 по отношению к AccountServer, GameServer и GroupServer. В базе данных AccountServer хранятся игровые аккаунты и различная служебная информация, например, логи. В базе данных GameDB хранятся персонажи, предметы, гильдии, корабли, списки друзей и менторов, дублируется список аккаунтов для их связи с персонажами, кроме того, каждому аккаунту здесь присваивается уровень GM и секретный код, так же присутствует и служебная информация. Следует отметить, что рассмотренная архитектура является самой распространенной и применяется в большинстве проектов, но Вы можете перестраивать её под свои нужды: 1. Вы можете изменить стандартные порты 1433, 1971, 1973, 1975, 1978 на любые другие не зарезервированные порты; 2. Вы можете переименовывать базы данных AccountServer и GameDB (потребуется редактирование некоторых исполняемых файлов сервера); 3. Вы можете запускать несколько экземпляров Microsoft SQL Server, GateServer, GroupServer, AccountServer, GameServer и настраивать взаимосвязи между ними в целях распределения нагрузки и повышения производительности игрового процесса; 4. В систему могут быть добавлены новые элементы, например, сервер встроенного в клиент магазина игровых предметов (IGS), сервер для фильтрации исходящих от клиентов пакетов (FilterServer), сервер "оффлайн" ларьков (StallServer), который позволяет игрокам торговать в ларьках не находясь в игре. Теперь, когда Вы получили представление об архитектуре и основных элементах сервера Пиратии, приступим к его установке и настройке. Начнем с установки Microsoft SQL Server. 3. Установка Microsoft SQL Server и SQL Server Management Studio 3.1 Установка Microsoft SQL Server Перейдите на страницу загрузки Microsoft SQL Server 2017 Express и нажмите кнопку "Скачать". На Ваш компьютер будет загружен дистрибутив SQLServer2017-SSEI-Expr.exe. Запустите дистрибутив SQLServer2017-SSEI-Expr.exe от имени администратора и выберите тип установки "Пользовательский". Выберите директорию на диске, куда будет загружен пакет установки, необходимый для установки экземпляра Microsoft SQL Server, и нажмите кнопку "Установить". Начнется процесс загрузки и распаковки пакета установки. Дождитесь его окончания. После загрузки и распаковки пакета установки должно открыться окно "Центр установки SQL Server". Если оно по какой-либо причине не открылось, перейдите в директорию, которую Вы указали в процессе загрузки пакета установки (расположение носителя), и запустите центр установки SQL Server вручную (файл SETUP.exe). В окне центра установки SQL Server на вкладке "Установка" выберите пункт меню "Новая установка изолированного экземпляра SQL Server или добавление компонентов к существующей установке". Начнется процесс установки экземпляра SQL Server 2017. Примите условия лицензионного соглашения и нажмите кнопку "Далее". Убедитесь, что в системе соблюдены все условия для успешной установки SQL Server на вкладке "Глобальные правила", после чего нажмите кнопку "Далее". При возникновении проблем примите меры для их устранения и продолжите установку. На странице "Центр обновления Майкрософт" по Вашему усмотрению установите флажок "Использовать Центр обновления Майкрософт для проверки наличия обновлений" и нажмите кнопку "Далее". Программа установки проверит наличие обновлений и при необходимости их установит. Далее программа установки еще раз проведет диагностику системы на наличие потенциальных проблем, которые могут возникнуть в процессе установки Microsoft SQL Server 2017. Убедитесь, что потенциальных проблем не обнаружено. Правило "Брандмауэр Windows" может быть в состоянии "Предупреждение", если включен Брандмауэр Windows. Для продолжения установки это не критично, но могут возникнуть проблемы в будущем, если Вы захотите обеспечить удаленный доступ к экземпляру SQL Server. Чтобы их избежать, Вам нужно будет открыть порт для подключения к SQL Server (по умолчанию 1433) в фаерволе Windows. Нажмите кнопку "Далее". На странице "Выбор компонентов" отметьте только компонент "Службы ядра СУБД" и укажите корневой каталог экземпляра. Нажмите кнопку "Далее". Затем Вам будет предложено указать имя и идентификатор экземпляра SQL Server. Выберите флажок "Экземпляр по умолчанию", а в поле "Идентификатор экземпляра" введите название экземпляра SQL Server по Вашему усмотрению. Нажмите кнопку "Далее". Страницу "Конфигурация сервера" оставьте без изменений и нажмите кнопку "Далее". При настройке ядра СУБД выберите флажок "Режим проверки подлинности Windows" и убедитесь, что в список администраторов SQL Server добавлен текущий пользователь. На остальных вкладках страницы "Настройка ядра СУБД" изменения не требуются. Нажмите кнопку "Далее". Далее начнется процесс копирования файлов, требующихся для работы экземпляра SQL Server, и их конфигурирование. Дождитесь окончания данного процесса. В результате экземпляр SQL Server должен быть успешно установлен. Закройте Программу установки SQL Server 2017. 3.2 Установка SQL Server Management Studio Перейдите на страницу загрузки Microsoft SQL Server Management Studio и нажмите ссылку "Скачайте SQL Server Management Studio (SSMS)". На Ваш компьютер будет загружен дистрибутив SSMS-Setup-RUS.exe. Запустите дистрибутив SSMS-Setup-RUS.exe от имени администратора. Появится окно программы установки среды Microsoft SQL Server Management Studio. Выберите директорию, в которую будет установлена среда, и нажмите кнопку "Установить". Начнется процесс загрузки и установки требуемых пакетов и компонентов, а также непосредственная установка SQL Server Management Studio. Дождитесь окончания процесса. После завершения процесса необходимо перезагрузить компьютер. 3.3 Проверка работоспособности Microsoft SQL Server и его настройка После перезагрузки компьютера установленный экземпляр SQL Server должен автоматически начать работу. Запустите программу Microsoft SQL Server Management Studio 18 от имени администратора и подключитесь ко вновь установленному экземпляру используя проверку подлинности Windows. Соединение должно быть успешно установлено, и в окне "Обозреватель объектов" появится текущий экземпляр SQL Server. Запомните название текущего экземпляра (1), оно понадобится далее при настройке конфигурационных файлов сервера (.cfg). Название экземпляра SQL Server: DESKTOP-XXXXXXX Кликните по серверу правой кнопкой мыши и в контекстном меню выберите пункт "Свойства". В появившемся окне "Свойства сервера" перейдите на страницу "Безопасность" и в группе "Серверная проверка подлинности" выберите "Проверка подлинности SQL Server и Windows". Нажмите кнопку "ОК". Для того, чтобы произведенные изменения вступили в силу, необходимо перезапустить SQL Server. Для этого снова кликните по серверу правой кнопкой мыши в окне "Обозреватель объектов" и в контекстном меню выберите пункт "Перезапустить". На вопрос о перезапуске службы SQL Server ответьте "Да". Экземпляр сервера будет перезапущен. Установка и настройка Microsoft SQL Server завершена. Далее установим и настроим серверные файлы игры. 4. Установка и настройка серверных файлов Выбор серверных файлов Скачайте интересующие Вас серверные файлы на Ваш компьютер и распакуйте их в любое удобное для Вас место на диске. Прикрепление баз данных к Microsoft SQL Server Вместе с серверными файлами должны поставляться базы данных AccountServer и GameDB. Если в загруженной Вами сборке сервера базы данных не обнаружены, то найдите их в другой сборке или в Архиве полезных файлов для сервера и клиента. Эти базы данных необходимо прикрепить к ранее установленному экземпляру SQL Server перед настройкой и запуском исполняемых файлов сервера Пиратии. Для этого запустите программу Microsoft SQL Server Management Studio 18 от имени администратора и подключитесь к Вашему экземпляру SQL Server используя проверку подлинности Windows. В обозревателе объектов кликните правкой кнопкой по папке "Базы данных" и в контекстном меню выберите задачу "Присоединить...". Появится окно "Присоединение баз данных", в котором Вам необходимо по очереди указать пути до баз данных AccountServer и GameDB (1), убедиться, что очередная база данных добавлена в список для присоединения (2) и нажать кнопку "ОК" (3). В папке "Базы данных" текущего экземпляра SQL Server в окне "Обозреватель объектов" должны появиться AccountServer и GameDB. Создание пользователей для баз данных Теперь необходимо создать пользователей баз данных AccountServer и GameDB для приложений AccountServer, GroupServer и GameServer. С помощью этих пользователей GroupServer и GameServer будут подключаться к Microsoft SQL Server и работать с базой данных GameDB, а AccountServer будет работать с одноименной базой данных AccountServer. В рамках гайда создадим двух пользователей: одного для базы данных GameDB, второго для базы данных AccountServer. Из-за особенностей шифрования паролей пользователей баз данных в конфигурационных файлах сервера Пиратии, пароль каждого пользователя должен быть длиной ровно 9 символов. Придумаем данные пользователей: GameDB База данных: GameDB Логин: PKODev_Game Пароль: pkodevnet AccountServer База данных: AccountServer Логин: PKODev_Account Пароль: netpkodev Далее по очереди добавим этих пользователей в экземпляр SQL Server и делегируем им доступ к соответствующим базам данных. Кликните правой кнопкой мыши по папке "Безопасность" текущего экземпляра SQL Server в окне "Обозреватель объектов" и в контекстном меню выберите команду "Создать - Вход..." (либо папка "Имена для входа" и команда "Создать имя для входа..."). В окне "Создание имени для входа" на странице "Общие" введите имя пользователя (1), выберите переключатель "Проверка подлинности SQL Server" (2), введите пароль и подтверждение пароля (3), снимите флажок "Требовать использование политики паролей" (4). Выберите базу данных по умолчанию: для пользователя PKODev_Game база данных GameDB и для пользователя PKODev_Account база данных AccountServer (5). Далее перейдите на страницу "Сопоставление пользователей" (6). На странице "Сопоставление пользователей" отметьте флажком базу данных GameDB для пользователя PKODev_Game или базу данных AccountServer для пользователя PKODev_Account (1). В списке "Членство в роли базы данных для: GameDB (AccountServer)" снимите флажок с db_owner (2) и установите флажки db_datawriter, db_datareader, db_ddladmin (3). На этом создание очередного пользователя завершено. Нажмите кнопку "ОК" (4). В подпапке "Имена для входа" папки "Безопасность" текущего экземпляра SQL Server в окне обозревателя объектов должны появиться два новых пользователя: PKODev_Game и PKODev_Account. В результате мы прикрепили базы данных GameDB и AccountServer к экземпляру SQL Server и создали для них пользователей PKODev_Game и PKODev_Account соответственно. Сейчас сервер Пиратии может работать с базами данных, поэтому приступаем к его настройке. Шифрование паролей пользователей баз данных для конфигурационных файлов (.cfg) сервера Как было отмечено выше, пароли пользователей баз данных указываются в конфигурационных файлах сервера (.cfg) в зашифрованном виде, соответственно их необходимо зашифровать. Скачайте Генератор паролей для .cfg, распакуйте загруженный архив и откройте файл passgen.ini в любом текстовом редакторе. Присвойте параметру "pass" пароль для пользователя базы данных GameDB и сохраните файл: pass=pkodevnet Запустите приложение passgen.exe. В консольном окне Вы получите зашифрованный пароль. Скопируйте зашифрованный пароль и сохраните его в текстовом файле. Он понадобится далее в процессе настройки конфигурационных файлов игрового сервера. Повторите операцию шифрования пароля для пользователя базы данных AccountServer: pass=netpkodev В итоге мы получили данные серверного программного обеспечения Пиратии для подключения к Microsoft SQL Server: Название экземпляра SQL Server: DESKTOP-XXXXXXX База данных: GameDB Пользователь: PKODev_Game Зашифрованный пароль для .cfg: SUOh8nJKCe125gImJdapNA== Название экземпляра SQL Server: DESKTOP-XXXXXXX База данных: AccountServer Пользователь: PKODev_Account Зашифрованный пароль для .cfg: 7y2CBBN+se+T5+9Lzp7IIw== Настройка AccountServer Начнем настройку игрового сервера с настройки AccountServer. Откройте конфигурационный файл AccountServer.cfg в любом текстовом редакторе. Найдите секцию db, которая отвечает за подключение к Microsoft SQL Server, и заполните соответствующие параметры: dbserver - адрес или название экземпляра Micrososft SQL Server; db - название базы данных для хранения информации об игровых аккаунтах. По умолчанию AccountServer; userid - Логин пользователя базы данных AccountServer; passwd - Зашифрованный пароль пользователя базы данных AccountServer. [db] dbserver = DESKTOP-XXXXXXX db = AccountServer userid = PKODev_Account passwd = 7y2CBBN+se+T5+9Lzp7IIw== В секции net укажите адрес и порт, на которых AccountServer будет принимать входящие соединения от GroupServer: listen_ip - IP-адрес AccountServer по отношению к GroupServer. Если AccountServer и GroupServer будут запускаться на одном и том же компьютере, то введите IP-адрес 127.0.0.1; listen_port - Сетевой TCP порт, на котором AccountServer будет принимать входящие соединения от GroupServer. По умолчанию 1978. [net] listen_port = 1978 listen_ip = 127.0.0.1 Сохраните файл AccountServer.cfg. Более изменений данного файла не требуется. Настройка GroupServer Откройте конфигурационный файл GroupServer.cfg в любом текстовом редакторе. По аналогии с AccountServer.cfg в данном конфигурационном файле необходимо настроить подключение к серверу баз данных. Для этого используется секция Database со следующими параметрами: IP - адрес или название экземпляра Micrososft SQL Server; DB - название базы данных для хранения информации о состоянии игрового мира. По умолчанию GameDB; Login - Логин пользователя базы данных GameDB; Password - Зашифрованный пароль пользователя базы данных GameDB. [Database] IP = DESKTOP-XXXXXXX DB = GameDB Login = PKODev_Game Password = SUOh8nJKCe125gImJdapNA== Настройте параметры подключения GroupServer к AccountServer в секции AccountServer: IP - IP-адрес AccountServer; Port - Сетевой TCP порт AccountServer. [AccountServer] IP = 127.0.0.1 Port = 1978 Как Вы помните, GroupServer является сервером по отношению к GateServer. В секции Main указываются адрес и порт, через которые GroupServer будет принимать входящие соединения от GateServer: Listen_IP - IP-адрес GroupServer по отношению к GateServer. Если GroupServer и GateServer будут запускаться на одном и том же компьютере, то введите IP-адрес 127.0.0.1; Listen_Port - Сетевой TCP порт, на котором GroupServer будет принимать входящие соединения от GateServer . По умолчанию 1975. [Main] Listen_Port = 1975 Listen_IP = 127.0.0.1 Сохраните файл GroupServer.cfg. Настройка GroupServer завершена. Настройка GateServer Откройте конфигурационный файл GateServer.cfg в любом текстовом редакторе. Настройте параметры подключения GateServer к GroupServer в секции GroupServer: IP - IP-адрес GroupServer; Port - Сетевой TCP порт GroupServer. [GroupServer] IP = 127.0.0.1 Port = 1975 В секции ToClient необходимо указать параметры подключения игровых клиентов к GateServer: IP - IP-адрес GateServer и соответственно адрес Вашего сервера, через который будут подключаться игровые клиенты (игроки). Введите адрес 0.0.0.0, который обозначает все IP-адреса данного компьютера. Например, к серверу можно будет подключиться одновременно через локальный адрес 127.0.0.1, локальную сеть 192.168.0.99 и внешний IP-адрес 54.36.6.113 через сеть Интернет (адреса выдуманы для примера); Port - Сетевой TCP порт, на котором GateServer будет принимать входящие соединения от игровых клиентов, то есть внешний порт Вашего сервера. По умолчанию 1973. Данный порт должен быть открыт в Брандмауэре Windows (и иных программах-межсетевых экранах), а также на стороне Вашего Интернет-провайдера или поставщика услуг хостинга. Если Ваш компьютер подключен к Интернету через маршрутизатор, то в маршрутизаторе необходимо пробросить внешний порт на Ваш компьютер для доступа к игровому серверу из сети Интернет. CommEncrypt - параметр, который отвечает за шифрование входящего и исходящего трафика, то есть сетевых пакетов данных, которые передаются от GateServer к игровым клиентам и от игровых клиентов к GateServer. При значении 1 шифрование включено, при значении 0 - выключено. Рекомендуется включить шифрование для повышения уровня защищенности сервера по отношению к различным вредоносным программам (боты, программы для редактирования и флуда пакетами типа WPE Pro/RPE, твики позволяющие отдельным игрокам получать преимущество над другими и так далее). [ToClient] IP = 0.0.0.0 Port = 1973 CommEncrypt = 1 Настройте адрес и порт, через которые GateServer будет принимать входящие соединения от GameServer в секции ToGameServer: IP - IP-адрес GateServer по отношению к GameServer. Если GateServer и GameServerбудут запускаться на одном и том же компьютере, то введите IP-адрес 127.0.0.1; Port - Сетевой TCP порт, на котором GateServer будет принимать входящие соединения от GameServer. По умолчанию 1971. [ToGameServer] IP = 127.0.0.1 Port = 1971 В секции Main в параметре Version укажите версию клиента, которая допускается для подключения к серверу. На стороне клиента данная версия "зашита" в Game.exe и передается двумя байтами в пакете аутентификации. Самое распространенное значение версии клиента 136: [Main] Version = 136 При несовпадении версии сервера и клиента пользователь получит сообщение об ошибке "Неверная версия игры": Сохраните файл GateServer.cfg. Настройка GateServer завершена. Настройка GameServer Первоначальная настройка GameServer сводится к указанию его уникального имени (идентификатора), параметров подключения к GateServer, параметров подключения к Micrososft SQL Server и списка локаций, которые будут запущены на текущем экземпляре GameServer. В начале данного гайда мы сделали вывод, что GameServer должно быть в системе от 3 до 5 экземпляров для распределения между ними нагрузки, поэтому необходимо создать несколько конфигурационных файлов (.cfg) - для каждого экземпляра GameServer отдельный .cfg-файл. В качестве примера создадим 3 конфигурационных файла: GameServer.cfg, GameServer2.cfg и GameServer3.cfg. Чтобы получить новые .cfg-файлы, скопируйте GameServer.cfg два раза и переименуйте копии в GameServer2.cfg и GameServer3.cfg. По очереди настройте каждый конфигурационный файл GameServer используя текстовый редактор. Так как к GateServer подключается более одного GameServer, GateServer необходимо однозначно различать подключенные GameServer для маршрутизации сетевых пакетов данных от игровых клиентов. Для этого у каждого GameServer есть свой уникальный идентификатор, который указывается в секции ID в виде произвольной текстовой строки. Для GameServer.cfg задайте идентификатор, который Вы можете выбрать по своему усмотрению: [ID] name = GameServer00 Для GameServer2.cfg: [ID] name = GameServer01 Для GameServer3.cfg: [ID] name = GameServer02 Далее настройте параметры подключения к GateServer в секции Gate, которые указываются с помощью ключа gate в виде строки "<IP-адрес>, <порт>", где <IP-адрес> это адрес GateServer, а <порт> соответственно порт, на котором GateServer принимает входящие соединения от GameServer: [Gate] gate = 127.0.0.1, 1971 Затем необходимо указать параметры подключения к Microsoft SQL Server в секции DB с помощью следующих параметров: db_ip - адрес или название экземпляра Micrososft SQL Server; db_usr - Логин пользователя базы данных GameDB; db_pass - Зашифрованный пароль пользователя базы данных GameDB. [DB] db_ip = DESKTOP-XXXXXXX db_usr = PKODev_Game db_pass = SUOh8nJKCe125gImJdapNA== Осталось указать список локаций в секции Map, которые будут запущены на текущем экземпляре GameServer. В отличие от игрового наименования локаций, в серверных файлах локации носят кодовые имена. К примеру, Аскарон называется garner, Магический Океан это magicsea, а Великий Синий Океан - darkblue. Очередная локация включается ключом map c новой строки: [Map] map = <локация 1> map = <локация 2> . . . map = <локация N> Например, следующая секция Map запустит карты Аскарон, Арену для командных сражений, Мир демонов и Мир демонов 2: [Map] map = garner map = teampk map = puzzleworld map = puzzleworld2 Полный список наименований игровых локаций, который связывает их с кодовыми именами, приведен ниже: garner - Аскарон magicsea - Магический Океан darkblue - Великий Синий Океан lonetower - Одинокая башня eastgoaf - Серебрянные шахты, заброшенные шахты, логово черного дракона, логово черного дракона 2 secretgarden - Сад Эдель darkswamp - Темная топь abandonedcity - Забытый Город abandonedcity2 - Забытый Город 2 abandonedcity3 - Забытый Город 3 puzzleworld - Мир Демонов puzzleworld2 - Мир Демонов 2 teampk - Арена jialebi - Небеса, база флота, остров сокровищ, остров скелетов garner2 - Серебряный Хаос hell(2-5) - Абаддон (2-5) guildwar - Священная война guildwar2 - Маленькая священная война leiting2 - Мираж Громограда shalan2 - Мираж Шайтана binglang2 - Мираж Ледыни yschurch - Церковь 07xmas - Новогодняя деревня 2007 07xmas2 - Снежная война prisonisland - Тюрьма winterland - Остров Зимы mjing1 - 1-ый край Авроры mjing2 - 2-ой край Авроры mjing3 - 1-ый край Тьмы mjing4 - 2-ой край Тьмы starena* - Арены heilong - Сундук черного дракона darkhouse - Дом тьмы mingyun - Комната судьбы Примечание: карты garner, magicsea и darkblue необходимо запускать на разных экземплярах GameServer. Определите для каждого конфигурационного файла GameServer набор локаций. Локации garner, maigcsea и darkblue в соответствии с примечанием должны быть записаны в разных конфигурационных файлах. Для примера можно настроить конфигурационные файлы таким образом: GameServer.cfg map = garner map = garner2 map = teampk map = lonetower map = puzzleworld map = puzzleworld2 map = eastgoaf map = leiting2 map = shalan2 map = binglang2 GameServer2.cfg [Map] map = magicsea map = abandonedcity map = abandonedcity2 map = abandonedcity3 map = darkswamp map = secretgarden map = guildwar map = guildwar2 GameServer3.cfg [Map] map = darkblue map = jialebi map = hell map = hell2 map = hell3 map = hell4 map = hell5 Сохраните очередной конфигурационный файл (.cfg) GameServer. После внесения изменений в последний конфигурационный файл, настройка экземпляров GameServer окончена. Процесс установки и настройки серверного программного обеспечения Пиратии завершен. Далее приступим к запуску игрового мира. 5. Запуск сервера Общие принципы и порядок запуска исполняемых файлов сервера Поскольку игровой сервер состоит из нескольких исполняемых файлов (AccountServer.exe, GateServer.exe, GameServer.exe, GroupServer.exe), то их необходимо запускать в определенном порядке: 1. AccountServer; 2. Экземпляры GameServer; 3. GroupServer; 4. GateServer. Для запуска AccountServer, GroupServer и GateServer достаточно запустить их исполняемые файлы из проводника. Если таким же образом запустить GameServer, то он будет использовать конфигурационный файл по умолчанию GameServer.cfg, поэтому при запуске очередного экземпляра GameServer необходимо дополнительно указать в параметрах его запуска конфигурационный файл, который необходимо использовать экземпляру для работы: GameServer.exe <Конфигурационный файл> Это можно сделать из Командной строки (cmd.exe), либо с помощью пакетного .bat-файла. Запуск GameServer из Командной строки (cmd.exe) cd C:\PKO Server\GameServer GameServer GameServer2.cfg Данная последовательность команд запустит исполняемый файл GameServer.exe с конфигурационным файлом GameServer2.cfg, которые находятся на диске в директории C:\PKO Server\GameServer. Запуск GameServer с помощью .bat-файла start GameServer.exe GameServer3.cfg Данный .bat-файл запустит исполняемый файл GameServer с конфигурационным файлом GameServer3.cfg при условии, что GameServer.exe и .bat-файл находятся в одной и той же директории. Чтобы запустить сразу несколько экземпляров GameServer с различными конфигурационными файлами, можно написать простой .bat-скрипт: @echo off start GameServer.exe GameServer.cfg start GameServer.exe GameServer2.cfg start GameServer.exe GameServer3.cfg По аналогии можно сделать .bat-файл, который запустит весь игровой сервер, например, с рабочего стола: @echo off cd C:\PKO Server\AccountServer start AccountServer.exe cd C:\PKO Server\GameServer start GameServer.exe GameServer.cfg start GameServer.exe GameServer2.cfg start GameServer.exe GameServer3.cfg cd C:\PKO Server\GroupServer start GroupServer.exe cd C:\PKO Server\GateServer start GateServer.exe Примечание: в данном примере исполняемые файлы сервера находятся в соответствующих папках в директории C:\PKO Server\. Запуск AccountServer Запустите исполняемый файл AccountServer.exe любым удобным для Вас способом. В результате должно появиться два окна: форма со служебной информацией и консольное окно. В консольном окне не должно быть никаких ошибок. После запуска GroupServer, в окне со служебной информацией в списке GroupServer должен быть отображен подключенный GroupServer (поле Status имеет значение connected). Запуск экземпляров GameServer Запустите исполняемый файл GameServer.exe для каждого конфигурационного файла (.cfg) удобным для Вас способом. Появится несколько консольных окон и начнется процесс подключения к Microsoft SQL Server и загрузки каждого экземпляра GameServer. В процессе загрузки очередного экземпляра не должны возникать ошибки в виде записей в консоли или окон сообщений. Соединение с Microsoft SQL Server должно быть успешно установлено, что подтверждается соответствующей записью в консоли: "Database Connected!". После успешного завершения загрузки GameServer должно появиться окно со служебной информацией: ID процесса (PID), частота обновления игрового мира (FPS), число персонажей игроков в игре (Player), загруженный конфигурационный файл (Config) и другая. Проверьте, что напротив каждой карты в списке "Map List" стоит надпись "ok", которая говорит об успешной загрузке локации. После запуска GateServer в списке "Gate" появится IP-адрес GateServer с надписью напротив "connected", к которому подключился данный экземпляр GameServer. Запуск GroupServer Запустите исполняемый файл GroupServer.exe. Появится консольное окно GroupServer. В окне не должно быть никаких сообщений об ошибках. После запуска AccountServer и GateServer появятся сообщения об успешном установлении соединения с данными приложениями. Запуск GateServer Запустите исполняемый файл GateServer.exe. Появится консольное окно GateServer в котором должно быть сообщение об успешном запуске приложения. Игровой сервер Пиратии успешно запущен! Проверим его доступность для подключения к нему игровых клиентов. 6. Проверка соединения с игровым сервером Для определения возможности подключения к Вашему игровому серверу из сети Интернет можно воспользоваться сервисами в Интернете, которые позволяют выполнить проверку внешнего порта сервера на доступность, например, 2ip - Проверка порта. В поле "Порт" введите внешний порт GateServer из секции ToClient конфигурационного файла GateServer.cfg. По умолчанию это порт 1973. Нажмите кнопку "Проверить". При этом, исполняемый файл GateServer.exe должен быть запущен. Вы увидите сообщение "Порт открыт" если сервер доступен для подключения к нему, либо "Порт закрыт" в противном случае. Еще одним способом проверки доступности игрового сервера является подключение к нему используя клиент Telnet. Для этого запустите клиент Telnet, например, встроенный в операционную систему Windows (сочетание клавиш Windows + R, открыть telnet.exe) и выполните в нем команду для подключения к игровому серверу: open <IP-адрес> <Порт> <IP-адрес> - это IP-адрес игрового сервера, подключение через который Вы хотите проверить; <Порт> - внешний порт игрового сервера. При доступности игрового сервера по указанному адресу Вы увидите строку с датой и временем подключения к серверу. 7. Остановка игрового сервера Для корректного отключения игроков и сохранения состояния игрового мира в базах данных на диске, рекомендуется останавливать сервер в следующей последовательности: 1. Все экземпляры GameServer; 2. GroupServer; 3. GateServer; 4. AccountServer. Отключать сервер через Диспетчер задач нельзя - можно потерять несохранённые игровые данные в памяти, что приведет к откату состояния игрового мира в прошлое при следующем запуске сервера. Перед остановкой сервера считается хорошим тоном предупредить игроков о предстоящем отключении. Чтобы завершить работу всех экземпляров GameServer, откройте служебное окно очередного экземпляра и введите в поле ввода команд (1) команду Stop(X), где X - время в секундах, через которое текущий GameServer будет остановлен, после чего нажмите кнопку "Execute" (2). Когда все экземпляры GameServer завершат свою работу, остановите поочередно GroupServer, затем GateServer и после AccountServer с помощью сочетания клавиш CTRL + C в консольном окне. Процесс завершения работы очередного сервера может занять время, то есть приложения закроются не сразу. 8. Подключение игрового клиента к серверу Чтобы войти во вновь созданный игровой мир, Вам понадобится игровой клиент, который можно скачать в данной теме на нашем форуме: Выберите из списка доступных клиентов тот, который подойдет по версии к Вашим серверным файлам. Например, для сборки Pirate King Online 1.38 подойдет официальный русский клиент версии 1.38.1: Скачайте выбранный дистрибутив (архив) и установите (распакуйте) его на Ваш диск. Перейдите в корневую директорию игрового клиента и создайте там .bat-файл с названием start.bat. Он будет необходим для запуска клиента в обход программы автообновления. start system\Game.exe startgame Затем скачайте программу IP Changer, с помощью которой нужно задать игровому клиенту IP-адрес для подключения к серверу. Поместите IPChanger.exe в корневую директорию игрового клиента и запустите. В поля ввода текста "Server Name" (1) и "Server Region" (2) введите название Вашего сервера и регион соответственно. В поле "Server Address" (3) укажите IP-адрес игрового сервера, через который клиент будет к нему подключаться. Выпадающий список "Client Version" оставьте без изменений. Нажмите кнопку "ОК" (4) и после сообщения "Address of server was successfully changed!" закройте программу. Первичная настройка клиента завершена. Для подключения к серверу необходим игровой аккаунт, который можно создать с помощью специальной программы. Скачайте и запустите программу Создать учетную запись. Нажмите кнопку "Настройки" (1) на главной форме приложения. В окне "Настройки" укажите адрес или имя экземпляра Microsoft SQL Server (1), отметьте флажок "Использовать проверку подлинности Windows" и проверьте подключение (3). При успешном подключении к Microsoft SQL Server нажмите кнопку "ОК" (4). Далее введите желаемые логин (2) и пароль (3) для новой учетной записи, а также выберите уровень доступа к системе (4). После заполнения всех полей нажмите кнопку "Создать" (5). Вы увидите сообщение о том, что учетная запись была успешно создана. Запустите игровой клиент с помощью .bat-файла start.bat и подключитесь к серверу используя созданную учетную запись. После успешного входа в учетную запись, создайте нового персонажа и убедитесь что создание персонажей работает исправно. Войдите вновь созданным персонажем в игровой мир. На этом этапе задача установки игрового сервера выполнена, и гайд подходит к своему логическому завершению, но в процессе Вы могли столкнуться с различными ошибками. В следующем разделе будут рассмотрены самые распространенные ошибки сервера и клиента, а также методы их устранения. 9. Распространенные ошибки и их исправление В процессе установки сервера и подключения к игровому миру могут возникнуть различные ошибки. Далее рассмотрим самые распространенные и исправим их. GameServer.exe сразу закрывается после запуска Заполните все данные для подключения к Microsoft SQL Server в конфигурационном файле GameServer.cfg (секция DB). [DB] db_ip = db_usr = db_pass = Ошибки GameServer "Database [GameDB] Connect Failed!", GroupServer "Unable to connect database", AccountServer "Main database handler create failed, AccountServer hang!" Данные ошибки говорят о том, что серверное программное обеспечение (GameServer, GroupServer, AccountServer) не может установить соединение с Microsoft SQL Server и получить доступ к соответствующим базам данных. Возможные пути решения: 1. Проверьте, что Microsoft SQL Server запущен и Вы указали его верный адрес или имя экземпляра в конфигурационных файлах игрового сервера; 2. Проверьте, что в настройках безопасности Microsoft SQL Server Вы включили проверку подлинности SQL Server и Windows и перезапустили после этого SQL Server; 3. Убедитесь, что Вы используете верные логин и пароль пользователей для соответствующей базы данных в конфигурационных файлах игрового сервера. Пользователям баз данных должны быть выданы следующие права: db_datareader, db_datawriter, db_ddladmin, public. Пароли пользователей должны быть указаны в конфигурационных файлах в зашифрованном виде; 4. Убедитесь, что названия баз данных совпадают в Micrososft SQL Server и в конфигурационных файлах сервера, а так же в исполняемом файле GameServer.exe Ошибка GameServer "SubMap::LoadNpc: Obtain Map [<название локации>] ID fail!" Данная ошибка может возникнуть в процессе загрузки локаций игрового мира при запуске экземпляра GameServer. Чтобы её исправить откройте файл GameServer\resource\script\MisScript\ScriptDefine.lua и добавьте в конец строку: AddMap("<Кодовое название локации>", "<Игровое название локации>") Например: AddMap("yschurch", "Церковь") Ошибка игрового клиента "Соединение прервано" Такая ошибка возникает в случае, когда игровой клиент не может установить сетевое соединение с сервером. Возможные пути решения: 1. Проверьте, что GateServer запущен. Если Вы подключаетесь к серверу через сеть Интернет, то проверьте доступность GateServer. Внешний порт игрового сервера (по умолчанию 1973) должен быть открыт, а в конфигурационном файле GateServer.cfg должен быть указан соответствующий внешний IP-адрес (0.0.0.0 или адрес выделенного сервера). Внешний IP-адрес сервера должен быть публичным ("белым"); 2. Убедитесь, что игровой клиент настроен на верный адрес игрового сервера: с помощью программы IPChanger (а также иных способов настройки клиента) указан верный IP-адрес GateServer, а в Game.exe "зашит" верный порт GateServer (по умолчанию 1973). Чтобы убедиться в последнем, можно взять Game.exe из официального русского клиента без каких-либо модификаций, либо использовать специальную программу; 3. Соединению клиента с сервером могут препятствовать различные программы-фаерволы, брандмауэр Windows, а также сетевые маршрутизаторы (роутеры), в которых не был проброшен внешний порт GateServer на компьютер с игровым сервером. Ошибка игрового клиента "Account server has encountered a malfunction" Запустите AccountServer и убедитесь что к нему успешно подключился GroupServer. Ошибка игрового клиента "Discovered exceptional line error on GateServer" Запустите GroupServer и убедитесь что к нему успешно подключился GateServer. Ошибка игрового клиента "Неверная версия игры" Убедитесь, что версии в конфигурационном файле GateServer.cfg (секция Main, параметр Version) и в Game.exe совпадают. Обычно в Game.exe "зашита" версия 136. Узнать версию Game.exe можно с помощью специальной программы на нашем форуме. Ошибка игрового клиента "illegal birth place" при создании персонажа Откройте файл игрового клиента Клиент\scripts\table\StringSet.txt и замените строки [39] "Аргент" [40] "Шайтан" [41] "Ледынь" на [39] "Argent City" [40] "Shaitan City" [41] "Icicle Castle" Значения Argent City, Shaitan City и Icicle Castle определяются соответствующими значениями в конфигурационном файле GroupServer.cfg игрового сервера. [bird] Argent City = garner Shaitan City = magicsea Icicle Castle = darkblue Ошибка игрового клиента "target map cannot be reached" при входе в игровой мир Выбранный персонаж находится на локации, которая не запущена на сервере. Запустите все экземпляры GameServer с полным набором локаций и убедитесь, что в каждом служебном окне текущего экземпляра GameServer отображается успешно загруженный список карт игрового мира (список Map List). Если вы столкнулись с проблемой, которой нет в рассмотренном выше списке ошибок, то воспользуйтесь разделом "Пиратия: Помощь", в котором Вам придут на помощь более опытные администраторы и разработчики серверов Пиратии. Также за много лет на нашем форуме накоплен большой пласт опыта Ваших предшественников, поэтому целесообразно воспользоваться поиском по форуму: с большой долей вероятности Ваша проблема уже обсуждалась и решена в прошлом. Благодарю Вас за внимание и надеюсь, что статья действительно была Вам интересна и помогла в установке сервера! Я был рад поделиться с Вами своим опытом. Гайд написал V3ct0r специально для форума PKODev.NET Копирование статьи в том или ином виде на сторонние ресурсы без согласования с автором ЗАПРЕЩЕНО!
  6. 2 points
    > // ENG > Guild Player Limit Changed to 20 - NOTE: If your guild is over the limit, remove some members or it may be deleted by a GM. > Description of Gems Fixed - For you to know where the gem can be forged. > Normal Gems Added To Forge On Belts/Bracelets - Glowing/Furios/Spirit Gem/Shining ... - NOTE: The status of these gems have been changed > Fixed Status Bracelets - Image of the Status Here: #-dev-news (Discord Chat) > Adjusted Balance - #-balance-features (Discord Chat) > Exchange 5000x May Day Cards Fixed - Farm Island Kong Npc > BD Gems Status Changed - Eye = +115 Attack Bonus - Heart = 600 Max HP Bonus > Gems Level 5 Added - Great/Azrael/BD Gems Lv5 (All Gems Lv5) > Bracelets Added On IGS Shopping (20 IGS Each) > // PT-BR > Limite De Jogadores Na Guilda Mudado Para 20 - OBS: Caso Sua Guilda Esteja Acima Do Limite, Remova Alguns Membros Ou Ela Pode Ser Deletada Por Um GM. > Descrição Das Gems Corrigidas - Para voce conseguir saber o local onde cara gem pode ser colocada. > Normais Gems Adicionadas Para Forge Em Belts/Bracelets - Glowing/Furios/Spirit Gem/Shining... - OBS: Os Status Dessas Gems Foram Alterados > Bracelet Status Corrigidos - Imagem Dos Status Aqui: #-dev-news (Discord Chat) > Balance Ajustado - #-balance-features (Discord Chat) > Troca De 5000x May Day Cards Corrigida - Farm Island Kong Npc > BD Gems Status Alterados - Eye = +115 Attack Bonus - Heart = 600 Max HP Bonus > Gems Level 5 Added - Great/Azrael/BD Gems Lv5 (All Gems Lv5) > Bracelets Adicionados No IGS Shopping (20 IGS Each)
  7. 2 points
    > >> Update News << - > Balance Adjusted - SealMaster Damage Increased 14% - Crusader HP Increased 5% - Cleric Damage Increased 11% - Voyager Conch Damage Increase 10% - Champion Defense Increased 14% / Hit Rate Increased 9% / Attack Increased 3% - Critical Damage Decreased 45% (All Class) - > Ja Runestone Exchanges NPC Edited - NPC Added Next To DW Portal - > New Server Time Maps Added -MAP TIMES - > Bracelet Random Chests Fixed
  8. 2 points
    >> EN << > > Lv5 Gems - Unique Gems - Broken / Cracked / Chipped Gems - Advance Gems > > New Map Added (Chaos Dream) - Place: Skeletar Isle - Dream Boss = + Guild EXP 500x Boss Drop: 1x King Emblem, 5x Azrael Gems, 1x BD Random. - Rewards: Solo: 1x Diamond Dream / 3x Azrael Random 2-5: 5x Kal Runestone / 1x Azrael Random Times: # server-times > > Ja Runestone Stacks (499x) > > Fairy Coins / Elven Signets By Gold (Kong NPC in Farm Island) > > Automatic Question and Answer Event Every 3 Hours and 30 Minutes. - Note: Only in English. > > Auto Drop Event (More details will be posted in a few minutes) > > Soldier Apparel Fixed (For All Classes) > > Fairy Coin Stacks (499x) > >> PT-BR << > > Gems Lv5 - Unique Gems - Broken/Cracked/Chipped Gems - Advance Gems > > Novo Mapa Adicionado (Chaos Dream) - Place: Skeletar Isle - Boss = Guild EXP 500x Boss Drop: 1x King Emblem, 5x Azrael Gems, 1x BD Random. - Rewards: Solo: 1x Diamond Dream / 3x Azrael Random 2-5: 5x Kal Runestone / 1x Azrael Random Times: #server-times > > Ja Runestone Stack Aumentado (499x) > > Fairy Coins/Elven Signets By Gold(Kong NPC in Farm Island) > > Evento Automatico De Perguntas e Respostas A Cada 3 Horas e 30 Minutos. - Observação: Apenas Em Ingles. > > Auto Drop Event (Mais Detalhes Serão Postados Em Alguns Minutos) > > Soldier Apparel Corrigido (Para Todas As Classes) > > Fairy Coin Stacks Aumentado (499x)
  9. 2 points
    > ENGLISH < How to get this refund here? - All of these servers mentioned above in the banner had the participation of all these members of our current team. In Cursed Pirates, the administrator was be K1D0, for example. Among the others that had the participation of both developers as well. 1- You need to have photos of all your receipts that prove that you really were a donor on these servers, whether on PayPal, Boletos, Depositos or Transfers. 2- Observe if your payment is not a refunded amount, because many of the payments from these servers have already been refunded to players (in real money, not in IMPs). 3- Contact a GM and send the following details to obtain these refunds. - Photo of the payment sent. - E-mail or Name on PayPal. - On which server you made this donation. Note: The refund will be 50% of the donated amount. > PT-BR < Como conseguir esse reembolso aqui ? - Todos esses servidores citados acima no banner tiveram a participação de todos esses membros da nossa atual equipe, no Cursed Pirates o admin erá o K1D0 por exemplo. Entre os outros que tiveram as participações tanto dos desenvolvedores tambem. 1- Voce precisa ter fotos de todos os seus comprovantes que provam que voce realmente foi um doador nesses servidores, sejá no PayPal, Boletos, Depositos ou Transferencias. 2- Observer se o seu pagamento não é um valor reembolsado, porque muitos dos pagamentos desses servidores já foram reembolsados aos jogadores(em dinheiro real, não em IMPs.) 3- Entre em contato com um GM e envie os seguintes dados para conseguir esses reembolsos. - Foto do pagamento enviado. - E-mail ou Nome no PayPal. - Em qual servidor voce fez essa doação. Obs: O reeembolso será 50% do valor doado. > ESPANOL < ¿Cómo obtener este reembolso aquí? - Todos estos servidores mencionados anteriormente en el banner contaron con la participación de todos estos miembros de nuestro equipo actual. En Cursed Pirates, el administrador era K1D0, por ejemplo. Entre los otros que tuvieron la participación de ambos desarrolladores también. 1- Debe tener fotos de todos sus recibos que demuestren que realmente fue donante en estos servidores, ya sea en PayPal, Boletos, Depositos o Transferencias. 2- Observe si su pago no es un monto reembolsado, porque muchos de los pagos de estos servidores ya han sido reembolsados a los jugadores (en dinero real, no en IMP). 3- Póngase en contacto con un gerente general y envíe los siguientes detalles para obtener estos reembolsos. - Foto del pago enviado. - Correo electrónico o nombre en PayPal. - En qué servidor hiciste esta donación. Nota: El reembolso será del 50% del monto donado. SUPPORT
  10. 2 points
    | Dark Swamp/Forsaken City Time | (858,3650 Shaitan City) > 3:00 | 6:00 | 09:00 | 12:00 | 15:00 | 18:00 | 21:00 | 00:00 < | Chaos Realms Time | (1371,531 Icicle City) > 1:00 | 4:00 | 07:00 | 10:00 | 13:00 | 16:00 | 22:00 < | Realms Island Time | (913,3573 Shaitan City) > 2:00 | 5:00 | 08:00 | 11:00 | 14:00 | 17:00 | 20:00| 23:00 | | Demonic World 1-2 Time | (910,1069 Sacred Snow Mountain) > 3:00 | 6:00 | 09:00 | 12:00 | 15:00 | 18:00 | 21:00 | 00:00 <
  11. 2 points
    >> Update News << >> ENGLISH << Heitor Coords Fixed (Guide NPC Ft Argent) Updated Items Descriptions(Coords) Increased Balance Damage -- -- -- -- -- -- -- >> PT-BR << Heitor Coords Corrigidas (NPC De Guias Ft Argent) Descrições Dos Itens Atualizadas (Coordenadas) Damage Do Balance Aumentado
  12. 2 points
    Welcome To Pandora Online! Tired Of The Same Old Crusader And SS Dominated Servers? Do You Like Boss PK? Then We Have Good News For You! Join Pandora Online, Where Classes (Often Ignored) Such As Voyager And Cleric Are Just As Useful And Fun. This Version Is Slightly Tweaked, With New Class Flexibility, And New Equipment And Gem Progression, With Less Grind And More PK! Note: Server will be opening later today (July 31st) Website: http://pandoraonline.co/ Discord: https://discord.gg/SKBAAsc Server Rates Max Character Level: 100 (Instant) 10x Drop-rate Max Pet Level: 41 / 62 With Improved Fruits 400x Fairy-growth Max Stats: 100/120 For Spr New & Improved Features New And Improved Balances & Class Improvements E.G. Voyagers Algae Skill On Land, Magic Classes Have Increased Damage On Mobs Gem Of Striking Can Now Be Forged Into Weapons New Classes And Class Flexibility - E.G. Lance Seal Master & Cleric | Carsise Voy & SS | Ami Crus! Pets With Improved Fruit System Brand New Pets; Charmander Dragon - Goku - Super Sonic + More Brand New Apparels; Titled Necklaces, Shield Sword Apparels, Unique Apparels New Equipment+Necklaces Upgrade And Unseal System/New Maps/Improved Old Maps/New Home Map New Bosses Rebirth 1 Quests New Forging Abilities E.G: Apparel Unfusion, Instant 110% Fusion Chathandle System E.G. Typing "/tele arg" Ingame Will Teleport You To Argent City So, What Is Pandora Online All About? Pandora Online combines both PVP and PVE, with classic and new PK maps, and PK bossing. Our private server is based on bossing with and against other players and guilds in order to get the best equipment and gems. Pandora Online is not about one class ruling all, with our aim to keep all classes balanced, useful and important. There have also been a few additions to classes such as class flexibility (Ami Crusader, Carsise Voyager and Lance Sealmaster), as well as increased mob damage from magic classes, Voyager algae skill now works on land, and even more. To find out more, join our discord. New & Improved Maps -Pandora City: Home Map -PK Map -FC/DS/DW: - Mobs: Ref gems - Chests: Ugems, Chipped Gems - Bosses: Improved Fruits, Kals, Manu Packs + More -Chaos Argent: - Chests: Ugems/Random Chipped Gems - BD Mobs: Ugems, BD Gems -Bounty Hunter: - Mobs: Adv Gems/Hat Gems -Chaos Icicle: - Chests: Chipped gems/Ugems -Capture The Flag - Pure PK -Abba 10: - Bosses: Sealed 85 Rings, Deity Scrolls, Azrael Gems -Aurora Area & Dark Area: - Bosses: Azrael Gems, Lv100 Berry Equipment Fragments, Deity Scrolls -Valley of Death: Coming Soon -Sea PK: Coming Soon -Ruin Tower: Coming Soon
  13. 2 points
    >> English > Requirements for you to be able to win a Start Pack, Invite Pack or Return Pack event. > Start Package Event: 1- You must be a beginner player (less than 2 days playing). 2- You need to contact a GM so that they can check your records and find out if you are a beginner player or not. 3- You must give your username to the GM to check your IP and MAC IP. > Return Package Event: 1- You need to have more than two days of inactivity 2- You need to contact a GM so they can check your records and find out if you are an old player who has returned or not. 3- You must give your username to the GM to verify your IP and MAC IP for them so that they can check your last login record. > Invite Package Event: 1- You need to invite 3 players to join the server (you can receive this award only once) 2- You need to contact a GM and give the nicknames of the novice players you have invited. 3- The GM will check the IDs of these players and find out if they are really new or not. >> NOTE: All events are limited to up to 20 units. >> PT-BR > Requerimentos para voce conseguir ganhar um Start Pack ou Invite Pack ou Return Pack Event. > Pacote Para Novatos: 1- Voce precisa ser um jogador novato(menos de 2 dias jogando). 2- Voce precisa entrar em contato com um GM para que ele possa verificar os seus logs e saber se voce é um novato ou não. 3- Voce precisa passar o seu username para um GM verificar o seu IP e MAC IP. > Pacote De Retorno: 1- Voce precisa ter mais de dois dias de inatividade 2- Voce precisa entrar em contato com um GM para que ele possa verificar os seus logs e saber se voce é um jogador antigo que retornou ou não. 3- Voce precisa passar o seu username para um GM verificar o seu IP e MAC IP para ele verificar o seu ultimo registro de login. > Pacote Por Convidar: 1- Voce precisa convidar 3 jogadores para participar do servidor(voce pode receber esse premio apenas uma vez) 2- Voce precisa entrar em contato com umGM e passar os Nicknames dos jogadores novatos que voce convidou. 3- O GM Irá verificar os IDs desses jogadores e saber se são realmente novatos ou não. >> OBS: Todos os eventos estão limitados em até 20 unidades. >> Espanol > Requisitos para poder ganar un paquete de evento Start Pack, Invite Pack o Return Pack. > Start Package Event: 1- Debes ser un jugador principiante (menos de 2 días jugando). 2- Necesitas contactar a un GM para que pueda verificar tus registros y saber si eres un jugador principiante o no. 3- Debes pasar tu nombre de usuario a un GM para verificar tu IP y tu IP MAC. > Return Package Event: 1- Necesitas tener más de dos días de inactividad 2- Necesitas contactar a un GM para que pueda verificar tus registros y averiguar si eres un jugador viejo que ha regresado o no. 3- Debes pasar tu nombre de usuario a un GM para verificar tu IP y MAC IP para que pueda verificar tu último registro de inicio de sesión. > Invite Package Event: 1- Necesitas invitar a 3 jugadores para que se unan al servidor (puedes recibir este premio solo una vez) 2- Necesitas contactar a un GM y dar los nombres de los jugadores novatos que hayas invitado. 3- El GM verificará los ID de estos jugadores y descubrirá si son realmente nuevos o no. > Observasion: Todos los eventos están limitados a hasta 20 unidades. REALMS STAFF HERE
  14. 2 points
    > MEGA UPDATE STATUS < >> ENG: > Novo Balance Added > Edited Stacks Realms Ball Stars 1-7(99x) > Vip Status Edited: - +8 All Status / 100 Defense / 3 PR / 75 Movement - / buff Cleric Buff Removed - Bug Status When Teleporting Fixed > Unique Gems Added On Npc(Fortiffication NPC) - 100K Each > Chipped Gems Added On Npc(Fortiffication NPC) - 15K Each > Chaos Argent/Arena Island Drops Edited: - Chests Drops: Novice Chest = 1x Random Great / 1x Refining Gem / 1x Novice Voucher / 1x Novice Coin Standard Chest = 1x Random Advance / 1x Refining Gem / 1x Standard Voucher / 1x Standard Coin / Great Gems (35% Drop Rate) Expert Chest = 1x Random Azrael / 1x Refining Gem / 1x Expert Voucher / 1x Expert Coin / 1x Kal Runestone / Azrael Gems (30% Drop Rate) BD Mobs on the first 15 to 25 minutes > DW / FC / DS Drops Edited: - Mobs = 100k + 2x Ja Runestone (50%) + 1x Refining Gem (2x Drop Rate Event) - Mini Boss FC-DS = 1x Random Great or 1x Random Advance or Random BD Gem / 1x Kal / 1x Refining - Chests: Azrael / Gr8 / Advance Gems Scrolls Randoms (50% Drop Rate) / 1x Kal Runestone > Bosses Drops Edited (Check The% Drops Rates On Npc Graves) > Edited Chaos Argent/Arena Island Rewards: - Chaos Argent Rewards: Solo: 1x King Emblem / 1x Saint Emblem / 5x Expert Coin / 3x Azrael Random Gem 2-5: 1x Saint Emblem / 1x Random Great Gem / 3x Expert Coin / 3x Kal Runestone 5-10: 2x Kal Runestone / 1x Random Advance Gem - Arena Island Rewards: Solo: 1x Arena King Emblem / 1x Arena Saint Emblem / 5x Expert Coin / 3x Azrael Random Gem 2-5: 1x Arena Saint Emblem / 1x Random Great Gem / 3x Expert Coin / 2x Kal Runestone 5-10: 2x Kal Runestone / 1x Random Advance Gem / 15x Million Dollar Notes > Refining Gem For Ja Runestones (282,709) > Kong Exchanges Edited NPC (Farm Island) > Fish Exchanges NPC Edited >> PT-BR: > Novo Balance Adicionado > Stack Das Realms Ball Stars 1-7 Editado (99x) > Vip Status Editado: - +8 All Status / 100 Defesa / 3 PR / 75 Moviment - /buff Cleric Buff Removido - Status Bug Ao Teleportar Fixado > Unique Gems Adicionadas No Npc (Fortiffication NPC) - 100K Cada > Chipped Gems Adicionadas No Npc (Fortiffication NPC) - 15K Cada > Chaos Argent / Arena Island Drops Editados - Chests Drops: Novice Chest = 1x Random Great / 1x Refining Gem / 1x Novice Voucher / 1x Novice Coin Standard Chest = 1x Random Advance / 1x Refining Gem / 1x Standard Voucher / 1x Standard Coin / Great Gems (35% Drop Rate) Expert Chest = 1x Random Azrael / 1x Refining Gem / 1x Expert Voucher / 1x Expert Coin / 1x Kal Runestone / Azrael Gems(30% Drop Rate) BD Mobs Nos Primeiros 15 a 25 Minutos > DW / FC / DS Drops Editados: - Mobs = 100k + 2x Ja Runestone(50%) + 1x Refining Gem (2x Drop Rate Event) - Mini Boss FC-DS = 1x Random Great ou 1x Random Advance ou Random BD Gem / 1x Kal / 1x Refining - Chests: Azrael/Gr8/Advance Gems Scrolls Randoms (50% Drop Rate) / 1x Kal Runestone > Bosses Drops Editados (Verifique As % Drops Rates No Npc Graves) > Recompensas De Chaos Argent / Arena Island Editadas: - Chaos Argent Rewards: Solo: 1x King Emblem / 1x Saint Emblem / 5x Expert Coin / 3x Azrael Random Gem 2-5: 1x Saint Emblem / 1x Random Great Gem / 3x Expert Coin / 3x Kal Runestone 5-10: 2x Kal Runestone / 1x Random Advance Gem - Arena Island Rewards: Solo: 1x Arena King Emblem / 1x Arena Saint Emblem / 5x Expert Coin / 3x Azrael Random Gem 2-5: 1x Arena Saint Emblem / 1x Random Great Gem / 3x Expert Coin / 2x Kal Runestone 5-10: 2x Kal Runestone / 1x Random Advance Gem / 15x Million Dollar Notes > Refining Gem For Ja Runestones (282,709) > Kong Exchanges NPC Editado (Farm Island) > Fish Exchanges NPC Editado
  15. 2 points
    EN: - Added Reforge Card (Item Mall only) - Fairy Coin Drop Rate Increased - Soul Of Death V1 Exchange Added (281,709) - Added Heal Potions (Shop NPC) - Adjusted Balance (Magic Classes) - Carrion Ball Lv3 Added (Drop On Naval Base Mobs) - C.A Balance Added In BD Lair IGS Shopping Edited - Prices Reduced - Reforge Card Added PT-BR: - Reforge Card Adicionado(Apenas Item Mall) - Fairy Coin Drop Rate Aumentada - Soul Of Death V1 Exchange Added (281,709) - Heal Potions Adicionados (Shop NPC) - Balance Ajustado(Classes Magicas) - Carrion Ball Lv3 Adicionado (Drop Em Naval Base Mobs) - C.A Balance Adicionado Em BD Lair IGS Shopping Editado - Preços Baixados - Reforge Card Adicionado
  16. 2 points
    ITEM MALL AVAILABLE FOR DONATIONS ENGLISH Donations are accepted through PayPal only. Contact one of our GMs to make a donation. Note: You need to contact one of the GMs and provide your - Nickname in-game - Username - PayPal email - The amount you wish to donate. PT-BR As doações para brasileiros são feitas por PayPal, Boletos, Transferencias e Depositos. Entre em contato com um de nossos GMs para fazer uma doação. Obs: Você precisa entrar em contato com um dos GMs e fornecer o seu: - Nickname no jogo - O seu Login - Email do Paypal - A quantia que você deseja doar. DONATE NOW SERVER RULES SUPPORT
  17. 2 points
    Pirates Realms Online Update News 26-07 Added DETAILS Upon entering the game, you can use the commands below to obtain complete guides in three languages: /help code for English /ajuda code for PT-BR /ayuda code for Spanish DISCORD SERVER REGISTER NOW DOWNLOAD NOW
  18. 2 points
    >> ENGLISH << > IGS Shopping Added (Item Mall) - NOTE: The donate will be opened in 1 to 2 hours, we are organizing the prices of the items and also the payment method will be paypal for payment invoices. - For more details about the Item Mall, contact one of our GMs. > Lv45 Cap Added (Equipment Seller NPC) > Lv45 Bow Added (Equipment Seller NPC) > Crusader Slash Nerfed > SealMaster Spiritual Bolt Nerfed > Cleric SP Nerfed > Pliers for the 2nd and 3rd Slots Added (Fortiffication NPC) > New Guide System Added - Command /help for guides in Portuguese (Brazil) - Comando /ayuda for Spanish guides. > Added Reforge Card (No Item Mall) > Greater Health Regenerator/Mana Regenerator Removed > Gems by Ja Runestone Added - NPC exchanges > 281,715 < >> PT-BR << > IGS Shopping Adicionado(Item Mall) - OBS: O donate será aberto em 1 a 2 horas, nos estamos organizando os preços dos items e tambem o meio de pagamento será paypal por faturas de pagamentos. - Para mas detalhes sobre o Item Mall, entre em contato com um dos nossos GMs. > Lv45 Cap Adicionado (Equipment Seller NPC) > Lv45 Bow Adicionado (Equipment Seller NPC) > Crusader Slash Nerfado > SealMaster Spiritual Bolt Nerfado > Cleric SP Nerfado > Pliers para os 2º e 3º Slots Adicionados(Fortiffication NPC) > Novo Sistema De Guias Adicionado - Comando /ajuda para guias em Portugues(Brasil) - Comando /ayuda para guias em Espanhol. > Reforge Card Adicionado (No Item Mall) > Greater Health Regenerator/Mana Regenerator Removidos > Gems por Ja Runestone Adicionado - Trocas no NPC > 281,715 <
  19. 2 points
  20. 2 points
    Updated the program. Returned the graphical user interface, fixed incorrect reading of some versions of Game.exe and now, in addition to viewing, you can also edit parameters in Game.exe: startup parameter, version and port. Download @Graf, @Billie, @cpworkerz, @dominic363
  21. 2 points
    New forum In-PKO "Welcome to the Pirate King Online family! The purpose of creating this community is the desire to unite the Eng & Ru audience, exchange experience and оf course communication, we want to unite Players, Administrators and Developers in one big family. Each of you is a big contribution to the family, and without each of you it's just a forum, we want to build warmth relations between all participants and joint work on your favorite game, development and transfer of experience. Each of your contributions to the community accelerates its development, in the near future we plan to gather an audience and fill out the forum if you are not indifferent to the life of the project - we encourage you to take part in it, to be part of it." Hello friends! I want to tell you about a new forum in our community of developers and administrators of Tales of Pirates (Pirate King Online) servers - in-pko.com, which was opened on June 2, 2020. Enter to the In-PKO The subject of the in-pko.com forum is similar to the subject of the PKODev.NET forum - it is about development and administration of Tales of Pirates (Pirate King Online) servers. The forum is represented by two main sections: Russian and English. Each section contains guides and articles on the technical side of the game, useful files for server and client (server files, websites, special programs), and discusses the problems that arise during the development and administration processes of game projects. The development and exploring of the source codes of the game is underway. On the new forum, you can also find people for your team to develop a project, or join an existing one. An opportunity is offered to make money on the provision of services or to quickly find a contractor. The latest news of the project is published in the corresponding section "News". In addition to sections for developers and administrators, sections for players are also being developed on the forum, in particular, advertising of Russian- and English-speaking game projects. The section with servers advertising has a convenient classification and is divided into the categories: "Stable", "Testing", "Opening soon", "In developing", "Server archive". Each category is divided into servers based on rates: "Low rates", "Average rates", "High rates". Through these sections, game server administrators can find an audience, and players can find a suitable server for the game. To clearly identify the roles of users when communicating, the forum has a system of user groups: 1. Administrators; 2. Moderators; 3. Gold members; 4. Servers owners; 5. Developers 6. Gamers; 7. Members. The general statistics of the In-PKO forum for 1.5 months of work allows us to estimate the pace of its growing. Of the negative aspects, unfortunately, it is worth highlighting the fact that the representatives of this project behave extremely aggressively and use unscrupulous methods to grow their forum. For example, during the last month you could repeatedly see the following picture on our forum: PKODev.NET was spammed with advertisement of the In-PKO forum. In your private messages, you could have received one of these messages. Obviously, this is aimed at luring PKODev.NET users away to the new forum. At the same time, the In-PKO forum does not hesitate to use materials from the PKODev.NET forum without the consent of the authors of the publications and without back links to the originals of the topics. For example, here you can find there the following materials from our forum: "Server Protection for TOP 1.3x", "IP Changer", "Model viewer (.lmo, .lgo, .lab)", ".txt Tables compiling", "In Game Shop 1.35 - 2.0", "Change Server Rate", "How to increase temporary bag capacity", "Create Account", "Change cost of the World / Trade message" and others. To be fair, we emphasize that the forum also contains original content. All these actions bring discomfort to PKODev.NET users and raise questions. One of our users, @Angelix, in his topic "Spamming pkoDev" asks an open question to the In-PKO administration after another attack. In-PKO administration, in turn, denies involvement in spam attacks on PKODev and does not take responsibility for them. I do not know what justifies this behavior and who is involved in this, perhaps the guys want to attract attention to themselves in this way, so I ask you to support the In-PKO forum and register there. There is also a content hiding system on the forum, which can be inconvenient. To view links, scripts, text, you are forced to register and enter the forum. Despite the noted negative points, the new forum is of some interest to the community and deserves attention. Thank you for your attention and have a nice day!
  22. 2 points
    Форум Go-Piratia.ru продан проекту mordo.ru Всем привет! Хочу поделиться с Вами несколько устаревшей новостью, но не менее от этого важной. Я думаю многие знают о форуме go-piratia.ru, который был запущен в начале 2010-ых годов. Тематика данного форума схожа с тематикой форума PKODev.NET, но go-piratia.ru по большей части представлял собой сообщество игроков и позиционировался как форум для рекламы ваших серверов и место для общения между игроками. Если PKODev.NET это администраторы и разработчики, то go-piratia.ru - это в первую очередь игроки. Возможно, вы обратили внимание, что я говорю о форуме go-piratia.ru в прошедшем времени. К сожалению, в конце мая 2020 года форум был продан игровому проекту mordo.ru, и go-piratia.ru превратился в площадку для рекламы этого проекта. На мой взгляд, это большой удар по нашему сообществу разработчиков и администраторов игровых серверов. Во-первых, очередной оплот и место сбора наших единомышленников был уничтожен. Во-вторых, мы наблюдаем как отдельный проект ради выгоды своей администрации стремится установить монополию на рынке Пиратии, поглощая ресурсы, которые создают на этом рынке конкуренцию, а, как известно, конкуренция - это качество. В-третьих, наша игра переживает упадок и увядает, а подобные действия усугубляют эти процессы. Сейчас все темы на форуме go-piratia.ru были перемещены в архив, а раздел с рекламой серверов очищен. В шапке сайта появился видеоплеер, который каждый вечер показывает трансляции с сервера Мордо, не учитывая вашего желания их смотреть: стрим запускается автоматически при входе на форум. Посещаемость форума упала до нескольких пользователей в сутки. Главной достопримечательностью сайта go-piratia.ru был встроенный чат в правом нижнем углу. Теперь, что бы Вы туда не написали, от Вашего имени будет отправлено сообщение: "Все уже играют на www.mordo.online". Видимо, администрация Mordo Online лучше знает, что Вы хотите написать и всё решает за Вас. Проект Mordo Online продолжает скупать домены и ресурсы, связанные с Пиратией: Стоит отметить, что администрация Мордо хотела купить рекламу своего проекта на нашем форуме и практически замахнулась на вопрос о его приобретении. Моя принципиальная позиция состоит в том, что я не хочу чтобы на PKODev.NET была реклама в каком-либо виде. Меня раздражают различные баннеры и всплывающие окна на сайтах в Интернете и я не собираюсь замусоривать ими наш форум. Исключение составляет раздел с рекламой игровых серверов для поддержки наших проектов, где любой администратор на равных условиях с остальными может выложить свой сервер. Предпочтение не отдается ни одному проекту. К вопросу о продаже PKODev.NET: форум PKODev.NET не продается и об этом не может быть речи! Выводы каждый сделает для себя сам. На мой взгляд, это все печально. Но есть и хорошая новость: PKODev сделал соответствующие выводы и несмотря ни на что продолжает свою работу.
  23. 1 point
    PIRATES REALMS ONLINE Pirates Realms Online Official Version !! Server with medium difficulty, with several ways to obtain items and gems and also with an instant level increase. There are also many guides in the game for all start players. You can also obtain guides on our website and on our discord server. (Or use the /help command inside the server to obtain complete guides at any time). Portuguese(Brazil): Servidor com uma dificuldade media, com varias maneiras de conseguir itens e gemas e tambem com level up instantaneo. E tambem com muitos guias dentro do jogo para todos os jogadores iniciantes. Voce tambem pode obter guias em nosso website e tambem no nosso servidor do discord. (Ou use o comando /help dentro do servidor para obter guias completos a qualquer momento). WEBSITE DISCORD SERVER FANPAGE FACEBOOK PUBLIC GROUP SUBSCRIBE INSTAGRAM Realms Features Version: Corsair Medium Server PK Lv Up: Insta Level 45,55,120 Drop Rate: 8X Pet Level: 61 Growth: 750X Initial Equips: Death Equips Maps Main: Fantasy Town Others: Argent City Shaitan City Icicle City Chaos Realms Realms Island Demonic World 1-4 Dark Swamp 1-3 (Lv:55) Forsaken City 1-3 (Lv:45) Chaos Dream (Lv55) Death Circle (Lv45) Capture The Flag (Balanced Map) Guild War (New Map) Farm Island (Farm Map) Barbaric Kyjj_1-3 (Bosses) Coloseum Hell 1-5 (Abaddons) Rebirths: (Quests) Staff Discords: ADM: @K1D0#2020 Developers: @ᴵᵍᵒʳˢᶦˡᵛᵃ#2195 , @Z1K4#4998
  24. 1 point
    Realistically, how likely is it for a casual player to hook gmnotice packets, let alone use AI to win an event in tales of pirates. besides, you can check the time taken to answer the question to validate it if that's the case.
  25. 1 point
    Hello everyone! A few weeks ago i came to the conclusion that every server i happened to visit uses the good old Argent City as a main basis. Some of them are edited for better or worse, but isnt it boring? So i decided to try to make maps on my own. The reason i write this post is to get an answer for a question: Would you like to use a new map with some forest and a city which isnt too big but enough for the basic needs of NPCs? Would you like to have PK maps or mazes which isnt the good old ones, but fresh and made by heart? I actually have a few maps right now done and under developement, and if making maps turn out to be half as needed as custom apparels ( which i also want to do in the future with other custom "stuff" ) then here is the chance if the community wants me to do it! I will show some print screens of my maps below to help you: Race map aka Super Maria ( thats how i personally adress the map, but officially its a Race map ) The race map has a unique shape, and style. I wanted it to be a little dark, a little olymics feeling (?) The size is 180x180 Has an A and a B version : version A has black boxes around it, version B is an update where the boxes are gone Has a minimap The wild life around the race field was also planned and styled out, and the same amount everywhere, with shades. See the pictures in this PDF file Frozen Island ( It doesnt have a proper name yet ) This frozen island says no the the icicle buildings, its a fortress which was frozen by a time, ice and maybe magic?
  26. 1 point
    Server Launch: 04/07/2020 Server based for solitary players and groups who speak English and Spanish. Have a similar characteristics with top but drop and Exp into bosses and mazes is high. Website (Coming Soon) Discord Facebook Server Rates Max lv 100 Max lv pet 50 Max lv Ship 50. 1x Solo 2x Party 300x Fairy-growth 1x Global Drop 1x Ship Features (New) Newbie Chest upgrade to lv 70. items and functions Mobs (No drop equipment's only resource with price of 1k. with 60% of Local Drop.) 52 New bosses in argent [coming soon shaitan and icicle] - with 60% of Local Drop. Meteorite drop Coal Ore,Meteorite Fragment and other resource for farm gold, change for items and cooking of food, price of resource 1k. Legendary Tree Drop Diferent Type of Wood for future cooking of food, price of resource 1k Fish Spot [Sea] Drop Diferent type of Fishe's for future cooking of food, price of resource 1k. Main Maps Argent City Shaitan City Icicle City Mazes (New) Forsaken City 1F (Reworked with mobs of 2F and 3F) Time of opening: 00:00, 03:00, 06:00, 09:00, 12:00, 15:00, 18:00, 21:00. Server time. Dark Swamp (Reworked) Time of opening: 01:00, 04:00, 07:00, 10:00, 13:00, 16:00, 19:00, 22:00. Server time. Demonic World 1F (Reworked with mobs of 2F) Time of opening: 02:00, 05:00, 08:00, 11:00, 14:00, 17:00, 20:00, 23:00. Server time. Chaos Argent (Clasic Version but with New Drop) Time of opening: 00:00, 03:00, 06:00, 09:00, 12:00, 15:00, 18:00, 21:00. Server time. Npc's System (New). New Npc's With Tag example [Nurse] - Carla and with two languages: English and Spanish Npc [Nurse] - Free Heal only into Argent,Icicle and Shaitan. Npc [Newbie Guide] Senna - Welcome Quest Npc [Newbie Guide] Sharon, Darcy and Luci for spanish community. Npc [Pet Home] with system of adoption. Npc [Blacksmith] - Sell Items and weapons for [Lv10 to Lv 60] + (Forge,Fusion appa,Combine gems,Repair,Socket,Plier Gems) Npc [Tailor] Sell Equipment for [Lv10 to Lv 60] into diferent City. Npc [Skill Class] Sell Books for First and Second class in diferent City. Npc [Tickets] Sell tickets basic and advance for argent,icicle and shaitan. (More coming soon) Npc [Hairstyle] Sell items for change your style of hair. Npc [Physican] Sell potions basic for hp and sp. Npc [Cleaner] - Clean Meteorite fragment for obtain a random item. Npc [Class Advancer] for change the class of your character. Npc [Skill Survival] for buy tools and items for fishing,mining,stall and woodcuting. Event NPC Pappa [Coming soon] It is a new project and we are open to suggestions from users to make their experience a wonderful one. We do not plan to be just another server, but a server that is marked in your life and memory.
  27. 1 point
    I guess it's this one, http://www.mediafire.com/file/tmse0tejcuxt9jj/FoxLv.exe/file
  28. 1 point
    it's a very simple algorithm that calculates a number of replace, insert and delete operations needed to transform string1 into string2 giving you an approximate distance. For instance, I used it in my website database (when user searches for a monster, I would split the user input and compare it to strings from characterinfo to check how similar they are and then output the results accordingly). You could do something like that to give out the rewards fairly, too. Cause for instance if one types fairy coi instead of fairy coin, they wouldn't get the reward even though it's the correct answer just with a typo. Obviously there are better, more complex and way more accurate algorithms out there. I'm just throwing some ideas
  29. 1 point
    System Name: Special Apparel Shop - Monster Model Credits: @Billy, Idea for debug npc page calculation, ApparelShop.Init(); @Satan, Release and debug/organization of system; Undead Pirates Online, System idea original scripts; Introduction: A decoration shop where players can try the apparel before purchase it. Trigger to summon a monster model and show the player the apparel. The requeriment to purchase any apparel of this shop is a Special Apparel Card, price can be easily set to each apparel on the table. You can define the card on the var ApparelShop.Card. Apparel model has been set with Dream Island coordinates, change if used in another map. Functions: ApparelShop.SummonMob(), ApparelMonsterModel(). Change Logs: - Script Created (08/12/2016) - Release of scripts v1.0 (04/30/2017) - Original scripts by UPO Old scripts
  30. 1 point
    Hello everyone! We Opened our Official, i'd like to invite everyone to join our Server! It's based on Medium Rates! I'd like to invite you to our Discord Channel you will be informed about News & Much more in our Discord! Link to our Discord: https://discord.gg/RKyAk99 Link to our Website: http://buccaneers-online.com/ Server Rates: Max Level: 80 (Will be raised on future)! Max Pet Level: 50 3x Solo Exp 6x Party Exp 3x Drop Rate 5x Fairy Growth 2x Ship Exp
  31. 1 point
    Hey V3ct0r, thanks for your vote for me in the Community group
  32. 1 point
    Очень хорошая, многообещающая сборка. Идти на нее крайне не советую по следующим причинам: 1. ГМ не занимается сервером: нет рекламы, нет обновлений, нет связи с игроками. Нет ничего. Сервер, однозначно, был запущен для того, чтобы выкачать из игроков денег и забить. 2. Постоянные вайпы. По словам гма: "Вот на этот раз вайпа точно не будет". Через неделю-две сервер вайпается. 3. В пятницу вечером может упасть карта, а поднимут ее в понедельник в обед, потому что ГМ на все выходные уехал на юбилей к себе/братюне/тете/бабушке/собачке. Это не единичный случай - каждые выходные что-то ломается. Начиная от нескольких нпсов и данжей, заканчивая падением карты. 4. Вытекает из всех выше описанных причин - постоянный отток игроков. Новичков не прибавляется, потому что рекламы нет. Люди уходят из-за того, что устают ждать, когда тот или иной нпс заработает или карту поднимут. ГМ никакой инфы по срокам не дает. Рандомно приходит в любое время суток и релогает. 5. О релогах, кстати, вы нигде не узнаете, кроме системного чата. ГМ приходит, пишет в систему "Релогаю на n минут". Иногда еще описывает туда же, что он добавил/изменил. Если на этот момент вас не было в игре, об изменениях вы можете узнать только от своих знакомых, если они успели прочитать системный чат. 6. Рисовки. Друзья гма с рисованным шмотом гуляют по этому серверу от вайпа к вайпу. Обычно появляются через 2-3 недели после старта. Часть утверждает, что они просто жестко донатят, другая часть даже в этом себя не утруждает - открыто рассказывают, что весь их шмот нарисован. 7. Фишка сервера - "Завтра обнова" или "Скоро обнова". ГМ кормит игроков завтраками почти каждый день. По факту не делает ничего неделями. 8. На хай контенте нечего делать. Всё сводится к фарму мешков на ап плащей. Самые выгодные места - тыквы (ПВЕ локация) и абуз знатока в городе судьбы. В итоге тот, кому ума хватает держать респ тыкв и делать твинов на знатока, - молодец. Остальные сидят в шае на скамейках либо просто ливают с сервера. На сервер можно зайти чисто ради того, чтобы познакомиться со сборкой, так как она реально хороша, но дольше недели задерживаться не вижу смысла, пока не будут решены все выше описанные проблемы. Думаю, такой список решится только полным ребрендингом и сменой ГМа. Тимур этот сервер не развивает, как он говорит, а только портит
  33. 1 point
    Добро пожаловать на Life Pirates [Обновление Vr. 0.1] Анжела Мл. и 155 Шмот и Оружие В этом обновление мы добавили Анжелу Младшую и 155 Шмот, Оружие. Как можно получить Анжелу? Анжелу можно получить при спаривание 2 Мордо Мл. 150 лвл. Какой лут надо для спаривание? 2 Мордо Мл. 150 лвл 20 Сладостей ( ДВ 1 с монстров падает с шансом 1% ) 20 Курятин ( ДВ 2 с монстров падает с шансом 1% ) Адский фрукт Анжелы Мл. ( Вечный Абаддон падает с Кары с шансом 5% ) Дальше поговорим про 155 Шмот и Оружие который были добавлены у нас в игре. Как же получить 155 Шмот и Оружие? Для того чтоб вы смогли получить шмот вы должны убить 4 сильнейших Быков которые находиться на острове Зефира. На нем попасть можно через НПС который находиться в Аргент по координатам[2201,2781]. Какой лут надо для 155 Шмота и Оружие? 4 Бог Руны которые падают с этим быков 151 Шмот Клещи по слотам? Это очень просто работает и очень удобно, теперь их 3 вида 1, 2, 3 слот, если вы решил менять Самоцвет в одном из вашем слоте довольно купить соответствующие Клещи, они продаются у Кузнеца в Аргент, там же можете вытащить самоцветы. Баланс Маг Классам? Мы поднимали Рей Вою и Призрачный Огонь у СМ и БК, сейчас работаем над том чтоб добавить сатан, и делать так чтоб классы были более менее равны. На этом наше обновление подходит к концу, ждем каждого из вас на нашем игровом сервере, всем приятной игры. С уважением команда Life Pirates.
  34. 1 point
    Группы пользователей На нашем форуме действует система групп пользователей. Для более удобного распознавания пользователей в определённых группах, псевдонимы пользователей окрашиваются в определённый цвет. В данный момент существует 6 групп пользователей: Администратор; Комьюнити; Модератор; Администратор сервера; Продвинутый пользователь Пользователь. Пользователь Чтобы вступить в эту группу, достаточно зарегистрироваться на нашем форуме и соблюдать правила. Для группы "Пользователь" существуют ограничения: 1) Нельзя отправлять личные сообщения; 2) Нельзя писать посты в профиле (обновления статуса); 3) Нельзя редактировать посты; 4) Нельзя прикреплять вложения. 5) Можно давать только 10 реакций в день. Продвинутый пользователь У данной группы отсутствуют ограничения группы "Пользователь". Чтобы попасть в группу "Продвинутый пользователь" необходимо выполнить два условия: 1) С момента регистрации на форуме должно пройти не менее 10 дней; 2) У пользователя должно быть не менее 10 постов. Администратор сервера Данная группа предназначена для администраторов игровых серверов. Заявки на вступление в группу подаются одному из администраторов форума. Требования для вступления в группу: 1) Количество сообщений на форуме 50 и более; 2) Репутация 10 и более; 3) Срок пребывания на форуме с момента регистрации более 15 дней; 4) Работающий игровой сервер; 5) Одобрение администрации. Модератор Участники группы имеют доступ к панели модератора. Заявки на вступление в группу подаются одному из администраторов. Администратор сам решает отказать или нет и сам решает какой формой приема воспользоваться. Администратор вправе принять вас в группу или в праве отказать. Также он вправе предварительно обсудить вашу кандидатуру с другими участниками группы "Модераторы". Требования для вступления в группу: 1) Срок пребывания на форуме с момента регистрации более 30 дней; 2) Репутация 15 и более; 3) Отсутствие нарушений правил форума; 4) Одобрение администрации. Комьюнити Эта группа для пользователей, которые внесли большой вклад в развитие форума и так или иначе влияют на развитие сообщества. Администраторы сами решают кого взять в эту группу. Администратор Без комментариев.
  35. 1 point
    PIRATES REALMS ONLINE Pirates Realms Online Official Version !! Server with medium difficulty, with several ways to obtain items and gems and also with an instant level increase. There are also many guides in the game for all start players. You can also obtain guides on our website and on our discord server. (Or use the /help command inside the server to obtain complete guides at any time). Portuguese(Brazil): Servidor com uma dificuldade media, com varias maneiras de conseguir itens e gemas e tambem com level up instantaneo. E tambem com muitos guias dentro do jogo para todos os jogadores iniciantes. Voce tambem pode obter guias em nosso website e tambem no nosso servidor do discord. (Ou use o comando /help dentro do servidor para obter guias completos a qualquer momento). WEBSITE DISCORD SERVER Realms Features Version: Corsair Medium Server PK Lv Up: Insta Level 45,55,120 Drop Rate: 8X Pet Level: 61 Growth: 750X Initial Equips: Death Equips Maps Main: Fantasy Town Others: Argent City Shaitan City Icicle City Chaos Realms Realms Island Demonic World 1-4 Dark Swamp 1-3 (Lv:55) Forsaken City 1-3 (Lv:45) Chaos Dream (Lv55) Death Circle (Lv45) Capture The Flag (Balanced Map) Guild War (New Map) Farm Island (Farm Map) Barbaric Kyjj_1-3 (Bosses) Coloseum Hell 1-5 (Abaddons) Rebirths: (Quests) Staff Discords: ADM: @K1D0#2020 Developers: @ᴵᵍᵒʳˢᶦˡᵛᵃ#2195 , @Z1K4#4998
  36. 1 point
    Привет, @Away! Это нетривиальная задача, поскольку администрация ПО могла использовать какие угодно алгоритмы шифрования текстур и для получения этих алгоритмов необходимо проводить реверс-инжиниринг Game.exe, что является достаточно трудоемкой операцией.
  37. 1 point
  38. 1 point
  39. 1 point
    |English| Our beta version is already scheduled and will be next Saturday, July 11, at 9:00 am California time, see also other times below. |Portuguese(Brazil)| Nossa versão beta já está agendada e será no próximo sábado, 11 de julho, às 9:00 da manhã no horário do estado da Califórnia, veja também outros horários abaixo. |Spanish| Nuestra versión beta ya está programada y será el próximo sábado 11 de julio a las 9:00 am hora de California. Ver también otras veces a continuación. Subscribe: Others Times: Mexico City: 11:00 AM Brasilia: 13:00 PM Toronto: 12:00 PM New York: 12:00 PM La Paz: 12:00 PM Caracas: 12:00 PM Buenos Aires: 1:00 PM London: 5:00 PM Singapore: 00:00 (Sunday) Manila: 00:00 (Sunday)
  40. 1 point
    Boss Knowledge System: English: Npc Boss Knowledge - Graves will help all players with guides on bosses during respawn times as well as drops and percentages and too coordinates to find them. Portuguese(Brazil): O Npc Boss Knowledge - Graves ajudará a todos os jogadores com guias sobre os bosses em horarios de respawns quanto tambem em drops e tambem porcentagens deles e coordenadas para encontra-los. CLICK HERE
  41. 1 point
    That reply was posted 4 years ago. What you really needed was stated. For example, you want to add "Legendary Wings" to your server, first of all you have to get the ItemInfo line and add it to your server files>resource>iteminfo.txt then paste that then in your client>scripts>table 7841 Legendary Wings n2002 10130005 0 0 0 0 0 0 44 0 0 0 0 0 1 1 1 1 1 0 0 -1,-2,-2,-2 0 -1,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2 0 0 -1,-2,-2,-2,-2,-2,-2,-2,-2,-2 -1,-2,-2,-2,-2,-2,-2,-2,-2,-2 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,0 5000,5000 0 0 0 0 0 0 0 0 0 0 0 0 0 4014,24 0 0 Tattered wings of the Legendary Dragon. Place at 1st inventory slot to see effect. 0 Replace "7841" by the ID you wish for it to have, then you have to go to sceneeffectinfo.txt and look for this ID In this case, it's this: 4014 01020026.par Legendary Class Sea Wave 1 0 24 -1 0 0 0 -1 Paste that in your server files>resource>sceneeffectinfo.txt and compile it to a .bin file using the compiler, paste that then in your client>scripts>table Then, extract these files in your client If you follow these steps properly then you will have it done easily.
  42. 1 point
    Aero Wings System: You can fly with any wings on the server if an Aero Wing Upgrade is added. Voce pode voar com qualquer asas do servidor que for adicionada um Aero Wing Upgrade. CLICK HERE
  43. 1 point
  44. 1 point
    If you just want it to be smaller, maybe you can modify scaling in characterinfo.txt. Not sure what client you are using, so it might not work. In top-recode, the client source had it disabled, but easy to enable. In characterinfo.txt last 3 floats, eg, 1.0,1.0,1.0 for Long Haired Guy (ID 1) . In SceneCreateNode.cpp, function CCharacter* CGameScene::AddCharacter(int nScriptID) // added by clp 设置缩放 D3DXVECTOR3 scale(pInfo->scaling[0], pInfo->scaling[1], pInfo->scaling[2]); // Comment this out // 读表可能有问题。。暂时不支持缩放 //scale.x = 1.0f; //scale.y = 1.0f; //scale.z = 1.0f;
  45. 1 point
    ** Cha_timer if IsPlayer(role) == 1 then MapOpenWindow(role) end
  46. 1 point
    https://gyazo.com/848dfe94a18c83d30eef89c52abe53fc https://gyazo.com/725af86c5968509577ea9304dc7b8c4c https://gyazo.com/9682cfe9d8ffd5d88a0b9f31ef3f1276 I stole the same design from the flyFF website to a friend's server k k k
  47. 1 point
    У себя в облаке нашёл эту коллекцию и так как вектор не ответил, нужна ли тема эта здесь или нет, то я залью, а если удалить, то удалит.. Пока это сборки с облака, ещё с харда солью залежи.. Итак, 1) Little WarriorS Revival (не знаю, паблик или нет) 2) Lom Svr Files 3) Top 2 Server files 4) ФАН-СССР 5) Корсары 6) xmdw-1._1_.11a 7) war of pirats 8) noname1 (есть GMcmd, уровни для GM команд) 9) Conc1av (какая - хз) 10) Папка resource 11) [Server File]Sacred PK Online - 26April2016_1708 12) ShiningPackage (клиент или патч в комплекте) 13) resource Рюни (хз кто это) Все ссылки - вечные. Сборки все были скачаны с пабликов либо скинуты в skype. Если ещё чего найду, докину...
  48. 1 point
    1) Stall Server (Offline Stall) Update Character remain trading in set stall when player leaves the game. 1) Fixed IP addresses of players in the database, now their real IP addresses are saved in the database, not 127.0.0.1; 2) Fixed random disconnection of players; 3) When player try to login an account that is in an offline stall, the player will not see the message "Your account is already in the game"; 4) Fixed offline stall auto closing when it becomes empty. Now offline stalls nearby will not be disabled. 2) Names for Navy guilds (Navy Division) Now it's possible to create navy guilds with names. 3) Swings Works with Rebirth Wings. 4) Specify GameServer.exe the name of the game database By default, GameServer works with a database named GameDB and this name can not be changed, since it is stored in GameServer.exe. There is a new setting is added in GameServer.cfg that allows you to specify GameServer.exe with which database to work. db_name = HelloWorld 5) A tool to cut off maps with objects Download samples 6) Add IGS Crystals function (In-Game Shop) Now you can add IGS crystals to player's account from GameServer Lua scripts. AddCrystals("Account", amount) 7) Web for TOP/PKO Server
  49. 1 point
    К чему ты это написал ? Твоя самооценка мне понятна, твоего варианта реализации я к сожалению не увидел! А теперь держи мой, и впредь веди себя по проще, а то залетел тут с наездом, "разработчик от бога" блин. cha_timer в самое начало. CoolDown(role) function в самый конец. function CoolDown(role) local servertime = os.time() local cha_name = GetChaDefaultName(role) if COOL_DOWNS[cha_name] < servertime then COOL_DOWNS[cha_name] = 0 end end varieble в самое начало. COOL_DOWNS = {} ItemEffect в самый конец. --Свиток Баффа function ItemUse_Buff(role) local server_time = os.time() + 100 -- Время в секундах local cha_name = GetChaDefaultName(role) if COOL_DOWNS[cha_name] == nil then COOL_DOWNS[cha_name] = 0 return end if (COOL_DOWNS[cha_name] >= 1) then finish = COOL_DOWNS[cha_name] - os.time() UseItemFailed ( role ) datetime = os.date("!*t", finish ) SystemNotice(role, "Что бы использовать предмет, нужно подожать: осталось подождать ".. tostring(datetime.min) .. " минут(а, ы), ".. tostring(datetime.sec) .. " секунд(ы, у). ") elseif (COOL_DOWNS[cha_name] == 0) then AddState (role, role, STATE_XLZH, 10, 1800) AddState (role, role, STATE_SHPF, 10, 1800) AddState (role, role, STATE_MLCH, 10, 1800) AddState (role, role, STATE_FZLZ, 10, 1800) AddState (role, role, STATE_TSHD, 10, 1800) SystemNotice (role, "Вам предоставлены все бафы 10 уровня на 30 минут , приятного фарма! ") COOL_DOWNS[cha_name] = server_time end end Вот и всё, и не нужно тут никого унижать, ты тут не основной тип, просто не каждому это барахло надо, что бы время на него тратить, Лев Толстой ...
  50. 1 point
    Hi, Jones here from BPO. In this post I will show you how to write a simple script and explain how it works. There are 2 things in the script that I'm not sure of, so maybe someone can also confirm it to me. function ItemUse_KylinChest ( role , Item ) local cha = TurnToCha ( role ) --// define [cha] as the character (?) local cha_type = GetChaTypeID ( cha ) --// get the character's type (1 = Lance, 2 = Carsise, 3 = Phyllis, 4 = Ami) and put into definition as [cha_type] local Item_CanGet = GetChaFreeBagGridNum ( role ) -- Define [Item_CanGet] as Free Grid space in Character's Inventory. (Free Slots) if Item_CanGet <= 3 then -- If Free Slots in inventory EQUALS or LESS THAN 3, then SystemNotice(role ,"Requires 4 slots in inventory to open the Kylin Chest!") -- Initiate a System Message UseItemFailed ( role ) -- Fail to use the item. return end -- Close [if] GiveItem ( cha , 0 , 825 , 1 , 0 ) -- Give Item to character, 0, 825 (Item ID), 1, 0 GiveItem ( cha , 0 , 826 , 1 , 0 ) -- Give Item to character, 0, 826 (Item ID), 1, 0 GiveItem ( cha , 0 , 827 , 1 , 0 ) -- Give Item to character, 0, 827 (Item ID), 1, 0 local cha_name = GetChaDefaultName ( role ) -- Define [cha_name] as Character's name, VALUE: [GetChaDefaultName ( role )] local message = cha_name.." opens the the Kylin Chest and gets a Kylin Set!" -- Define [message] as the following message. Notice ( message ) -- Do a world-announcement (Notice) for the message. end -- Close the Function You can put this script into ItemEffect.lua in scripts>calculate>itemeffect.lua and make an item with XXXX id, then define the ItemUse_Function as ItemUse_KylinChest. eg. 7694 Kylin Chest n1755 10130016 0 0 0 0 0 0 31 0 0 0 0 0 1 1 0 1 1 0 200 -1,-2,-2,-2 0 -1,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2 0 0 -1,-2,-2,-2,-2,-2,-2,-2,-2,-2 -1,-2,-2,-2,-2,-2,-2,-2,-2,-2 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,0 0,0 0 0 0 0 0 0 0 0 0 ItemUse_KylinChest 0 0 0 0,0 0 0 Click to obtain the Kylin Set! 0 7694 is the Item ID Kylin Chest is the Name n1755 is the Icon After that, you can double click on the item and the function will play itself!
  • Newsletter

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