Jump to content

Общий мини "HELP ME" топик по скриптингу


Recommended Posts

И я пытаюсь что то сделать своими руками. Идеи есть а вот понять всё это не могу. Как составить программу. Как сделать так что бы она заработала. Меня учили чинить компьютеры. Ну и немного алгоритмизации. 18 летний мужчина не может понять простых азов программирования. Как не странно с павно я дружу на уровне любителя. А вот с луа как не пытался писать свои скрипты. Всё не работает.

Link to comment
И я пытаюсь что то сделать своими руками. Идеи есть а вот понять всё это не могу. Как составить программу. Как сделать так что бы она заработала. Меня учили чинить компьютеры. Ну и немного алгоритмизации. 18 летний мужчина не может понять простых азов программирования. Как не странно с павно я дружу на уровне любителя. А вот с луа как не пытался писать свои скрипты. Всё не работает.

Чтобы писать на Lua, нужно иметь базовые знания о скриптинге или о каких-то основах программирования. Только не пробовать сразу реализовывать сложные вещи например на ООП, потому как поначалу практически нереально будет это понять, а еще и учитывая ваши знания.

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

Link to comment

С претензиями написания (Lua/LUA/lUA) пишите, пожалуйста, в личку. И лучше сразу доходчиво. А то каким-то высокомерием от ваших постов несет, ей-богу.

P.S. Написания названия языка, я имел в виду.

Link to comment

Амарант в жизни что то меняется. Я старею. Память к сожалению уже уходит. По павно уже не помню ничего. 2 года назад изучил его так как хотел создать тоже свой сервер как и любая школота которая хочет по руководить такими же школьниками. Создавал отличные фан сервера наподобии лв максимума. Потом надоело. Забросил всё. Стал играть играть и играть на моде тактикс в мта. Вот решил я займусь я этим тоже. Научусь программированию мта. Так как мта намного лучше сампа. А сейчас читаю мануал от ilovelua и думаю как это переварить. Извините за мой оффтопик чисто как сказать наболело.

Link to comment

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

Link to comment

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

Вопрос такой: Как создать отображение текста над маркером? (Самый простой способ вроде бы?)

Link to comment
Теперь, когда есть ворота, нужно создать отображение команд, которые нужно вводить для открытия ворот и цену за действие.

Вопрос такой: Как создать отображение текста над маркером? (Самый простой способ вроде бы?)

Вкратце: создаешь текст, и отображаешь его у игрока в onClientRender. Тебе понадобятся:

  
dxDrawText 
getScreenFromWorldPosition 
  

Link to comment
Теперь, когда есть ворота, нужно создать отображение команд, которые нужно вводить для открытия ворот и цену за действие.

Вопрос такой: Как создать отображение текста над маркером? (Самый простой способ вроде бы?)

Вкратце: создаешь текст, и отображаешь его у игрока в onClientRender. Тебе понадобятся:

  
dxDrawText 
getScreenFromWorldPosition 
  

Поподробнее пожалуйста.:)

Link to comment
  
addEventHandler ( "onClientRender", root 
    function() 
        local x, y, z = 0, 0, 3 
        local mX, mY, mD = getScreenFromWorldPosition(x, y, z) 
        if mX and mD < 40 then 
            dxDrawText ("ТЕКСТ", mX, mY) 
        end 
    end 
) 
  

Данный пример будет прорисовывать "ТЕКСТ" на координатах (0,0,3). Расстояние с которого это видно < 40.

P.S. Не проверял данный код, но по идеи должно всё нормально быть

Link to comment
  
addEventHandler ( "onClientRender", root 
    function() 
        local x, y, z = 0, 0, 3 
        local mX, mY, mD = getScreenFromWorldPosition(x, y, z) 
        if mX and mD < 40 then 
            dxDrawText ("ТЕКСТ", mX, mY) 
        end 
    end 
) 
  

Данный пример будет прорисовывать "ТЕКСТ" на координатах (0,0,3). Расстояние с которого это видно < 40.

P.S. Не проверял данный код, но по идеи должно всё нормально быть

И все же я не понял. Видимо, мне придется все вытаскивать из Вас, либо изучать азы, потом уже пытаться делать подобное. Идея уже есть, ворота установлены, а подсказки для команд нет. :(

Link to comment

По моему, прежде чем говорить умные слова "азы" и тп. нужно включить логику, простите мне мое высокомерие, автор данного выше кода дал вам не подсказку а сам код к чему еще тут вопросы, вот пример прокоментирую

на клиенте соответственно

 addEventHandler ( "onClientRender", root, -- эвент, обновляет внутри лежащий код по мере обновления экрана 
function ( )     
                    local x, y, z = 0,0,0 -- это координаты по которым будет прорисован ваш текст 
                    local cx, cy, cz = getCameraMatrix( ); -- пол.камеры 
                    if getDistanceBetweenPoints3D( cx, cy, cz, x, y, z ) <= 15 then -- если расстояние между камерой и текстом меннее 15 тогда число можно указать любое, или не указывать вовсе 
                        local px, py = getScreenFromWorldPosition( x, y, z + 1.0, 0.02 ); 
                        if px then 
                           dxDrawText( "Ваш текст", px, py, px, py, tocolor( 255, 255, 255, 255 ), 1, "arial-bold", "center", "center", false, false, false , true  ) 
                       end   
                   end 
          end)  

что не понятно спрашивайте поясним

Link to comment
По моему, прежде чем говорить умные слова "азы" и тп. нужно включить логику, простите мне мое высокомерие, автор данного выше кода дал вам не подсказку а сам код к чему еще тут вопросы, вот пример прокоментирую

на клиенте соответственно

 addEventHandler ( "onClientRender", root, -- эвент, обновляет внутри лежащий код по мере обновления экрана 
function ( )     
                    local x, y, z = 0,0,0 -- это координаты по которым будет прорисован ваш текст 
                    local cx, cy, cz = getCameraMatrix( ); -- пол.камеры 
                    if getDistanceBetweenPoints3D( cx, cy, cz, x, y, z ) <= 15 then -- если расстояние между камерой и текстом меннее 15 тогда число можно указать любое, или не указывать вовсе 
                        local px, py = getScreenFromWorldPosition( x, y, z + 1.0, 0.02 ); 
                        if px then 
                           dxDrawText( "Ваш текст", px, py, px, py, tocolor( 255, 255, 255, 255 ), 1, "arial-bold", "center", "center", false, false, false , true  ) 
                       end   
                   end 
          end)  

что не понятно спрашивайте поясним

Спасибо, работает! :)

Вопросов вроде бы нет, все по шаблону.

Link to comment

Снова нужна помощь...

Хочу создать педа и движение штанги. На офф. сайте смотрел, но так и не понял до конца что к чему, в итоге полная ересь с кодом. Вам будет страшно на это смотреть...

bench = createObject ( 2913, 3814.06934, 2893.7998, 1370.90503, 270, 179.995, 90 ) 
  
 function jim(toggle) 
    if toggle == true then 
        moveObject ( bench, 4000, 3814.06934, 2893.7998, 1371.90503 
[ 1370.90503, 270, 179.995, 90, InQuad, 1, 2, 3 ] ) --Тут что-то должно быть иначе 
end 
addEventHandler( "onClientResourceStart", resourceRoot, jim ) 
  
function makePed() 
   ped1 = createPed(206, 3814.06934, 2893.7998, 1370.90503) 
   setPedRotation(ped1, 270) 
   setPedAnimation( ped1, "ped", "gym_bp_up_smooth") 
end 
addEventHandler( "onClientResourceStart", resourceRoot, makePed) 

Link to comment

У тебя блок if ... then не закрыт, переменная InQuad не определена. Lua выучи для начала, а то ты в таком духе ничего не напишешь.

Link to comment

Всем доброго времени суток

Только начал заниматься скриптингом в МТА

Вопрос такой.

Хочу написать чисто свой мод, с абсолютного нуля.

Как правильно вырезать из стандартного мода стандартные ресурсы? Пробовал, что то не удается, error ы выдает

Link to comment

Что значит "вырезать"? Ресурсы можно включать и отключать. Стандартных модов много, какой именно тебя интересует, какие "error ы" тебе выдает и что именно ты пробуешь?

Link to comment

Я говорю о стандартном deathmatch, который идет совместно с сервером

В нем много различных ресурсов admin и прочее

Я хочу их отключить, чтобы работали только мои

Link to comment

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

Link to comment
  • 2 weeks later...
local numbers= { 
  
"один", 
"два", 
"три", 
"четыре" 
  
} 
  
for i, tableNumb in ipairs(numbers) do 
outputChatBox(????????, 255, 0, 0, true ) 
end 

нужно чтобы в чат выдавало по очереди все четыре сообщения, рандомно. пожалуйста помогите/подскажите как сделать.

Link to comment
local numbers= { 
  
"один", 
"два", 
"три", 
"четыре" 
  
} 
  
for i, tableNumb in ipairs(numbers) do 
outputChatBox(????????, 255, 0, 0, true ) 
end 

нужно чтобы в чат выдавало по очереди все четыре сообщения, рандомно. пожалуйста помогите/подскажите как сделать.

По очереди и рандомно? Это собственно как?

Если по очереди, то вот:

local numbers= { 
  
"один", 
"два", 
"три", 
"четыре" 
  
} 
  
for i, tableNumb in ipairs(numbers) do 
outputChatBox(tableNumb, 255, 0, 0, true ) 
end 

Случайно, вот:

  
local numbers= { 
  
"один", 
"два", 
"три", 
"четыре" 
  
} 
  
for i, tableNumb in ipairs(numbers) do 
outputChatBox(numbers[Math.random(#numbers)], 255, 0, 0, true ) 
end 
  

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