Jump to content

V3ct0r

Administrators
  • Content Count

    2,889
  • Joined

  • Last visited

  • Days Won

    519

Everything posted by V3ct0r

  1. @NMS3RR не видел такой программы, только для поиска незанятых ID в .txt файлах (где-то лежит на МД)
  2. @Graf В 2.x клиентах название окна игры указывается в .res файле (CL_LANGUAGE_MATCH_77)
  3. @Graf Профессии, которые показывается на сцене выбора персонажа, переводятся в GameServer.exe. А сама профессия берется из базы данных (GameDB, таблица character)
  4. @nectrouler You also can use Linux proxy server
  5. Hello @nectrouler I think it is a bad idea. Because server binaries are compiled for win32. Also MSSQL is only for Windows too. You can take server source code and try to compile it on Linux. But there will be problems. Some libraries which server uses are only for Windows (for example winsock2.lib). Yes, you can try to use Wine or VM as @Totoka said, but performance is under the question.
  6. Hello @Covadola These server files are compatible with any 1.3x client. Do not forget make table_bin with .txt from server files.
  7. @Chudik Если у меня отвалится интернет и будет нужда сменить порт или IP в клиенте, я поставлю эти скрипты на локальный веб-сервер и буду с ними работать. Тебе также ничего не мешает держать их онлайн. Хотя, честно говоря, эти скрипты представляют сомнительную полезность. Например, у меня есть Game.exe с кучей модификаций (расширены лимиты) и нужно сменить порт. Использовать твой скрипт, который выдаст мне чистый Game.exe с новым портом и переделывать все заново? Да мне будет проще руками изменить порт по гайду. А если мне нужен Game.exe не из ру. оф. клиента версии 1.35?
  8. Что если я введу неверный пароль? Скрипт "найдет хост" и подключится, но MSSQL сервер вернет ошибку аутентификации. Так что "Ошибка: Невозможно найти хост: айпи сервера" ни о чем не говорит. Чтобы было эстетично, я отключу вывод системных ошибок на боевой машине в настройках PHP.
  9. What server? There is problems with character animations.
  10. Вот про что я тебе писал в соседней теме: @mssql_connect($host, $user, $pass) or die("Ошибка: Невозможно найти хост: {$host}!"); Я даже не узнаю в чем проблема, когда скрипт не будет работать (@ перед вызовом функции). Зато ничего лишнего! for ($i=1; $table = mssql_fetch_assoc($query); $i++) { $page .= "{$table['cha_name']}, {$table['job']} <br />"; } Здесь прекрасно подойдет цикл while. Тут не нужен счетчик. Тоже ничего лишнего.
  11. Конструкция вида if (!$foo) аналогична конструкции if ($foo == false) Почему я так написал? Потому что мне так нравится. Возможно, так будет понятнее тому, кто будет изучать мой код. И ты удивишься, но ... оно работает. Чтобы на сайт не заходили роботы, надо поставить от них защиту. Кэширование тут спорный момент. Идея скрипта заключается в том, чтобы в реальном времени выводить игрокам список администрации в игре. Кому надо будет кэширование, тот прикрутит его самостоятельно. Так, как ему удобно. Я это сделал чтобы разделить PHP код и HTML/CSS. Конечно, я могу собрать строку наверху, сразу после запроса. Но что, если в дальнейшем понадобится выделять разными цветами HD и GM? Верстальщику, который не знает PHP, надо будет лезть в мой код и разбираться в нем, вместо того, чтобы просто делать свою работу. Я могу убрать все проверки на ошибки, дать переменным нечитаемые, но короткие названия и передавать одной функции в параметрах вызов другой. Но какой в этом смысл? Запутать потенциального пользователя? Сомнительное достижение. В таком случае, может ты покажешь народу пример идеального скрипта?
  12. Hello @Vasil Thank you for your suggestions! There is a lot of programming books, videos, articles etc on the Internet. There is no need to write programming articles on our forum, you can learn programming languages by yourself. We are making effort to bring more people to the forum. Special thanks to @V1tor You can see who are staff here: https://pkodev.net/index.php?/staff/ We are still searching for a new style, but with no success. But I like current style
  13. V3ct0r

    Hack

    @keysdxc This is not forum for hackers. Thread is closed.
  14. 1) Работа с файлами тяжелая операция, она может понизить производительность сервера (FPS, в идеальном случае FPS = 20). 2) Сомнительное решение: Функция cha_timer() представляет собой таймер, который тикает раз в секунду. Вызывается эта функция для каждого игрока, активного монстра, NPC и прочих объектов (они передаются в нее первым параметром - role). Как видно из скриншота выше, эта функция будет вызываться для 10436 объектов. То есть столько раз будет открываться файл на чтение и что-то там будет происходить. И все это в цикле. Не очень рационально. Да и сама ситуация сомнительная. Нормальный сервер перезагружается редко. Если и перезагружается, то желательно при минимальном онлайне, например, в среду ночью, когда все спят. И ради того, чтобы игроки не убили босса во второй раз (а если они и не собираются его убивать?), давать дополнительную нагрузку на сервер? Кстати, насколько я помню, данная тема здесь уже обсуждалась
  15. @BotPRO, @kiberhack Как вариант можно заменить SQL-запрос на $sql = 'SELECT CONVERT (nvarchar(255), c.cha_name) COLLATE CYRILLIC_GENERAL_CI_AS AS cha_name, a.gm FROM character AS c LEFT JOIN account AS a ON (c.act_id = a.act_id) WHERE c.mem_addr > 0 AND a.gm > 0';
  16. V3ct0r

    [PHP] Online HD & GM

    With this script you can show to players who is online from HD and GM. <?php $db_host = ''; $db_user = ''; $db_pass = ''; $db_name = 'GameDB'; $hd_level = 30; if (mssql_connect($db_host, $db_user, $db_pass) == false) { die ('<b>Error: </b> Can not connect to MSSQL server!'); } if (mssql_select_db($db_name) == false) { die ('<b>Error: </b> Can not select game database!'); } $sql = 'SELECT c.cha_name, a.gm FROM character AS c LEFT JOIN account AS a ON (c.act_id = a.act_id) WHERE c.mem_addr > 0 AND a.gm > 0'; $query = mssql_query($sql); if ($query == false) { die ('<b>Error: </b> Can not get list of online HD and GM!'); } $stuff = array(); while ($cha = mssql_fetch_object($query)) { $stuff[] = $cha; } mssql_close(); ?> <html> <head> <title>Список HD и GM в игре</title> </head> <body> <h1>Список HD и GM в игре</h1> <?php $stuff_online = ''; $n = count($stuff); if ($n > 0) { for ($i = 0; $i < $n; $i++) { if ($stuff[$i]->gm > $hd_level) { $stuff_online .= '[GM] ' . $stuff[$i]->cha_name; } else { $stuff_online .= '[HD] ' . $stuff[$i]->cha_name; } if ($i != ($n - 1)) { $stuff_online .= ', '; } else { $stuff_online .= '.'; } } } else { $stuff_online = 'All HD and GM are offline.'; } print $stuff_online; ?> </body> </html>
  17. I don't understand you sorry. We can't use values more then 0x7D because they are become negative
  18. Ищи STATE_PKKBYS в variable.lua. В этой переменной будет ID эффекта из skilleff.txt. А там ты уже найдешь функции наложения и снятия эффекта в skilleffect.lua. Время действия эффекта указывается в последнем параметре функции AddState(), в секундах.
  19. There will be a problem when character moves between different GameServers if we want to use memory. Also use files is bad solution
  20. I do not deny. But it works. When character uses an item he also locks LUA? What is the difference between item usage and CheckCanUpgradeSkill() calling? We have to know addresses of all functions/methods which are used in our code and memory structures (CCharacter for example). It is waste of time if function too big and we need patch several bytes. It is much easier to jump into the code cave. @Totoka Does your extension check if player want to learn fairy possession or he send wrong skill level?
×
×
  • Create New...