V3ct0r 2,116 Report post Posted April 23, 2016 Защита GM команд Привет! Предположим, Ваш сервер был взломан и злоумышленник получил доступ к GM-аккаунту. В данной статье я расскажу как обезопасить Ваш сервер от его действий, то есть сделать взлом бессмысленным. Внимание! Особое внимание уделите командам &lua и &lua_all. С их помощью злоумышленник может получить контроль над машиной, где запущен GameServer.exe, со всеми вытекающими из этого последствиями: кража Вашей сборки либо её удаление, вайп базы данных, потеря доступа к машине и так далее. Обсуждение этих команд проходит в данной теме: Все прелести команды &lua. Для обеспечения безопасности Вашего сервера, не используйте имена из примеров данной статьи на своем сервере! Способ №1. Нет GM-команд - нет проблем! Если Вы редко или вообще не пользуетесь GM-командами, то имеет смысл их отключить. Редактировать персонажей и выдавать предметы можно с помощью специальных программ или вручную в базе данных, когда персонаж не в игре. Чтобы отключить GM-команды нужно внести изменения в GameServer.exe. Версия | Размер (КБ) | Адрес --------+-------------+------------ 1.36 | 2 040 | 0x000DE1E8 1.38 | 2 088 | 0x000E6852 2.0 | 3 000 | 0x00161349 Откройте GameServer.exe в любом HEX редакторе и перейдите по адресу из таблицы. Я буду работать с 1.38 GameServer.exe в редакторе HxD. Замените 23 байта начиная с этого адреса на 0x90 Сохраните проделанные изменения и убедитесь, что в игре не работают GM-команды. Способ №2. Переименовывание GM-команд. Злоумышленник не сможет воспользоваться GM-командами, если он не будет знать их названия. Итак, Вам придется переименовать каждую команду. Чтобы изменить название GM-команды, откройте GameServer.exe в любом HEX-редакторе. Затем найдите GM-команду и измените ее название. Длина нового названия должна быть такой же, как и длина старого. Для примера, переименуем команду &make в команду &give. Обратите внимание, что длины строк "make" и "give" равны (по 4 символа). Открываем GameServer.exe в HEX-редакторе и ищем строку "make": Вам будут попадаться строки, которые содержат в себе подстроку "make" (например, "MakeItem", "make failed!", "GMmakeLog" и др.). Игнорируйте их и продолжайте поиск. Когда Вы найдете нужную строку, Вы увидите рядом названия других GM-команд: Заменяем на "give": Сохраните проделанные изменения. Повторите данные действия для каждой GM-команды. Список адресов GM-команд GameServer.exe версии 1.36 (2 040 КБ): Скрытый текст (0x001A7018) lua (0x001BD05C) itemvalid (0x001BD158) addkb (0x001BD160) setpinginfo (0x001BD16C) senddata (0x001BD18C) getping (0x001BD1A4) setping (0x001BD1AC) lua_all (0x001BD1C8) delitem (0x001BD248) skill (0x001BD250) forge (0x001BD280) seeattr (0x001BD288) light (0x001BD290) itemattr (0x001BD310) attr (0x001BD3E4) make (0x001BD404) setcesslevel (0x001BD434) addcess (0x001BD470) addsailexp (0x001BD4A8) addlifeexp (0x001BD4B4) addexp (0x001BD4BC) addmoney (0x001BD4E8) kill (0x001BD50C) summonex (0x001BD534) summon (0x001BD550) pet (0x001BD56C) isblock (0x001BD5B4) misclear (0x001BD5C0) missdk (0x001BD60C) delmission (0x001BD65C) clearmission (0x001BD6C0) addmission (0x001BD71C) clearfalg (0x001BD784) setflag (0x001BD7DC) clearrecord (0x001BD840) setrecord (0x001BD84C) reload_ai (0x001BD858) misreload (0x001BD864) harmlog=0 (0x001BD870) harmlog=1 (0x001BD8B0) updateall (0x001BD8BC) gamesvrstop (0x001BD8C8) call (0x001BD8D0) qitem (0x001BD8D8) qcha (0x001BD8E0) relive (0x001BD92C) reload (0x001BD934) kick (0x001BD93C) goto (0x001BD944) unhide (0x001BD94C) hide (0x001BD954) notice (0x001BD998) move (0x001BD8E8) reload monsterrefresh (0x001BD8F8) reload iteminfo (0x001BD904) reload skillinfo (0x001BD910) reload characterinfo (0x001BD920) reload alltable GameServer.exe версии 1.38 (2 088 КБ): Скрытый текст (0x001B4114) lua (0x001C7818) itemvalid (0x001C78A4) addkb (0x001C78AC) setpinginfo (0x001C78B8) senddata (0x001C78E4) getping (0x001C790C) setping (0x001C7914) lua_all (0x001C793C) delitem (0x001C7964) skill (0x001C796C) forge (0x001C7994) seeattr (0x001C799C) light (0x001C79A4) itemattr (0x001C79F0) attr (0x001C7AC4) make (0x001C7AEC) setcesslevel (0x001C7B1C) addcess (0x001C7B44) addsailexp (0x001C7B70) addlifeexp (0x001C7B7C) addexp (0x001C7BA4) addmoney (0x001C7BD0) kill (0x001C7BF8) summonex (0x001C7C24) summon (0x001C7C4C) pet (0x001C7C90) isblock (0x001C7CB8) misclear (0x001C7CC4) missdk (0x001C7D0C) delmission (0x001C7D58) clearmission (0x001C7DA8) addmission (0x001C7DF4) clearfalg (0x001C7E40) setflag (0x001C7E88) clearrecord (0x001C7EB4) setrecord (0x001C7EC0) reload_ai (0x001C7ECC) misreload (0x001C7ED8) harmlog=0 (0x001C7EE4) harmlog=1 (0x001C7F10) updateall (0x001C7F1C) gamesvrstop (0x001C7F28) call (0x001C7F30) qitem (0x001C7F38) qcha (0x001C7F40) relive (0x001C7F8C) reload (0x001C7F94) kick (0x001C7F9C) goto (0x001C7FA4) unhide (0x001C7FAC) hide (0x001C7FB4) notice (0x001C7FF8) move (0x001C7F48) reload monsterrefresh (0x001C7F58) reload iteminfo (0x001C7F64) reload skillinfo (0x001C7F70) reload characterinfo (0x001C7F80) reload alltable GameServer.exe версии 2.4 (3 000 КБ): Скрытый текст (0x0027069C) lua (0x002709C8) opencrystal (0x00270E4C) CloseMapEntry (0x0028E9F0) closecrystal (0x0028EA00) CheckMapState (0x0028EA10) CloseMap (0x0028EA1C) OpenMap (0x0028EA24) OpenMapEntry (0x0028EA34) playsave (0x0028EA80) itemvalid (0x0028EB0C) addkb (0x0028EB14) setpinginfo (0x0028EB20) senddata (0x0028EB4C) getping (0x0028EB74) setping (0x0028EB7C) lua_all (0x0028EBA4) delitem (0x0028EBCC) skill (0x0028EBD4) forge (0x0028EBFC) seeattr (0x0028EC04) light (0x0028EC0C) itemattr (0x0028EC58) attr (0x0028ED2C) make (0x0028ED54) setcesslevel (0x0028ED84) addcess (0x0028EDAC) addsailexp (0x0028EDD8) addlifeexp (0x0028EDE4) addexp (0x0028EDEC) addmoney (0x0028EE18) kill (0x0028EE40) summonex (0x0028EE6C) summon (0x0028EE94) pet (0x0028EED8) isblock (0x0028EF00) misclear (0x0028EF0C) missdk (0x0028EF54) delmission (0x0028EFA0) clearmission (0x0028EFF0) addmission (0x0028F03C) clearfalg (0x0028F088) setflag (0x0028F0D0) clearrecord (0x0028F0FC) setrecord (0x0028F108) reload_ai (0x0028F114) misreload (0x0028F120) harmlog=0 (0x0028F12C) harmlog=1 (0x0028F158) updateall (0x0028F164) gamesvrstop (0x0028F170) call (0x0028F178) qitem (0x0028F180) qcha (0x0028F188) relive (0x0028F1D4) reload (0x0028F1FC) kick (0x0028F204) goto (0x0028F20C) unhide (0x0028F214) hide (0x0028F258) notice (0x0028F260) move (0x0028F190) reload monsterrefresh (0x0028F1A0) reload iteminfo (0x0028F1AC) reload skillinfo (0x0028F1B8) reload characterinfo (0x0028F1C8) reload alltable Способ N3. GameServer.exe с функциями HandleChat(), GetGmLv() и SetGmLv() Для реализации данного способа Вам потребуется модифицированный GameServer.exe с функциями HandleChat(), GetGmLv() и SetGmLv(). Функция HandleChat(userdata role, string message) срабатывает, когда игрок пишет сообщение в местный чат. Так как GM-команды отправляются также в местный чат, Вы можете написать скрипт, который будет контролировать выполнение команд. Например, Вы можете сделать так, чтобы GM-команды срабатывали только при условии, что их отправляет персонаж с определенным именем или ID. Плюс ко всему, можно сделать чтобы этот персонаж должен еще состоять в определенной гильдии, в которую входят только администраторы и GM Вашего сервера. Все зависит от Вашей фантазии. Чтобы узнать, что персонаж является GM, используйте функцию GetGmLv(userdata role). С помощью функции SetGmLv(userdata role, number level) можно изменять GM-уровень аккаунта, к которому прикреплен персонаж. Например, в той же функции HandleChat() можно сбрасывать GM-уровень аккаунта в 0, если персонаж не прошел проверку. Реализуем простую систему контроля GM-команд: 1) GM-команды могут выполнять только персонажи с именами: "V3ct0r", "pkodev" и "Administrator"; 2) В случае, если персонаж GM и он не прошел проверку, сбросить GM-уровень до 0, кикнуть персонажа с сервера и отправить сообщение администратору в консоль GameServer.exe. Для начала создадим в файле variable.lua массив с именами персонажей, которые могут использовать GM-команды. Назовем его PlayerCanUseCmd: PlayerCanUseCmd = {} PlayerCanUseCmd["V3ct0r"] = 1 PlayerCanUseCmd["pkodev"] = 1 PlayerCanUseCmd["Administrator"] = 1 Затем напишем скрипт для функции HandleChat() в файле functions.lua: -- Обработчик местного чата function HandleChat(role, message) -- Проверяем что персонаж GM if (GetGmLv(role) > 0) then -- Проверяем что персонаж отправил GM-команду if (string.find(message, "&") == 1) then -- Проверяем имя персонажа local cha_name = GetChaDefaultName(role) if (PlayerCanUseCmd[cha_name] ~= nil) then -- Персонаж может использовать GM-команду return 1 end -- Персонаж не может использовать GM-команду -- Сбрасываем GM-уровень до 0 SetGmLv(role, 0) -- Кикаем персонажа с сервера KickCha(role) -- Пишем сообщение администратору в консоль сервера print("Player [" .. cha_name .."] trying to use GM command!") -- Запрещаем выполнение GM-команды return 0 end end return 1 end Для кика персонажей нам понадобится функция KickCha(), добавьте ее также в functions.lua: function KickCha(character) local pkt = GetPacket() WriteCmd(pkt, 1505) SendPacket(character,pkt) end Тема открыта для обсуждения. Пишите свои вопросы и идеи в комментариях! 2 1 Quote Some useful links / Полезные ссылки Tips for making a topic in 'Questions & Help' / Рекомендации по созданию тем в разделе "Помощь" Server Advertising Section Rules / Правила раздела "Реклама серверов" Available e-mail domains for registration / Допустимые e-mail домены для регистрации User groups / Группы пользователей User ranks / Звания пользователей "Broken" pictures on the forum / "Битые" изображения на форуме Beware of scammers! / Осторожно, мошенники! My developments / Мои разработки Mods for client and server / Моды для клиента и сервера PKOdev.NET website for Tales of Pirates Server / PKOdev.NET веб-обвязка для сервера Пиратии I do not provide any help in private messages and outside the forum. Use 'Questions & Help' section please. Thank you for understanding! Я не оказываю какую-либо помощь в личных сообщениях и вне форума. Пожалуйста, используйте раздел "Пиратия: Помощь". Благодарю за понимание! Share this post Link to post Share on other sites
e1mer 100 Report post Posted April 23, 2016 Я например, просто все вредные GM команды в HEX-редакторе заменил нулевыми байтами, все работает хорошо, но это скорее не правильный способ избежания проблемы. Откатил GS на предыдущею версию и сделал как описано в первом способе. Quote Share this post Link to post Share on other sites
WVWMK 121 Report post Posted April 23, 2016 1 час назад, e1mer сказал: Я например, просто все вредные GM команды в HEX-редакторе заменил нулевыми байтами, все работает хорошо, но это скорее не правильный способ избежания проблемы. Откатил GS на предыдущею версию и сделал как описано в первом способе. У меня защита как в 3 способе стоит. Quote Делай добро и бросай его в воду Share this post Link to post Share on other sites
aleksandr 21 Report post Posted April 23, 2016 3 способ почему-то не работает. Сервер не воспринимает скрипт, как таковой. Использую скрипт - [Script] KickAllPlayers, каких либо проблем нет, а вот с этим проблемы. В variable.lua ник персонажа указан, но пользоваться командами могут все ГМ без исключения. Quote Share this post Link to post Share on other sites
Jones 36 Report post Posted April 23, 2016 (edited) i wont use translator this time. bad google translate V3ct0r @ of After [KickCha] command, there is the any way to the account BAN Customers Also the when triggered? Btw. Great Guide. Very informational. Edited April 23, 2016 by Jones Quote Share this post Link to post Share on other sites
V3ct0r 2,116 Report post Posted April 24, 2016 10 час назад, aleksandr сказал: 3 способ почему-то не работает. Сервер не воспринимает скрипт, как таковой. Использую скрипт - [Script] KickAllPlayers, каких либо проблем нет, а вот с этим проблемы. В variable.lua ник персонажа указан, но пользоваться командами могут все ГМ без исключения. В GameServer.exe есть функции GetGmLv() и SetGmLv()? Попробуй убрать строку -- Сбрасываем GM-уровень до 0 SetGmLv(role, 0) 10 час назад, Jones сказал: i wont use translator this time. bad google translate V3ct0r @ of After [KickCha] command, there is the any way to the account BAN Customers Also the when triggered? Btw. Great Guide. Very informational. I think we can write trigger to ban account when it's gm level changed. 2 Quote Some useful links / Полезные ссылки Tips for making a topic in 'Questions & Help' / Рекомендации по созданию тем в разделе "Помощь" Server Advertising Section Rules / Правила раздела "Реклама серверов" Available e-mail domains for registration / Допустимые e-mail домены для регистрации User groups / Группы пользователей User ranks / Звания пользователей "Broken" pictures on the forum / "Битые" изображения на форуме Beware of scammers! / Осторожно, мошенники! My developments / Мои разработки Mods for client and server / Моды для клиента и сервера PKOdev.NET website for Tales of Pirates Server / PKOdev.NET веб-обвязка для сервера Пиратии I do not provide any help in private messages and outside the forum. Use 'Questions & Help' section please. Thank you for understanding! Я не оказываю какую-либо помощь в личных сообщениях и вне форума. Пожалуйста, используйте раздел "Пиратия: Помощь". Благодарю за понимание! Share this post Link to post Share on other sites
aleksandr 21 Report post Posted April 24, 2016 (edited) 8 часов назад, V3ct0r сказал: В GameServer.exe есть функции GetGmLv() и SetGmLv()? Попробуй убрать строку -- Сбрасываем GM-уровень до 0 SetGmLv(role, 0) Да, помогло. Видимо функция SetGmLv не добавлена. Edited April 24, 2016 by aleksandr 1 Quote Share this post Link to post Share on other sites
Jones 36 Report post Posted April 24, 2016 @V3ct0r Also, can you add a message proc (eg. SystemNotice) with a delay before the kick? Quote Share this post Link to post Share on other sites
DevMorgan 6 Report post Posted April 24, 2016 i'm have error: the players are with problem to speak in the Place [04-24 17:18:34]resource/script\calculate\functions.lua:16707: attempt to call global `GetGmLv' (a nil value) Quote Share this post Link to post Share on other sites
V3ct0r 2,116 Report post Posted April 25, 2016 7 часов назад, DevMorgan сказал: i'm have error: the players are with problem to speak in the Place [04-24 17:18:34]resource/script\calculate\functions.lua:16707: attempt to call global `GetGmLv' (a nil value) Does your GameServer have GetGmLv function? Do you pass a correct role to it? Quote Some useful links / Полезные ссылки Tips for making a topic in 'Questions & Help' / Рекомендации по созданию тем в разделе "Помощь" Server Advertising Section Rules / Правила раздела "Реклама серверов" Available e-mail domains for registration / Допустимые e-mail домены для регистрации User groups / Группы пользователей User ranks / Звания пользователей "Broken" pictures on the forum / "Битые" изображения на форуме Beware of scammers! / Осторожно, мошенники! My developments / Мои разработки Mods for client and server / Моды для клиента и сервера PKOdev.NET website for Tales of Pirates Server / PKOdev.NET веб-обвязка для сервера Пиратии I do not provide any help in private messages and outside the forum. Use 'Questions & Help' section please. Thank you for understanding! Я не оказываю какую-либо помощь в личных сообщениях и вне форума. Пожалуйста, используйте раздел "Пиратия: Помощь". Благодарю за понимание! Share this post Link to post Share on other sites
DevMorgan 6 Report post Posted April 25, 2016 6 hours ago, V3ct0r said: Does your GameServer have GetGmLv function? Do you pass a correct role to it? i'm using this: Способ N3. GameServer.exe с функциями HandleChat(), GetGmLv() и SetGmLv() Для реализации данного способа Вам потребуется модифицированный GameServer.exe с функциями HandleChat(), GetGmLv() и SetGmLv(). Quote Share this post Link to post Share on other sites
SnakeSanders 0 Report post Posted April 27, 2016 (edited) @V3ct0r if (string.find(message, "&") == 1) then Все бы ничего, но не значит ли это, то он будет кикать и понижать ГМлевел любого ГМа (из тех, кто не присутствуют в списке), даже если сообщение будет не "&make 123, 1", а "f ns xnj nen pf,sk&", то есть банальная опечатка со сменой раскладки и использованием знака вопроса. Таким образом, надо использовать проверку только первого символа мэссэйджа. Я еще не копался здесь в скриптинге и не разбираюсь в нем совсем, но ПРИМЕРНО это должно быть вот так, нэ? (возможно здесь другие методы, но суть в обращении только к первому символу мэссэйджа) if (string.find(message[1], "&") == 1) then Edited April 27, 2016 by SnakeSanders Quote Share this post Link to post Share on other sites
V3ct0r 2,116 Report post Posted April 27, 2016 @SnakeSanders Это условие как раз и проверяет что символ '&' находится в начале строки. См. функцию string.find() Цитата string.find (s, pattern [, init [, plain]]) Ищет первое вхождение шаблона pattern в строку s. Если поиск успешен, то find возвращает индексы s где найдено совпадение с шаблоном, т.е. где начинается и кончается; иначе возвращает nil. Третий, необязательный числовой параметр init указывает откуда начинать поиск; по умолчанию он равен 1, также он может быть отрицательным. Значение true в четвертом, необязательном параметре plain выключает возможность поиска по шаблону, в этом случае производится поиск подстроки как есть, т.е. считается, что она не содержит «шаблонных» ("magic") симолов. Помните, что если указан параметр plain, то параметр init должен быть указан тоже. 1 Quote Some useful links / Полезные ссылки Tips for making a topic in 'Questions & Help' / Рекомендации по созданию тем в разделе "Помощь" Server Advertising Section Rules / Правила раздела "Реклама серверов" Available e-mail domains for registration / Допустимые e-mail домены для регистрации User groups / Группы пользователей User ranks / Звания пользователей "Broken" pictures on the forum / "Битые" изображения на форуме Beware of scammers! / Осторожно, мошенники! My developments / Мои разработки Mods for client and server / Моды для клиента и сервера PKOdev.NET website for Tales of Pirates Server / PKOdev.NET веб-обвязка для сервера Пиратии I do not provide any help in private messages and outside the forum. Use 'Questions & Help' section please. Thank you for understanding! Я не оказываю какую-либо помощь в личных сообщениях и вне форума. Пожалуйста, используйте раздел "Пиратия: Помощь". Благодарю за понимание! Share this post Link to post Share on other sites
SnakeSanders 0 Report post Posted April 27, 2016 (edited) @V3ct0r Ага, да, спасибо, все понял. То есть в данном ключе просто неправильно рассмотрел "== 1", используя навыки не-помню-какого-языка, где == 1 просто можно было заменить на == true, здесь же 1 значит место в мессэйдже. тогда все понятно, да. П.С: Правильно понял ведь, да? (((= Edited April 27, 2016 by SnakeSanders Quote Share this post Link to post Share on other sites
V3ct0r 2,116 Report post Posted April 27, 2016 2 часа назад, SnakeSanders сказал: @V3ct0r Ага, да, спасибо, все понял. То есть в данном ключе просто неправильно рассмотрел "== 1", используя навыки не-помню-какого-языка, где == 1 просто можно было заменить на == true, здесь же 1 значит место в мессэйдже. тогда все понятно, да. П.С: Правильно понял ведь, да? (((= Здесь 1 значит не true, а именно единицу - позицию символа & в строке. 1 Quote Some useful links / Полезные ссылки Tips for making a topic in 'Questions & Help' / Рекомендации по созданию тем в разделе "Помощь" Server Advertising Section Rules / Правила раздела "Реклама серверов" Available e-mail domains for registration / Допустимые e-mail домены для регистрации User groups / Группы пользователей User ranks / Звания пользователей "Broken" pictures on the forum / "Битые" изображения на форуме Beware of scammers! / Осторожно, мошенники! My developments / Мои разработки Mods for client and server / Моды для клиента и сервера PKOdev.NET website for Tales of Pirates Server / PKOdev.NET веб-обвязка для сервера Пиратии I do not provide any help in private messages and outside the forum. Use 'Questions & Help' section please. Thank you for understanding! Я не оказываю какую-либо помощь в личных сообщениях и вне форума. Пожалуйста, используйте раздел "Пиратия: Помощь". Благодарю за понимание! Share this post Link to post Share on other sites
V3ct0r 2,116 Report post Posted May 9, 2016 Добавил список адресов GM-команд. Всего 53 команды и 5 параметров для команды &reload. GameServer.exe версии 1.36 (2 040 КБ): Скрытый текст (0x001A7018) lua (0x001BD05C) itemvalid (0x001BD158) addkb (0x001BD160) setpinginfo (0x001BD16C) senddata (0x001BD18C) getping (0x001BD1A4) setping (0x001BD1AC) lua_all (0x001BD1C8) delitem (0x001BD248) skill (0x001BD250) forge (0x001BD280) seeattr (0x001BD288) light (0x001BD290) itemattr (0x001BD310) attr (0x001BD3E4) make (0x001BD404) setcesslevel (0x001BD434) addcess (0x001BD470) addsailexp (0x001BD4A8) addlifeexp (0x001BD4B4) addexp (0x001BD4BC) addmoney (0x001BD4E8) kill (0x001BD50C) summonex (0x001BD534) summon (0x001BD550) pet (0x001BD56C) isblock (0x001BD5B4) misclear (0x001BD5C0) missdk (0x001BD60C) delmission (0x001BD65C) clearmission (0x001BD6C0) addmission (0x001BD71C) clearfalg (0x001BD784) setflag (0x001BD7DC) clearrecord (0x001BD840) setrecord (0x001BD84C) reload_ai (0x001BD858) misreload (0x001BD864) harmlog=0 (0x001BD870) harmlog=1 (0x001BD8B0) updateall (0x001BD8BC) gamesvrstop (0x001BD8C8) call (0x001BD8D0) qitem (0x001BD8D8) qcha (0x001BD8E0) relive (0x001BD92C) reload (0x001BD934) kick (0x001BD93C) goto (0x001BD944) unhide (0x001BD94C) hide (0x001BD954) notice (0x001BD998) move (0x001BD8E8) reload monsterrefresh (0x001BD8F8) reload iteminfo (0x001BD904) reload skillinfo (0x001BD910) reload characterinfo (0x001BD920) reload alltable GameServer.exe версии 1.38 (2 088 КБ): Скрытый текст (0x001B4114) lua (0x001C7818) itemvalid (0x001C78A4) addkb (0x001C78AC) setpinginfo (0x001C78B8) senddata (0x001C78E4) getping (0x001C790C) setping (0x001C7914) lua_all (0x001C793C) delitem (0x001C7964) skill (0x001C796C) forge (0x001C7994) seeattr (0x001C799C) light (0x001C79A4) itemattr (0x001C79F0) attr (0x001C7AC4) make (0x001C7AEC) setcesslevel (0x001C7B1C) addcess (0x001C7B44) addsailexp (0x001C7B70) addlifeexp (0x001C7B7C) addexp (0x001C7BA4) addmoney (0x001C7BD0) kill (0x001C7BF8) summonex (0x001C7C24) summon (0x001C7C4C) pet (0x001C7C90) isblock (0x001C7CB8) misclear (0x001C7CC4) missdk (0x001C7D0C) delmission (0x001C7D58) clearmission (0x001C7DA8) addmission (0x001C7DF4) clearfalg (0x001C7E40) setflag (0x001C7E88) clearrecord (0x001C7EB4) setrecord (0x001C7EC0) reload_ai (0x001C7ECC) misreload (0x001C7ED8) harmlog=0 (0x001C7EE4) harmlog=1 (0x001C7F10) updateall (0x001C7F1C) gamesvrstop (0x001C7F28) call (0x001C7F30) qitem (0x001C7F38) qcha (0x001C7F40) relive (0x001C7F8C) reload (0x001C7F94) kick (0x001C7F9C) goto (0x001C7FA4) unhide (0x001C7FAC) hide (0x001C7FB4) notice (0x001C7FF8) move (0x001C7F48) reload monsterrefresh (0x001C7F58) reload iteminfo (0x001C7F64) reload skillinfo (0x001C7F70) reload characterinfo (0x001C7F80) reload alltable Quote Some useful links / Полезные ссылки Tips for making a topic in 'Questions & Help' / Рекомендации по созданию тем в разделе "Помощь" Server Advertising Section Rules / Правила раздела "Реклама серверов" Available e-mail domains for registration / Допустимые e-mail домены для регистрации User groups / Группы пользователей User ranks / Звания пользователей "Broken" pictures on the forum / "Битые" изображения на форуме Beware of scammers! / Осторожно, мошенники! My developments / Мои разработки Mods for client and server / Моды для клиента и сервера PKOdev.NET website for Tales of Pirates Server / PKOdev.NET веб-обвязка для сервера Пиратии I do not provide any help in private messages and outside the forum. Use 'Questions & Help' section please. Thank you for understanding! Я не оказываю какую-либо помощь в личных сообщениях и вне форума. Пожалуйста, используйте раздел "Пиратия: Помощь". Благодарю за понимание! Share this post Link to post Share on other sites
V3ct0r 2,116 Report post Posted May 22, 2016 Обновил гайд. Добавил список адресов GM-команд для GameServer.exe версии 2.4. Quote Some useful links / Полезные ссылки Tips for making a topic in 'Questions & Help' / Рекомендации по созданию тем в разделе "Помощь" Server Advertising Section Rules / Правила раздела "Реклама серверов" Available e-mail domains for registration / Допустимые e-mail домены для регистрации User groups / Группы пользователей User ranks / Звания пользователей "Broken" pictures on the forum / "Битые" изображения на форуме Beware of scammers! / Осторожно, мошенники! My developments / Мои разработки Mods for client and server / Моды для клиента и сервера PKOdev.NET website for Tales of Pirates Server / PKOdev.NET веб-обвязка для сервера Пиратии I do not provide any help in private messages and outside the forum. Use 'Questions & Help' section please. Thank you for understanding! Я не оказываю какую-либо помощь в личных сообщениях и вне форума. Пожалуйста, используйте раздел "Пиратия: Помощь". Благодарю за понимание! Share this post Link to post Share on other sites
MrSharp 47 Report post Posted January 8, 2018 Перезалейте пожалуйста GS.exe на другой файлообменник, DropBox пишет, что превышен лимит на скачивание. Quote Share this post Link to post Share on other sites