Jump to content

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


Recommended Posts

Posted

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

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

Posted

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

  • 3 weeks later...
Posted

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

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

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

Posted

Да просто шифруйте модель и все. Пусть у клиента лежит зашифрованная модель. Вряд ли она ему пригодится.

Posted
Вряд ли она ему пригодится.

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

Posted

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

Posted

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

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

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

Posted

Ещё один вопрос, похож к предыдущему: есть объект и нужно найти точку на 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 

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

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

Posted

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

Xc = n*cos(arctg((Yb-Ya)/(Xb-Xa))) + Xb

Yc = n*sin(arctg((Yb-Ya)/(Xb-Xa))) + Yb

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

Xc = n*cos(arctg((Yb-Ya)/(Xb-Xa))) + Xb

Yc = n*sin(arctg((Yb-Ya)/(Xb-Xa))) + Yb

Я так понимаю это ответ на первый вопрос? Первая строчка не очень ясна.

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

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

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

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

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, но нам же и это надо найти.

Posted

ну так я и выразил 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

Posted
ну так я и выразил 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 не правило нашел.

Posted
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 

Posted
по второму:

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:

Posted

сложный/простой... это решение того, что ты спрашивал. Если ты другое имел в виду, то нужно правильно описывать.

Posted

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

Posted

Всем доброе время суток, у меня легкий вопрос исключительно о 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 

Но это как-то не рационально.

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