Jump to content

Rocketman21

Members
  • Posts

    13
  • Joined

  • Last visited

Posts posted by Rocketman21

  1. Мог бы подробнее описать, или скрин приложить хотя бы... а то "карта", и гадай сиди о чем ты. Мб ты о карте которая на F11? Тогда она не из фрироам, а от МТА. А мб о той, в которой еще можно выбирать где спавниться, так тогда просто отключи фрироам. Ну или возможно ты о той, что написано на пост выше.

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

    P.S. Код обрамляй в теги [lua] [ /lua]

  3. fabervox, да я ни коим образом не против библиотек) Просто пытался объяснить GTA-Multiplayer.com что речь шла о встроенной в мта реализации классов, а не о том что это можно реализовать самому средствами луа.

    А на свой первоначальный вопрос, заданный в первом посте, я ответ получил. Теперь найти бы нормальную библиотеку, самому делать в лом, да и времени нет особо…

  4. По поводу кастомных классов. Я не совсем понимаю, в чем именно сложность создавать свои классы с конструктором, деконструктором и т.п. С обращением к элементу по типу как в реализовано в МТА.

    Есть же куча статей на всех языках по теме "реализация классов в Lua"

    В том что это возможно только с использованием сторонних библиотек, которые нужно включать в каждый ресурс, а это костыль. Речь о реализации классов как таковых внутри самой МТА, без необходимости делать это своими силами.

  5. Во-первых, лучше сразу говорить какая библиотека. Полноценность реализации ООП, только от неё зависит.

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

    Библиотеку взял отсюда: http://mydc.ru/topic1429.html

    Насчет отладки, я же и проверил, сделав изначально vehicleElement = 0 в классе Vehicle. В дебаге стало писать что вместо машины получен 0, при использовании метода blow. Из этого и сделал вывод что значение то наследуется, но потом уже не изменяется в классе-наследнике.

    Эта возможность у нас есть :shock:

    Правда? И как мне стандартными способами создать класс, с конструктором и кастомными методами, а потом создать несколько объектов этого класса к примеру?

  6. Еще вопрос. Пытаюсь использовать одну библиотеку, реализующую ооп. В коде что ниже: класс SpecialVehicle - наследник класса Vehicle.

    Vehicle = class( "Vehicle",  
    { 
        vehicleElement; 
         
        __init = function( self, model, x, y, z ) 
            self.vehicleElement = createVehicle( model, x, y, z ) 
        end; 
    } ) 
      
    SpecialVehicle = class( "SpecialVehicle", Vehicle,  
    { 
        blow = function( self ) 
            blowVehicle( self.vehicleElement ) 
        end; 
    } ) 
      
    addCommandHandler( "spveh", 
        function( cmd, model ) 
            local x, y, z = getElementPosition( localPlayer ) 
            myVehicle = SpecialVehicle( model, x+2, y, z ) 
        end 
    ) 
      
    addCommandHandler( "blowveh", 
        function() 
            myVehicle:blow() 
        end 
    ) 
    

    На строке 13 выдает ошибку, якобы self.vehicleElement = nil. Я так понял это из-за того, что при наследовании, в SpecialVehicle передаются все данные класса Vehicle, но передаются единожды, и vehicleElement хоть и передался со значением, которое у него на тот момент было, является уже другим vehicleElement, принадлежащим только SpecialVehicle, следовательно когда срабатывает конструктор, меняется только значение в классе Vehicle, а метод blow пытается использовать старое, ранее полученное значение (nil).

    А вопрос в том, недостаток ли это "библиотеки", или в целом в луашном ооп не сделать норм?

  7. Спасибо за ответы.

    Вы с метатаблицами уже разобрались? Если нет то почитайте [Lua] setmetatable, учимся работать с метатаблицами и [Lua] Магия с типами или debug.setmetatable.

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

  8. Всем привет!

    Как известно, в МТА 1.4 представлена поддержка ООП. Прочитав OOP Introduction я понял что вся стандартная система функций была переделана под ООП синтаксис, добавлены новые фичи и т.д., но не понятно как подразумевается это нужно использовать. Сам я раньше ООП в луа не юзал, поэтому хочу понять как теперь написание скриптов видят разработчики МТА, которые делали это обновление. Должен ли я скриптить используя старые функции по новому, при этом продолжать писать как на процедурном языке (но это ведь каша какая-то)? Или я должен начать юзать "ООП" в луа (но каким тогда образом? Ведь как я понял нативных механизмов создания кастомных классов никто туда не добавлял, выходит я должен сам включать их в каждый ресурс)? Просветите кто в курсе :D

  9. Всем привет! Делаю небольшую карту, но на ней довольно много объектов. Наверное даже очень много, потому что некоторые перестают прорисовываться вблизи. Не то чтобы к ним нужно было подходить вплотную, но для нормальной прорисовки, стоять от них нужно метрах в 5-7. Чтобы было понятнее, возьмем 1 из элементов моей карты, который наверное и составляет большую часть всех объектов. Это домик, состоящий из большого числа сравнительно мелких объектов. Если я стою с одной его стороны, то на противоположной не прорисовываются его углы, и вот к ним то и нужно подойти хотя бы метров на 7 вблизь. Мне же нужно чтобы все объекты были прорисованы хотя бы метров на 70 вперед.

    Пробовал увеличить до 100% Draw Distance в настройках игры, а так же использовать аналогичную функцию в скрипте(насколько я помню эту engineSetModelLODDistance). Но все безуспешно. Есть ли варианты как это можно реализовать?

    P.S. Под "метром" понимаю единицу координат =)

  10. Пытаюсь скомпилировать сервер МТА на Mac OS как это описано тут: https://wiki.multitheftauto.com/wiki/Bui ... n_Mac_OS_X

    Дошел до Compiling the server. И тут вопрос - что делать с этим:

    "autoreconf -fi

    CPPFLAGS="-I/opt/local/include" LDFLAGS="-L/opt/local/lib" ./configure

    make install"?

    Вводить в терминал? - Пишет команда не найдена. Заренее спасибо

×
×
  • Create New...