Jump to content

Вопросы и ответы по MTA.


Recommended Posts

Немного не понял.

Вот, допустим, есть код:

MySQL = mysql_connect(host, user, pass, database) 

как использовать переменную MySQL, содержащую указатель подключения в других ресурсах?

Link to comment

в данные ресурса добавьте этот хэндл мускул соединения

local link = mysql_connect( host, user, pass, database ) 
setElementData( resource, 'MySQL_link', link ) 

тогда можно будет у каждого ресурса узнать какой хэндл он юзает. Можно добавить этот хэндл в базовый ресурс, а все подресурсы будут брать хэндл из свойств базового ресурса.

Link to comment
Возьмите MySQL ресурс из парадиса. Там всё через экспорты. Подключение к базе идёт автоматически как запустится ресурс. Очень прост в использовании.

https://github.com/mabako/mta-paradise/ ... ources/sql

Не нужен мне этот ресурс.

Мне нужно просто передавать один линк соединения между ресурсами.

в данные ресурса добавьте этот хэндл мускул соединения
local link = mysql_connect( host, user, pass, database ) 
setElementData( resource, 'MySQL_link', link ) 

тогда можно будет у каждого ресурса узнать какой хэндл он юзает. Можно добавить этот хэндл в базовый ресурс, а все подресурсы будут брать хэндл из свойств базового ресурса.

Ничего не понял. Можно подробнее, пожалуйста?

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

Link to comment

Не знаю что со мной такое, все равно не доходит :lol:

Вот есть ресурс logic. В одном из его файлов:

function startMySQL ( host, user, pass, database) 
  
    MySQL = mysql_connect(host, user, pass, database) 
    if MySQL then 
        outputDebugString("[DarkLiFe] MySQL: connection established!") 
    else  
        outputDebugString("[DarkLiFe] ERROR: MYSQL CONNECTION FAILED") 
    end 
end 

в другом файле другого ресурса есть код:

mysql_query(mysql_handler, "INSERT INTO `users` SET `login` = '".. login .."', `password` = '".. password .."'")--где mysql_handler - линк подключения. 

можете дать готовый код, как передать линк между двумя ресурсами? Я не понимаю чего-то, видимо сказывается время провождения за кодом :lol:

Link to comment

главный ресурс

function startMySQL ( host, user, pass, database) 
  
    MySQL = mysql_connect(host, user, pass, database) 
    if MySQL then 
        outputDebugString("[DarkLiFe] MySQL: connection established!") 
        setElementData( resource, 'MySQL_link', MySQL ) 
    else  
        outputDebugString("[DarkLiFe] ERROR: MYSQL CONNECTION FAILED") 
    end 
end 

в другом файле другого ресурса:

mysql_handler = getElementData( getResourceFromName('Название_главного_ресурса'), 'MySQL_link' ) 
  
mysql_query(mysql_handler, "INSERT INTO `users` SET `login` = '".. login .."', `password` = '".. password .."'")--где mysql_handler - линк подключения. 

Link to comment
Все, дошло. Спасибо большое!

Правда, вот

setElementData( getThisResource(), 'MySQL', MySQL ) 

Bad argument @ 'setElementData' [Expected element at argument 1, got resource-data]
setElementData( resource, 'MySQL', MySQL ) 

Ну я так вначале и сделал, но ошибка такая же.

Link to comment

Короче сейчас возьму наверно и напишу отдельный ресурс как в Paradise RP. На этом все и закончится :lol:

Правда, опять возникает вопрос:

получается, если я буду его инклудить в каждом ресурсе, то будет установлено несколько подключений. Так ведь?

Меня вот интересует: PHP - понятно, код отработал, завершил работу. А MTA с Lua как? Ресурс он все время висит или тоже завершает свою работу? Когда ресурс запускается, а когда останавливается? Вот он запуститься при включении сервера. Приинклудил ресурс с MySQL. Подключение создалось. Остается в фоне. Потом второй ресурс запустился, опять подключение, опять в фоне. Так ведь?

Link to comment

Ну попробуй юзать стандартные функции, а не плагин. Я ваще не юзал и не знаю какого типа хэндл возвращается при конекте через плагин. Через встроенную функцию конекта возвращается как раз элемент.

Link to comment

Так, стоп. Если ресурс запускается при старте и висит все время в фоне не выгружаясь, то получается, что подключение будет установлено всего один раз? Меня интересует: как инклудятся ресурсы?

По команде

resource = "MySQL" /> 

что произойдет? Запустится еще раз этот ресурс? А тот первый останется висеть в фоне?

Ну попробуй юзать стандартные функции, а не плагин. Я ваще не юзал и не знаю какого типа хэндл возвращается при конекте через плагин. Через встроенную функцию конекта возвращается как раз элемент.

Модуль удобнее вроде будет... Хотя мне сейчас хреново уже разбираться в нем :lol:

Link to comment

Если при выгрузке ресурса, конект закрываешь, то всегда будет при старте конектится только 1 раз.

ИМХО, встроенные функции проще, а плагин - привычнее на вид.

Link to comment
Если при выгрузке ресурса, конект закрываешь, то всегда будет при старте конектится только 1 раз.

ИМХО, встроенные функции проще, а плагин - привычнее на вид.

Т.е. если при onResourceStop disconnect, а при onResourceStart - connect, то будет только одно подключение? Тогда хорошо.

Плагин - да, привычнее на вид. Ф-ии и язык как в PHP, теже ассоциативные массивы, все тоже. Поэтому мне так легче :)

Link to comment

Я все таки решил присмотреться к стандартным функциям работы с ДБ.

Вот такой вопрос:

как получить ассоциативный массив из запроса?

В MySQL это mysql_fetch_assoc. А как стандартными функциями?

Link to comment
Я все таки решил присмотреться к стандартным функциям работы с ДБ.

Вот такой вопрос:

как получить ассоциативный массив из запроса?

В MySQL это mysql_fetch_assoc. А как стандартными функциями?

Я думаю этот вопрос будет интерес многим скриптерам, поэтому я напишу небольшой мануалЬчик отдельной темой..

Link to comment
Я все таки решил присмотреться к стандартным функциям работы с ДБ.

Вот такой вопрос:

как получить ассоциативный массив из запроса?

В MySQL это mysql_fetch_assoc. А как стандартными функциями?

Я думаю этот вопрос будет интерес многим скриптерам, поэтому я напишу небольшой мануалЬчик отдельной темой..

Когда его ждать можно?

Link to comment

Не работает код:

  
-- событие стоит в запуске ресурса. 
for _, vehicle in ipairs(getElementsByType("vehicle")) do 
    setVehicleRespawnDelay(vehicle, 5000) 
    setVehicleIdleRespawnDelay(vehicle, 5000) 
end 

После взрыва авто не появляется.

------------------------

Забыл про toggleVehicleRespawn(vehicle, true) :D

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...