Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation since 07/01/2021 in all areas

  1. 2 points
    AttrCalculate.lua: 1. search for: function Creat_Item_Tattr(item_type,item_lv , item_event) 2. find that: local quality = SetItemQua ( item_event ) 3. add below: local GemVar = { [101] = 10, [102] = 20, [103] = 30, [104] = 40, [105] = 50, [106] = 60, [107] = 70, [108] = 80, [109] = 90, } if (GemVar[item_event]) then Add_Item_Attr(ITEMATTR_VAL_BaoshiLv, GemVar[item_event]) end
  2. 1 point
    PKODev.NET website for Tales of Pirates Server Hello friends! I want to share with you a website for your own Tales of Pirates server. Features 1) News management; 2) Server rules page; 3) Downloads; 4) Player rankings (by experience, by gold, by number of guild members); 5) Game account registartion with activation by email; 6) Game account restore by email; 7) Game database of monsters and items; 8 ) Donations page; 9) Server status and statistics, GM online; 10) Account management (account information, characters, password/email/pin change); 11) Offline Stall Server extension to view stalls and search items. Requirements 1) Web server; 2) PHP version 7.0 and above; 3) Enabled PDO extension with sqlsrv and sqlite drivers. Installation 1) Put website files to the working directory of your webserver; 2) Configuire file config\inc.config.php. The file is very well commented, so you shouldn't have any problems configuring it; 3) The site uses the Smarty template engine to easily change the appearance. All HTML templates are stored in templates folder; 4) You can find email templates are in templates\email folder. Some pictures Download 1) Google Drive Credits All credits and copyrights belong to @Billie and Kingdom Pirates Online team. If you have any questions or problems related to the website, then feel free to contact them!
  3. 1 point
    Ты всё не успокоишься, братух?) ФПС это конечно круто, но делать плохую игру ещё хуже - это уже каламбурчик) P.S. скинь ip samp в лс
  4. 1 point
    I believe it is in AreaSet https://gyazo.com/6df1ee0bdce9a8ed8c98a2ddf4e30e45 https://gyazo.com/a9e8bdf2cb0bc2cd4c5ca0a862f14c6e
  5. 1 point
    Добрый день! Здесь не все так просто и в двух словах не объяснить. Форматы .map и .obj файлов клиента можно изучить используя исходные коды клиента, которые выложены на форуме. По сути нужно прочитать файл .map, вырезать из него требуемую область клеток (x0, y0, x1, y1), создать новый файл и записать в него эту область в соответствии с форматом. С .obj файлами то же самое, только нужно прочитать список объектов и их параметры (ID, координаты, угол поворота и др.), далее найти объекты, которые попадают в вырезаемую область (x0, y0, x1, y1), изменить их координаты под новый размер карты и записать в файл. На выходе получается два новых .map и .obj файла.
  6. 1 point
    you need to configure the Facebook API. config/inc.config.php https://gyazo.com/07f958cecf4b1d6b8df33d961ce356a7
  7. 1 point
    This address is taken from Game.exe functions import table
  8. 1 point
    in which void/ Thread this address in source if you remember? DWORD dwSendAddress = 0x0060094C; and as additional help to avoid people using debug in your client can use IsDebuggerPresent(); from windows header to close the client if attached to debugger
  9. 1 point
    Hello! WPE Pro changes bytes of 'send' and 'recv' functions from ws2_32.dll library in game client memory. So you can check if bytes were changed, it will mean that someone attached WPE Pro to the game process. You can write, for example, a DLL and attach it to the game process If you are familiar with C++. When someone attaches WPE Pro to the client protcess, the game is closed. #include <windows.h> #include <cstdio> // Pointer to send() function DWORD dwSendAddress = 0x0060094C; // A thread which will protect client against WPE Pro DWORD WINAPI ShieldThread(LPVOID); // Our entry point int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved) { switch (reason) { case DLL_PROCESS_ATTACH: // Starting the thread . . . DWORD thID; CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)ShieldThread, 0, 0, &thID); break; } return 1; } // A thread which will protect client against WPE Pro DWORD WINAPI ShieldThread(LPVOID) { // Amount of bytes of send() function to check const int n = 8; // send() function address DWORD dwSend = 0; // A buffer for reference send() bytes char OriginalCode[n]; // A buffer for current send() bytes char CheckCode[n]; // Getting send() function address memcpy((char *)&dwSend, (char *)dwSendAddress, sizeof(dwSend)); // Getting reference send() bytes memcpy(OriginalCode, (char *)dwSend, n); // Checking if send() functions bytes were changed in a loop while (true) { // Getting current send() bytes memcpy((char *)&CheckCode, (char *)dwSend, n); // Comparing them with reference bytes. . . if (memcmp(OriginalCode, CheckCode, n)) { // Looks like WPE Pro is attached! Do something . . . exit(EXIT_FAILURE); // Close the game } // Waiting for a second... Sleep(1000); } return 0; } You also need to take care of protection against WPE Pro on the server side. You can think about some new encryption for the protocol and other protection mechanisms that will only be known to you. Note: All this requires extensive programming and reverse engineering skills.
  10. 1 point
    Here I leave for those who want a version with the color of the original client Simple One https://www.mediafire.com/file/q2wiw91c41yiigd/gm_panel.tga/file
  11. 1 point
    Not sure i think google after 6~ years (without knowing a thing about TOP ) noticed serverdev was dead
  12. 1 point
    function upgrade(role) local Slot = 5 local Apparel = GetChaItem(role, 2,(Slot - 1)) if Apparel == nil or GetItemAttr(Apparel, ITEMATTR_MAXURE) < 25000 then HelpInfo(role, 0, "There's no equipment on slot "..Slot.." of your inventory or it's not an apparel.") UseItemFailed(role) return end local ApparelID = GetItemID(Apparel) local ItemlID = GetItemAttr(Apparel,ITEMATTR_VAL_FUSIONID) SetItemAttr(Apparel, ITEMATTR_VAL_LEVEL, 15) RefreshCha(role) HelpInfo(role, 0, "Apparel Upgraded to 110 successful Enjoy ") end
  13. 1 point
    Unreal or Unity are the most common game engines I'd say, where unreal utilises c++ whereas unity uses c#. Without any prior experience, however, it will take you years to make something decent from scratch.
  14. 1 point
  15. 1 point
    Thanks for the pro and fast service
  16. 1 point
    remember to compile ur client txt
  17. 1 point
    PHP script written for cpworker. Parses chaSpn and characterinfo and then calculates distance from the monster to the bounds of a city (in this particular example, Argent City).
  18. 1 point
  19. 1 point
  20. 1 point
    Just saw this thread, wondering how long is your week? Hi from 2021
  21. 1 point
    System Name: Land Fishing - Sea Sources Credits: @Saeed,Created the way to fish on land; @Skarth,Created the way to fish on land; @Satan, release and modification on fish sources; Introduction: While equipped with Fishing Rod and required skill 'Land Fishing' player can caught sources from Fishing Spots place on lakes; Requires Lv10 by default to equip Rod; There is a small chance to caught different sources from spots; Change Logs: v1.0 - Release of system;
  22. 1 point
    Some people on my server asked about the transparency on icons, when making custom apparels. I made a video to explain how you make new/adjust icons.
  23. 1 point
    Updated the images with Imgur links. Hopefully, Imgur doesn't remove them.
  24. 1 point
    There are not decompilers, use PKO File viewer to find what you want and copy it to ToP client. I just made it because I need new mobs for a map project.
  25. 1 point
    Декомпилятор/Декриптор StringSet.bin Большое спасибо @kLabMouse! С помощью этой программы Вы можете получить исходный StringSet.txt из зашифрованного StringSet.bin вида: eab5942ea5fbe22f189952372faa5ed6a00ef86f8713a94e ef3f6c3b3cd136a2bfe10a08ed3277010624222f4083cf6b8e0ebd773d75bc 2ea1f9db1a01425d2786d181110b894f45bdab3d7808720a 7280ea3aef6cea6fdd1632ec36d8dd06c4db79d5a82bd4cfb4c7861b12d222f2 c3f7bc1b0730d7eb85f18fc9644ee296a020e7de4703cef3d1775955196f3d47 61a79b9c6d3bdeba7f10a32a97b50936a9c10e53f253d59bc7b2fecc891dd56e 956122fc98e698c4e391ec33ff7be26308c5f1de3738821cf1223f1b208d69f1 a90622784bc514f2f3ebcde460308b94f7086b841e02b024 7d3ee1937edfe0496f8b08b2ff16194e ec474716e0b25fb3aac867316ff058290025a1e3e7be611b 809d96625b99eb169ad4b5c3802eb6f343e7e640ab6476ee 9a2280dd29e9a48cba93cc8178f71e5da6df7716dad12ee129971f8de33dc592 d4ae9e10504baf6b611165e5f72aadbba47ba7af51b78e086db97730bb636409 a838184c7698234a4dc5f305dd46fbe27cbc197663b58997d276d472cfbb77d2 825cfa79a9b6211772abf35482cd0e4ae4b1a8d0048b4d5390fba50c44d1b78c И так далее ...... Как пользоваться: 1) Поместите StringSet.bin в одну папку с программой; 2) Запустите программу; 3) В папке с программой появится StringSet.txt. Скачать: StringSet_Decrypt.exe
  26. 1 point
    Как известно, полную карту имеют только основные регионы (Аскарон, Магический океан и Великий синий океан). В данной статье я расскажу и покажу как можно сделать полную карту для любого региона и местности: Когда игрок нажимает кнопку "Карта" под миникартой, чтобы открыть полную карту местности, клиент отправляет серверу пакет с запросом. Сервер читает этот пакет, решает, имеет ли регион, в котором в данный момент находится клиент, полную карту, и отправляет ответ клиенту. Если ответ "положительный", то клиент открывает игроку большую карту. Если "отрицательный", то игрок получает в систему сообщение "Эта местность не имеет полной карты": Наша задача заключается в том, чтобы добавить в GameServer.exe карты, которые должны иметь полную карту местности. Нам понадобится: Отладчик OllyDbg v1.10; GameServer.exe (Я буду работать с GameServer из сборки PKO 1.38); Внимательность и терпение Редактируем GameServer.exe: 1) Запустите GameServer.exe. Затем запустите OllyDbg. В OllyDbg выполните команду File => Attach. В окошке "Select process to attach" выберите процесс Вашего GameServer.exe. Откроется окно "CPU" отладчика: 2) В панели инструментов нажмите кнопку "E" () или сочетание клавиш Alt + E. Появится окно "Executable modules". В нем выберите модуль "GameServ": Откроется окно "CPU" для модуля "GameServ". Правым кликом вызовите контекстное меню и выберите команду Analysis => Analyse code (сочетание клавиш ALT + A) 3) Перейдите по адресу 0x005B25A4. Для этого выполните команду Go to => Expression из контекстного меню: В появившемся окне "Enter expression to follow" введите значение "0x005B25A4" и нажмите кнопку "ОК" В результате Вы должны оказаться на адресе 0x005B25A4: 4) Теперь Вам нужно ввести названия карт для которых требуется сделать полную карту местности. Список стандартных карт: garner — Аскарон magicsea — Магический Океан darkblue — Великий Синий Океан lonetower — Одинокая башня eastgoaf — Серебрянные шахты, заброшенные шахты, логово черного дракона, логово черного дракона 2 secretgarden — Сад Эдель darkswamp — Темная топь abandonedcity — Забытый Город abandonedcity2 — Забытый Город 2 abandonedcity3 — Забытый Город 3 puzzleworld — Мир Демонов puzzleworld2 — Мир Демонов 2 teampk — Арена jialebi — Небеса, база флота, остров сокровищ, остров скелетов garner2 — Серебряный Хаос hell* — абаддоны guildwar — Священная война guildwar2 — Маленькая священная война leiting2 — Мираж Громограда shalan2 — Мираж Шайтана binglang2 — Мираж Ледыни yschurch — Церковь 07xmas — 2007 Новогодняя деревня sdBoss — Остров Боссов 07xmas2 — Снежная война prisonisland — Тюрьма winterland — Остров Зимы mjing1 — 1-ый край Аврор mjing2 — 2-ой край Аврор mjing3 — 1-ый край Тьмы mjing4 — 2-ой край Тьмы starena* — Арены heilong — Сундук черного дракона darkhouse — Дом тьмы mingyun — Комната судьбы PKmap — Новая арена Для примера, я сделаю полные карты местности для Острова Зимы (winterland), Темной топи (darkswamp) и Забытого Города 1 (abandonedcity) Выделите достаточное количество байт. Например, для того, чтобы закодировать "winterland" нужно 11 байт (10 байт символы; 1 байт - нулевой, конец строки). Затем в контекстном меню выберите команду Binary => Edit (CTRL + E) Появится окошко "Edit code at 005B25A4". В нем введите "winterland" и нажмите кнопку "ОК" В результате получится что-то вроде этого: Проанализируйте код (Analysis => Analyse code или сочетание клавиш ALT + A): Выполните данное действие для всех требуемых карт: 5) Итак, мы записали 3 строки: winterland по адресу 0x005B25A4 darkswamp по адресу 0x005B25AF abandonedcity по адресу 0x005B25B9 Запомните эти адреса. У Вас они могут отличаться. 6) Теперь Вам для каждой карты надо написать код, который добавит ее в список карт, имеющих полную карту местности: PUSH Ширина карты (x) PUSH Длина карты (y) PUSH Адрес строки, в которой находится название карты MOV ECX,DWORD PTR SS:[EBP-14] ADD ECX,10A4 CALL 0x005551A0 (!) Ширина и длина карты в шестнадцатеричной (HEX) системе счисления. Например, для Острова Зимы код будет выглядеть так: PUSH 898 PUSH 708 PUSH 0x005B25A4 MOV ECX,DWORD PTR SS:[EBP-14] ADD ECX,10A4 CALL 0x005551A0 Для Темной топи: PUSH 220 PUSH 5D8 PUSH 0x5B25AF MOV ECX,DWORD PTR SS:[EBP-14] ADD ECX,10A4 CALL 0x005551A0 Для Забытого города: PUSH 180 PUSH 180 PUSH 0x005B25B9 MOV ECX,DWORD PTR SS:[EBP-14] ADD ECX,10A4 CALL 0x005551A0 Q: Как узнать размер карты? A: Открываем клиентский .map файл в HEX-редакторе: 4 байта, начиная с 4-го, отвечают за ширину, а 4 байта, начиная с 8-го, - за длину. 0000089816 = 220010 0000070816 = 180010 Получается, что карта "Остров Зимы" (winterland) имеет размеры 2200 x 1800 Итак, записываем код. Я буду записывать его с адреса 0x005B25CA. Этот адрес так же надо запомнить. Щелкаем двойным кликом по строке, которая соответствует данному адресу. Появляется окошко "Assemble at 5B25CA". В него забиваем первую инструкцию: PUSH 898 и нажимаем кнопку "ОК" Получаем: затем PUSH 708 и так далее: Выполняем данное действие для всех требуемых карт: 7) Затем нужно задействовать наш код. Идем по адресу 0x004ED656 и заменяем PUSH 1000 на JMP 0x005B25CA Помните я просил запомнить адрес 0x005B25CA? У Вас он может отличаться. Было: Стало: 8) Далее нужно вернуться к нашему коду в конце и дописать PUSH 1000 JMP 0x004ED65B На этом редактирование GameServer.exe закончено 9) Теперь Вам нужно сохранить изменения. Для этого вызовите команду контекстного меню Copy to executable => All modifications: Появится окошко "Copy selection to executable file". В нем нажимаем кнопку "Copy all". После этого появится окно "File <Путь до Вашего GameServer.exe>". Закрываем его. В окне "File changed" нажимаем кнопку "Yes" и указываем название файла, в который нужно сохранить. 10) После этого нужно протестировать модифицированный GameServer.exe и убедиться, что все работает как надо.
  27. 1 point
    Программа для просмотра .PK файлов (PK Viewer) Программа позволяет просматривать и извлекать изображения из .PK файлов (файл миникарты) клиента. Скачать (3 466 КБ): PK Viewer.exe
  28. 1 point
    The Ultimate GM Handbook Author: SnowCrash GM Commands Overview: This little guide is the most comprehensive GM-guide for PKO you will find. It contains pretty much everything I know about the GM-commands and everything I found on different forums. How to enter commands This is really easy. All commands must be entered into the chat-field. And you must add a leading & to the command. For example: &addmoney 1000000 gives you a million gold To use the commands your account must be a GM-account. This means that you must edit the "GM" field in the database (accounts-table in the GameDB) and set it to a value > 0. To use all commands you must set GM to 99! A little note on GM-Level: Lv = 0 (Normal Players, no rights), Lv 1-98 (GM, limited commands), Lv 99 (full GM, all commands) --- I can't remember exactly what values but I think if you put Lv25-30 for a player, he has the same rights as Lv1-98 but instead of "GM", "HD" is displayed above his head. Parameters in [] are optional! For example: addkb <capacity>, [<char-id>] means: you can type "addkb 48" or "addkb 48,1234" Important! There are only 3 important things you need to know besides the obvious (don't mess with stuff you don't understand *lol*): all commands using char/mob-names (like &kick, &call, ...) are case-sensitive* not all commands work when you or the target are at sea! (for example you can't &call/&goto chars on sea if you're on land, etc. - looks like &goto can be used if you and the target are on sea and if you add the ship-name to the name) some commands only work if you're on the same map/gameserver as your target (for example &attr - see there for more infos) case-sensitive: Must respect the capital letters, space, everything counts, one wrong character and the whole string will fail. Game Related Commands: GM Commands: addcess <points> - Changes your commerce rate. Setting this to 10000 gives you a 0.01% commerce rate. - GM level:99 - Example:&addcess 1000000 addexp <exp> - Adds exp to your experience - GM level:99 - Example:&addexp 1000000 addkb <capacity>,[<char id>] - Sets the inventory capacity to [capacity] - GM level:99 - Example:&addkb 48 addmission <id1>,<id2> - Adds a quest. Syntax is similar to DefineMission used in the Missionscript??.lua files.For example if the lua contains: DefineMission( 5138, "Goodbye to 7th Gate", 1546 ).You can add this mission with &addmission 1546, 5138- GM level:99 - Example:&addmission 1546,5138 addmoney <gold> - Gives your char some gold. - GM level:99 - Example:&addmoney 1000000 addsailexp <exp> - Gives your current ship EXP / gives you Rebirth EXP (seems to depend on what version you are using) - GM level:99 - Example:&addsailexp 1000000 attr <attribute>,<value>,[<charid>] - Set a certain attribute of a char (see below) - GM Level:99 - Example:&attr 4,9 call <char name> - Teleports the given char to your position - GM Level:1 - Example:&call AnotherUser clearmission <id> - Removes a mission - GM Level:99 - Example:&clearmission 1456 delmission <id> - Deletes mission?Seems to be the same as clearmission - GM Level:99 - Example:&delmission 810 goto <char name> - Teleports you to the position of the given char - GM Level:1 - Example:&goto AnotherUser hide - Hides your char from other players - GM Level:1 - Example:&hide itemattr <2>,<Slot-1>,<attr>,<value> - Set a certain attribute of an item (see below for more infos) - GM Level:99 - Example:&itemattr 2,1,53,9 kick <char name> - Kicks the given user (sometimes it d/c surrounding players!) - GM Level:1 - Example:&kick AnotherUser make <item id>,<count>,[<quality>] - Gives you a certain item (see below for more infos) - GM Level:99 - Example:&make 1092,99 misclear - Clears your quest triggers, etc - GM Level:99 - Example:&misclear move <x>,<y>,[<map name>] - Moves your char to the given position (see below for more infos) - GM Level:1 - Example:&move 2000,2000,garner notice <text> - Displays text in the system-notice windows - GM Level:1 - Example:¬ice Hello World qcha <char name> - Returns information about the given char (coords, etc) - GM Level:99 - Example:&qcha AnotherUser seeattr <attribute>,<char id> - Display a certain attribute of a char - GM Level:99 - Example:&seeattr 6,1234 setrecord <id> - Set quest record. For example: if a quest-definition contains something like:TriggerCondition( 1, HasRecord, 330 );in the LUA files, you could use &setrecord 330 to obtain that record (btw. 330 is Language Barrier) - GM Level:99 - Example:&setrecord 330 skill <skill id>,<level> - Learn skill #[skill] at level[level] - GM Level:99 - Example:&skill 284,10 summon <mob id>,[<time in ms>],[<ai>] - Summons the given mob - GM Level:99 - Example:&summon 789 summonex <mob id>,<count>,[<time in ms>],[<ai>] - Summons the given mob multiple times (be careful - summoning too many mobs will crash the server) - GM Level:99 - Example:&summonex 789,10 unhide - The opposite of hide - GM level:1 - Example:&unhide Server Commands: The following list contains those commands that influence the server itself: gamesvrstop [<time>] - Stops the gameserver in [time] seconds - GM Level:99 - Example:&gamesvrstop getping - Displays the current ping - GM Level:99 - Example:&getping harmlog=1 / harmlog=0 - Enables/disables the harmlog. If on, info's on who is attacking whom are displayed - GM Level:99 - Example:&harmlog=1 lua <command> - Executes [command] on the gameserver your char is on.Haven't found any useful command, yet - GM Level:99 - Example:&lua print("Hello world!") lua_all <command> - The same as &lua put command is executed on all gameservers - GM Level:99 - Example:&lua_all print("Hello world!") missdk - Reloads the SDK files - GM Level:99 - Example:&missdk misreload - Reloads all NPC-dialogues and quests (same as updateall) - GM Level:99 - Example:&misreload reload <mode> - Reloads certain scripts/definitions.Possible values for mode:alltable,characterinfo,skillinfo,iteminfo,monsterrefresh - GM Level:99 - Example:&reload alltable send data <value 1>,<value 2> - Sends data.Whatever that means... - GM Level:99 - Example:&senddata 123,123 setping <value> - Sets the ping? Seems to do nothing!? - GM Level:99 - Example:&setping 100 setpinginfo<value 1>,<value 2> - Whatever... - GM Level:99 - Example:&setpinginfo 100,100 updateall - Reloads all NPC-dialogues and quests.(same as misreload) - GM Level:99 - Example:&updateall Additional information (summon, kick, etc.) I'll explain some things that are "good to know" in the next few paragraphs... summon & summonex When summoning mobs you have to take some things into account: lets say you summon a BD with &summon 789 it will stay until the GameServer is restarted. If it gets killed it will re-spawn after a few seconds! So be careful! If you summon mobs you can influence their behavior with the AI parameter. For example: &summon 789,900000,0 summons a BD which stays for 900s and doesn't attack. 0,1,2,4,5,10 and 11 are valid values. I'm not 100% sure but they should have the following meanings: 0 - do nothing 1 - move around but don't attack 2 - tries to run away if attacked? 4 - follow the master ? 5 - counterattack after being attacked 10 - attacks 11 - attacks, flees and does ranged attacks ? kick Be careful if you kick somebody from the server. In my experience, chars near the char you kick will be kicked, too. make If you use the third parameter with the &make-command you can create certain types of items. If anybody is really bored he can check the AttrCalculate.lua file. The function "Creat_Item_Tattr" defines the special effect. As far as i can see, the following values are possible: 1, 2, 3, 4, 7, 9, 11, 20, 22, 23, 24, 25, 26, 27, 29, 46, 49, 50, 59, 65, 68, 69, 70, 71, 101, 102 101 -> Gem Lv1 (pointless) 102 -> Gem Lv2 103-109 -> aren't working on all servers (if it works on yours, it creates Lv3-Lv9 gems) If 103-109 aren't working on your server you can add them yourself. Open AttrCalculate.lua and search for if item_event == 101 then Add_Item_Attr ( ITEMATTR_VAL_BaoshiLV , 10 ) --±¦Ê¯ return end if item_event == 102 then Add_Item_Attr ( ITEMATTR_VAL_BaoshiLV , 20 ) --±¦Ê¯ return end replace it with if item_event == 101 then Add_Item_Attr ( ITEMATTR_VAL_BaoshiLV , 10 ) return elseif item_event == 102 then Add_Item_Attr ( ITEMATTR_VAL_BaoshiLV , 20 ) return elseif item_event == 103 then Add_Item_Attr ( ITEMATTR_VAL_BaoshiLV , 30 ) return elseif item_event == 104 then Add_Item_Attr ( ITEMATTR_VAL_BaoshiLV , 40 ) return elseif item_event == 105 then Add_Item_Attr ( ITEMATTR_VAL_BaoshiLV , 50 ) return elseif item_event == 106 then Add_Item_Attr ( ITEMATTR_VAL_BaoshiLV , 60 ) return elseif item_event == 107 then Add_Item_Attr ( ITEMATTR_VAL_BaoshiLV , 70 ) return elseif item_event == 108 then Add_Item_Attr ( ITEMATTR_VAL_BaoshiLV , 80 ) return elseif item_event == 109 then Add_Item_Attr ( ITEMATTR_VAL_BaoshiLV , 90 ) return end and they should work. move Using &move you can teleport to any position. If you use the 3rd parameter you can specify the map to which you want to teleport. Just search for *.atr to find all valid map-names (garner, darkblue, magicsea, jialebi, and so on) Other stuff By pressing Alt+P in-game you can send system-messages to all users. Those messages appear in the upper center of the screen. After pressing Alt+P a cursor appears above the Hotkey-Bar. You can enter your message there. After pressing Enter, the message is displayed and will disappear after some time by itself. The &attr Commands Overview The &attr command is one of the most powerful in the game. It can be used to modify the attributes of all logged in characters. The syntax for this command is: &attr <attribute>, <value>, [<char-id>] where <char-id> is an optional parameter. If you don't add it, the command influences your currently logged in character. The following list shows all possible values for "attribute" and what you can do by modifying them (very incomplete at the moment) Important! Sometimes, when you're on a different map than the char you want to modify the server will reply with an error to your &attr commands. I hadn't got the chance yet to test it properly but I think it is either related to the other char being on a different map or to them being on a different gameserver. So if you get an error message saying that the char doesn't exist and you're sure it does, try teleporting near them and modifying their attributes! Normally, this fixes the problem. List Of Known Functional Attributes: 0-Level-Pretty obvious: modify the level of the char 1-HP-You can't set a higher value than the max. HP your char has - so &attr 1,999999999 will only give you as much HP as your char actually has 2-SP-same rules apply as for HP 4-Class-Use this to change your class. The following values are useful: 0 - Newbie 1 - Swordsman 2 - Hunter 4 - Explorer 5 - Herbalist 8 - Cahmpion 9 - Crusader 12 - Sharpshooter 13 - Cleric 14 - Seal Master 16 - Voyager (actually you can set any value between 0 and 16 but only the above classes are really implemented) 5-Reputation 6-Attribute Points 7-Skill Points 8-Gold 11-SLV 12-Life-Skill Level 13-Life-Skill Points 15-EXP-When in boat-modus -> boat-exp 50-STR 51-ACC 52-AGI 53-CON 54-SPR 69-Movement-Speed-Values higher than 2000 aren't useful as you'll be moving faster than the screen scrolls! 102-Attack Speed 104-Min Attack 105-Max AttacK 106-Defence 107-Max HP-Sets your max. number of HP 108-Max SP 109-Dodge 110-Hit-Rate List Of Unknown Attributes: 3-unknown-ATTR_TITLE 9-unknown-ATTR_SPRI 10-unknown-Possibly char-type -> NPC, etc. 14-unknown-ATTR_BOAT_BERTH 16-unknown-ATTR_NLEXP 17-unknown-ATTR_CLEXP 18-unknown-ATTR_CLEFT_SAILEXP 19-unknown-ATTR_CSAILEXP 20-unknown-ATTR_CLV_SAILEXP 21-unknown-ATTR_NLV_SAILEXP 22-unknown-ATTR_CLIFEEXP 23-unknown-ATTR_CLV_LIFEEXP 24-unknown-ATTR_NLV_LIFEEXP 25-unknown-ATTR_STR 26-unknown-ATTR_DEX 27-unknown-ATTR_AGI 28-unknown-ATTR_CON 29-unknown-ATTR_STA 30-unknown-ATTR_LUK 31-unknown-ATTR_MXHP 32-unknown-ATTR_MXSP 33-unknown-ATTR_MNATK 34-unknown-ATTR_MXATK 35-unknown-ATTR_DEF 36-unknown-ATTR_HIT 37-unknown-ATTR_FLEE 38-unknown-ATTR_MF 39-unknown-ATTR_CRT 40-unknown-ATTR_HREC 41-unknown-ATTR_SREC 42-unknown-ATTR_ASPD 43-unknown-ATTR_ADIS 44-unknown-ATTR_MSPD 45-unknown-ATTR_COL 46-unknown-ATTR_PDEF 47-unknown-ATTR_BOAT_CRANGE 48-unknown-ATTR_BOAT_CSPD 49-unknown-ATTR_BOAT_PRICE 55-unknown-ATTR_BLUK 56-unknown-ATTR_BMXHP 57-unknown-ATTR_BMXSP 58-unknown-ATTR_BMNATK 59-unknown-ATTR_BMXATK 60-unknown-ATTR_BDEF 61-unknown-ATTR_BHIT 62-unknown-ATTR_BFLEE 63-unknown-ATTR_BMF 64-unknown-ATTR_BCRT 65-unknown-ATTR_BHREC 66-unknown-ATTR_BSREC 67-unknown-ATTR_BASPD 68-unknown-ATTR_BADIS 70-unknown-ATTR_BCOL 71-unknown-ATTR_BPDEF 72-unknown-ATTR_BOAT_BCRANGE 73-unknown-ATTR_BOAT_BCSPD 74-unknown-ATTR_ITEMC_STR 75-unknown-ATTR_ITEMC_AGI 76-unknown-ATTR_ITEMC_DEX 77-unknown-ATTR_ITEMC_CON 78-unknown-ATTR_ITEMC_STA 79-unknown-ATTR_ITEMC_LUK 80-unknown-ATTR_ITEMC_ASPD 81-unknown-ATTR_ITEMC_ADIS 82-unknown-ATTR_ITEMC_MNATK 83-unknown-ATTR_ITEMC_MXATK 84-unknown-ATTR_ITEMC_DEF 85-unknown-ATTR_ITEMC_MXHP 86-unknown-ATTR_ITEMC_MXSP 87-unknown-ATTR_ITEMC_FLEE 88-unknown-ATTR_ITEMC_HIT 89-unknown-ATTR_ITEMC_CRT 90-unknown-ATTR_ITEMC_MF 91-unknown-ATTR_ITEMC_HREC 92-unknown-ATTR_ITEMC_SREC 93-unknown-ATTR_ITEMC_MSPD 94-unknown-ATTR_ITEMC_COL 95-unknown-ATTR_ITEMC_PDEF 96-unknown-ATTR_ITEMV_STR 97-unknown-ATTR_ITEMV_AGI 98-unknown-ATTR_ITEMV_DEX 99-unknown-ATTR_ITEMV_CON 100-unknown-ATTR_ITEMV_STA 101-unknown-ATTR_ITEMV_LUK 102-unknown-ATTR_ITEMV_ASPD 103-unknown-ATTR_ITEMV_ADIS 104-unknown-ATTR_ITEMV_MNATK 105-unknown-ATTR_ITEMV_MXATK 106-unknown-ATTR_ITEMV_DEF 111-unknown-ATTR_ITEMV_CRT 112-unknown-ATTR_ITEMV_MF 113-unknown-ATTR_ITEMV_HREC 114-unknown-ATTR_ITEMV_SREC 115-unknown-ATTR_ITEMV_MSPD 116-unknown-ATTR_ITEMV_COL 117-unknown-ATTR_ITEMV_PDEF 118-unknown-ATTR_STATEC_STR 119-unknown-ATTR_STATEC_AGI 120-unknown-ATTR_STATEC_DEX 121-unknown-ATTR_STATEC_CON 122-unknown-ATTR_STATEC_STA 123-unknown-ATTR_STATEC_LUK 124-unknown-ATTR_STATEC_ASPD 125-unknown-ATTR_STATEC_ADIS 126-unknown-ATTR_STATEC_MNATK 127-unknown-ATTR_STATEC_MXATK 128-unknown-ATTR_STATEC_DEF 129-unknown-ATTR_STATEC_MXHP 130-unknown-ATTR_STATEC_MXSP 131-unknown-ATTR_STATEC_FLEE 132-unknown-ATTR_STATEC_HIT 133-unknown-ATTR_STATEC_CRT 134-unknown-ATTR_STATEC_MF 135-unknown-ATTR_STATEC_HREC 136-unknown-ATTR_STATEC_SREC 137-unknown-ATTR_STATEC_MSPD 138-unknown-ATTR_STATEC_COL 139-unknown-ATTR_STATEC_PDEF 140-unknown-ATTR_STATEV_STR 141-unknown-ATTR_STATEV_AGI 142-unknown-ATTR_STATEV_DEX 143-unknown-ATTR_STATEV_CON 144-unknown-ATTR_STATEV_STA 145-unknown-ATTR_STATEV_LUK 146-unknown-ATTR_STATEV_ASPD 147-unknown-ATTR_STATEV_ADIS 148-unknown-ATTR_STATEV_MNATK 149-unknown-ATTR_STATEV_MXATK 150-unknown-ATTR_STATEV_DEF 151-unknown-ATTR_STATEV_MXHP 152-unknown-ATTR_STATEV_MXSP 153-unknown-ATTR_STATEV_FLEE 154-unknown-ATTR_STATEV_HIT 155-unknown-ATTR_STATEV_CRT 156-unknown-ATTR_STATEV_MF 157-unknown-ATTR_STATEV_HREC 158-unknown-ATTR_STATEV_SREC 159-unknown-ATTR_STATEV_MSPD 160-unknown-ATTR_STATEV_COL 161-unknown-ATTR_STATEV_PDEF 162-unknown-ATTR_LHAND_ITEMV 163-unknown-ATTR_BOAT_SHIP 164-unknown-ATTR_BOAT_HEADER 165-unknown-ATTR_BOAT_BODY 166-unknown-ATTR_BOAT_ENGINE 167-unknown-ATTR_BOAT_CANNON 168-unknown-ATTR_BOAT_PART 169-unknown-ATTR_BOAT_DBID 170-unknown-ATTR_BOAT_DIECOUNT 171-unknown-ATTR_BOAT_ISDEAD 172-unknown-ATTR_BOAT_SKILLC_MNATK 173-unknown-ATTR_BOAT_SKILLC_MXATK 174-unknown-ATTR_BOAT_SKILLC_ADIS 175-unknown-ATTR_BOAT_SKILLC_MSPD 176-unknown-ATTR_BOAT_SKILLC_CSPD 177-unknown-ATTR_BOAT_SKILLC_ASPD 178-unknown-ATTR_BOAT_SKILLC_CRANGE 179-unknown-ATTR_BOAT_SKILLC_DEF 180-unknown-ATTR_BOAT_SKILLC_RESIST 181-unknown-ATTR_BOAT_SKILLC_MXUSE 182-unknown-ATTR_BOAT_SKILLC_USEREC 183-unknown-ATTR_BOAT_SKILLC_EXP 184-unknown-ATTR_BOAT_SKILLC_CPT 185-unknown-ATTR_BOAT_SKILLC_SPD 186-unknown-ATTR_BOAT_SKILLC_MXSPLY 187-unknown-ATTR_BOAT_SKILLV_MNATK 188-unknown-ATTR_BOAT_SKILLV_MXATK 189-unknown-ATTR_BOAT_SKILLV_ADIS 190-unknown-ATTR_BOAT_SKILLV_MSPD 191-unknown-ATTR_BOAT_SKILLV_CSPD 192-unknown-ATTR_BOAT_SKILLV_ASPD 193-unknown-ATTR_BOAT_SKILLV_CRANGE 194-unknown-ATTR_BOAT_SKILLV_DEF 195-unknown-ATTR_BOAT_SKILLV_RESIST 196-unknown-ATTR_BOAT_SKILLV_MXUSE 197-unknown-ATTR_BOAT_SKILLV_USEREC 198-unknown-ATTR_BOAT_SKILLV_EXP 199-unknown-ATTR_BOAT_SKILLV_CPT 200-unknown-ATTR_BOAT_SKILLV_SPD 201-unknown-ATTR_BOAT_SKILLV_MXSPLY 202-unknown-ATTR_MAX_NUM The &itemattr Commands Overview The &itemattr command is similar to the &attr command but it works on items instead of chars. The syntax for this command is: &itemattr <slot>, <row>, <attribute>, <value> The following list shows all possible values for "attribute" and what you can do by modifying them (very incomplete at the moment): 0-unknown-ITEMATTR_COUNT_BASE0 1-unknown-ITEMATTR_COE_STR 2-unknown-ITEMATTR_COE_AGI 3-unknown-ITEMATTR_COE_DEX 4-unknown-ITEMATTR_COE_CON 5-unknown-ITEMATTR_COE_STA 6-unknown-ITEMATTR_COE_LUK 7-unknown-ITEMATTR_COE_ASPD 8-unknown-ITEMATTR_COE_ADIS 9-unknown-ITEMATTR_COE_MNATK 10-unknown-ITEMATTR_COE_MXATK 11-unknown-ITEMATTR_COE_DEF 12-unknown-ITEMATTR_COE_MXHP 13-unknown-ITEMATTR_COE_MXSP 14-unknown-ITEMATTR_COE_FLEE 15-unknown-ITEMATTR_COE_HIT 16-unknown-ITEMATTR_COE_CRT 17-unknown-ITEMATTR_COE_MF 18-unknown-ITEMATTR_COE_HREC 19-unknown-ITEMATTR_COE_SREC 20-unknown-ITEMATTR_COE_MSPD 21-unknown-ITEMATTR_COE_COL 22-unknown-ITEMATTR_COE_PDEF 25-unknown-ITEMATTR_COUNT_BASE1 26-unknown-ITEMATTR_VAL_STR 27-unknown-ITEMATTR_VAL_AGI 28-unknown-ITEMATTR_VAL_DEX 29-unknown-ITEMATTR_VAL_CON 30-unknown-ITEMATTR_VAL_STA 31-unknown-ITEMATTR_VAL_LUK 32-unknown-ITEMATTR_VAL_ASPD 33-unknown-ITEMATTR_VAL_ADIS 34-unknown-ITEMATTR_VAL_MNATK 35-unknown-ITEMATTR_VAL_MXATK 36-unknown-ITEMATTR_VAL_DEF 37-unknown-ITEMATTR_VAL_MXHP 38-unknown-ITEMATTR_VAL_MXSP 39-unknown-ITEMATTR_VAL_FLEE 40-unknown-ITEMATTR_VAL_HIT 41-unknown-ITEMATTR_VAL_CRT 42-unknown-ITEMATTR_VAL_MF 43-unknown-ITEMATTR_VAL_HREC 44-unknown-ITEMATTR_VAL_SREC 45-unknown-ITEMATTR_VAL_MSPD 46-unknown-ITEMATTR_VAL_COL 47-unknown-ITEMATTR_VAL_PDEF 49-unknown-ITEMATTR_COUNT_BASE2 50-unknown-ITEMATTR_LHAND_VAL 51-unknown-ITEMATTR_MAXURE 52-unknown-ITEMATTR_MAXFORGE 53-unknown-ITEMATTR_MAXENERGY 54-unknown-ITEMATTR_URE 55-unknown-ITEMATTR_FORGE 56-unknown-ITEMATTR_ENERGY 58-unknown-ITEMATTR_MAX_NUM 48-unknown-ITEMATTR_CLIENT_MAX 180-unknown-ITEMATTR_COUNT_BASE3 181-unknown-ITEMATTR_VAL_PARAM1 182-unknown-ITEMATTR_VAL_PARAM2 183-unknown-ITEMATTR_VAL_LEVEL 184-unknown-ITEMATTR_VAL_FUSIONID Special Items For some items, PKO abuses some of the above attributes to store different values. Which fields are used for what will be described on the next few paragraphs: Pets Item attr: 26/30 Description: Attribute-Bonus Remark: Sum these to get Pet-Level Item attr: 51 Description: max. Stamina Remark: Formula: (Stamina*50) --> so if you want 400 Stamina, use 20000 as value Item attr: 53 Description: max. Growth Remark: Formula: (Level*240) --> for level 15 you would use 3600 as value Item attr: 54 Description: current Stamina Remark: Non Medal Of Valor Item attr:26 Description: Honor Points Item attr:27 Description: Number of Kills Item attr:28 Description: Number of Deaths Item attr:29 Description: Number of PVP Matches Item attr:30 Description: Number of Wins Item attr:51 Description: Team-Contribution Pts Item attr:53 Description: Chaos Points Gems Item attr: 53 Description: Level of the gem Remark: Use 1-9 to set the level of any gem The @@ Commands Overview There are some additional commands with a slightly different sysntax (all credits go to jgreever for finding these). Some of them work without any GM-level-restriction (so you can use them on official servers with a Newbie - only the char-level-restrictions for talkin in certain channels apply). You use them by typing "@@ command" (@@ followed by a blank) into the chatbox. bbs <[interval x 10 secs>,<time>,<content> - similar to &notice, but timed - GM Level:? - Example: @@ bbs 5,5,hello estop <char name>,<time> - Mutes the given char for [time] seconds (important info below!) - GM Level:1 - Example: @@ estop SnowMan,60 delestop <char name> - Unmutes the given character (important info below!) - GM Level:1 - Example: @@ delestop SnowMan,60 disable <char id>,1 - Kicks user without kicking people around him - GM Level:?? - Example: @@ disable 1234,1 getuserconnection <char name> - Shows connection info for the given character - GM Level:?? - Example: @@ getuserconnection SnowMan getusernum+ - Displays number of users online and number of logins - GM Level:0 -Example: @@ getusernum+ getlastconnection - Displays your last connection info - GM Level:0 - Example: @@ getlastconnection ping <char name> - Pings the given character - GM Level:?? - Example: @@ ping SnowMan Regarding estop/delestop "estop" works a little bit different from what most people expect. lets say you mute somebody for 60 minutes, then this character has to be online for 60 minutes for the mute to wear off. If he just logs off and comes back 2 hours later he will still be muted! So be careful if you mute people for several days as it will probably take them weeks until they can talk again if they are online for a few hours each day. To unmute somebody, the person has to be online! You can't "delestop" characters who aren't logged in! Missing/Unknown Commands The following commands are available but for some reason nobody could figure out what they do or how they work. So if anybody has more information or is bored and can try them out, feel free to post your findings in this thread! (Most of the time the parameters are just a guess from what has been seen in the debugger) delitem forge isblock itemvalid light pet qitem <some parameter> relive reload_ai setflag <id>, <flag> - Sets a quest history flag. whatever that means. - GM Level:?? - Example:&setflag 1,1 Regarding IDs for items, mobs, skills, etc. Where to find them OK, normally this shouldn't be necessary as in my humble opinion everybody running an own server should be intelligent enough to take at least one look at the files for himself (otherwise he should just delete his files as he is not worth running a server): All Skill-IDs, Item-IDs, etc. can be found in the txt-files in the resource directory of your GameServer. Item-IDs: iteminfo.txt Mob-IDs: characterinfo.txt Skill-IDs: skillinfo.txt (there are more, but those are the most important) - if you view the files in any text-editor you'll see a lot of columns with data. In all files the first column contains the ID and the second the name of the item/mob/skill. (Even in all other files, the first column is always the ID and in 99% of all cases, the second row contains names) Regarding Security On GM-Servers Basically, I think running a GM-server is a waste of time. You will always have the problem that there are idiots who think its funny to do things like summon thousands of mobs, etc. If you really want to run a GM-server I would recommend to modify the GameServer.exe and rename certain commands. For example gamesvrstop, summonex, etc. - you can do so by using any HEX-editor (like HXD, XVI32, etc.).
  29. 0 points
    Hello @emofc! I am still alive
  30. 0 points
    Username invalid, write your name same please.
  31. 0 points
    is possible to make Auction House like others MMOs?
  • Newsletter

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