Flaker Posted February 23, 2012 Share Posted February 23, 2012 Подскажите как сделать что-бы над игроком, если ты рядом с ним, отображалась иконка? Link to comment
Kenix Posted February 23, 2012 Share Posted February 23, 2012 3д картинка мб? getPedBonePosition getScreenFromWorldPosition dxDrawImage Всё в рендере. Link to comment
Flaker Posted February 23, 2012 Author Share Posted February 23, 2012 Вот так вот верно? addEventHandler("onClientRender",getRootElement(), function() local px, py, pz, tx, ty, tz, dist px, py, pz = getCameraMatrix() for k, v in ipairs(getElementsByType("player")) do tx, ty, tz = getElementPosition(v) dist = math.sqrt((px - tx) ^ 2 + (py - ty) ^ 2 + (pz - tz) ^ 2) if dist < 30.0 then if isLineOfSightClear(px, py, pz, tx, ty, tz, true, false, false, true, false, false, getLocalPlayer()) then local sx, sy, sz = getPedBonePosition(v, 5) local x,y = getScreenFromWorldPosition(sx, sy, sz + 0.3) if x then -- getScreenFromWorldPosition returns false if the point isn't on screen dxDrawImage ( x, y, x, y, 'admintag.png', angle, 0, -120 ) end end end end end ) P.S. Не могу проверить, так как все друзья спят, и некому посмотреть, есть ли иконка или нет( Link to comment
Mc_Trekkie Posted February 24, 2012 Share Posted February 24, 2012 А ты хочешь иконку просто или над головой ТОЛЬКО Админа? Link to comment
Kenix Posted February 24, 2012 Share Posted February 24, 2012 Изучи луа нормально , иначе дальше не продвинешься. 1.В твоём коде переменная angle nil .Т.е картинка не будет показываться полюбому( даже дебаг бы написал , но ты как я вижу даже не включил дебаг и не проверил , что он выводит ). 2.В функции isLineOfSightClear 14 параметров всего , а ты юзаешь 13 и на 13 у тебя элемент ( localPlayer ( локальный игрок ) ).( На вики не совсем правильный пример ) addEventHandler( "onClientRender",root, function( ) local px, py, pz, tx, ty, tz, dist px, py, pz = getCameraMatrix( ) for _, v in ipairs( getElementsByType 'player' ) do tx, ty, tz = getElementPosition( v ) dist = math.sqrt( ( px - tx ) ^ 2 + ( py - ty ) ^ 2 + ( pz - tz ) ^ 2 ) if dist < 30.0 then if isLineOfSightClear( px, py, pz, tx, ty, tz, true, false, false, true, false, false, false,localPlayer ) then local sx, sy, sz = getPedBonePosition( v, 5 ) local x,y = getScreenFromWorldPosition( sx, sy, sz + 0.3 ) if x then -- getScreenFromWorldPosition returns false if the point isn't on screen dxDrawImage ( x, y, x, y, 'admintag.png', 0, 0, -120 ) end end end end end ) Я надеюсь ты прочёл мой пост , а не копи паст сразу. P.S Подправил пример на вики. Link to comment
Flaker Posted February 24, 2012 Author Share Posted February 24, 2012 Спасибо большое,Kenix) Все ошибки рассмотрел. Там правда проблемы теперь с положением картинки над игроком, но это сам попробую исправить. Главное картинку показывает! MacTrekkie, вобще только для админа, причем что бы ты свою картинку не видел (если играешь за админа), а только других админов. Но для того что бы для админа сделать, мне хотя бы основа нужна была. Link to comment
Kenix Posted February 24, 2012 Share Posted February 24, 2012 Спасибо большое,Kenix) Незачто Link to comment
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now