Jump to content

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


Recommended Posts

кто там денег просил?

  
----------------------------------------------------------- 
-- Часть ника 
----------------------------------------------------------- 
function getPlayerFromPartialName(name) 
    local player = getPlayerFromName(name) 
        if (player) then return player end 
        local name = name and name:gsub("#%x%x%x%x%x%x", ""):lower() or nil 
        if name then 
        for _, player in ipairs(getElementsByType("player")) do 
            local name_ = getPlayerName(player):gsub("#%x%x%x%x%x%x", ""):lower() 
            if name_:find(name, 1, true) then 
                return player 
            end 
        end 
    end 
end 
  
  
-- ------------------------------------------------ 
-- Передача бабла 
-- ------------------------------------------------  
function consoleGiveCash (source, command, target, amount ) --when the givecash command is called 
    if (not amount or not target) then 
        triggerClientEvent(source, "onMultiLangText", root, "неверный_формат_передачи_денег") 
    end 
    if (target) then 
        if (getPlayerFromPartialName(target) == source) then 
            triggerClientEvent(source, "onMultiLangText", root, "отправка_себе_невозможна") 
            -- outputChatBox("You can not send money yourself.",source) 
        elseif (getPlayerFromPartialName(target) and (tonumber(amount) > 0) and (tonumber(amount) <= getPlayerMoney(source)) and (getPlayerMoney(source) > 0)) then 
            local playerName = getPlayerName(source) 
            takePlayerMoney (source, amount) 
            givePlayerMoney (getPlayerFromPartialName(target), tonumber(amount) ) 
            triggerClientEvent(source, "onMultiLangText", root, "вы_отправили_деньги_игроку",amount,getPlayerName(getPlayerFromPartialName(target))) 
            triggerClientEvent(getPlayerFromPartialName(target), "onMultiLangText", root, "игрок_прислал_вам_деньги",getPlayerName(source),amount) 
            -- outputChatBox("You gave "..getPlayerName(getPlayerFromPartialName(target)).." $"..amount..".",source) 
            -- outputChatBox("You got "..amount.."$ from "..playerName..".",getPlayerFromPartialName(target)) 
        elseif (tonumber(amount) < 0) then 
            triggerClientEvent(source, "onMultiLangText", root, "нельзя_взять_деньги_у_игрока") 
            -- outputChatBox("You can not take money from the "..target,source) 
        elseif (tonumber(amount) > getPlayerMoney(source)) then 
            triggerClientEvent(source, "onMultiLangText", root, "у_вас_нет_столько_денег") 
            -- outputChatBox("You have not this amount",source) 
        elseif (tonumber(amount) == 0) then 
            triggerClientEvent(source, "onMultiLangText", root, "невероятные_приключения_0_баксов") 
            -- outputChatBox("You have not money.",source) 
        end 
    end 
end 
addCommandHandler ( "sendcash", consoleGiveCash  ) 
addCommandHandler ( "givecash", consoleGiveCash  ) 
addCommandHandler ( "sc", consoleGiveCash  ) 
addCommandHandler ( "gc", consoleGiveCash  ) 

Link to comment

Хотел спросить, а с помощью чего можно сделать так:

Когда игрок онлайн, то его транспорт может быть где угодно (Это и так есть), но когда он оффнется, то если его транспорт был у его дома или на парковке, то он не пропадает, а когда где-то в другом месте, то перемещается в нужное место.

Какие функции при этом нужны?

Link to comment
get/setElementPosition

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

Link to comment
  • Other Languages Moderators
get/setElementPosition

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

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

Link to comment

Спасибо. И ещё очень интересует, как сделать так, чтобы за окном было видно окружение? Я много раз такое видел. В самом здании не делают интерьер, но когда попадаешь внутрь, то видишь через окно всё, что снаружи.

Link to comment
  • Other Languages Moderators
Спасибо. И ещё очень интересует, как сделать так, чтобы за окном было видно окружение? Я много раз такое видел. В самом здании не делают интерьер, но когда попадаешь внутрь, то видишь через окно всё, что снаружи.

Кинуть интерьер в нулевой Interior, но другой Dimension

Link to comment
  • 3 weeks later...

Еще такой вопрос появился. Случается, что игрок один стреляет в игрока два, но игрок два видит, что игрок один не стреляет, а бьет кулаками и соответственно не получает урон. Игрок один из-за этого нервничает. Так вот вопрос: это такая особенность у мта или я что то испортил?

Link to comment
Еще такой вопрос появился. Случается, что игрок один стреляет в игрока два, но игрок два видит, что игрок один не стреляет, а бьет кулаками и соответственно не получает урон. Игрок один из-за этого нервничает. Так вот вопрос: это такая особенность у мта или я что то испортил?

Это баг мта, хотя я про него давненько не слышал.

Link to comment
Еще такой вопрос появился. Случается, что игрок один стреляет в игрока два, но игрок два видит, что игрок один не стреляет, а бьет кулаками и соответственно не получает урон. Игрок один из-за этого нервничает. Так вот вопрос: это такая особенность у мта или я что то испортил?

Это баг мта, хотя я про него давненько не слышал.

я про него от игроков каждый день слышу :lol:

Link to comment
не осилил выложить на коммунити, лекс мне такой костыль помог сделать:

http://hdd.tomsk.ru/file/yaxyowse

сей баг является при выходе игрока из транспорта, а порой и при входе игрока в стрим при каких-то условиях

спасибо. я так понимаю он частично правит этот баг?

Link to comment
  • 3 weeks later...

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

Link to comment
Приветствую. Подскажите, где то можно скачать вики всех функций и эвентов, просто не всегда есть интернет чтобы посмотреть, а на память все запомнить нереально.

https://forum.multitheftauto.com/viewto ... cf26c82f88 (тема на форме)

https://mega.nz/#!2xtynbqY!HcuW4XmZDVer ... oTWsxzP2IA (прямая ссылка на скачивание последней копии)

Link to comment
  • 2 weeks later...

Всем привет. Никогда никого не просил помочь, но встал в тупик. С lua был знаком до начала работы с MTA, работал и работаю в citizen FX ( мульт для gta iv/v).Всего то делов - создать ивент в клиенте и вызвав его, передать с сервера некоторые аргументы (в моём случае данные из мускула). Делов то, пфффф, подумал я.

Но...

Вкратце. загрузка данных из БД работает отменно, данные действительно выгружаются и можно с ними оперировать на серверной части. Тут без нареканий. Всё как у Аннушки)

При попытке же передать их в клиентскую часть (нуу например для создания табицы-массива наподобие PlayerInfo в pawno) - не происходит ничего. В консоли тишина, данные не передаются. Вокруг молчок. Вот как выглядит код:

Серверная часть

  
function CheckAccount(player) 
    local returns = 0 
    local result = mysql_query(SQL, "SELECT * FROM users WHERE Name='"..getPlayerName(player).."'") 
    if (not result) then 
        outputDebugString("Err:(" .. mysql_errno(SQL) .. ") " .. mysql_error(SQL)) 
    else 
        while true do 
            local row = mysql_fetch_row(result) 
            if (not row) then break end 
            returns = 1 
            outputDebugString("1") -- debug 
            triggerClientEvent (player, "LoadAccountData", player, row[2],row[3],row[4] ) 
            outputDebugString("2") -- debug 
        end 
        mysql_free_result(result) -- обязательно чистим результат 
    end 
    return returns 
end 

Клиентская часть

  
addEvent ("LoadAccountData", true) 
AddEventHandler("LoadAccountData", getRootElement(), function (name, pass, mail) 
    PI.Name = name 
    PI.Pass = pass 
    PI.Mail = mail 
    outputChatBox ("сообщение", 255,255,255) -- debug 
end) 
  

Что же не так то??

Ранее в citizenfx, как писал выше, с этим проблем не было.

под спойлером (кому интересно) пример оттуда (в доказательство того, что я понимаю что делаю)

сервер:

  
AddEventHandler('savePos', function(descrhandler, x, y, z, char_heading) 
    local f,err = io.open("pos.txt","a") 
    if not f then return print(err) end 
    f:write(descrhandler .. ": " .. x .. "," .. y .. "," .. z .. ", angle: ".. char_heading .. "\n") 
    f:close() 
    print("SERVER: coordinates: (".. descrhandler ..") has been saved in pos.txt. By: " .. GetPlayerName(source, _r)) 
    TriggerClientEvent('chatMessage', source, 'Server', { 0, 0x99, 255 }, "^1Position " .. descrhandler .. " saved!") 
end) 
  

P.S. огромная просьба. Помогите разобраться. 2 дня чёт тыкаюсь вяло. Может у меня мозги атрофировались. Вроде всё по Wiki-шмики делал) Спасибо заранее.

Link to comment
Всем привет. Никогда никого не просил помочь, но встал в тупик. С lua был знаком до начала работы с MTA, работал и работаю в citizen FX ( мульт для gta iv/v).Всего то делов - создать ивент в клиенте и вызвав его, передать с сервера некоторые аргументы (в моём случае данные из мускула). Делов то, пфффф, подумал я.

Но...

Вкратце. загрузка данных из БД работает отменно, данные действительно выгружаются и можно с ними оперировать на серверной части. Тут без нареканий. Всё как у Аннушки)

При попытке же передать их в клиентскую часть (нуу например для создания табицы-массива наподобие PlayerInfo в pawno) - не происходит ничего. В консоли тишина, данные не передаются. Вокруг молчок. Вот как выглядит код:

Серверная часть

  
function CheckAccount(player) 
    local returns = 0 
    local result = mysql_query(SQL, "SELECT * FROM users WHERE Name='"..getPlayerName(player).."'") 
    if (not result) then 
        outputDebugString("Err:(" .. mysql_errno(SQL) .. ") " .. mysql_error(SQL)) 
    else 
        while true do 
            local row = mysql_fetch_row(result) 
            if (not row) then break end 
            returns = 1 
            outputDebugString("1") -- debug 
            triggerClientEvent (player, "LoadAccountData", player, row[2],row[3],row[4] ) 
            outputDebugString("2") -- debug 
        end 
        mysql_free_result(result) -- обязательно чистим результат 
    end 
    return returns 
end 

Клиентская часть

  
addEvent ("LoadAccountData", true) 
AddEventHandler("LoadAccountData", getRootElement(), function (name, pass, mail) 
    PI.Name = name 
    PI.Pass = pass 
    PI.Mail = mail 
    outputChatBox ("сообщение", 255,255,255) -- debug 
end) 
  

Что же не так то??

Ранее в citizenfx, как писал выше, с этим проблем не было.

под спойлером (кому интересно) пример оттуда (в доказательство того, что я понимаю что делаю)

сервер:

  
AddEventHandler('savePos', function(descrhandler, x, y, z, char_heading) 
    local f,err = io.open("pos.txt","a") 
    if not f then return print(err) end 
    f:write(descrhandler .. ": " .. x .. "," .. y .. "," .. z .. ", angle: ".. char_heading .. "\n") 
    f:close() 
    print("SERVER: coordinates: (".. descrhandler ..") has been saved in pos.txt. By: " .. GetPlayerName(source, _r)) 
    TriggerClientEvent('chatMessage', source, 'Server', { 0, 0x99, 255 }, "^1Position " .. descrhandler .. " saved!") 
end) 
  

P.S. огромная просьба. Помогите разобраться. 2 дня чёт тыкаюсь вяло. Может у меня мозги атрофировались. Вроде всё по Wiki-шмики делал) Спасибо заранее.

Попробуй так:

addEvent ("LoadAccountData", true) 
addEventHandler("LoadAccountData", getRootElement(), function (name, pass, mail) 
    PI.Name = name 
    PI.Pass = pass 
    PI.Mail = mail 
    outputChatBox ("сообщение", 255,255,255) -- debug 
end) 

Было AddEventHandler вместо addEventHandler. Может так получится.

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...