Jump to content

[VehicleHandling]Вопросы и ответы


Recommended Posts

Здравствуйте. Как известно, в 1.1 версии появилась возможность загрузки своих настроек для любого транспортного средства(кроме настроек подвески для Монстров, поездов и лодок. Их доделают потом).

Так вот, здесь нужно представить примеры, как к какому-то одному транспортному средству(желательно, каждого вида: мото, авто, само, вело, лодко и поездо... и креведко), чтобы новички(как я), да и опытные люди легко перешли на 1.1 версию МТА, пусть она даже пока и не на 100 процентов доработана.

На Англ. Вики есть пример:

  
function massChange ( me, command, mass ) 
    mass = tonumber ( mass ) -- Convert mass to a number 
    local veh = getPedOccupiedVehicle ( me ) -- Get the player's vehicle 
  
    if mass and veh then  -- If valid mass and in a vehicle 
        local success = setVehicleHandling ( veh, "mass", mass ) -- Set the vehicle's mass, and check if successful 
  
        if success then -- If successful 
            outputChatBox ( "Your vehicle's mass has been changed to: "..mass.." kg", me, 0, 255, 0 ) -- Notify the player of success 
        else -- Too bad failure is still an option 
            outputChatBox ( "Setting mass failed. It's probably above or below allowed limits", me, 255, 0, 0 ) -- Notify the player of failure, and give a possible reason 
        end 
    elseif not veh then -- If not in a vehicle 
        outputChatBox ( "You're not in a vehicle", me, 255, 0, 0 ) -- Tell the player; He / she obviously doesn't know 
    elseif not mass then -- If not a valid mass 
        outputChatBox ( "Syntax: /changemass [mass]", me, 255, 0, 0 ) -- Tell the player the proper syntax 
    end 
end 
addCommandHandler ( "changemass", massChange ) 
  

Я так понимаю, что здесь представленно, как изменить только одну массу. И таким же образом можно изменить все другие функции из списка тут.

А можете ли вы показать рабочий пример для сервера, чтобы при загрузке сервера заменялись все настройки в машинке, скажем, в bullet, на свои настройки?

Так бы сразу все легковые машины можно было бы одним примером заменить. Всмысле, не делать столько же примеров, сколько машин.

Link to comment

мона создать файл-шаблон в виде луа кода и потом его превратиь в таблицу с помощью loadstring(). далее с этой таблицей делаем что хотим и юзаем ее поля по очередно в setVehicleHandling для какого-то транспорта

Link to comment

Ахаха, черт, вот это провал)

Окей, тогда сделаем классически, как делали в свое время на порталах с запрещенными ссылками :)

[l ua][/l ua], только нужно из тегов убрать пробелы, ессно)

Это лучше, чем тег [c ode][/c ode], почему - можно увидеть наглядно.

Link to comment

Завязывайте с флудом...

Если вы решили, что я хочу, чтобы кто-то сделал это за меня, то вы сильно ошибаетесь. :twisted:

Я всего лишь спросил пример. Вы знаете - вы отвечаете.

MX_Master - Ваш пример будет удобен только на сервере, где будут стоят только родные модельки.

А вот для сереверов, где предстоит менять модели на разные машины, я предлагаю следующее.

Берется handling файл от, к примеру, машинки, которую можно скачать из интернета для "обычной" GTA SA.

Убирается лишнее, и остается вот этот код:

[b]SULTAN(это убираем - просто оставил, чтобы понятнее было, что это машина)[/b]1710.0 4420.0 1.6 0.0 0.25 -0.16 75 0.74 0.86 0.52 5 250.0 26.2 5.0 R P 7.9 0.52 1 30.0 1.1 0.10 0.0 0.26 -0.07 0.46 0.50 0.2 0.56 15000 0 0 0 1 0 

Этот код идет в файл, например, в *.txt.

Таким образом, пишется скрипт, который читает данный txt файл как GTA SA - то есть, цифры читает, пробел пропускает. В скрипте так же будет [id] машинки, так что нужны будут только данные вверху.

А можно сделать такой handling код(файл, например, *.txt документ)

1710.0 
4420.0 
1.6 
0.0 
0.25 
-0.16 
75 
0.74 
0.86 
0.52 
5 
250.0 
26.2 
5.0 
R 
P 
7.9 
0.52 
1 
30.0 
1.1 
0.10 
0.0 
0.26 
-0.07 
0.46 
0.50 
0.2 
0.56 
15000 
0 
0 
0 
1 
0 

... и написать скрипт, чтобы он читал данные по-строчно из этого файла.

То есть картина с моим вариантом рисуется следующая:

1. Мы можем скачать машинку с некоего MTA сайта, где машинки размещают в zip архивах, во нутри архива есть необходимые meta.xml и скрипт handling. Это очень удобно, согласитесь.

2. Мы берем и ставим эту машинку в ресурсы и просто прописываем архив в mtaserver.conf.

3. Загружаем сервер - и вуаля - машинка с нужными нам настройками.

Таким образом, состав zip файла будет следующим:

1. Скрипт.

2. txt файл с handling

3. txd текстура

4. dff модель

На данный момент я тестирую handling функции. Как протестирую, напишу сюда.

---

В общем, вот рабочий код(вводим в чате /cs и массу)

function massChange ( me, command, mass ) 
    mass = tonumber ( mass ) 
    local veh = getPedOccupiedVehicle ( me ) 
  
    if mass and veh then 
    local success = setVehicleHandling ( veh, "mass", mass ) 
end 
end 
addCommandHandler ( "cs", massChange ) 

P.S. Я не говорю, что это то, что мне нужно. Это всего лишь код с Wiki без "мусора" типа сообщений об ошибке - промежуточный код.

Я буду его дорабатывать до нужного мне. И изменю его.

---

Скажите, что написать сюда, чтобы выбиралось id машинки?

function maxVelocityChange ( me, command, maxVelocity ) 
  maxVelocity = tonumber ( maxVelocity ) 
  local veh = getPedOccupiedVehicle ( me ) -- После local veh = id машинки? 
      
  if maxVelocity and veh then 
  local success = setVehicleHandling ( veh, "maxVelocity", maxVelocity ) 
end 
end 
addCommandHandler ( "cd", maxVelocityChange ) 

Link to comment

Ну так, не сможете помочь?

Можно ли сюда куда-нибудь вставить id машинки?

function maxVelocityChange ( me, command, maxVelocity ) 
      maxVelocity = tonumber ( maxVelocity ) 
      local veh = getPedOccupiedVehicle ( me ) -- После local veh = id машинки? 
          
      if maxVelocity and veh then 
      local success = setVehicleHandling ( veh, "maxVelocity", maxVelocity ) 
    end 
    end 
    addCommandHandler ( "cd", maxVelocityChange ) 

Link to comment
Ну так, не сможете помочь?

Можно ли сюда куда-нибудь вставить id машинки?

Это не самп, это МТА!

Тут не АЙдишники, а елементы.

Т.е. идентифицировать машины нужно самому!

Link to comment

А это тогда что значит?

...

txd = engineLoadTXD ( ".txd", 542 )

engineImportTXD ( txd, 542 )

dff = engineLoadDFF ( ".dff", 542 )

engineReplaceModel ( dff, 542 )

...

Да и в Мап Редакторе ведь справа от названия dff модели стоит её id, например 411, или 3525...

Link to comment

это ИД модели транспорта, он тебе для хэндлинга не пойдет, т.к. хэндлинг меняется не у модели, а у конкретной созданной тачки. Так вот, ИД этой тачки, правильно называемые элементом, ты и должен юзать вместо veh в твоем примере. Но откуда ты его возмешь этот элемент? Разве что при создании тачки сохранить его и потом юзать

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