Jump to content

Замена стандартного прицела на свой


Recommended Posts

С наступающим! :)

Помогите :shock: хочу сделать нестандартную метку прицела. Использую такую вещь:

  
local tx,ty,tz=getPedTargetStart(getLocalPlayer()) 
local sx,sy,sz=getScreenFromWorldPosition(tx,ty,tz) 
  
dxDrawLine(startX,startY,endX,endY,tocolor(255,255,255,255),1) 
dxDrawLine(startX,startY,endX,endY,tocolor(255,255,255,255),1) 
dxDrawLine(startX,startY,endX,endY,tocolor(255,255,255,255),1) 
dxDrawLine(startX,startY,endX,endY,tocolor(255,255,255,255),1) 

___________________________________

Не пойму, почему дебаг шлёт ошибки, если я пробую удлиннять, например, первую палочку прицела:

ERROR: ... : attempt to perform arithmetic on local 'sy' (a nil value)

Как бы "нельзя применять арифметические действия с 'sy'." Странно всё..

dxDrawLine(sx,sy,sx,sy+5,tocolor(255,255,255,255),1) 

Интересно, в чём же тут ошибка :?

Edited by Guest
Link to comment

Да, именно. Только не сказать, чтобы в центре экрана. С помощью двух функций в верхнем сообщении получается вывести линию (безразмерную) на месте прицела игрока. Только размер задать не получается :?

Link to comment

Разве в центре экрана? Хм.. у меня ноутбук с разрешением 1600x900, и прицел чуть вправо от центра экрана :)

Просто я увидел, что

local tx,ty,tz=getPedTargetStart(getLocalPlayer()) 
local sx,sy,sz=getScreenFromWorldPosition(tx,ty,tz) 

точно находит точку прицела на экране, плюс ко всему с этой вещью она перекрестье изменяется в размерах при стрельбе :)

Link to comment

Тогда даже не представляю, как заставить её изменяться в размере при стрельбе :) И перекрестье будет статично держаться на экране, а с этой вещью, указанной выше, прицел как бы прикреплён к оружию игрока.

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

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

Но с помощью этих функций не могу построить само перекрестие. При sx\sy+5, например, дебаг выдаёт ошибку.

Link to comment

не рисуй линии, рисуй 1 картинку с собственной меткой, при выстреле плавно масштабируй картинку на экране

чтобы показать, что ты хочешь, покажи скрины с пояснениями на этом скрине

Link to comment

Большое спасибо за помощь! Попробовал вариант с картинкой на dx, всё отлично получилось!

  
addEventHandler("onClientRender",getRootElement(),function() 
local tx,ty,tz=getPedTargetStart(getLocalPlayer()) 
local stx,sty,stz=getScreenFromWorldPosition(tx,ty,tz) 
dxDrawImage(stx,sty,50,50,"crosshair.png") 
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...