Не так уж и много Русскоязычных уроков/мануалов о создании в MTA различных систем, в особенности на MySQL. Лично я ещё вчера искал на просторах интернета информацию о том, как загружать данные (например информацию о транспорте), но ничего нужного мне не нашел. Поэтому решил сам написать урок, в котором будет предоставлен пример банальной загрузки данных и создания транспорта.

Задействована будет всего - лишь одна функция, которая будет расположена на серверной части ресурса.
И так, создаем таблицу в которой будет информация о транспорте. Скриншот со структурой таблицы ниже.

http://i008.radikal.ru/1602/e3/73ee52d2d989.png

Теперь переходим непосредственно к коду, в файле где у вас серверная часть пишем:

Код:
local vehicle = {} //Эта переменная служит хранилищем всех данных о транспорте. 

addEventHandler("onResourceStart", getResourceRootElement(), function() //Функция, которая при загрузке ресурса (onResourceStart, будет следом загружать весь транспорт. 
    local time = getTickCount() //Переменная, которая понадобиться нам для того, чтобы узнать за сколько миллисекунд загрузился транспорт. 
    local result = mysql_query(database, "SELECT * FROM `cars`") //Запрос на получение данных из таблицы с транспортом. 
    local count = 0 //Переменная, в которую записывается число загруженного транспорта. 
    if(result) then //Если запрос успешен - идём дальше. 
        while true do //Цикл 
            local row = mysql_fetch_assoc(result) 
            if not row then break end //Если нечего загружать - останавливаем цикл и дальнейшую загрузку. 
            local id = tonumber(row["id"]) //Записываем в переменную "id", номер (id) транспорта из базы данных. 
            local model = tonumber(row["model"]) //Записываем в переменную модель транспорта 
            local x = tonumber(row["x"]) //Записываем х координату 
            local y = tonumber(row["y"]) //Записываем y координату 
            local z = tonumber(row["z"]) //Записываем z координату 
            vehicle[id] = createVehicle (model, x, y, z) //Создаем сам транспорт на сервере. 
            //В коде ниже, мы не просто в локальную переменную, нужную только для загрузки записываем данные, а в переменную которая может работать во всем серверном скрипте. 
//Если сравнивать переменную (или еще можно назвать - таблицу) local vehicle = {} на Lua и Pawn, то в Pawn это можно представить примерно как new VehicleInfo[MAX_VEHICLES][data];, то вместо "data" будет использоваться название "ключа", которое используется внутри функций setElementData, думаю понятно тут объяснил. 
            setElementData(vehicle[id], "vehicle:id", id) 
            setElementData(vehicle[id], "vehicle:model", model) 
            setElementData(vehicle[id], "vehicle:x", x) 
            setElementData(vehicle[id], "vehicle:y", y) 
            setElementData(vehicle[id], "vehicle:z", z) 
            count = count + 1 //Прибавляем +1 к переменной которая хранит количество загруженного транспорта. 
        end 
        mysql_free_result(result) //Очищаем результат запроса 
    end 
    outputDebugString("Cars: "..count.." | Time: "..(getTickCount() - time).."ms") //Выводим в консоль информацию о загруженном транспорте. 
end)
Результат

http://s018.radikal.ru/i514/1602/56/fc93df2ecd01.png

Автор урока: Ray_Grand

Теги: MySQL