Simple. Posted July 11, 2015 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" ) مآجربت آلكود
#|_oskar_|# Posted July 11, 2015 Posted July 11, 2015 مو لازم تربط التكست مع الماركر خلهم معزولين عن بعض يعنى التكست يكون له احداثيات لحاله بعيد عن الماركر
#Mr.Rajo~,< Posted July 11, 2015 Author 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 بولين مو لازم تربط التكست مع الماركر خلهم معزولين عن بعضيعنى التكست يكون له احداثيات لحاله بعيد عن الماركر شلون ؟
#|_oskar_|# Posted July 11, 2015 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)
#DRAGON!FIRE Posted July 11, 2015 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" ) يعني مع كل ماركر تسويه تحط له داتا بنفس الاسم اللي فوق وتكتب التكست حقه .
#Mr.Rajo~,< Posted July 11, 2015 Author 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) الف الف عافيه لك تسلم والله ولايهنون البقيه استوى الكود بس في مشكله انه ينشاف من ورا الجدر
#Mr.Rajo~,< Posted July 11, 2015 Author 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 كذا ؟
#Mr.Rajo~,< Posted July 11, 2015 Author Posted July 11, 2015 شلون المشكله ان ذا الفنكشن مكررgetElementPosition
The Killer Posted July 11, 2015 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 )
#Mr.Rajo~,< Posted July 11, 2015 Author 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 ) ذا كيلر استخدمت الكود حق اوسكار وطلع الكلام ض بس المشكله معرف استخدم حق الجدر ض
#|_oskar_|# Posted July 12, 2015 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)
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