Jump to content

Kernell

MTA Contributors
  • Posts

    1,739
  • Joined

  • Last visited

Everything posted by Kernell

  1. На виртуальной машине у вас будет сгенерирован новый серийник, ибо там другая информация о железе. Раньше можно было запускать MTA в VirtualBox, VMWare и в песочнице Sandboxie, но в какой-то ревизии MTA 1.1 это запретили. В Sandboxie я даже запускал МТА в целях разработки и подключал около пяти клиентов, естественно серверу было всё равно, что у меня одинаковые серийники. Как сейчас с этим дела обстоят - я сказать не могу. Сейчас даже настройки на сервере имеются, чтобы запрещать подключения с виртуалок (а в Sandboxie MTA просто стала крашится при запуске). Естественно те кто желают накручивать онлайн, эту настройку выключат. Кто-то даже делал сервер MTA, который показывал в браузере серверов 1000 человек онлнайна, но сам сервер был пустым. Было это давно и этого человека вроде как забанили на форуме. @Disinterpreter по этому инциденту должен больше знать.
  2. Примерно вот так: function GetNearbyPlayer(element) local distance = 9999.9; local position = {getElementPosition(element)}; local nearby_player = nullptr; for k, v in pairs(getElementsByType("player")) do local pos = {getElementPosition(v)}; local dist = getDistanceBetweenPoints3D(pos[1], pos[2], pos[3], position[1], position[2], position[3]); if dist < distance then distance = dist; nearby_player = player; end end return nearby_player; end P.S. Код проверяй, могут быть ошибки, ибо синтаксис Lua и функции МТА уже подзабыл.
  3. @fabervox причём тут клиент вообще? Естественно все данные идут с сервера. На его стороне ты разве что можешь подделать данные сокета для мониторинговых сервисов (плагином на C++ или не на уровне MTA).
  4. Вот прям замотивировал, аж захотелось вернуться в MTA =)
  5. Ни на сколько. По крайней мере на уровне скриптинга. Педы в МТА не регистрируются как игроки и в сокете их не видно, это всего лишь такой же элемент (entity) как и автомобили.
  6. Всё дело в сложности. Вы аудиторию SA-MP видели? Так вот, каждый пятый (а может и второй) - это очередной "разработчик" игрового режима который по их мнению уникален. Написать игровой режим, даже жанра РП никому не составляет сложности (даже пускай он будет лагать - это всех устроит). Теперь посмотрите на MTA. Чтобы написать даже самый простой игровой режим, нужно уже иметь хоть какие-то знания о программировании (хотя бы основы). Архитектура на много сложнее. Какие-то "ресурсы", "дерево элементов" или "клиент/сервер" - для них это не понятно. Если в SA-MP вы можете написать РП режим в одном файле размером в 100к строк, где любой вызов функции работы с клиентом - синхронен (или же возвращает закэшированные данные), то в MTA всё по другому. Здесь нужно писать всё самому вникая в тонкости. Даже такие банальные вещи как GUI: в SA-MP - просто диалоги, в MTA - полноценный GUI. В SA-MP есть некие TextDraw (или как их там) в котором всё уже реализовано за вас, в MTA есть доступ к Direct3D, естественно на клиенте. Они не ненавидят, они просто боятся признать, что для них это слишком сложно, и таким образом маскируют это ненавистью. AddServerBot - это что? Нативная функция SA-MP?
  7. How to disable the RichText editor? I can't find this setting.
  8. Kenix, если тесты проводите между клиентом и сервером то нужно учитывать задержки и лаги в сети. Понятие "быстрее" вообще на чём основано? Быстрее происходит вызов функции? В таком случае тест не корректен. Так же не надо забывать, что скорость работы событий зависит от дерева элементов (тоже самое касается функций которые работают обходя дочерние элементы). TriggerClientEvent просто посылает пакеты игрокам, которых вы указали, в то время как SetElementData регистрирует объект (для дальнейшей синхронизации) и рассылает пакеты данных всем игрокам. Понимаете разницу?
  9. I think a better translation would be: Учётная запись создана, войти используя Ваше имя пользователя/пароль Disinterpreter, Не стоит переводить "account" как "аккаунт". На много лучше воспринимается "учётная запись".
  10. Что за ОС у сервера? Какая версия MySQL?
  11. Можно напрямую общаться с сервером MTA через сокеты, например с помощью PHP SDK: https://wiki.multitheftauto.com/wiki/PHP_SDK
  12. Скайп и телеграм разные вещи. Если нужен чат и говорилка, то лучшая альтернатива - дискорд. Если рассматривать как чат, то преимущество как минимум в том, что Телеграм не тормозит ни на Windows, ни на Android. Лёгкая и простая программка.
  13. Скорее наоборот. Вообще зависит что за типы столбцов хотя бы. Если ты, например, объединишь 9 голонок smallint в JSON то от этого только хуже будет, потому что хранить ты их будешь в виде строки, например длиной 255 символов, что явно больше, да и выборка по этим ключам усложнит запрос. Оптимизировать БД ты можешь разве что изменив тип данных на более лёгкий, к примеру если в поле хранится число от 0 до 4, то явно обычного int ему будет много. В некоторых случаях будет лучше использовать enum или set, так как они работают на уровне битовой маски. P.S. Да и вообще что за база? Если MySQL\PostgreSQL то всё это имеет смысл
  14. Я вот никогда не работал с этими функциями, даже когда их ввели я не изучал их толком, но зайдя в вики сразу увидел то что нужно вам: dbExec (sqlLink, "INSERT INTO accounts ( Name, Password ) VALUES (?, ?)", username, password) Почему вы не можете этого сделать сами?
  15. Уже бы можно было бы 10 раз систему перезагрузить за это время.. В МТА путь к процессу не проверяется, поэтому у вас в системе может работать любой процесс с именем gta_sa.exe или proxy_sa.exe, и МТА будет на них ругаться. Более того, если есть процесс у которого имя заканчивается на одно из выше перечисленных - он тоже считается (например: the_my_gta_sa.exe). При нажатии "Да", клиент попытается завершить все процессы (но может быть недостаточно привилегий). Запустите cmd.exe от имени Администратора. Выполните tasklist > \tasklist.txt После чего откройте файл tasklist.txt который должен находится на диске C и выложите содержимое файла сюда (в тегах code) Или, если умеете работать с отладчиком в Visual Studio, можете сами посмотреть, что за процесс попадает в список из-за которого вылетает MessageBox и почему MTA не может его завершить.
  16. Кодировку базы поменять на utf8, после подключения к базе выполнить SET NAMES utf8
  17. Смотря что нужно автору. https://wiki.multitheftauto.com/wiki/Ga ... sing_Order onClientPreRender лучше всего подойдет для камеры, а вот как раз таки onClientRender и onClientHUDRender для DX. Ни то ни другое не является истиной. "Шаблонное" мышление. Если вы работаете с миром, например отображение надписей над (dx) игроком, то очевидно onClient(HUD)Render будет не лучшим выбором. Сам же даёшь ссылку на Game Processing Order и противоречишь тому что там написано.
  18. Приму во внимание. Альтернатива есть? UPD: Нашел что то. Стоит ли использовать втроенные функции dbConnect, dbQuery и т.д. вместо модуля? И не возникнет ли проблема с потерей соединения с БД, как с модулем? Ну так посмотрите внимательнее dbConnect на wiki. autoreconnect which can be set to 0 or 1. (Default value "autoreconnect=1"). When set to 1, dropped connections will automatically be reconnected. Note that session variables, user variables, table locks and temporary tables will be reset because of the reconnection. So if you use these fancy features, you will need to turn autoreconnect off and cope with dropped connections some other way.
  19. Пожалуйста, оформляйте код в теге Lua. В каком именно месте происходит ошибка? Я не вижу ошибок. Выложите весь код, желательно на gist.github.com
  20. А эта функция находит высоту лишь первой строки. Эта функция ничего не ищет. Она возвращает высоту шрифта в пикселях. Умножаете её на кол-во строк + выравнивание (padding например если есть) и получаете высоту GUI.
  21. По моему статистика как раз таки показывает падение онлайна. Да и это не статистика, а лишь фиксированные рекорды. Статистика должна из себя предоставлять хотя бы какой-то график в течении всего года (каждого месяца). Кстати откуда такие данные? Пруфы в студию
  22. Подогреть интерес к MTA когда падает интерес к GTA:SA? Если речь о том чтобы переманить пользователей из самп в мта, то в принципе это возможно, но не такими способами что привёл ТС - это верный путь угробить мультиплеер. CWanted выше правильно сказал касательно болота. Проблема в том, что за пределами GTA люди знают что такое RolePlay, а у нас же из сампа пошло, что РП и РПГ разные жанры и т.д. Отсюда и пошло неправильное понимание о РП в целом. Да нет, думали об этом, по моему даже MX_Master уже где-то предлагал это. Идея конечно интересная, но мне кажется это не реализовать полностью.
  23. Использовать collectgarbage как советовали выше нет необходимости, да и вообще лучше лишний раз к GC не обращаться, Lua сама всё делает. lil Toady уже рассказывал как это работает, ответ на Ваш вопрос тут: https://forum.multitheftauto.com/viewtopic.php?f ... 84#p599484
×
×
  • Create New...