Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation since 11/13/2019 in all areas

  1. 3 points
    Hello @scapegoat! This error due to many npc or monster in map, this limit can be increased thought the GameServer.cfg. Search for the following, that limits on mine: [Entity] max_ply = 1000 max_cha = 30000 max_item = 30000 max_tnpc = 1000
  2. 2 points
    Since the game is designed on technology from 2007, I guess nobody thought of making the gfx for 4K. You will have to redesign everything so it supports your 4K monitor. :)
  3. 2 points
    @scapegoat try to connect fewer maps.
  4. 1 point
    Сайт -- Группа ВК -- Форум Мы представляем вам нашу далеко не законченную сборку для освоения новых просторов и помощи в развитии проекта. Открытие состоится 23.11.2019 в 18:00 по Московскому времени Ссылки на клиент вы увидите в - ссылка добавится позже. Зарегистрировать игровой аккаунт вы можете по ссылке - ссылка появится позже. Рейты: Качер Дроп - х1; Квесты - х1; Фея - х328. Карты: Бомбезия; Остров Лавы(в разработке); Дебри(в разработке); Забытый город(3 этажа); Темная топь; Хаос Аргента; АД Создание слотов - 100% Шансы ковки и комбинирования: 2-9 уровни - 100%; Максимальные характеристики: 1. Сила - 250; 2. Ловкость - 250; 3. Точность - 250; 4. Телосложение - 250; 5. Дух - 350. Введенные самоцветы: +5; +6; +7; +10; +1500 хп; +1000 мн; +50 защиты; +25 скорости атаки; +25 скорости бега; +4 пр. Это не окончательный список. Недавние события: 1. Упразнен кач на монстрах; 2. Добавлены визуальные изменения в игре; 3. Упростили добычу самоцветов; 4. Введено в серверную часть 16 сетов(5 уже доступны в игре); 5. Появилась прямая катализация предметов (вещь + катализатор = новая вещь); 6. Установлена новая система эволюции фей; 7. Введены такие вещи, как крылья, плащ, звания и многое другое с характеристиками... 8. Изменен начальный город; 9. Собрана коллекция данжей; 10. Установлены вещи интернет-магазина (наверное каждого игрока это).А именно в него войдут все эксклюзивные аппарели, "випки", камни увеличения шансов для работы с кузнецом, визуальные эффекты, изменение ников/названий. Ничего весомого там нет и не будет.САМ ИМ БУДЕТ ДОСТУПЕН, ПРИМЕРНО, ЧЕРЕЗ НЕДЕЛИ ДВЕ-МЕСЯЦ ПОСЛЕ ОТКРЫТИЯ. 11. Установлен административный состав(2 администратора, 3 модератора).Да данном этапе имеются 2 администратора и 1 модератор. 12. Почти круглосуточная поддержка игроков; 13. Жёсткие реформы контроля действий руководства; 14. Поправлены кольца Новичка; 15. В ожерелье Новичка добавлена скорость бега +100; 16. Со всех умений покорителя морей убрана потребность в использовании кораллов; 17. Увеличено количество Убивашек вокруг Бомбезии; 18. Поставлен НПС "Телепорт" из Темного города; 19. Добавлено свечение всем аппарелям; 20. Вокруг Бомбезии с монстров падает золото, в размере 20-50к; 21. Баффер, целитель, качер реализованы в игровой части; 22. Шанс улучшения аппарели - 100%(одним свитком сразу до 120%); 23. Введены русские ники (можно прописывать при создании персонажа); 24. Введено перерождение 2,3; 25. Введен плащ 1-20 уровень. Каждый уровень дает +7 ко всем характеристикам(планируется ввод улучшенного плаща). И многое другое!
  5. 1 point
    Hello, @seemsq8! I think you need redraw textures for all UI elements (forms, buttons, input fields, etc) in higher resolution.
  6. 1 point
    people made a guide on how to install mssql. visit pko.coffeecup.com
  7. 1 point
    I was going through this annoying problem and I saw that there was no guide here then it turns out our dear Tales of pirates is a very old game that uses a directx that is disabled in windows 10! you need to install all directx dlls and enable directplay The dlls download link below and the activator https://drive.google.com/drive/folders/1RVTXOU6Emf-PHravOHMUaUzLTRsZx9HM?usp=sharing
  8. 1 point
    Привет, @Ropedann! Создай хотя бы одну запись в таблице Account базы данных GameDB
  9. 1 point
    Привет, @Ropedann! Заголовок: 1 байт длина названия .pk файла (например, 0x17) N байт название .pk файла (например, "texture\minimap\garner2") 4 байта число файлов-фрагментов (.bmp-картинок, из которых состоит карта) 4 байта неизвестно (значение 0x00000000) Таблица файлов: 1 байт длина названия .bmp файла (например, 0x0A) N байт название .bmp файла (например, "sm_1_0.bmp") 4 байта адрес .bmp файла относительно начала .pk файла (например, 0x00000293) 4 байта размер .bmp файла Данная структура записывается число файлов-фрагментов раз после заголовка. Файлы: Далее идут байты .bmp файлов. Вот простая программа на языке C++, которая распаковывает .pk файлы: #include <iostream> #include <string> #include <fstream> // Точка входа int main(int argc, char* argv[]) { // Путь до .pk файла std::string pk_path = "texture\\minimap\\garner2\\garner2.pk"; // Напишем сообщение что распаковываем файл std::cout << "Unpacking file " << pk_path << "..." << std::endl << std::endl; // Открываем файл std::ifstream pk(pk_path, std::ifstream::binary); // Проверим, что файл открылся без ошибок if (pk.fail() == true) { // При открытии файла возникла ошибка std::cout << "Can't open file " << pk_path << "!" << std::endl; return 1; } // Длина названия .pk файла unsigned char name_len = 0; // Буфер под название .pk-файла char name[255] = { 0x00 }; // Число фрагментов в .pk файле unsigned int file_num = 0; // Неизвестно unsigned int unknown = 0; // Читаем заголовок pk.read(reinterpret_cast<char*>(&name_len), sizeof(name_len)); pk.read(name, static_cast<unsigned int>(name_len)); pk.read(reinterpret_cast<char*>(&file_num), sizeof(file_num)); pk.read(reinterpret_cast<char*>(&unknown), sizeof(unknown)); // Распечатаем заголовок std::cout << "HEADER:" << std::endl; std::cout << ".pk file name length: " << static_cast<unsigned int>(name_len) << std::endl; std::cout << ".pk file name: " << name << std::endl; std::cout << ".bmp files number: " << file_num << std::endl; std::cout << "Unknown value: " << unknown << std::endl << std::endl << std::endl; // Длина названия .bmp файла unsigned char bmp_name_len = 0; // Название .bmp файла char bmp_name[255] = { 0x00 }; // Адрес .bmp файла unsigned int offset = 0; // Размер .bmp файла unsigned int size = 0; // Распечатаем таблицу std::cout << "FILES:" << std::endl; // Читаем таблицу файлов for (unsigned int i = 0; i < file_num; i++) { // Считываем запись pk.read(reinterpret_cast<char*>(&bmp_name_len), sizeof(bmp_name_len)); pk.read(bmp_name, static_cast<unsigned int>(bmp_name_len)); pk.read(reinterpret_cast<char*>(&offset), sizeof(offset)); pk.read(reinterpret_cast<char*>(&size), sizeof(size)); // Распечатаем запись std::cout << ".bmp file name length: " << static_cast<unsigned int>(bmp_name_len) << std::endl; std::cout << ".bmp file name: " << bmp_name << std::endl; std::cout << ".bmp file offset: " << offset << std::endl; std::cout << ".bmp file size: " << size << std::endl; // Запомним текущий адрес std::streamoff pos = pk.tellg(); // Переходим на адрес файла pk.seekg(offset, std::ifstream::beg); // Выделяем память под файл char* bmp_bytes = nullptr; try { bmp_bytes = new char[size]; } catch (const std::bad_alloc & e) { // Не удалось выделить память! std::cout << "Can't allocate memory for file " << bmp_name << "!" << std::endl; std::cout << "Error: " << e.what() << std::endl; // Возвращаемся к таблице файлов pk.seekg(pos, std::ifstream::beg); // Пропускаем итерацию continue; } // Считываем файл pk.read(bmp_bytes, size); // Создаем файл std::ofstream bmp(bmp_name, std::ofstream::binary); // Проверим, что файл создан if (bmp.fail() == false) { // Пишем байты изображения из .pk файла в новый .bmp файл bmp.write(bmp_bytes, size); // Напишем в консоль сообщение что файл был извлечен std::cout << "File " << bmp_name << " has been extracted!" << std::endl << std::endl; // Закрываем .bmp файл bmp.close(); } else { // Не удалось создать файл std::cout << "Can't create file " << bmp_name << "!" << std::endl << std::endl; } // Особождаем память delete[] bmp_bytes; // Возвращаемся к таблице файлов pk.seekg(pos, std::ifstream::beg); } // Закрываем .pk файл pk.close(); // Программа закончила работу std::cout << "Done!" << std::endl; return 0; } Вывод: Unpacking file texture\minimap\garner2\garner2.pk... HEADER: .pk file name length: 23 .pk file name: texture\minimap\garner2 .bmp files number: 33 Unknown value: 0 FILES: .bmp file name length: 10 .bmp file name: sm_1_0.bmp .bmp file offset: 659 .bmp file size: 5176 File sm_1_0.bmp has been extracted! .bmp file name length: 10 .bmp file name: sm_1_1.bmp .bmp file offset: 5835 .bmp file size: 5176 File sm_1_1.bmp has been extracted! .bmp file name length: 10 .bmp file name: sm_1_2.bmp .bmp file offset: 11011 .bmp file size: 5176 File sm_1_2.bmp has been extracted! .bmp file name length: 10 .bmp file name: sm_1_3.bmp .bmp file offset: 16187 .bmp file size: 5176 File sm_1_3.bmp has been extracted! .bmp file name length: 10 .bmp file name: sm_1_4.bmp .bmp file offset: 21363 .bmp file size: 5176 File sm_1_4.bmp has been extracted! .bmp file name length: 10 .bmp file name: sm_2_0.bmp .bmp file offset: 26539 .bmp file size: 5176 File sm_2_0.bmp has been extracted! .bmp file name length: 10 .bmp file name: sm_2_1.bmp .bmp file offset: 31715 .bmp file size: 5176 File sm_2_1.bmp has been extracted! .bmp file name length: 10 .bmp file name: sm_2_2.bmp .bmp file offset: 36891 .bmp file size: 5176 File sm_2_2.bmp has been extracted! .bmp file name length: 10 .bmp file name: sm_2_3.bmp .bmp file offset: 42067 .bmp file size: 5176 File sm_2_3.bmp has been extracted! .bmp file name length: 10 .bmp file name: sm_2_4.bmp .bmp file offset: 47243 .bmp file size: 5176 File sm_2_4.bmp has been extracted! .bmp file name length: 10 .bmp file name: sm_2_5.bmp .bmp file offset: 52419 .bmp file size: 5176 File sm_2_5.bmp has been extracted! .bmp file name length: 10 .bmp file name: sm_2_6.bmp .bmp file offset: 57595 .bmp file size: 5176 File sm_2_6.bmp has been extracted! .bmp file name length: 10 .bmp file name: sm_3_0.bmp .bmp file offset: 62771 .bmp file size: 5176 File sm_3_0.bmp has been extracted! .bmp file name length: 10 .bmp file name: sm_3_1.bmp .bmp file offset: 67947 .bmp file size: 5176 File sm_3_1.bmp has been extracted! .bmp file name length: 10 .bmp file name: sm_3_2.bmp .bmp file offset: 73123 .bmp file size: 5176 File sm_3_2.bmp has been extracted! .bmp file name length: 10 .bmp file name: sm_3_3.bmp .bmp file offset: 78299 .bmp file size: 5176 File sm_3_3.bmp has been extracted! .bmp file name length: 10 .bmp file name: sm_3_4.bmp .bmp file offset: 83475 .bmp file size: 5176 File sm_3_4.bmp has been extracted! .bmp file name length: 10 .bmp file name: sm_3_5.bmp .bmp file offset: 88651 .bmp file size: 5176 File sm_3_5.bmp has been extracted! .bmp file name length: 10 .bmp file name: sm_3_6.bmp .bmp file offset: 93827 .bmp file size: 5176 File sm_3_6.bmp has been extracted! .bmp file name length: 10 .bmp file name: sm_4_0.bmp .bmp file offset: 99003 .bmp file size: 5176 File sm_4_0.bmp has been extracted! .bmp file name length: 10 .bmp file name: sm_4_1.bmp .bmp file offset: 104179 .bmp file size: 5176 File sm_4_1.bmp has been extracted! .bmp file name length: 10 .bmp file name: sm_4_2.bmp .bmp file offset: 109355 .bmp file size: 5176 File sm_4_2.bmp has been extracted! .bmp file name length: 10 .bmp file name: sm_4_3.bmp .bmp file offset: 114531 .bmp file size: 5176 File sm_4_3.bmp has been extracted! .bmp file name length: 10 .bmp file name: sm_4_4.bmp .bmp file offset: 119707 .bmp file size: 5176 File sm_4_4.bmp has been extracted! .bmp file name length: 10 .bmp file name: sm_4_5.bmp .bmp file offset: 124883 .bmp file size: 5176 File sm_4_5.bmp has been extracted! .bmp file name length: 10 .bmp file name: sm_5_0.bmp .bmp file offset: 130059 .bmp file size: 5176 File sm_5_0.bmp has been extracted! .bmp file name length: 10 .bmp file name: sm_5_1.bmp .bmp file offset: 135235 .bmp file size: 5176 File sm_5_1.bmp has been extracted! .bmp file name length: 10 .bmp file name: sm_5_2.bmp .bmp file offset: 140411 .bmp file size: 5176 File sm_5_2.bmp has been extracted! .bmp file name length: 10 .bmp file name: sm_5_3.bmp .bmp file offset: 145587 .bmp file size: 5176 File sm_5_3.bmp has been extracted! .bmp file name length: 10 .bmp file name: sm_5_4.bmp .bmp file offset: 150763 .bmp file size: 5176 File sm_5_4.bmp has been extracted! .bmp file name length: 10 .bmp file name: sm_5_6.bmp .bmp file offset: 155939 .bmp file size: 5176 File sm_5_6.bmp has been extracted! .bmp file name length: 10 .bmp file name: sm_6_4.bmp .bmp file offset: 161115 .bmp file size: 5176 File sm_6_4.bmp has been extracted! .bmp file name length: 10 .bmp file name: sm_6_6.bmp .bmp file offset: 166291 .bmp file size: 4716 File sm_6_6.bmp has been extracted! Done! В результате получили 33 .bmp файла-фрагмента из которых можно собрать карту: Стоит отметить, что если на фрагменте отображается только море, то такой фрагмент не включается в .pk файл, а берется из папки \texture\terrain\water (насколько я помню). В названии каждого фрагмента отражены его координаты X, Y: sm_X_Y.bmp Вот программа, которая автоматически распаковывает .pk файлы и склеивает фрагменты в полную карту:
  10. 1 point
    Небольшой UpDate Еще вопрос если есть у когото инфа по упаковке карт в .PK файл можите поделиться?
  11. 1 point
    Изучайте форум, тут есть пара примеров этой системы
  12. 1 point
    Hello all ! I'm still providing services and requests, feel free to contact me. That the last request i was been working on: [Capture The Flag]: Note: All credits for this system and idea goes to https://pirategames.online/, what i did was just scripting the system. Map idea: https://forum.pirategames.online/index.php?threads/capture-the-flag-ctf.31/ Capture The Flag - Preview - Balanced PK map, doesn't matter player equipment or class all will have same attributes. - Only for players Lv45+ and who has done 2nd job advancement. - Map opens every 24h (05:00PM), and the battle last for 20 minutes. - After joining the battle thoguht the NPC, players will teleport to a Lobby which where they should wait 5 minutes or it reach at least 50 active players to get inside the Capture The Flag. - The NPC which allows u to join battle is located near Argent City Fountain. - The team who get 100 points first will win the battle and map will close in 20 seconds. - Carrier the flag to enemy team will provide you 10 points, carrier the flag to your base will provide you 5 points. - Killing players from the enemy team has 25% chance to grant 1 point to ur team. - Just a flag can be activated by time, when it has been carried to enemy team base or ur base it will spawn back at middle of map. - After disconnect in battle you will return to ur last spawn point, from that time you have 2 minutes to return back to battle thought the NPC, otherwise nevermore. - After die inside map and click revive you will return to ur base (requires GetChaRespawnPoint(role) in GameServer.exe). - Each base has a NPC where players can heal and see statistics from the battle as like: team score and remaining time to end battle. - Winning team will receive a random reward. - All map functions, rewards, time, etc, can be easily configured thought a .lua file. [Server Files]: Due to many requests from customers which where they said files are too much expansive, decided to lower it to half of price. So, it now costs u $70. That's all for now, thank for your attention .
  13. 1 point
  14. 1 point
    At first the project revolved around trying to get some "better" lua code going, but ended up being at attempts at winging the 2.x C++ source code to work successfully, ofc with the great help from @Snre3nfrom the C++ side of things. The instructions on how to build and more info on it are in https://gitlab.com/deguix/top-recode. Sry for not making a thread earlier, I'm not really good at publishing stuff, and also a bit afraid of going all out on it too because of my limited time that I can dedicate to it. Also have a discord: https://discord.gg/uwcR74E. It's a bit of a mess, but I guess you can bug me there too if you like. Just don't bug me too much, as in, please have some previous experience in development. I definitely want to hear about the success of compiling it, because that's something most people struggle with with any C++ project on Windows. Anyways, most of the notifications I get are from people not being able to compile it. Just run build.bat as admin please and tell me the errors that pop up. Oh yes, this project built by default will only work on Windows 10 and above. You can install the Windows 7 SDK and retarget all projects to use that, not sure if errors will pop up though. I won't support it. I use currently MSQL 2017. Once MSQL 2019 gets released, use it, and you can have free UTF-8 support. On Windows 10, there's a feature to force all older apps to use UTF-8. Remember, it only works with MSQL 2019! Older MSQL won't run!
  15. 1 point
    [!] Исправление уязвимости связанной с переполнением буфера в функциях SystemNotice(), PopupNotice () и BickerNotice() 1. Суть уязвимости Злоумышленник определенным образом заставляет GameServer.exe вызвать функцию SystemNotice(), которая служит для вывода сообщений в системный чат игрока, при этом в функцию передается очень длинная строка с сообщением, что вызывает переполнение буфера и последующее завершение работы GameServer.exe. 2. Причина уязвимости Чтобы понять в чем причина переполнения, посмотрим исходные коды GameServer: Это код функции SystemNotice(). Можно увидеть, что здесь используется небезопасная функция vsprintf(), которая не контролирует размер буфера szTemp, указатель на который передается ей первым параметром. В результате vsprintf() записывает строку за пределами выделенной для нее памяти, что приводит к уничтожению данных в соседних ячейках, после чего GameServer.exe вылетает с ошибкой. Функция vsprintf() также используется и в других функциях: PopupNotice() BickerNotice() SystemNotice() класса CPlayer А это значит, что эти функции так же потенциально опасны. 3. Как воспроизвести уязвимость и методика тестирования исправления В открытом доступе нет информации, каким образом можно заставить GameServer.exe вызвать обсуждаемые функции с очень длинным сообщением, которое приводит к их переполнению. Чтобы имитировать данную ситуацию можно вызывать функции SystemNotice() и BickerNotice() из Lua-скриптов: -- Данный вызов функции SystemNotice() приведет к ошибке GameServer.exe! SystemNotice(role, "Toooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo LoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongStriiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiing!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!") -- Данный вызов функции BickerNotice() приведет к ошибке GameServer.exe! BickerNotice(role, "Toooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo LoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongStriiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiing!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!") Функция PopupNotice() вызывается при работе с внутриигровым интернет-магазином: Чтобы вызвать данную функцию для тестов, можно подменить в GameServer.exe вызов функции SystemNotice() на PopupNotice(), так как эти функции имеют одинаковые сигнатуры (число, тип и последовательность параметров). В GameServer.exe версии 1.38 функция SystemNotice() находится по адресу 0x004CA2C0, а PopupNotice() - 0x004CA400. Подменяем вызов: Теперь при вызове SystemNotice() вместо оригинальной функции будет вызываться PopupNotice(). Функция CPlayer::SystemNotice() вызывается при ошибках ковки, плавки, соединения самоцветов: Её вызов можно сымитировать, например, отредактировав функцию плавки аппарелей (Apparel Fusion) Заменим условный переход по адресу 0x004EF309 (справедливо для GameServer.exe версии 1.38) на безусловный: После проделанных изменений, каждый раз при открытии диалога плавки всегда будет вызываться функция CPlayer::SystemNotice(). 4. Как устранить уязвимость Небезопасную функцию vsprintf() необходимо заменить на её безопасный аналог - функцию _vsnprintf(), которая принимает дополнительный параметр: размер буфера под строку с сообщением. Таким образом, исправленная функция SystemNotice() будет выглядеть так: В функцию _vsnprintf() передаем размер на единицу меньше, в данном случае 249 байт, так как последний байт будет нулевым. Функции BickerNotice(), PopupNotice() и CPlayer::SystemNotice() необходимо исправить аналогичным образом. 5. Патч для GameServer.exe За основу патча возьмем оригинальные функции из GameServer.exe GameServer.exe версии 1.38 SystemNotice() BickerNotice() PopupNotice() CPlayer::SystemNotice GameServer.exe версии 1.36 SystemNotice() BickerNotice() PopupNotice() CPlayer::SystemNotice Заменяем во всех этих функциях инструкции вызова функции vsprintf(): MOV EAX,DWORD PTR SS:[EBP-110] PUSH EAX ; /arglist MOV ECX,DWORD PTR SS:[EBP+C] ; | PUSH ECX ; |format LEA EDX,DWORD PTR SS:[EBP-10C] ; | PUSH EDX ; |buffer CALL vsprintf ; \vsprintf ADD ESP,0C На инструкции вызова функции _vsnprintf(): MOV EAX,DWORD PTR SS:[EBP-110] PUSH EAX ; /arglist MOV ECX,DWORD PTR SS:[EBP+C] ; | PUSH ECX ; |format PUSH 0F9 ; |count = F9 (249.) LEA EDX,DWORD PTR SS:[EBP-10C] ; | PUSH EDX ; |buffer CALL _vsnprintf ; \_vsnprintf ADD ESP,10 Разберем замену инструкций на примере функции SystemNotice() из GameServer.exe версии 1.38. Исправленная функция SystemNotice() будет выглядеть следующим образом (обратите внимание на строки 17 - 25): PUSH EBP MOV EBP,ESP PUSH -1 PUSH 005A67A6 ; SE handler installation MOV EAX,DWORD PTR FS:[0] PUSH EAX MOV DWORD PTR FS:[0],ESP PUSH ECX SUB ESP,188 PUSH EBX PUSH ESI PUSH EDI MOV DWORD PTR SS:[EBP-10],ESP MOV DWORD PTR SS:[EBP-4],0 LEA EAX,DWORD PTR SS:[EBP+10] MOV DWORD PTR SS:[EBP-110],EAX MOV EAX,DWORD PTR SS:[EBP-110] PUSH EAX ; /arglist MOV ECX,DWORD PTR SS:[EBP+C] ; | PUSH ECX ; |format PUSH 0F9 ; |count = F9 (249.) LEA EDX,DWORD PTR SS:[EBP-10C] ; | PUSH EDX ; |buffer CALL 00572811 ; \_vsnprintf ADD ESP,10 MOV DWORD PTR SS:[EBP-110],0 LEA EAX,DWORD PTR SS:[EBP-148] PUSH EAX ; /Arg1 MOV ECX,DWORD PTR DS:[77984C] ; | g_gmsvr CALL 00529CE0 ; \?GetWPacket@TcpCommApp@dbc@@QBE?AVWPacket@2@XZ MOV BYTE PTR SS:[EBP-4],1 PUSH 205 LEA ECX,DWORD PTR SS:[EBP-148] CALL 00523A40 ; dbc::WPacket::WriteCmd LEA EAX,DWORD PTR SS:[EBP-10C] PUSH EAX ; /s CALL 0056E1D0 ; \strlen ADD ESP,4 MOVZX ECX,AX ADD ECX,1 PUSH ECX LEA EDX,DWORD PTR SS:[EBP-10C] PUSH EDX LEA ECX,DWORD PTR SS:[EBP-148] CALL 00524D40 ; dbc::WPacket::WriteSequence SUB ESP,38 MOV ECX,ESP MOV DWORD PTR SS:[EBP-190],ESP LEA EAX,DWORD PTR SS:[EBP-148] PUSH EAX ; /Arg1 CALL 0041DBD0 ; \dbc::WPacket::WPacket MOV DWORD PTR SS:[EBP-194],EAX MOV ECX,DWORD PTR SS:[EBP-194] MOV DWORD PTR SS:[EBP-198],ECX MOV BYTE PTR SS:[EBP-4],2 MOV EDX,DWORD PTR SS:[EBP+8] PUSH EDX MOV EAX,DWORD PTR SS:[EBP+8] MOV EDX,DWORD PTR DS:[EAX] MOV BYTE PTR SS:[EBP-4],1 MOV ECX,DWORD PTR SS:[EBP+8] CALL DWORD PTR DS:[EDX+30] MOV BYTE PTR SS:[EBP-4],0 LEA ECX,DWORD PTR SS:[EBP-148] CALL 0041DC60 ; dbc::WPacket::~WPacket JMP SHORT OK CALL 00401340 ; sym_engine::default_fmt PUSH EAX PUSH 0 MOV ECX,DWORD PTR SS:[EBP-14C] CALL 00401320 ;se_translator::exception::info MOV EAX,DWORD PTR DS:[EAX+4] ; | PUSH EAX ; |Arg1 CALL 0053C910 ; \sym_engine::stack_trace ADD ESP,0C PUSH 0 ; /Arg2 = 00000000 PUSH 0 ; |Arg1 = 00000000 CALL 0056DDB1 ; \_CxxThrowException OK: MOV DWORD PTR SS:[EBP-4],-1 MOV ECX,DWORD PTR SS:[EBP-C] MOV DWORD PTR FS:[0],ECX POP EDI POP ESI POP EBX MOV ESP,EBP POP EBP RETN Открываем GameServer.exe в отладчике OllyDbg и помещаем инструкции, которые приведены выше, в Code Cave: Теперь необходимо заменить вызов оригинальной небезопасной функции SystemNotice() на нашу исправленную. Для этого по адресу 0x004CA2C0 (адрес оригинальной функции SystemNotice()) записываем инструкции перехода на новую функцию по адресу 0x005B25A4: Далее проделываем такие же операции с остальными небезопасными функциями и сохраняем изменения в GameServer.exe, а затем тестируем его в согласно п. 3 данной статьи.
  16. 1 point
    Hey guys, come play some games with me. Join my discord server. https://discord.gg/kc83nNr
  17. 1 point
    @V3ct0ratm, I play Apex Legends and MapleStory 2. :D
  18. 1 point
    Hi @anexoticllama, you can upload the files which are not yet in my archive to mega and send me. I will update the archive.
  19. 1 point
    Hello people, Here i bring you a development im working on. Please if you have any question or review on the system please leave a comment.
  20. 1 point
    Maybe you know what GameDB.character.skillbag field have 36 slots for fastpanel anchors. But in Game.exe you can use only 16 (by default F1-F8 x2 states) or 24 (with fastfrm plugin F1-F12 x2 states) slots. Now I'll show a few tricks which allow to expand functionality of the fastpanel. This is tested in version 1.3x and should also work in version 2.x. Open the Game.exe in HEX-editor to make changes. Yes all tricks only client-side. Trick 1. Enable third state Find 83 FD 02 56 57 8B D9 7C 04 33 ED EB 09 85 ED 7D Replace with 83 FD 03 56 57 8B D9 7C 04 33 ED EB 09 85 ED 7D Now you can switch 3 states instead of 2 and fill up all 36 slots. Trick 2. Enable F10-F11 keys Compatible with the trick 1 Find 83 FF 08 7F 3A 83 3D D0 A2 66 00 FF 75 31 8B 86 Replace with 83 FF 0A 7F 3A 83 3D D0 A2 66 00 FF 75 31 8B 86 Trick 3. Enable F10-F12 keys Compatible with the trick 1 Find 83 FF 08 7F 3A 83 3D D0 A2 66 00 FF 75 31 8B 86 Replace with 83 FF 0B 7F 3A 83 3D D0 A2 66 00 FF 75 31 8B 86 Trick 4. Enable Tab key for switch panel states Compatible with the tricks 1, 2, 3 Find 83 FF 7B 74 60 81 FF DD 00 00 00 75 0D 6A 11 FF Replace with 83 FF 09 74 60 81 FF DD 00 00 00 75 0D 6A 11 FF Trick 5. Make two panels for 18 slots (F1-F12 + 6 clickable slots) Use trick 3 and 4 for enable F1-F12 keys and Tab key for switch panels Find 83 FF 0C 72 9B BB 0C 00 00 00 8D 9B 00 00 00 00 Replace with 83 FF 12 72 9B BB 12 00 00 00 8D 9B 00 00 00 00 Find 83 FD 0C 0F 82 77 FF FF FF 83 C3 0C 83 FB 24 0F Replace with 83 FD 12 0F 82 77 FF FF FF 83 C3 12 83 FB 24 0F Find 8D 7E 0C 3B F7 7D 1E 8B 83 18 07 00 00 8B 0C B0 Replace with 8D 7E 12 3B F7 7D 1E 8B 83 18 07 00 00 8B 0C B0 Find 00 7C DD 8D 74 6D 00 C1 E6 02 8D 7E Replace with 00 7C DD 8D 74 ED 00 C1 E6 01 8D 7E Find 8D 0C 40 8D 04 8F 8B 04 82 85 C0 74 18 8B 80 98 Replace with 8D 0C C0 8D 04 4F 8B 04 82 85 C0 74 18 8B 80 98 Find B9 0C 00 00 00 F7 F9 33 C0 89 44 24 0D 89 44 24 Replace with B9 12 00 00 00 F7 F9 33 C0 89 44 24 0D 89 44 24 Open scripts/lua/forms/main.clu and replace with frmFast = UI_CreateForm( "frmFast", FALSE, 432, 82, 290, 557, TRUE, FALSE ) --UI_FormSetHotKey( frmFast, ALT_KEY, HOTKEY_T ) UI_ShowForm( frmFast, TRUE ) UI_SetFormStyle( frmFast, 7 ) UI_AddFormToTemplete( frmFast, FORM_MAIN ) UI_SetIsDrag( frmFast, TRUE ) UI_FormSetIsEscClose( frmFast, FALSE ) imgMain1 = UI_CreateCompent( frmFast, IMAGE_TYPE, "imgMain1", 432, 82, 0, 0 ) UI_LoadImage( imgMain1, "texture/ui/frmfast18.tga", NORMAL, 432, 82, 0, 0 ) fscMainF0 = UI_CreateCompent( frmFast, FAST_COMMANG_TYPE, "fscMainF0", 32, 32, 5, 44 ) fscMainF1 = UI_CreateCompent( frmFast, FAST_COMMANG_TYPE, "fscMainF1", 32, 32, 39, 44 ) fscMainF2 = UI_CreateCompent( frmFast, FAST_COMMANG_TYPE, "fscMainF2", 32, 32, 73, 44 ) fscMainF3 = UI_CreateCompent( frmFast, FAST_COMMANG_TYPE, "fscMainF3", 32, 32, 107, 44 ) fscMainF4 = UI_CreateCompent( frmFast, FAST_COMMANG_TYPE, "fscMainF4", 32, 32, 141, 44 ) fscMainF5 = UI_CreateCompent( frmFast, FAST_COMMANG_TYPE, "fscMainF5", 32, 32, 175, 44 ) fscMainF6 = UI_CreateCompent( frmFast, FAST_COMMANG_TYPE, "fscMainF6", 32, 32, 209, 44 ) fscMainF7 = UI_CreateCompent( frmFast, FAST_COMMANG_TYPE, "fscMainF7", 32, 32, 243, 44 ) fscMainF8 = UI_CreateCompent( frmFast, FAST_COMMANG_TYPE, "fscMainF8", 32, 32, 277, 44 ) fscMainF9 = UI_CreateCompent( frmFast, FAST_COMMANG_TYPE, "fscMainF9", 32, 32, 311, 44 ) fscMainF10 = UI_CreateCompent( frmFast, FAST_COMMANG_TYPE, "fscMainF10", 32, 32, 345, 44 ) fscMainF11 = UI_CreateCompent( frmFast, FAST_COMMANG_TYPE, "fscMainF11", 32, 32, 379, 44 ) fscMainF12 = UI_CreateCompent( frmFast, FAST_COMMANG_TYPE, "fscMainF12", 32, 32, 107, 5 ) fscMainF13 = UI_CreateCompent( frmFast, FAST_COMMANG_TYPE, "fscMainF13", 32, 32, 141, 5 ) fscMainF14 = UI_CreateCompent( frmFast, FAST_COMMANG_TYPE, "fscMainF14", 32, 32, 175, 5 ) fscMainF15 = UI_CreateCompent( frmFast, FAST_COMMANG_TYPE, "fscMainF15", 32, 32, 209, 5 ) fscMainF16 = UI_CreateCompent( frmFast, FAST_COMMANG_TYPE, "fscMainF16", 32, 32, 243, 5 ) fscMainF17 = UI_CreateCompent( frmFast, FAST_COMMANG_TYPE, "fscMainF17", 32, 32, 277, 5 ) btnFastUp = UI_CreateCompent( frmFast, BUTTON_TYPE, "btnFastUp", 7, 8, 417, 12 + 39 ) UI_LoadButtonImage( btnFastUp, "texture/ui/Nbotton.tga", 7, 8, 82, 2, TRUE ) UI_SetHint( btnFastUp, "Next (Ctrl+[, Ctrl+], Tab)" ) btnFastDown = UI_CreateCompent( frmFast, BUTTON_TYPE, "btnFastDown", 7, 8, 417, 22 + 39 ) UI_LoadButtonImage( btnFastDown, "texture/ui/Nbotton.tga", 7, 8, 82, 12, TRUE ) UI_SetHint( btnFastDown, "Next (Ctrl+[, Ctrl+], Tab)" ) Download frmfast18.tga from https://drive.google.com/open?id=0B-nyWqNUUQcBc0NKNHkzd3VhWm8 and put it in texture/ui folder Thats all. Enjoy!
  21. 1 point
    i see ver file in client and get this... <HTML><HEAD><TITLE>403 Forbidden</TITLE></HEAD> <BODY><H1>403 Forbidden</H1> Your client does not have permission to get URL /run_dest/ver from this server. </BODY></HTML> but idk why because i always do the same steps...
  22. 1 point
    рекомендую брать из архива английскую версию а перевод вытаскивать уже из этой.
  23. 1 point
    I deleted the file on MEGA.
  24. 1 point
    @Dimitrov, @zzzritdzzz friends there is no password. Check .htpasswd file. w154rd:aaQw4fqBmD3FI w154rd is login and aaQw4fqBmD3FI is password @Dimitrov it is not necessary to quote the entire post, thank you
  25. 1 point
    These are the clean client files for all versions of Top/Pko. https://mega.nz/#F!QAZhBICY!zVhQz9ZljSDQ6p31oJz-tQ
×