Jump to content

Kenix

Retired Staff
  • Posts

    4,121
  • Joined

  • Last visited

  • Days Won

    2

Posts posted by Kenix

  1. 1 hour ago, draobrehtom said:

    Тоже интересует этот вопрос, плюс ещё:

    Каким образом более правильно (со стороны производительности) можно отследить, находится ли игрок в автомобиле (например 402)?
    Есть два варианта:
    * Короткий и простой вариант. Через onClientRender постоянно проверять на 402 == getElementModel(getPedOccupiedVehicle(localPlayer)), но здесь каждый каждр будет вызываться функция проверки. Не скажется ли это на производительности?


    * Либо рассмтреть все случаи (раставить события при старте ресурса, при входе/выходе из автомобиля, смерти, варпе в авто и т.д.), когда игрок будет в автобиле присутствовать/отсутствовать и от этого отталкиваться?

     

    Второй вариант будет лучше:
    onClientVehicleEnter

    onClientVehicleExit

    При входе в транспорт проверяешь ид модели и присваиваешь локальной переменной элемент транспорта.
    При выходе присваиваешь nil.
    В рендере ты будешь просто проверять на то что есть переменная или нет, это куда быстрее нежели каждый раз вызывать несколько функций подряд каждый кадр.

  2. 6 minutes ago, darkdreamingdan said:

    There should now be a Wiki button to fulfil what you're describing :).

    Regarding messages, how many messages do you have?

    I mean auto-link, you can click on function name and you will be on wiki.multitheftauto.com (before update), also a function-name highlighting (blue - shared, red - client side, orange-server).

    Now i have 1k messages. (Maybe because messages is not transfered correcly to new engine, because before this update i can send a message to any one - i had around ~300 messages)
     

  3. Only one problem what i founded. Old mta forum had a links in functions to wiki.multitheftauto.com in code-paste window. Now it's lost.
    Also maybe increase a messages limit? I can't send a message to anyone, because " Your inbox is full. You must delete some messages before you can send any more. " (But i can do this before)

    • Like 1
  4. А допустим получить значение переменной из другого файла каким образом можно? И если даже этот ресурс с переменной находится в другой папке...

    Спустя 4 месяца, ну да ладно.

    Если переменная не локальная, можно выдирать что угодно, но в пределах ресурса.

      
    function getVariable(name) 
       if name then 
          return _G[name]; 
       end 
       return nil; 
    end 
    

    И дать getVariable для экспорта.

    exports.resource_name:getVariable("название переменной") 
    

    В пределах ресурса и одной стороны (клиент/сервер)

  5. У функции dbQuery есть каллбек, его и используй. Он не тормозит сервер для получения результата. После запроса, чтобы получить результат (таблицу) используй функцию dbPoll с аргументом 0, т.к результат будет уже готов т.к каллбек был вызыван после обработки запроса.

  6. Пример запроса, где:

    field1, field2 - Поля, которые нужны тебе после выборки

    users - Название таблицы, откуда делаем выборку

    nick - Поле, по которому ведем поиск

    SELECT field1, field2 FROM users WHERE nick = ? LIMIT 1 
    

    Для работы используем db функции ( dbConnect, dbQuery, dbPoll ):

    https://wiki.multitheftauto.com/wiki/Se ... _functions

    Урок примера работы с базой данной:

    https://forum.multitheftauto.com/viewtopic.php?f=153&t=37482

    • Like 1
  7. Можно что угодно сделать, главное руки из нужного места. В мта уже много лет пишут РП, кроме как devGaming и MTA Roleplay никто ничего годного из русской аудитории не сделал.

  8. 1. Тем что скриптов запустить ты можешь много, а gamemode только один.

    2.

    setGameType( "Your Gamemode" ); 
    

    Также можно задать имя карты:

    setMapName( "San Andreas" ); 
    

    И можно задать параметры, которые будут доступны серверам мониторингам (хоть на вики и сказано, что доступно сервер браузеру, но мта их не отображает):

    https://forum.multitheftauto.com/viewtopic.php?p ... a0#p767341

    setRuleValue( "Author", "Name" ); 
    setRuleValue( "Version", "1.0 beta" );  
    

    3.

      
    callRemote 
    

    Мелкие вопросы как тебе уже и сказали можно задавать в специальной теме:

    https://forum.multitheftauto.com/viewtopic.php?f ... start=2925 - По скриптингу

    https://forum.multitheftauto.com/viewtopic.php?f=123&t=35316 - Прочие вопросы связанные с МТА

  9. Не нужно. Разницой будет только бинарники и модули (.so формат)

    Ну ещё возможно подключение к MySQL серверу (нужно будет прописывать путь к сокету).

  10. ps: не понял как репутацию повысить тут плюса не нашел да и минуса нет.

    Хотели сделать, но пока не реализовали.

    Тут можно подробнее почитать про эту тему:

    https://forum.multitheftauto.com/viewtopic.php?f ... 75#p387326

    Я РП хочу, как бы по плану реализовать. Думаю пока на файлах SQLite буду изучать далее с опытом и на MySQL перейду.

    А могу я потом перейти ? Точнее аккаунты могу переписать через прогу какую или мне придется по одному их в мускул создавать ?

    Самому таблицу создавать придется, через скрипт после подключения к MySQL серверу (если её нет CREATE TABLE IF NOT EXISTS ).

    Я тебе советую глянуть этот раздел форума, где ты сможешь найти уроки на разные темы:

    https://forum.multitheftauto.com/viewforum.php?f=153

    А вот это по твоей теме:

    https://forum.multitheftauto.com/viewtopic.php?f=153&t=37482

    Как понять обычные файлы это гейм мод или картинки, карта ?

    В meta.xml это все описано

    https://wiki.multitheftauto.com/wiki/Meta.xml

    На заметку скажу, что на все твои вопросы поможет поиск по форуму по ключевым словам, а так же wiki, где есть русские разделы.

  11. Верно.

    Папки

    backups - бекап сервера (базы и конфигов, по датам) - МТА их делает сама, в mtaserver.conf можно настроить путь для бекапов, а также их периодичность и другие параметры.

    databases - локальные базы SQLite.

    logs - логи сервера

    recource-cache - кэш ресурсов из папки resources, но если в папке resources есть ресурсы в виде .zip архивов, то МТА их распакует автоматически и переместит в папку resource-cache.

    resources - папка, в которой находятся все ресурсы (мод, админка, мап едитор и т.д)

    Конфиги

    acl.xml - Документ Access Control List (список прав доступа), в ней находятся группы Admin, Moderator, ты можешь создать свою группу. Для каждой группы расписаны права доступа.

    banlist.xml - В этом документе находятся все игроки, которые были забанены на сервере.

    editor.conf - Конфиг для мап едитора, очень схож с mtaserver.conf, он описывает параметры для мап едитор сервера (В меню МТА есть пункт - Редактор Карт, если ты нажмешь на него, то запустится локальный сервер по данному конфигу)

    editor_acl.xml - Тоже самое что и acl.xml, но для мап едитор сервера.

    mtaserver.conf - В данном конфиге находятся все параметры для сервера (макс кол-во слотов, название сервера и т.д)

    settings.xml - В данном конфиге могут содержаться пользовательские настройки для сервера, они могут быть получены или изменены через функции get/set.

    set 
    get 
    

    Все изменения будут записаны в этот конфиг.

    vehiclecolors.conf - В донном конфиге содержатся цвета для машин.

    Другое

    server-id.keys - Уникальный ключ для сервера. Используется для предотвращения чтения личных файлов, сохраненных на клиенте, другими серверами.

    Бинарники не буду расписывать, на гитхабе проекта MTA можно самому посмотреть: https://github.com/multitheftauto/mtasa-blue.

    Больше информации по настройке сервера можно найти тут:

    https://wiki.multitheftauto.com/index.p ... ver_Manual

    https://wiki.multitheftauto.com/index.p ... erver.conf

    P.S На вики не все страницы русифицированы, а если и русифицированы, то возможно они старые и давно не обновлялись. Смена языка есть слева (если доступен)

    • Like 2
  12. 1.1 На самом сервере это я полагаю Вы имейте ввиду то что бы не

    было кражи с FTTP клиента я прав ?

    1.2 Я полагаю что картинки через FTTP можно стырить или нельзя, или их тоже можно через

    компилятор пропустить ?

    1. По поводу хостинга как я понял ты имел ввиду, если злоумышленник получил доступ к серверу через FTP.

    По этому поводу я и ответил, что если все файлы скомпилируете (скрипты), зашифруете картинки, модели (нужно писать программу/скрипт, которая бы эта делала, и на хостинг вы закидывали бы уже зашифрованные файлы) то даже если злоумышленник получит доступ, то не сможет толком запустить мод. Например можно сделать в конфиге мода привязку к IP сервера.

    Все клиентские функции параметре в meta.xml включать cache="false" или protected что бы

    обезопасить клиентскую часть своего ресурса ?

    Если в meta.xml для клиентского скрипта установить атрибут cache="false" либо protected="true", то скрипт будет запускаться в памяти и не будет сохранен в кэше.

    4. Также если посмотреть на github'e, то можно найти разные проекты для МТА:

    MTA Paradise - https://github.com/mabako/mta-paradise

    FairPlay Gaming MTA - https://github.com/Socialz/lua-mta-fairplay

    и т.д

    Ты сможешь посмотреть код, проверить на локальном сервере, узнать как все работает и т.д

    5. Mysql конечно же в разы лучше, у вас будет больше возможностей и выбора действий. Но увы, вам придется самому делать свои аккаунты, регистрацию и т.д Поэтому если ты не хочешь заморачиваться и у тебя простенький мод, то можно использовать стандартные аккаунты.

    6. Ненужно, МТА уже делает все за тебя, на вики есть список функций для работы со стандартными аккаунтами:

    https://wiki.multitheftauto.com/wiki/Se ... _functions

    Все нормально, задавай вопросы, ты помогаешь сразу всем людям (возможно у кого-то есть похожие вопросы).

  13. 1. Если ты про клиентские скрипты, то для них есть параметр в meta.xml cache="false" или protected="true".

    Картинки, файлы можешь шифровать самостоятельно через функцию teaEncode/teaDecode, либо через другие.

    Если ты имеешь ввиду скрипты на самом сервере, то их можешь скомпилировать через эту программу:

    https://forum.multitheftauto.com/viewtopic.php?f=123&t=64796

    2. GUIEditor, ищи на mta community.

    https://community.multitheftauto.com/

    3. Никто не будет тебе помогать в скайпе, лучше пиши свои вопросы на форуме, а мы на них грамотно, аргументировано ответим.

    4. Я не из сампа, поэтому не могу понять что ты имеешь ввиду, если ты хочешь писать свой мод с нуля, то можешь найти об этом статьи на mta wiki, в том числе и на русском языке.

    https://wiki.multitheftauto.com/wiki/Main_Page

    https://wiki.multitheftauto.com/wiki/Sc ... troduction

    Если тебе нужны ресурсы, ты их можешь найти на мта комьюнити (ссылка во 2 пункте).

    5. Аккаунты хранятся в локальной базе internal.db (server/mods/deathmatch/internal.db)

    6. Примеры на вики:

    https://wiki.multitheftauto.com/wiki/AddAccount

    https://wiki.multitheftauto.com/wiki/LogIn

  14. addEventHandler( "onClientColShapeHit", root, 
        function( pHitElement ) 
            if getElementType( pHitElement ) == "vehicle" then 
                local pDriver = getVehicleOccupant( pHitElement, 0 ); 
                 
                if pDriver and pDriver == localPlayer then 
                    outputChatBox( "Сообщение." ); 
                end 
            end 
        end 
    ); 
    

×
×
  • Create New...