Jump to content

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


Recommended Posts

12 hours ago, Alemaz said:

А как маркер создать относительно машины спереди?

 

как вариант получить координаты bump_front_dummy и на его место ставить маркер. или получить эти координаты относительно автомобиля и приаттачить по ним маркер

Link to comment
  • 4 weeks later...

Как можно сделать, чтобы ped шел за игроком? Есть setPedAnalogControlState, которым можно управлять пэдом, но как сделать, чтобы он шел именно за кем-то? Как с помощью setPedCameraRotation повернуть камеру на кого-то?

Link to comment

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

Link to comment
8 hours ago, ZeeBoostFM said:

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

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

Link to comment

Помогите, пожалуйста. Есть функция isMouseInPosition, которой можно проверять, есть ли курсор в прямоугольной области. Но как узнать стоит ли курсор в треугольной области? Буду очень благодарен, если найдется человек, который поможет с этой проблемой. :3

Заранее спасибо.

Link to comment
14 hours ago, MRmihailZH said:

Помогите, пожалуйста. Есть функция isMouseInPosition, которой можно проверять, есть ли курсор в прямоугольной области. Но как узнать стоит ли курсор в треугольной области? Буду очень благодарен, если найдется человек, который поможет с этой проблемой. :3

Заранее спасибо.

x, y - координаты курсора

x1, y1, x2, y2, x3, y3 - координаты углов треугольника

функция вернет true если точка x, y принадлежит треугольнику

function getPosition(x, y, x1, y1, x2, y2, x3, y3)
    local k = (x1 - x) * (y2 - y1) - (x2 - x1) * (y1 - y)
    local m = (x2 - x) * (y3 - y2) - (x3 - x2) * (y2 - y)
    local n = (x3 - x) * (y1 - y3) - (x1 - x3) * (y3 - y)
    return ((k >= 0 and m >= 0 and n >= 0) or (k <= 0 and m <= 0 and n <= 0))
end

 

Edited by K1parik
  • Thanks 1
Link to comment
42 minutes ago, K1parik said:

x, y - координаты курсора

x1, y1, x2, y2, x3, y3 - координаты углов треугольника

функция вернет true если точка x, y принадлежит треугольнику


function getPosition(x, y, x1, y1, x2, y2, x3, y3)
    local k = (x1 - x) * (y2 - y1) - (x2 - x1) * (y1 - y)
    local m = (x2 - x) * (y3 - y2) - (x3 - x2) * (y2 - y)
    local n = (x3 - x) * (y1 - y3) - (x1 - x3) * (y3 - y)
    return ((k >= 0 and m >= 0 and n >= 0) or (k <= 0 and m <= 0 and n <= 0))
end

 

Я опробовал функцию, но результата мне этого не дало. Функция возвращает false, даже когда курсор находится внутри треугольника. Может я что-то не понимаю?

Link to comment
  • 1 month later...

Здравствуйте, у меня проблема. Как загрузить URL локального html файла? Я пробовал вводить http://mta/local/html.html но ничего не загружает. Другие ссылки, но уже в интернете все нормально загружает.

Link to comment
  • Scripting Moderators

@MRmihailZH при создании браузера нужно указать в аргументах, что он может отображать только локальный контент (isLocal).

Link to comment
2 hours ago, Sarrum said:

@MRmihailZH при создании браузера нужно указать в аргументах, что он может отображать только локальный контент (isLocal).

Да, я знаю. Аргумент стоит на true, ошибок в отладке нет. Я в тупике ?

Link to comment
  • Scripting Moderators
2 hours ago, MRmihailZH said:

Да, я знаю. Аргумент стоит на true, ошибок в отладке нет. Я в тупике ?

И в мете файл указан как <file src="html.html" />?

Link to comment
  • 9 months later...
local sw,sh = guiGetScreenSize()
local px,py = sw/1920,sh/1080
setPlayerHudComponentVisible('armour',false)
setPlayerHudComponentVisible('health',false)
setPlayerHudComponentVisible('money',false)
setPlayerHudComponentVisible('clock',false)
setPlayerHudComponentVisible('ammo',false)
setPlayerHudComponentVisible('weapon',false)
setPlayerHudComponentVisible('breath',false)
setPlayerHudComponentVisible('radar',false)
addEventHandler('onClientRender',root,function()
	local hp = getElementHealth(localPlayer)
	local perOneHp = 2.00
	local armor = getPedArmor(localPlayer)
	local oxygen = getPedOxygenLevel(localPlayer)
	local perOneHp = 1.87
		dxDrawRectangle(10, 821, 429, 249, tocolor(40, 40, 40, 230), false)
	dxDrawLine(9, 820, 439, 820, tocolor(0, 0, 0, 160), false)
	dxDrawLine(9, 820, 9, 1071, tocolor(0, 0, 0, 160), false)
	dxDrawLine(439, 820, 439, 1071, tocolor(0, 0, 0, 160), false)
	dxDrawLine(9, 1070, 439, 1070, tocolor(0, 0, 0, 160), false)
	dxDrawLine(19, 830, 405, 830, tocolor(0, 0, 0, 160), false)
	dxDrawLine(19, 830, 19, 1029, tocolor(0, 0, 0, 160), false)
	dxDrawLine(404, 830, 404, 1029, tocolor(0, 0, 0, 160), false)
	dxDrawLine(19, 1029, 405, 1029, tocolor(0, 0, 0, 160), false)
	dxDrawLine(19, 1036, 206, 1036, tocolor(0, 0, 0, 160), false)
	dxDrawLine(19, 1036, 19, 1062, tocolor(0, 0, 0, 160), false)
	dxDrawRectangle(20, 1037, 185, 24, tocolor(70, 70, 70, 200), false)
	dxDrawRectangle(20, 1037, (hp*perOneHp), 24, tocolor(0, 216, 117, 200), false)
	dxDrawLine(205, 1036, 205, 1062, tocolor(0, 0, 0, 160), false)
	dxDrawLine(20, 1061, 206, 1061, tocolor(0, 0, 0, 160), false)
	dxDrawLine(218, 1036, 405, 1036, tocolor(0, 0, 0, 160), false)
	dxDrawLine(218, 1036, 218, 1062, tocolor(0, 0, 0, 160), false)
	dxDrawRectangle(219, 1037, 185, 24, tocolor(70, 70, 70, 200), false)
	dxDrawRectangle(219, 1037, (armor*perOneHp), 24, tocolor(209, 209, 209, 200), false)
	dxDrawLine(404, 1036, 404, 1062, tocolor(0, 0, 0, 160), false)
	dxDrawLine(218, 1061, 405, 1061, tocolor(0, 0, 0, 160), false)
	dxDrawLine(414, 830, 429, 830, tocolor(0, 0, 0, 160), false)
	dxDrawLine(414, 831, 414, 1062, tocolor(0, 0, 0, 160), false)
	dxDrawRectangle(415, 831, 14, 230, tocolor(70, 70, 70, 200), false)
	dxDrawRectangle(415, 831, (oxygen*perOneHp), 230, tocolor(0, 180, 255, 200), false)
	dxDrawLine(429, 830, 429, 1062, tocolor(0, 0, 0, 160), false)
	dxDrawLine(414, 1061, 429, 1061, tocolor(0, 0, 0, 160), false)
end)

Всем доброй ночи, учусь писать скрипт, но большая проблема, при включении на сервере скрипта у сервера внезапно проседает "fps" не знаю точно сколько fps но чувствуется приблизительно до 5-10. Я не могу понять в чём именно кроется проблема. Так же помимо fps, не могу настроить шкалу oxygen(воздух под водой). Если кто-то что-то знает дайте подсказку. За основу был взят guieditor

 

 

Link to comment
2 hours ago, AndrewKyiv said:

local sw,sh = guiGetScreenSize()
local px,py = sw/1920,sh/1080
setPlayerHudComponentVisible('armour',false)
setPlayerHudComponentVisible('health',false)
setPlayerHudComponentVisible('money',false)
setPlayerHudComponentVisible('clock',false)
setPlayerHudComponentVisible('ammo',false)
setPlayerHudComponentVisible('weapon',false)
setPlayerHudComponentVisible('breath',false)
setPlayerHudComponentVisible('radar',false)
addEventHandler('onClientRender',root,function()
	local hp = getElementHealth(localPlayer)
	local perOneHp = 2.00
	local armor = getPedArmor(localPlayer)
	local oxygen = getPedOxygenLevel(localPlayer)
	local perOneHp = 1.87
		dxDrawRectangle(10, 821, 429, 249, tocolor(40, 40, 40, 230), false)
	dxDrawLine(9, 820, 439, 820, tocolor(0, 0, 0, 160), false)
	dxDrawLine(9, 820, 9, 1071, tocolor(0, 0, 0, 160), false)
	dxDrawLine(439, 820, 439, 1071, tocolor(0, 0, 0, 160), false)
	dxDrawLine(9, 1070, 439, 1070, tocolor(0, 0, 0, 160), false)
	dxDrawLine(19, 830, 405, 830, tocolor(0, 0, 0, 160), false)
	dxDrawLine(19, 830, 19, 1029, tocolor(0, 0, 0, 160), false)
	dxDrawLine(404, 830, 404, 1029, tocolor(0, 0, 0, 160), false)
	dxDrawLine(19, 1029, 405, 1029, tocolor(0, 0, 0, 160), false)
	dxDrawLine(19, 1036, 206, 1036, tocolor(0, 0, 0, 160), false)
	dxDrawLine(19, 1036, 19, 1062, tocolor(0, 0, 0, 160), false)
	dxDrawRectangle(20, 1037, 185, 24, tocolor(70, 70, 70, 200), false)
	dxDrawRectangle(20, 1037, (hp*perOneHp), 24, tocolor(0, 216, 117, 200), false)
	dxDrawLine(205, 1036, 205, 1062, tocolor(0, 0, 0, 160), false)
	dxDrawLine(20, 1061, 206, 1061, tocolor(0, 0, 0, 160), false)
	dxDrawLine(218, 1036, 405, 1036, tocolor(0, 0, 0, 160), false)
	dxDrawLine(218, 1036, 218, 1062, tocolor(0, 0, 0, 160), false)
	dxDrawRectangle(219, 1037, 185, 24, tocolor(70, 70, 70, 200), false)
	dxDrawRectangle(219, 1037, (armor*perOneHp), 24, tocolor(209, 209, 209, 200), false)
	dxDrawLine(404, 1036, 404, 1062, tocolor(0, 0, 0, 160), false)
	dxDrawLine(218, 1061, 405, 1061, tocolor(0, 0, 0, 160), false)
	dxDrawLine(414, 830, 429, 830, tocolor(0, 0, 0, 160), false)
	dxDrawLine(414, 831, 414, 1062, tocolor(0, 0, 0, 160), false)
	dxDrawRectangle(415, 831, 14, 230, tocolor(70, 70, 70, 200), false)
	dxDrawRectangle(415, 831, (oxygen*perOneHp), 230, tocolor(0, 180, 255, 200), false)
	dxDrawLine(429, 830, 429, 1062, tocolor(0, 0, 0, 160), false)
	dxDrawLine(414, 1061, 429, 1061, tocolor(0, 0, 0, 160), false)
end)

Всем доброй ночи, учусь писать скрипт, но большая проблема, при включении на сервере скрипта у сервера внезапно проседает "fps" не знаю точно сколько fps но чувствуется приблизительно до 5-10. Я не могу понять в чём именно кроется проблема. Так же помимо fps, не могу настроить шкалу oxygen(воздух под водой). Если кто-то что-то знает дайте подсказку. За основу был взят guieditor

 

 

Рекомендую с помощью RESCPU отследить сначала сколько процентов потре:Oет ресурс.

Link to comment
8 hours ago, Erlkonig said:

Рекомендую с помощью RESCPU отследить сначала сколько процентов потре:Oет ресурс.

В общем нашел я причину исправил т.к. я делал изначально оболочку (внешняя и внутреняя обводка hud..

dxDrawLine

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

Edited by AndrewKyiv
Link to comment
  • Scripting Moderators

@AndrewKyiv?. Вообще для этих целей можно использовать рендер таргеты. Взять dx функции, которые не требуют обновления (как раз линии, фоновые прямоугольники), собрать в один РТ и затем рисовать уже этот РТ. Это значительно снизит нагрузку на CPU, ибо будет отображаться всего одна РТ текстура каждый кадр, а не несколько линий/прямоугольников. Потом поверх РТ отдельно отображать показатели здоровья/кислорода.
По поводу кислорода, есть такая замечательная полезная функция: getPedMaxOxygenLevel
Её необходимо скопировать в свой код для работы.

Link to comment
8 hours ago, Sarrum said:

@AndrewKyiv?. Вообще для этих целей можно использовать рендер таргеты. Взять dx функции, которые не требуют обновления (как раз линии, фоновые прямоугольники), собрать в один РТ и затем рисовать уже этот РТ. Это значительно снизит нагрузку на CPU, ибо будет отображаться всего одна РТ текстура каждый кадр, а не несколько линий/прямоугольников. Потом поверх РТ отдельно отображать показатели здоровья/кислорода.
По поводу кислорода, есть такая замечательная полезная функция: getPedMaxOxygenLevel
Её необходимо скопировать в свой код для работы.

Не успел решить ситуацию с кислородом, но хочу узнать подробнее.. реально ли изменить положение кислорода не по горизонтали(стандартно) а по вертикали? Возможно ли заставить в скрипте так чтобы оно не влияло от самой игры? Я бы выслал изображение, но ссылка на мой скриншот не присылает (почему-то не прикрепляет)

Link to comment
  • Scripting Moderators
On 22/04/2021 at 03:11, AndrewKyiv said:

реально ли изменить положение кислорода не по горизонтали(стандартно) а по вертикали?

Достаточно использовать четвёртый аргумент функции dxDrawRectangle, а не третий.

Link to comment
On 23/04/2021 at 17:35, Sarrum said:

Достаточно использовать четвёртый аргумент функции dxDrawRectangle, а не третий.

Ещё есть вопрос. Я весь инет перебрал оно даже не ищет похожие темы, т.к. в изучении написании скрипта я не могу понять где взять код. На карту сан андреас мне конкретно нужен код ну или, что вообще нужно писать в скрипте с нуля какие команды нужны чтобы сделать свой радар(делаю под свой стиль а что писать надо вообще не понимаю) какие команды как заменить стандартную карту с иконками и как сделать свой размер радара. Именно радара не большую карту большая карта не интересует т.к. делаю под свой стиль

Link to comment
  • Scripting Moderators

@AndrewKyiv, как вариант, посмотреть готовые ресурсы радаров на комьюнити. Есть несколько вариантов, можно карту целиком рисовать, кусками (по типу того, как это сделано для стандартного радара), либо же использовать шейдер (пример).
Функции, которые нужно использовать:
dxDrawImage / dxDrawImageSection - отрисовка элементов радара (& зум радара)
dxDrawRectangle - фоновые обводки и прочее
dxCreateRenderTargetdxSetRenderTarget - для рисования части карты в прямоугольнике (радаре)
addEventHandler + onClientRender - для отображения радара каждый кадр
- setPlayerHudComponentVisible "radar" - скрыть стандартный
И другие функции уже для информации на радаре: getCamera, getElementRotation, getElementsByType (для отображения блипов, игроков, зон), getElementPosition.

  • Like 2
Link to comment
  • 2 weeks later...

Здравствуйте. Как остановить этот бесконечный подбор имени?

 

dxDrawText ( "Имя: "..NameSurname[math.random(1,#NameSurname)], xS * -940, yS * 510, xS * 1236, yS * 620, tocolor ( color7, color8, color9, 200 ), yS * 1, "default", "center", "center", false, false, true, true, false )

 

 

Link to comment
  • Scripting Moderators
4 hours ago, OY338 said:

Здравствуйте. Как остановить этот бесконечный подбор имени?

?. Нужно генерировать имя вне рендера и уже потом использовать результат.

Link to comment
1 hour ago, Sarrum said:

?. Нужно генерировать имя вне рендера и уже потом использовать результат.

Хм, а возможно создавать текст в зависимости от скина бота?

Link to comment
  • Scripting Moderators
34 minutes ago, OY338 said:

Хм, а возможно создавать текст в зависимости от скина бота?

local names = {
	[ 0 ] = "CJ",
	[ 7 ] = "Casual Jeanjacket",
	[ 299 ] = "Claude"
}

local ped = createPed ( 0, 0, 0, 3 )
local model = getElementModel ( ped )
print ( model, names [ model ] or "n/a" )

 

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