Jump to content

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


Recommended Posts

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

проверял, всё работает. хп снимает как стреляющему, так и жертве.

Link to comment

есть ли аналог onMarkerHit для клиентской стороны? хочу сделать открывающееся окошко при входе на маркер и не хочется для такой мелочи использовать серверную часть

Link to comment
  • 3 weeks later...
  • Other Languages Moderators
Хочу чтобы клиент не хранил некоторые заменяемые модели. Правильно ли будет удалять файлы моделей через fileDelete сразу после замены?

Обходится запретом на удаление.

Link to comment

Как вариант если у вас много моделей на сервере, то просто сохранять файлы в виде хэша (в названии файла), в одной папке соответственно. Никто не сможет украсть, т.к файлов слишком много, очень много времени займет поиск подходящих dff и/или col файлов, хотя кому надо тот найдет.

Link to comment

Всем привет, у меня возник тригонометрический вопрос для тех кто знает её, вообщем, есть вектор задан двумя точками и нужно узнать координаты точки на n метрических единиц по вектору, нужна сама формула, вот даже нарисовал для понимания: ( здесь n = 8 )

http://cs622319.vk.me/v622319107/50add/UJGh0wa7UCk.jpg

Буду благодарен за полезные ссылки.

Link to comment

Ещё один вопрос, похож к предыдущему: есть объект и нужно найти точку на n-ом расстояние от него, по XYZ, например по Х она на +2, по Y +3, и по Z +4, нужна формула которая будет учитывать все углы поворота (RX, RY, RZ).

Я пытался сделать что-то такое:

local rx, ry, rz = getElementRotation(element) 
     
local sx = x + math.sin(math.rad(-rz)) * 2 
local sy = y + math.cos(math.rad(-rz)) * 2 
local sz = z 
         
sz = sz + math.sin(math.rad(-ry)) * 2 
sx = sx + math.cos(math.rad(-ry)) * 2 
  
sz = sz + math.sin(math.rad(-rx)) * 2 
sy = sy + math.cos(math.rad(-rx)) * 2 

Но видимо я где-то что-то сделал не так, первый расчет правильный, а вот два следующих нет.

Надеюсь кто-то даст ответ.

Link to comment
а что тут не понятного... разные записи одного и того же угла

Что-то либо я не так сделал, либо с формулой, т.к. точка даже не попала на прямую и была точно не там где должна была.

Вот что я делал:

Xc = 8*cos(arctg(3/4))+5 = 10.40

Yc = 8*sin(arctg(3/4))+5 = 12.36

arctg((Yb-Ya)/(Xb-Xa)) = arccos((Xc-Xb)/n) = arcsin((Yc-Yb)/n)

Вот здесь есть Хс и Yc, но нам же и это надо найти.

Link to comment

ну так я и выразил Xc и Yc из первой записи

Xc = 8*cos(arctg(3/4))+5 = 11.4

Yc = 8*sin(arctg(3/4))+5 = 9.8

чёт ты жёстко тупишь...

по второму:

Xк = n*cos(rx) + Xн

Yк = n*cos(ry) + Yн

Zк = n*cos(rz) + Zн

где к - конечные, н - начальные

rx - угол между вектором и проекцией на плоскость YZ

ry - угол между вектором и проекцией на плоскость XZ

rz - угол между вектором и проекцией на плоскость XY

в твоём примере n*cos(rx) = 2, n*cos(ry) = 3, n*cos(rz) = 4

Link to comment
ну так я и выразил Xc и Yc из первой записи

Xc = 8*cos(arctg(3/4))+5 = 11.4

Yc = 8*sin(arctg(3/4))+5 = 9.8

чёт ты жёстко тупишь...

по второму:

Xк = n*cos(rx) + Xн

Yк = n*cos(ry) + Yн

Zк = n*cos(rz) + Zн

где к - конечные, н - начальные

rx - угол между вектором и проекцией на плоскость YZ

ry - угол между вектором и проекцией на плоскость XZ

rz - угол между вектором и проекцией на плоскость XY

в твоём примере n*cos(rx) = 2, n*cos(ry) = 3, n*cos(rz) = 4

Оо огромное спасибо, расписал максимально, я просто arctg не правило нашел.

Link to comment
function getPositionFromElementOffset(element,offX,offY,offZ) 
    local m = getElementMatrix ( element )  -- Get the matrix 
    local x = offX * m[1][1] + offY * m[2][1] + offZ * m[3][1] + m[4][1]  -- Apply transform 
    local y = offX * m[1][2] + offY * m[2][2] + offZ * m[3][2] + m[4][2] 
    local z = offX * m[1][3] + offY * m[2][3] + offZ * m[3][3] + m[4][3] 
    return x, y, z                               -- Return the transformed point 
end 

Link to comment
по второму:

Xк = n*cos(rx) + Xн

Yк = n*cos(ry) + Yн

Zк = n*cos(rz) + Zн

где к - конечные, н - начальные

rx - угол между вектором и проекцией на плоскость YZ

ry - угол между вектором и проекцией на плоскость XZ

rz - угол между вектором и проекцией на плоскость XY

в твоём примере n*cos(rx) = 2, n*cos(ry) = 3, n*cos(rz) = 4

Этот способ что-то не работает, да и на вид он слишком простой, вот как я делал:

local rx, ry, rz = getElementRotation(element) 
local x, y, z = getElementPosition(element) 
     
local sx = 2*math.cos(rx)+x 
local sy = 2*math.cos(ry)+y 
local sz = 2*math.cos(rz)+z 

function getPositionFromElementOffset(element,offX,offY,offZ) 
    local m = getElementMatrix ( element )  -- Get the matrix 
    local x = offX * m[1][1] + offY * m[2][1] + offZ * m[3][1] + m[4][1]  -- Apply transform 
    local y = offX * m[1][2] + offY * m[2][2] + offZ * m[3][2] + m[4][2] 
    local z = offX * m[1][3] + offY * m[2][3] + offZ * m[3][3] + m[4][3] 
    return x, y, z                               -- Return the transformed point 
end 

То что надо, все отлично работает, спасибо большое, я знал что здесь нужно с матрицами работать, но обычно только для XY делал, а эта функция она же с вики? :lol:

Link to comment

С чем связано то, что функция getElementBoundingBox иногда возвращает неточные координаты? Т.е. рамка иногда как бы сьезжает выше/ниже, правее/левее. Проверял на машинах. Коллизия и полигоны в порядке.

Link to comment

Всем доброе время суток, у меня легкий вопрос исключительно о lua, суть: есть два цикла, которые перебирают двух мерный массив, и когда выполняется какое-то логическое действие тогда надо полностью выйти с циклов. Пример:

for y = 1, 5 do 
    for x = 1, 5 do 
       if y == 2 and x == 2 then 
          break 
       end 
    end 
end 

Этот код просто выходит с внутреннего цикла.

Надеюсь я понятно все объяснил и кто-то даст ответ.

Я так подумал можно сделать таким образом:

slop = false 
for y = 1, 5 do 
    if slop then 
         break 
     end 
    for x = 1, 5 do 
        if y == 2 and x == 2 then 
           slop = true 
           break 
        end 
    end 
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...