Jump to content

Jonathan.P

Members
  • Posts

    110
  • Joined

  • Last visited

Everything posted by Jonathan.P

  1. Спасибо! 1)Можно ли скриптом удалить все объекты определенной модели с сервера, а на их место поставить другой объект определенной модели(не замененной, а стандартной)? 2)Почему эвенты "onVehicleExit", "onPlayerVehicleExit" не срабатывают, когда игрок помирает в машине? Как с этим бороться? Что интересно, на эвенте "onPlayerWasted" игрок уже как бы не в машине, т.е. isPedInVehicle даёт false.
  2. Я знал что проблема в знаках углах\позиций, стал перебирать, пробовать разные варианты. Знак больше\меньше оставил как и был сначала. А вот строчку local rotation = ( 360 - math.deg ( math.atan2 ( ( x - px ), ( y - py ) ) ) ) % 360 заменил на local rotation = ( 360 - math.deg ( math.atan2 ( ( px - x ), ( py - y ) ) ) ) % 360 И всё работает как надо! В итоге готовая функция: function isPedRotationToPoint( el, px, py, pz, accuracy ) -- назовите функцию сами if type( el ) == 'userdata' and isElement( el ) and type( px ) == 'number' and type( py ) == 'number' and type( pz ) == 'number' then local x, y, z = getElementPosition(el) local rotation = ( 360 - math.deg ( math.atan2 ( ( px - x ), ( py - y ) ) ) ) % 360 local _, _, currentRotation = getElementRotation( el ) return math.abs( currentRotation - rotation ) < accuracy and true or false end return false end Спасибо за помощь, TheNormalnij.
  3. Если так, но функция возвращает true когда игрок наоборот отвёрнут от точки. Я поменял знак. Работает но не так как надо. Дело в том, что значению true соответствует огромный(!) угол, в то время когда false - совсем малый угол, т.е. когда игрок смотрит в сторону точно противоположную стороне точке(а должно быть наоборот, значению true - меньший угол(переменная accuracy)). Но мы приблизились к цели.
  4. Да видел я такую функцию. Даже специально написал: Да, я знаю, придётся танцевать с бубнами.
  5. Господа, нужна функция для проверки повёрнут ли игрок лицом к элементу(с погрешностью пусть 30 градусов). Я имею ввиду не камеру, не голову, а сам скин. Дано: 1)Позиция игрока 2)Поворот игрока 3)Позиция элемента Я думаю кто-то да затрагивал этот вопрос. Вроде бы простая задачка из школьного курса информатики. В Пэинте я нарисовал наглядно, как это должно выглядеть. Последнюю систему я записал логическим выражением, но оно не работает. Возможно я где-то ошибся, а может уже есть готовая функция. Картинка Ваши мысли, господа? P.S.: При вычислении тангенса я НЕ забыл перевести всё в радианы. Также дельта альфа пусть равно 30 градусам. Под ElementRotation'ом я подразумеваю поворот относительно оси Z(я знаю, что функция возвращает три значения(x,y,z)).
  6. Спасибо, Jadore. Я помню про этот параметр и описание функции на вики, но всё же слегка напугался.
  7. Спасибо за помощь и разъяснения! Только последнее: А как же elementData? Принцип тот же? Допустим, создан элемент на сервере, присвоена ему дата. Через некоторое время на одном из клиентов я меняю эту дату, тогда на сервере и на других клиентах она останется неизменна(первоначальная)?
  8. Спасибо, а если я объявляю глобальную переменную (без local), то она будет существовать и в других скриптах, получается, тогда в каких: во всех ресурсах, или только в данном?
  9. Два простых вопроса: 1)На странице вики по функции crateVehicle https://wiki.multitheftauto.com/wiki/CreateVehicle, есть заметка: Т.е. когда я создаю на клиенте например просто элемент (createElement) или маркер (createMarker), то он существует только на этом клиенте и виден только ему? и на сервере его не найти? 2)чем отличаются переменные local count = 0 и count2 = 0 если я их задаю в корне скрипта?
  10. Что я понял: 1) Во втором ресурсе пикап НЕ берется, только если я его создам на клиентской стороне. Выходит что карта на этом ресурсе работает как серверная сторона, в то время как в первом ресурсе карта чудным образом работает как клиентская сторона(пикап НЕ берется) 2) Решить проблему, не удаляя пикапы из карты второго ресурса можно только отменив событие onPickupHit на серверной стороне. Пикап - кустомный(!). Сколько неясностей то в MTA. До злости.
  11. Как? createPickup(-178, -34, 4, 3, 1239) Всё равно берется. В обоих ресурсах
  12. Ты кажется не читал мой пост. Мне и надо, чтоб не брался, так и должно быть. А почему в другом то ресурсе берется? Евент не срабатывает при взятии, издаётся звук взятия пикапа как в сингле. Пикап отображается нормально - информационной иконкой. Самое интересное, не помогает даже код: setPickupType(pickup, 3, 1239) setElementDimension(pickup, 0) setElementInterior(pickup, 0) который выполняется при запуске ресурса на стороне сервера.
  13. Что за дела?? Это чертовщина какая-то... Прописал в карте одного из ресурсов пикапы: <pickup type="custom" model="1239" posX="0" posY="0" posZ="5" /> Всё, нормально, при заходе на пикап, пикап не берётся, срабатывает евент onClientPickupHit. Всё ОК. Создал пикапы в карте другого ресурса. Код тот же. Так эти пикапы чудным образом подбираются, а onClientPickupHit не срабатывает! Разница лишь в том что в в первом случае я присваиваю уже в скрипте пикапам интерьеры и 2000-е дименшоны. И всё! Почему так вдруг, в одном ресурсе работает нормально, в другом - совсем по другому? Как исправить? Мне до сих пор кажется, что дело в моей невнимательности, но я уже что только не пробывал. P.S.: в карте организованы небольшие ветки, также небольшие EDF.
  14. Синхронизируется ли функция setVehicleAdjustableProperty с сервером?(нет возможности проверить) И вообще, на будущее: если функция клиент онли, то обязательно ли она не синхронизируется?
  15. Или тебя смущает, что она возвращает true на локального игрока? (тогда какой смысл понимать панику по этому поводу?) Т.е. на игроке эта функция не работает? Т.е. в МТА камеру никак не повернуть? (setCameraMatrix только фиксирует)
  16. Можно код увидеть? Держи addCommandHandler("rot", function() local rot1, rot2, rot = getElementRotation(getLocalPlayer()) if setPedCameraRotation(getLocalPlayer(), rot - 180) then outputChatBox("true") else outputChatBox("false") end end ) Выводит "true"
  17. Мне кто-нибудь объяснит, почему не работает setPedCameraRotation?
  18. Спасибо, буду ставить эксперимент. Потом может напишу о результате. Спасибо, но не стоит меня так не дооценивать
  19. Если я приаттачу колшейп к игроку, то будет ли изменяться в соответствии дименшен и интерьер колшейпа при изменении дименшена и интерьера игрока?
  20. Сделал так: setCameraMatrix(x + 5 * math.sin(rot), y + 5 * math.cos(rot), z + 2, x, y, z) Всё как надо, но вот камера замораживается, а нужно чтоб замораживалась только в начале, пока игрок не двигается. Как только двинулся, камера плавно встает на дефолтное место "за спиной". Это возможно?
  21. Как поставить камеру точно перед игроком и направить на него? Понятно, что setCameraMatrix(X, Y, Z, lookAtX, lookAtY, lookAtZ) C lookAt ясно: ставим координаты игрока, а вот позиция самой камеры? Я так понимаю тут надо работать с окружностью или сферой и радиус-вектором. Есть мысли?
  22. if getPedSimplestTask(_local) == "TASK_SIMPLE_PLAYER_ON_FOOT" отличная замена isPedOnGround, даже в инте работает. Спасибо! То, что надо.
  23. Что - то я сразу не сообразил, хех, спасибо большое, всегда помогаете
  24. По поводу первого, спасибо, а вот насчет второго поподробней. У меня в инте стоит маркер выхода из него. При заходе на маркер стоит проверка isPedOnGround(чтобы игрок не прыгал на маркер) - во всех стандартных интах работает, а в моем - нет. Как тут поможет isLineOfSightClear?
  25. 1)Ребята, а не подскажите как присвоить объекту универсальный dimension, чтобы он находился сразу во всех, не дублируя сам объект? Создал свой интерьер, который должен будет использоваться в 17 дименшонах, а тут проблема. 2) На самодельном инте не работает проверка isPedOnGround. Как бороться? Может какие объекты помогут?
×
×
  • Create New...