Jump to content

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


Recommended Posts

Ребят, подскажите пожалуйста.

Я хочу, чтобы расход топлива в машине менялся в зависимости от нажатия "педали газа".

То есть, если двигатель машины запущен, но "W" не нажата, то расход бензина 1, а если "W" нажата, то расход 2,5.

Не нахожу подходящего инструмента. Нашел только onClientKey, можно его использовать, но, насколько я понимаю, будет излишняя нагрузка на сервер. Ведь это событие срабатывает при нажатии на любую кнопку, может быть можно сделать так, чтобы оно срабатывало только при нажатии "W"?

Link to comment
  • Other Languages Moderators
Ребят, подскажите пожалуйста.

Я хочу, чтобы расход топлива в машине менялся в зависимости от нажатия "педали газа".

То есть, если двигатель машины запущен, но "W" не нажата, то расход бензина 1, а если "W" нажата, то расход 2,5.

Не нахожу подходящего инструмента. Нашел только onClientKey, можно его использовать, но, насколько я понимаю, будет излишняя нагрузка на сервер. Ведь это событие срабатывает при нажатии на любую кнопку, может быть можно сделать так, чтобы оно срабатывало только при нажатии "W"?

https://wiki.multitheftauto.com/wiki/OnClientKey - клиентское событие! Учите теорию :)

А по теме лучше работать не с кнопками, а с https://wiki.multitheftauto.com/wiki/Control_names

Link to comment
Ребят, подскажите пожалуйста.

Я хочу, чтобы расход топлива в машине менялся в зависимости от нажатия "педали газа".

То есть, если двигатель машины запущен, но "W" не нажата, то расход бензина 1, а если "W" нажата, то расход 2,5.

Не нахожу подходящего инструмента. Нашел только onClientKey, можно его использовать, но, насколько я понимаю, будет излишняя нагрузка на сервер. Ведь это событие срабатывает при нажатии на любую кнопку, может быть можно сделать так, чтобы оно срабатывало только при нажатии "W"?

https://wiki.multitheftauto.com/wiki/OnClientKey - клиентское событие! Учите теорию :)

А по теме лучше работать не с кнопками, а с https://wiki.multitheftauto.com/wiki/Control_names

А, точно, клиентское. :roll: Но все равно нагрузка.

Благодарю за ответ, пока ничего не понял, но сейчас буду разбираться :lol:

_______________________

Ого, все получилось! Еще раз спасибо, CoolDark.

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

function minusToplivo () 
    local kolvoTopliva = tonumber (guiGetText(GUIEditor.label[11])) 
    local vehicle = getPedOccupiedVehicle(g_Player) 
    if getVehicleEngineState(vehicle) == true then 
        if ((getControlState ("accelerate" )) ~= false) then 
            kolvoTopliva = kolvoTopliva - 0.05 
            guiSetText ( GUIEditor.label[11], kolvoTopliva) 
        elseif ((getControlState ("brake_reverse" )) ~= false) then 
            kolvoTopliva = kolvoTopliva - 0.01 
            guiSetText ( GUIEditor.label[11], kolvoTopliva)  
        else     
            kolvoTopliva = kolvoTopliva - 0.01 
            guiSetText ( GUIEditor.label[11], kolvoTopliva) 
        end  
    end 
         
end 

ну и срабатывает эта функция по таймеру, конечно же. У меня каждые 0,1 сек.

Edited by Guest
Link to comment
  • Other Languages Moderators

А, точно, клиентское. :roll: Но все равно нагрузка.

Благодарю за ответ, пока ничего не понял, но сейчас буду разбираться :lol:

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

Link to comment

Ребят, извините за глупый вопрос, у меня в голове пока еще не все устаканилось :) Результат выполнения клиентских функций не виден другим игрокам? То есть если на клиентской части выполнить blowVehicle, для других эта машина не взорвется? И да, я здесь выше уже задавал вопрос, можно ли МТА запустить на одном компьютере два раза, чтобы проверять такие моменты на практике, но что-то не ответили. :(

Link to comment

По поводу первого точно сказать не могу, ни разу не пробовал проверять, что будет :) Но я думаю да. А вот по поводу второго используй программу SandBoxie (песочница).

Link to comment
По поводу первого точно сказать не могу, ни разу не пробовал проверять, что будет :) Но я думаю да. А вот по поводу второго используй программу SandBoxie (песочница).

Спасибо за ответ! Пробовал SandBoxie, тогда что-то не получилось, сейчас еще раз попробую :)

Link to comment
По поводу первого точно сказать не могу, ни разу не пробовал проверять, что будет :) Но я думаю да. А вот по поводу второго используй программу SandBoxie (песочница).

Спасибо за ответ! Пробовал SandBoxie, тогда что-то не получилось, сейчас еще раз попробую :)

Её нужно активировать, чтобы можно было запустить 2 и более приложений.

Результат выполнения клиентских функций не виден другим игрокам?

В основном да, но есть некоторые клиентские функции, которые синхронизируются с сервером.

Link to comment
По поводу первого точно сказать не могу, ни разу не пробовал проверять, что будет :) Но я думаю да. А вот по поводу второго используй программу SandBoxie (песочница).

Спасибо за ответ! Пробовал SandBoxie, тогда что-то не получилось, сейчас еще раз попробую :)

Её нужно активировать, чтобы можно было запустить 2 и более приложений.

Результат выполнения клиентских функций не виден другим игрокам?

В основном да, но есть некоторые клиентские функции, которые синхронизируются с сервером.

Спасибо за помощь! :)

Link to comment

SendBoxie активировал, все делаю по инструкции, но все равно через нее даже 1 MTA запустить не получается.

Она выдает следующее:

SBIE2103 Предотвращена попытка загрузить системный драйвер 'fairplaykd1 [DefaultBox]'

SBIE2103 Предотвращена попытка загрузить системный драйвер 'fairplaykd1 [DefaultBox]'

SBIE2103 Предотвращена попытка загрузить системный драйвер 'fairplaykd2 [DefaultBox]'

И далее MTA выдает это: Error loading MTA font pricedown.ttf (спрашивается, причем тут шрифты)

Кто-нибудь сейчас актуальную версию MTA открывает на одном компьютере 2 раза? (просто может этот метод уже устарел)

Link to comment

Да, такая же проблема после обновления мта (только без шрифта). Она вроде бы и запускается, но зависает и всё. 2 часа сижу, всё перепробывал, 0 результата. Есть какие-нибудь подобные программы для windows? Искал, не нашёл.

Link to comment
Memory, виртуальная машина.

С большой вероятностью пк будет жестоко лагать или мта не запустится из-за дров на видео

Elengar, я, как бы знаю про эти функции, мне интересно, реально ли, чтобы функция setAccountData сохраняла данные в удаленную БД.

Только так.

Link to comment
Elengar, я, как бы знаю про эти функции, мне интересно, реально ли, чтобы функция setAccountData сохраняла данные в удаленную БД.

В следущий раз вопросы более точно формулируй. На счет setAccountData - можно написать аналог ее, только для удаленной.

Edited by Guest
Link to comment
Elengar, я, как бы знаю про эти функции, мне интересно, реально ли, чтобы функция setAccountData сохраняла данные в удаленную БД.
  
_setAccountData = setAccountData 
function setAccountData(theAccount, key, value) 
    if(_setAccountData(theAccount, key, value)) then 
        local accID = -- Придумайте привязку стандарт аккаунта к аккаунту из БД 
        dbExec(подключение_к_удаленной_бд, string.format("UPDATE таблица_с_данными_игрока SET %s = '%s' WHERE account_id = %d", key, value, accID)) 
    end 
end 
  

Если только так.

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