Jump to content

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


Recommended Posts

  • Scripting Moderators
Раньше как-то узнавал про доработки в ночнушках. Сегодня не нашёл. Подскажите, где посмотреть про новое и исправленное старое? Больше всего интересуют поезда.

https://code.google.com/p/mtasa-blue/source/list?

Link to comment
2. Только самому в настройках, либо написать свой чат.

3. Напиши свой ресурс, который бы это делал, вот функции:

removeWorldModel 
createObject 

Спасибо за помощь,

1) Можно сделать чтобы игрокам при входе будет автоматом изменять настройки? Кажется же есть сами функции изменений чата, но ничего в вики не находил. (интересует размер самой строки)

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

3) И как можно сделать чтобы игрок мог ходить только определенной анимацией, не в силах её изменять.

Link to comment

2 и 3 можно осуществить биндами. Для скорости и выносливости используй bindKey("sprint", "down", ... ) и bindKey("sprint", "up", ... ). Для выносливости можно установить какое-либо значение и, пока кнопка нажата, отнимать его, а когда отжата - восстанавливать. Для силы удара, например, так:

  
addEventHandler ( "onPlayerDamage", root, function (attacker, weapon, bodypart, loss)  
     if ( weapon == 0 ) then 
          setElementHealth ( source, getElementHealth(source) - 20 ) ---ещё отнимаем 20 единиц жизней 
     end  
end ) 

Link to comment
2 и 3 можно осуществить биндами. Для скорости и выносливости используй bindKey("sprint", "down", ... ) и bindKey("sprint", "up", ... ). Для выносливости можно установить какое-либо значение и, пока кнопка нажата, отнимать его, а когда отжата - восстанавливать. Для силы удара, например, так:
  
addEventHandler ( "onPlayerDamage", root, function (attacker, weapon, bodypart, loss)  
     if ( weapon == 0 ) then 
          setElementHealth ( source, getElementHealth(source) - 20 ) ---ещё отнимаем 20 единиц жизней 
     end  
end ) 

Спасибо, все ясно, кроме того как именно сделать невозможность спринта? Отбиндить спринт нельзя же.

А что на счет самого изменения макс. скорости игрока, это возможно изменить? (Это должна быть как бы система прокачки тела)

Link to comment

Спасибо, все ясно, кроме того как именно сделать невозможность спринта? Отбиндить спринт нельзя же.

А что на счет самого изменения макс. скорости игрока, это возможно изменить? (Это должна быть как бы система прокачки тела)

Отбиндить нельзя, а вот отключить можно: toggleControl

Link to comment

Спасибо, все ясно, кроме того как именно сделать невозможность спринта? Отбиндить спринт нельзя же.

А что на счет самого изменения макс. скорости игрока, это возможно изменить? (Это должна быть как бы система прокачки тела)

Отбиндить нельзя, а вот отключить можно: toggleControl

Спасибо за помощь.

Link to comment
Для скорости и выносливости используй bindKey("sprint", "down", ... ) и bindKey("sprint", "up", ... ). ]

А разве можно как-то изменять скорость бега педа ?

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

Что-то типа такого, скрипт изменяет спринт когда заходишь в игру.

 function setSpeedPedOnJoin() 
    toggleControl(source, "sprint ", false) -- выключение стандартного спринта 
    bindKey(source, "sprint", "both", setSpeedPed) -- бинд новой функции  
end 
addEventHandler('onPlayerJoin', rootElement, setSpeedPedOnJoin)  

 function setSpeedPed (thePlayer, key, keyState) 
    if keyState == "down" then 
    -- анимация бега 
    elseif keyState == "up" then 
    -- откл. анимацию бега 
    end 
end 

Link to comment

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

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

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

Link to comment
Возможно ли деспаунить игрока? Если да, то подскажите как это сделать.

Деспаунить нет, даже при заходе на сервер, перед скриптовым spawnPlayer, игрок всё равно уже зарождён в точке (0, 0, 0) и заморожен. Следственно можно сымитировать деспаун таким же образом - заморозить игрока и переместить в точку (0, 0, 0)

Link to comment

Всем привет, у меня возник такой вопрос, делаю сис-му инвентаря, и подъем итемов хочу сделать с помощью кнопки, то есть те итемы которые лежат рядом будет находить, но придумал только с помощью клика, т.к. надо как-то находить элемент(ы) который рядом, я использовал processLineOfSight, помогите найти замену.

Link to comment
cars = {} 
cars_prototype = {model = 566, x = 1421.6, y = -1345.9, z = 13.6 , rx = 0, ry = 0, rz = 0, carText = "Text"} 
cars_meta = {__index = cars_prototype} 
  
function cars:new (o) 
    o = o or {} 
    setmetatable(o, cars_meta) 
    return createVehicle(o.model,o.x,o.y,o.z,o.rx,o.ry,o.rz,o.carText) 
end 
  
function cars:paintjob 
    setVehiclePaintjob (self, 2) 
end 
  
addCommandHandler("mtcv", 
function() 
    for i=1, 2 do 
        cars[i] = cars:new{model = 560, carText = "Sultan"} 
    end 
end) 
  
addCommandHandler("mt", 
function 
    cars[1]:paintjob 
end) 

Восьмой час уже пытаюсь разобраться в мета-таблицах, ООП и пр. Сдаюсь. :cry:

Допустим мне нужно поменять Paintjob конкретной машины. Как вызвать функцию cars:paintjob так, чтобы self был cars[1] ? Передавать отдельным аргументом не вариант. Возможно ли?

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