Jump to content

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


Recommended Posts

Верно ли я понимаю, что с выходом МТА 1.4, мы сможем без проблем переносить моды из GTA в MTA без ущерба для координат? А то с переносом оригинальных модов, сбиваются координаты и в MTA Editor получается запутанная каша объектов.

Link to comment
  • 2 weeks later...

Используя createProjectile я создал "Air bomb", когда эта бомба попадает в element (будь это бот, транспорт или объект), она наносит урон. А теперь вопрос, существует ли способ изменить значение урона "Air bomb"?

Link to comment
Отменяя событие on*Damage и высчитывая урон вручную

Хреновый способ. На клиенте все скрипты определения урона поломаются. И на сервере тоже всё пойдет наперекосяк.

Ведь на дворе шел 2014 год, а в идеальном мультиплеере калбеки вызывались беспорядочно, а функцию wasDamageCancelled так и не предусмотрели. Хотя в другом конкурирующем моде это было решено легко и просто: вызовом каллбеков в скриптах последовательно.

Link to comment
И wasEventCancelle давно существует. Правильно продумайте систему и все будет ок

Угу, и работает он в пределах одного ресурса. И приорити задаются в пределах ресурса, а если что-то извне начинает воздействовать - тут же начинается беспорядок.

Link to comment
  • 3 weeks later...

Поиграл на DDC, заметил что нигде нет в ресурсах их клиентских скриптов, только картинки. Как они так зашифровались? Тоже хочу

Link to comment
Поиграл на DDC, заметил что нигде нет в ресурсах их клиентских скриптов, только картинки. Как они так зашифровались? Тоже хочу

Поставить атрибут cache="false" для клиентских скриптов в meta.xml:

="blahblah.lua" type="client" cache="false"/>

При этом придется каждый раз при заходе на сервер скачивать файл заново, ибо он в данном случае не сохраняется на жестком диске.

Link to comment

Вопрос к знатокам метатаблиц. Хочу сделать с race-мода что-то на подобии DDC, чтобы были разные комнаты, допустим в одной race, во второй DD карты, в третей DM. Не даются мне как-то эти метатаблицы, не могу понять вообще зачем они и с чем их едят.

Допустим часть кода для загрузки карты:

RaceMap = {} 
RaceElementMap = {} 
  
function RaceMap:__index(k) 
    if RaceMap[k] then 
        return RaceMap[k] 
    end 
    local result = xmlNodeGetAttribute(self.xml, k) 
    if result then 
        result = RaceMapObject:parseValue(result) 
        self[k] = result 
        return result 
    end 
    result = xmlFindChild(self.xml, k, 0) 
    if result then 
        result = self:createRaceMapObject(result, k) 
        self[k] = result 
        return result 
    end 
end 

Как мне сделать так, чтобы RaceMap = {} превратился в что-то типа RaceMap = { [1] = {}, [2] = {}, [3] = {} } ?

Или лучше не лезть в дебри?

Link to comment
Вопрос к знатокам метатаблиц. Хочу сделать с race-мода что-то на подобии DDC, чтобы были разные комнаты, допустим в одной race, во второй DD карты, в третей DM. Не даются мне как-то эти метатаблицы, не могу понять вообще зачем они и с чем их едят.

Допустим часть кода для загрузки карты:

RaceMap = {} 
RaceElementMap = {} 
  
function RaceMap:__index(k) 
    if RaceMap[k] then 
        return RaceMap[k] 
    end 
    local result = xmlNodeGetAttribute(self.xml, k) 
    if result then 
        result = RaceMapObject:parseValue(result) 
        self[k] = result 
        return result 
    end 
    result = xmlFindChild(self.xml, k, 0) 
    if result then 
        result = self:createRaceMapObject(result, k) 
        self[k] = result 
        return result 
    end 
end 

Как мне сделать так, чтобы RaceMap = {} превратился в что-то типа RaceMap = { [1] = {}, [2] = {}, [3] = {} } ?

Или лучше не лезть в дебри?

Возможно я что-то не понимаю, но что мешает тебе сделать это на обычных таблицах ?

Link to comment

Всем привет. Есть небольшая проблема. Есть код, при нажатии на кнопку создается ТС, он полностью рабочий, но проблема в том, что когда ТС создается в него нельзя сесть и оно не повреждается никак. Не могу понять почему, может кто подскажет решение?

Вот мой код

addEventHandler("onClientGUIClick",WinAP2, 
function(b,thePlayer) 
local ID = tonumber(guiGetText(EditWinAP2)) 
local px,py,pz = getElementPosition(getLocalPlayer()) 
    if (b == "left") and (source == ButtonWinAP2) then 
        if not (ID == nil) then 
            if ID>399 and ID<612 then 
                createVehicle(ID,px+2,py+2,pz+2)  
                guiSetVisible(WinAP2,false)      
                showCursor(false) 
            else 
                outputChatBox( "[Подсказка] ID не может быть меньше 400 и больше 611 ",12,186,65) 
            end 
        else  
            outputChatBox( "[Подсказка] Введите ID ",12,186,65) 
        end 
    end 
end 
) 

Link to comment
  • 2 weeks later...

Бот-снайпер реализованый на обычных функциях МТА(setPedAimTarget) ну очень плохо стрелят. Попадает только в долгостоячего игрока, даже когда вертится и прицеливается при рендере(или перед ним, результат одинаков).

9bQpLFKs.png

Как лучше сделать бота, который хотя бы по ходячему игроку попадет ?

Link to comment
Где ты обновляешь позицию игрока чтобы бот стрелял в него?

Что-что ? Где я обновляю позицию, куда будет стрелять бот ? Да хоть где: перед выстрелом, в рендере(или пререндере), не важно, стреляет он постоянно с таким вот отставанием.

*Не наличием разным проверок, на то, тот ли это бот, если ли у его оружие и куда стрелять и прочего не пугайтесь, просто тестовый код, других там нету и выполняется всё без ошибок.

  
function findRotation(x1,y1,x2,y2) 
    local t = -math.deg(math.atan2(x2-x1,y2-y1)) 
    if t < 0 then 
        t = t + 360  
    end 
    return t 
end 
  
function botRotation() 
    for i, data in ipairs(getElementsByType('ped')) do 
        local x, y = getElementPosition(data) 
        local px, py, pz = getElementPosition(localPlayer) 
        setPedAimTarget(data, px, py, pz)            
        local rotZ = findRotation(x, y, px, py) 
        setPedRotation(data, rotZ) 
    end 
end 
addEventHandler('onClientPreRender', root, botRotation) 
  

Edited by Guest
Link to comment

Здравствуйте.

1) Недавно поставил мта на комп без антивируса и тот мне выдал известное окно. Я почитал что там написано и вроде всё понял, но поставить галочку где сказано что я готов быть частью ботнета я не смог (типо как в других прогах о том что я согласен с условиями лицензии) и просто нажал ОК. Через какоето время до меня дошло что пока я не установлю антивирус или не соглашусь быть частью бот нета это окно так и будет вылетать при запуске и бесить меня. Вопрос: почему нет 3го варианта? "я не буду ставить антивирь (поэтому не показывай мне окно), но и частью бот нета я быть не согласен". Само предложение в лэйбле составлено не корректно, якобы я соглашаюсь на то чтоб мта сделало мой комп частью бот нета. Я считаю что это важно и текст в лейбле должен быть исправлен, особенно в свете последних событий (watch dogs и биткойны). Не поймите не правильно я не считаю что мта делает мой комп частью бот нета, просто я не могу поставить ту галочку, "религия" не позволяет, а ставить антивирь на тот комп не нужно абсолютно.

2) Тот комп не подключен к интернету и у меня возникла проблема с gameux.dll (игра не стартует, т.к. rundll32.exe безуспешно ломится в инет). Мне пришлось пройти не хилый квест чтоб решить эту проблему, не могли бы разработчики раз и навсегда избавить пользователей от подобных квестов? По-моему для них то как раз это совсем не сложно должно быть зато сколько пользователей перестанут писать "аааа ***** мта не запускается!!!!"(я сам хотел так написать). Если бы эта проблема легко решалась для пользователя, я бы не стал тут это писать, но там надо переименовать файл gameux.dll а перед этим ещё поменять у него владельца, или например редактировать ресурсы другой либы в которой хранятся имена экзешников старых игр, всё это не тривиальные задачи для обычного ползователя. Ещё можно поменять имя файла самой игры, играя в самп я так и сделал, а потом указал путь в реестре до екзешника, но для мта это не вариант.

Link to comment
  • Other Languages Moderators
"я не буду ставить антивирь (поэтому не показывай мне окно), но и частью бот нета я быть не согласен"

Так нельзя, ибо мта не несет ответственности за поставленные вами программы. Поэтому либо вы не ставите антивирь и становитесь уязвимыми к ботнетам, либо наобород.

Link to comment
Поэтому либо вы не ставите антивирь и становитесь уязвимыми к ботнетам, либо наобород.

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

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