Показано с 1 по 8 из 8

Тема: [Lua] bindKey или комманда на кнопку [MTA]

  1. #1
    ? FreeLancer ? Аватар для RastaOrecha
    Регистрация
    12.07.2011
    Адрес
    Челябинск
    Возраст
    26
    Сообщений
    1,857
    Репутация: 229

    Звание: - весьма и весьма положительная личность

    [Lua] bindKey или комманда на кнопку [MTA]

    Здравствуйте уважаемые пользователи или гости форума

    Хотелось бы поговорить о 2 полезных функциях в MTA:

    bindKey
    unbindKey

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

    Client:

    PHP код:
    addEventHandler("onClientPlayerVehicleEnter"root,
        function (
    vehicleseatjacked)
            
    bindKey ("lctrl""down"ChangeEngine)
        
    end)

    addEventHandler("onClientPlayerVehicleExit"root,
        function (
    vehicleseatjacked)
            
    unbindKey ("lctrl""down"ChangeEngine)
        
    end)

    function 
    ChangeEngine()
        if 
    getPedOccupiedVehicleSeat (localPlayer) == 0 then --  Водительское место 0
            local vehicleid 
    getPedOccupiedVehicle localPlayer 
            
    setVehicleEngineState(vehicleidnot getVehicleEngineState(vehicleid)) -- Ставим статус двигателя не равный нынешнему
        
    else
            
    outputChatBox("[•] Вы не водитель"localPlayer)
        
    end
    end 
    addCommandHandler
    ("start"ChangeEngine) -- Создадим комманду /start  и присвоим ей функцию ChangeEngine 
    Вот такой простенький скрипт.

    Давайте поговорим о аргументах:
    • bindKey ( source, "lctrl", "down", ChangeEngine)
    ○ source - игрок/пед
    ○ "lctrl" - Клавиша: https://wiki.multitheftauto.com/wiki/Key_names
    ○ "down" - статистика клавиши (~)
    ◘ "up" - биндим на поднимание клавиши
    ◘ "down" - биндим на нажатие
    ◘ "both" - и то, и то
    ○ ChangeEngine - функция
    Вот так вот в MTA можно делать действие на кнопку и в нужном месте ставить/снимать бинд.

    P.S: При размещении темы на других порталах просьба указывать автора: RastaOrecha



    Код:
    PAWN:
    
    • [PAWN Wiki] Пишем регистрацию с 0 на Y_INI
    • [PAWN Wiki] Использование YCMD (y_commands) + SSCANF 2.x
    • [PAWN Wiki] Использование Y_Timers
    • [PAWN Wiki] Разделяем мод на инклуды (y_hooks)
    • [PAWN Wiki] Использование UVar
    • [PAWN Wiki] Единая тема оптимизации
    • [Интересные комманды] Cмена ника MySQL 
    • [Интересные комманды] Full Set
    • [Интересные комманды] Телепорт по указанным координатам 
    • [Скрипты и инклуды] jBank System [version 1]
    • [Скрипты и инклуды] jRegistration System
    
    Lua:
    • [Wiki] Создание мода с 0
    • [Wiki] Дерево элементов | new
    • [Wiki] Бинд клавиш или комманда на кнопку
    • [Func] eachOther (повторение числа/строки) | new
    Маппинг:
    
    • [MAP] Квартира в центре (приятный вид)
    • [Source] Маленькое помещение с видом из окна
    • [Source] Пустое помещение с панорамными окнами
    
    HTML, JavaScript:
    
    • [HTML] Подключение таблицы стилей CSS к HTML
    • [HTML][CSS] Красивый текст снизу картинки
    
    C#, C++ :
    
    • [C++] Действие на кнопку (при нажатии на кнопку)
    • [C++] Работа с файлами
    • [C++] Склоняем






    “When you have insomnia, you're never really asleep. And you're really awake.”
    “Никогда не указывайте на ошибки, если не знаете, как их исправить.” - Бернард Шоу.
    “Если ты способен выдумать что-то, ты можешь и сделать это.” - Уолт Дисней.
    “Великие умы обсуждают идеи; средние умы обсуждают события; мелкие умы обсуждают людей.” - Элеонор Рузвельт.

  2. #2
    Администратор Аватар для Terner
    Регистрация
    11.04.2011
    Возраст
    27
    Сообщений
    2,824
    Репутация: 367

    Звание: - очень-очень хороший человек

    Re: [Lua] bindKey или комманда на кнопку [MTA]

    Молодец. Хороший урок.

  3. #3
    Проверенный Аватар для Essle
    Регистрация
    30.07.2011
    Адрес
    Омск
    Возраст
    27
    Сообщений
    1,205
    Репутация: 240

    Звание: - весьма и весьма положительная личность

    Re: [Lua] bindKey или комманда на кнопку [MTA]

    Client:
    Может быть `Server:`?

  4. #4
    Диванный критик
    Регистрация
    03.07.2011
    Адрес
    Вологда
    Возраст
    28
    Сообщений
    2,107
    Репутация: 269

    Звание: как роза среди колючек

    Re: [Lua] bindKey или комманда на кнопку [MTA]

    Цитата Сообщение от Essle Посмотреть сообщение
    Может быть `Server:`?
    события клиентские.
    Если не выходить за границу «объектно-ориентированных» методов, чтобы остаться в рамках «хорошего программирования и проектирования», то в итоге обязательно получается нечто, по большей части не имеющее смысла. (C) Bjarne Stroustrup


    http://www.lua.org/about.html
    Please do not write it as "LUA", which is both ugly and confusing, because then it becomes an acronym with different meanings for different people. So, please, write "Lua" right!

  5. #5
    Проверенный Аватар для Essle
    Регистрация
    30.07.2011
    Адрес
    Омск
    Возраст
    27
    Сообщений
    1,205
    Репутация: 240

    Звание: - весьма и весьма положительная личность

    Re: [Lua] bindKey или комманда на кнопку [MTA]

    события клиентские.
    bindKey ( source,
    unbindKey ( source,
    Зачем тогда?

  6. #6
    ? FreeLancer ? Аватар для RastaOrecha
    Регистрация
    12.07.2011
    Адрес
    Челябинск
    Возраст
    26
    Сообщений
    1,857
    Репутация: 229

    Звание: - весьма и весьма положительная личность

    Re: [Lua] bindKey или комманда на кнопку [MTA]

    Цитата Сообщение от Essle Посмотреть сообщение
    bindKey ( source,
    unbindKey ( source,
    Зачем тогда?
    Поправил, вставил по памяти



    Код:
    PAWN:
    
    • [PAWN Wiki] Пишем регистрацию с 0 на Y_INI
    • [PAWN Wiki] Использование YCMD (y_commands) + SSCANF 2.x
    • [PAWN Wiki] Использование Y_Timers
    • [PAWN Wiki] Разделяем мод на инклуды (y_hooks)
    • [PAWN Wiki] Использование UVar
    • [PAWN Wiki] Единая тема оптимизации
    • [Интересные комманды] Cмена ника MySQL 
    • [Интересные комманды] Full Set
    • [Интересные комманды] Телепорт по указанным координатам 
    • [Скрипты и инклуды] jBank System [version 1]
    • [Скрипты и инклуды] jRegistration System
    
    Lua:
    • [Wiki] Создание мода с 0
    • [Wiki] Дерево элементов | new
    • [Wiki] Бинд клавиш или комманда на кнопку
    • [Func] eachOther (повторение числа/строки) | new
    Маппинг:
    
    • [MAP] Квартира в центре (приятный вид)
    • [Source] Маленькое помещение с видом из окна
    • [Source] Пустое помещение с панорамными окнами
    
    HTML, JavaScript:
    
    • [HTML] Подключение таблицы стилей CSS к HTML
    • [HTML][CSS] Красивый текст снизу картинки
    
    C#, C++ :
    
    • [C++] Действие на кнопку (при нажатии на кнопку)
    • [C++] Работа с файлами
    • [C++] Склоняем






    “When you have insomnia, you're never really asleep. And you're really awake.”
    “Никогда не указывайте на ошибки, если не знаете, как их исправить.” - Бернард Шоу.
    “Если ты способен выдумать что-то, ты можешь и сделать это.” - Уолт Дисней.
    “Великие умы обсуждают идеи; средние умы обсуждают события; мелкие умы обсуждают людей.” - Элеонор Рузвельт.

  7. #7
    Проверенный Аватар для Essle
    Регистрация
    30.07.2011
    Адрес
    Омск
    Возраст
    27
    Сообщений
    1,205
    Репутация: 240

    Звание: - весьма и весьма положительная личность

    Re: [Lua] bindKey или комманда на кнопку [MTA]

    А playerid?
    В аргументах его быть не должно, а в функции localPlayer вместо него.

  8. #8
    ? FreeLancer ? Аватар для RastaOrecha
    Регистрация
    12.07.2011
    Адрес
    Челябинск
    Возраст
    26
    Сообщений
    1,857
    Репутация: 229

    Звание: - весьма и весьма положительная личность

    Re: [Lua] bindKey или комманда на кнопку [MTA]

    Цитата Сообщение от Essle Посмотреть сообщение
    А playerid?
    В аргументах его быть не должно, а в функции localPlayer вместо него.
    Должно



    Код:
    PAWN:
    
    • [PAWN Wiki] Пишем регистрацию с 0 на Y_INI
    • [PAWN Wiki] Использование YCMD (y_commands) + SSCANF 2.x
    • [PAWN Wiki] Использование Y_Timers
    • [PAWN Wiki] Разделяем мод на инклуды (y_hooks)
    • [PAWN Wiki] Использование UVar
    • [PAWN Wiki] Единая тема оптимизации
    • [Интересные комманды] Cмена ника MySQL 
    • [Интересные комманды] Full Set
    • [Интересные комманды] Телепорт по указанным координатам 
    • [Скрипты и инклуды] jBank System [version 1]
    • [Скрипты и инклуды] jRegistration System
    
    Lua:
    • [Wiki] Создание мода с 0
    • [Wiki] Дерево элементов | new
    • [Wiki] Бинд клавиш или комманда на кнопку
    • [Func] eachOther (повторение числа/строки) | new
    Маппинг:
    
    • [MAP] Квартира в центре (приятный вид)
    • [Source] Маленькое помещение с видом из окна
    • [Source] Пустое помещение с панорамными окнами
    
    HTML, JavaScript:
    
    • [HTML] Подключение таблицы стилей CSS к HTML
    • [HTML][CSS] Красивый текст снизу картинки
    
    C#, C++ :
    
    • [C++] Действие на кнопку (при нажатии на кнопку)
    • [C++] Работа с файлами
    • [C++] Склоняем






    “When you have insomnia, you're never really asleep. And you're really awake.”
    “Никогда не указывайте на ошибки, если не знаете, как их исправить.” - Бернард Шоу.
    “Если ты способен выдумать что-то, ты можешь и сделать это.” - Уолт Дисней.
    “Великие умы обсуждают идеи; средние умы обсуждают события; мелкие умы обсуждают людей.” - Элеонор Рузвельт.

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •