#Mr.Rajo~,< Posted July 11, 2015 Author Share Posted July 11, 2015 ابيها تجي قدام الماركر بشوي Link to comment
Simple. Posted July 11, 2015 Share Posted July 11, 2015 جرب هذآ كود تنطيل بس عدلته عشآن تكون آسهل addEventHandler ("onClientRender", root, function () for i,v in ipairs (getElementsByType("marker")) do local Data = getElementData ( v, "3DText" ) end if ( Data ~= "" ) then local x,y,z = getElementPosition (v) -- نجيب احداثيات الماركر local px, py, pz = getElementPosition (localPlayer) -- نجيب اداثيات اللاعب if (isLineOfSightClear (x, y, z, px, py, pz, true, true, false, true)) then -- نتحقق انه مافيه شي مغطي على الماركر يعني مب ورا جدار او كذا local sx, sy = getScreenFromWorldPosition (x,y,z+1) -- نجيب الاحداثيات من العالم if (sx) and (sy) then local dis = getDistanceBetweenPoints3D (x,y,z, px,py,pz) -- نجيب المسافه بين اللاعب والماركر if (dis < 20) then -- اذا كانت المسافه اقل من 20 dxDrawText (Data, sx + 2, sy + 2, sx, sy, tocolor (0,0,0), 2 - (dis / 20), "arial", "center", "center") -- نكتب الكلام dxDrawText (Data, sx, sy, sx, sy, tocolor (255,255,0), 2 - (dis / 20), "arial", "center", "center") -- نكتب الكلام end end end end end ) إذآ تبي تسوي كلآم لآي ماركر حط له داتا setElementData ( myMarker, "3DText", "Test" ) مآجربت آلكود Link to comment
#|_oskar_|# Posted July 11, 2015 Share Posted July 11, 2015 مو لازم تربط التكست مع الماركر خلهم معزولين عن بعض يعنى التكست يكون له احداثيات لحاله بعيد عن الماركر Link to comment
#Mr.Rajo~,< Posted July 11, 2015 Author Share Posted July 11, 2015 جرب هذآ كود تنطيل بس عدلته عشآن تكون آسهل addEventHandler ("onClientRender", root, function () for i,v in ipairs (getElementsByType("marker")) do local Data = getElementData ( v, "3DText" ) end if ( Data ~= "" ) then local x,y,z = getElementPosition (v) -- نجيب احداثيات الماركر local px, py, pz = getElementPosition (localPlayer) -- نجيب اداثيات اللاعب if (isLineOfSightClear (x, y, z, px, py, pz, true, true, false, true)) then -- نتحقق انه مافيه شي مغطي على الماركر يعني مب ورا جدار او كذا local sx, sy = getScreenFromWorldPosition (x,y,z+1) -- نجيب الاحداثيات من العالم if (sx) and (sy) then local dis = getDistanceBetweenPoints3D (x,y,z, px,py,pz) -- نجيب المسافه بين اللاعب والماركر if (dis < 20) then -- اذا كانت المسافه اقل من 20 dxDrawText (Data, sx + 2, sy + 2, sx, sy, tocolor (0,0,0), 2 - (dis / 20), "arial", "center", "center") -- نكتب الكلام dxDrawText (Data, sx, sy, sx, sy, tocolor (255,255,0), 2 - (dis / 20), "arial", "center", "center") -- نكتب الكلام end end end end end ) إذآ تبي تسوي كلآم لآي ماركر حط له داتا setElementData ( myMarker, "3DText", "Test" ) مآجربت آلكود كلاسيك جربت كود باد ارقمنت السطر 7 اكسبكتيد المن ارقمنت 1 والسطر 9 اكسبكتيد فيكتور 3 ات ارقمنت 1 بولين مو لازم تربط التكست مع الماركر خلهم معزولين عن بعضيعنى التكست يكون له احداثيات لحاله بعيد عن الماركر شلون ؟ Link to comment
#|_oskar_|# Posted July 11, 2015 Share Posted July 11, 2015 جرب هذآ كود تنطيل بس عدلته عشآن تكون آسهل addEventHandler ("onClientRender", root, function () for i,v in ipairs (getElementsByType("marker")) do local Data = getElementData ( v, "3DText" ) end if ( Data ~= "" ) then local x,y,z = getElementPosition (v) -- نجيب احداثيات الماركر local px, py, pz = getElementPosition (localPlayer) -- نجيب اداثيات اللاعب if (isLineOfSightClear (x, y, z, px, py, pz, true, true, false, true)) then -- نتحقق انه مافيه شي مغطي على الماركر يعني مب ورا جدار او كذا local sx, sy = getScreenFromWorldPosition (x,y,z+1) -- نجيب الاحداثيات من العالم if (sx) and (sy) then local dis = getDistanceBetweenPoints3D (x,y,z, px,py,pz) -- نجيب المسافه بين اللاعب والماركر if (dis < 20) then -- اذا كانت المسافه اقل من 20 dxDrawText (Data, sx + 2, sy + 2, sx, sy, tocolor (0,0,0), 2 - (dis / 20), "arial", "center", "center") -- نكتب الكلام dxDrawText (Data, sx, sy, sx, sy, tocolor (255,255,0), 2 - (dis / 20), "arial", "center", "center") -- نكتب الكلام end end end end end ) إذآ تبي تسوي كلآم لآي ماركر حط له داتا setElementData ( myMarker, "3DText", "Test" ) مآجربت آلكود طيب بجربه ض مو لازم تربط التكست مع الماركر خلهم معزولين عن بعضيعنى التكست يكون له احداثيات لحاله بعيد عن الماركر شلون ؟ كذا text = { {"Text 1",-1323,-147,15, -- x,y,z pos 255,0,255},-- r,g,b color -- {"Text",x,y,z,r,g,b}, } addEventHandler ( "onClientRender", root, function (v) for _,v in ipairs (text) do if ( getDistanceBetweenPoints3D (v[2],v[3],v[4], getElementPosition ( localPlayer ) ) ) < 50 then local pos = { getScreenFromWorldPosition ( v[2],v[3],v[4]) } if pos[1] and pos[2] then dxDrawText (v[1], pos[1],pos[2],pos[1],pos[2], tocolor(v[5],v[6],v[7]), 2, "default-bold" ) end end end end) Link to comment
#DRAGON!FIRE Posted July 11, 2015 Share Posted July 11, 2015 لم يتم التجربة .. شف حط هالكود كلنت .. function markers_text ( ) for _,markers in ipairs ( getElementsByType ( "marker", resourceRoot ) ) do local x, y, z = getElementPosition ( localPlayer ) local string_ = getElementData ( markers, "markerText" ) or "None" local tX, tY, tZ = getElementPosition ( markers ) local distance = getDistanceBetweenPoints3D ( x, y, z, tX, tY, tZ ) if ( distance <= 10 ) then local sx, sy = getScreenFromWorldPosition ( tX, tY, tZ ) if ( sx ) then dxDrawText( string_, sx, sy, sx, sy, tocolor(255,255,255,255), math.min ( 30/distance, 1.5 ), "default-bold", "left", "top", false, false, true, true, false) end end end end addEventHandler ( "onClientRender", root, markers_text ) وبالسيرفر او بكلنت اي مكان مسوي فيه الماركر خله كذا marker = createMarker ( ... ) setElementData ( marker, "markerText", "hello" ) يعني مع كل ماركر تسويه تحط له داتا بنفس الاسم اللي فوق وتكتب التكست حقه . Link to comment
#Mr.Rajo~,< Posted July 11, 2015 Author Share Posted July 11, 2015 جرب هذآ كود تنطيل بس عدلته عشآن تكون آسهل addEventHandler ("onClientRender", root, function () for i,v in ipairs (getElementsByType("marker")) do local Data = getElementData ( v, "3DText" ) end if ( Data ~= "" ) then local x,y,z = getElementPosition (v) -- نجيب احداثيات الماركر local px, py, pz = getElementPosition (localPlayer) -- نجيب اداثيات اللاعب if (isLineOfSightClear (x, y, z, px, py, pz, true, true, false, true)) then -- نتحقق انه مافيه شي مغطي على الماركر يعني مب ورا جدار او كذا local sx, sy = getScreenFromWorldPosition (x,y,z+1) -- نجيب الاحداثيات من العالم if (sx) and (sy) then local dis = getDistanceBetweenPoints3D (x,y,z, px,py,pz) -- نجيب المسافه بين اللاعب والماركر if (dis < 20) then -- اذا كانت المسافه اقل من 20 dxDrawText (Data, sx + 2, sy + 2, sx, sy, tocolor (0,0,0), 2 - (dis / 20), "arial", "center", "center") -- نكتب الكلام dxDrawText (Data, sx, sy, sx, sy, tocolor (255,255,0), 2 - (dis / 20), "arial", "center", "center") -- نكتب الكلام end end end end end ) إذآ تبي تسوي كلآم لآي ماركر حط له داتا setElementData ( myMarker, "3DText", "Test" ) مآجربت آلكود طيب بجربه ض مو لازم تربط التكست مع الماركر خلهم معزولين عن بعضيعنى التكست يكون له احداثيات لحاله بعيد عن الماركر شلون ؟ كذا text = { {"Text 1",-1323,-147,15, -- x,y,z pos 255,0,255},-- r,g,b color -- {"Text",x,y,z,r,g,b}, } addEventHandler ( "onClientRender", root, function (v) for _,v in ipairs (text) do if ( getDistanceBetweenPoints3D (v[2],v[3],v[4], getElementPosition ( localPlayer ) ) ) < 50 then local pos = { getScreenFromWorldPosition ( v[2],v[3],v[4]) } if pos[1] and pos[2] then dxDrawText (v[1], pos[1],pos[2],pos[1],pos[2], tocolor(v[5],v[6],v[7]), 2, "default-bold" ) end end end end) الف الف عافيه لك تسلم والله ولايهنون البقيه استوى الكود بس في مشكله انه ينشاف من ورا الجدر Link to comment
justboy Posted July 11, 2015 Share Posted July 11, 2015 ^ أساتخدم getDistanceBetweenPoints3D Link to comment
#Mr.Rajo~,< Posted July 11, 2015 Author Share Posted July 11, 2015 local x,y,z = getElementPosition (v) -- نجيب احداثيات الماركر local px, py, pz = getElementPosition (localPlayer) if (isLineOfSightClear (x, y, z, px, py, pz, true, true, false, true)) then كذا ؟ Link to comment
#Mr.Rajo~,< Posted July 11, 2015 Author Share Posted July 11, 2015 شلون المشكله ان ذا الفنكشن مكررgetElementPosition Link to comment
The Killer Posted July 11, 2015 Share Posted July 11, 2015 طيب الكود ذا مافيه مشكلهوشغال مدري وش مسوي انت ماسويت شئ ض بس في جدار ورا الماركر مدري يأثر ولا لا ايه يأثر الكلام ما يظهر ورا الجدار لازم تكون قدام الماركر عشان يظهر استخدم الكود هذا Server a = createMarker(1055.2, -2671, 0.8, "cylinder", 4 , 89, 0, 99, 255 ) setElementID(a, "MarkerText") Client addEventHandler ("onClientRender", root, function () local a = getElementByID("MarkerText") if not a then return end local x,y,z = getElementPosition (a) -- نجيب احداثيات الماركر local px, py, pz = getElementPosition (localPlayer) -- نجيب اداثيات اللاعب if (isLineOfSightClear (x, y, z, px, py, pz, true, true, false, true)) then -- نتحقق انه مافيه شي مغطي على الماركر يعني مب ورا جدار او كذا local sx, sy = getScreenFromWorldPosition (x,y,z+1) -- نجيب الاحداثيات من العالم if (sx) and (sy) then local dis = getDistanceBetweenPoints3D (x,y,z, px,py,pz) -- نجيب المسافه بين اللاعب والماركر if (dis < 20) then -- اذا كانت المسافه اقل من 20 dxDrawText ("Text", sx + 2, sy + 2, sx, sy, tocolor (0,0,0), 2 - (dis / 20), "arial", "center", "center") -- نكتب الكلام dxDrawText ("Text", sx, sy, sx, sy, tocolor (255,255,0), 2 - (dis / 20), "arial", "center", "center") -- نكتب الكلام end end end end ) Link to comment
#Mr.Rajo~,< Posted July 11, 2015 Author Share Posted July 11, 2015 طيب الكود ذا مافيه مشكلهوشغال مدري وش مسوي انت ماسويت شئ ض بس في جدار ورا الماركر مدري يأثر ولا لا ايه يأثر الكلام ما يظهر ورا الجدار لازم تكون قدام الماركر عشان يظهر استخدم الكود هذا Server a = createMarker(1055.2, -2671, 0.8, "cylinder", 4 , 89, 0, 99, 255 ) setElementID(a, "MarkerText") Client addEventHandler ("onClientRender", root, function () local a = getElementByID("MarkerText") if not a then return end local x,y,z = getElementPosition (a) -- نجيب احداثيات الماركر local px, py, pz = getElementPosition (localPlayer) -- نجيب اداثيات اللاعب if (isLineOfSightClear (x, y, z, px, py, pz, true, true, false, true)) then -- نتحقق انه مافيه شي مغطي على الماركر يعني مب ورا جدار او كذا local sx, sy = getScreenFromWorldPosition (x,y,z+1) -- نجيب الاحداثيات من العالم if (sx) and (sy) then local dis = getDistanceBetweenPoints3D (x,y,z, px,py,pz) -- نجيب المسافه بين اللاعب والماركر if (dis < 20) then -- اذا كانت المسافه اقل من 20 dxDrawText ("Text", sx + 2, sy + 2, sx, sy, tocolor (0,0,0), 2 - (dis / 20), "arial", "center", "center") -- نكتب الكلام dxDrawText ("Text", sx, sy, sx, sy, tocolor (255,255,0), 2 - (dis / 20), "arial", "center", "center") -- نكتب الكلام end end end end ) ذا كيلر استخدمت الكود حق اوسكار وطلع الكلام ض بس المشكله معرف استخدم حق الجدر ض Link to comment
#|_oskar_|# Posted July 12, 2015 Share Posted July 12, 2015 text = { {"Text 1",-1307.3328857422,-297.8932800293,16, -- x,y,z pos 255,0,255},-- r,g,b color } addEventHandler ( "onClientRender", root, function (v) for _,v in ipairs (text) do local x,y,z = getElementPosition ( localPlayer ) if ( getDistanceBetweenPoints3D (v[2],v[3],v[4], x,y,z ) ) < 50 then local pos = { getScreenFromWorldPosition ( v[2],v[3],v[4]) } if (isLineOfSightClear (v[2],v[3],v[4], x,y,z, true, true, false, true)) then if pos[1] and pos[2] then dxDrawText (v[1], pos[1],pos[2],pos[1],pos[2], tocolor(v[5],v[6],v[7]), 2, "default-bold" ) end end end end end) 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