EH10 Posted April 3, 2014 Share Posted April 3, 2014 السلام عليكم ممكن تصحيح للكود هاذا اذا صوبت على باد او لاعب يمشي وراك وين مارحت ممكن تصحيح addEventHandler( "onPlayerTarget", root, function () local Vx, By, Kz = getElementPosition( source ) if ( getDistanceBetweenPoints3D( Px, Py, Pz,Vx, By, Kz ) <= 7 ) then setControlState( source, "forwards", true) toggleAllControls( source, true ) end end ) Link to comment
Bssol Posted April 3, 2014 Share Posted April 3, 2014 function makeTargetFollow ( target ) if ( target ) and ( getElementType(target) == "player" ) then local x,y,z = getElementPosition( source ) local tx,ty,tz = getElementPosition( target ) if ( getDistanceBetweenPoints3D( x,y,z,tx,ty,tz ) <= 7 ) then toggleAllControls( target, false ) setControlState( target, "forwards", true) setTimer( updateRotation, 500, 0, source, target ) end end end addEventHandler( "onPlayerTarget", root, makeTargetFollow ) function updateRotation( player, target ) if ( isElement(player) ) and ( isElement(target) ) then local x,y = getElementPosition( player ) local tx,ty = getElementPosition( target ) local rot = findRotation(tx,ty,x,y) setElementRotation ( target, 0, 0, rot ) end end function findRotation(x1,y1,x2,y2) --- مأخوذ من الويكي local t = -math.deg(math.atan2(x2-x1,y2-y1)) if t < 0 then t = t + 360 end; return t; end طبعا الكود ناقص، لازم تحذف التايمر لما لاعب يطلع وغيره من الامور الي اتركها لك وشي ثاني، اعتقد انه يفضل تستخدم setPedAnimation بدل من setControlState لان setControlState اعتقد تقدر تغير الاتجاه عن طريق تحريك الفارة وبكذا تصير مشكلة Link to comment
EH10 Posted April 4, 2014 Author Share Posted April 4, 2014 function makeTargetFollow ( target ) if ( target ) and ( getElementType(target) == "player" ) then local x,y,z = getElementPosition( source ) local tx,ty,tz = getElementPosition( target ) if ( getDistanceBetweenPoints3D( x,y,z,tx,ty,tz ) <= 7 ) then toggleAllControls( target, false ) setControlState( target, "forwards", true) setTimer( updateRotation, 500, 0, source, target ) end end end addEventHandler( "onPlayerTarget", root, makeTargetFollow ) function updateRotation( player, target ) if ( isElement(player) ) and ( isElement(target) ) then local x,y = getElementPosition( player ) local tx,ty = getElementPosition( target ) local rot = findRotation(tx,ty,x,y) setElementRotation ( target, 0, 0, rot ) end end function findRotation(x1,y1,x2,y2) --- مأخوذ من الويكي local t = -math.deg(math.atan2(x2-x1,y2-y1)) if t < 0 then t = t + 360 end; return t; end طبعا الكود ناقص، لازم تحذف التايمر لما لاعب يطلع وغيره من الامور الي اتركها لك وشي ثاني، اعتقد انه يفضل تستخدم setPedAnimation بدل من setControlState لان setControlState اعتقد تقدر تغير الاتجاه عن طريق تحريك الفارة وبكذا تصير مشكلة ماضبط Link to comment
iPrestege Posted April 4, 2014 Share Posted April 4, 2014 وش اللي ماضبط بالضبط؟ /debugscript 3 Link to comment
abu5lf Posted April 4, 2014 Share Posted April 4, 2014 ماضبط طبعا الكود ناقص، لازم تحذف التايمر لما لاعب يطلع وغيره من الامور الي اتركها لك Link to comment
EH10 Posted April 4, 2014 Author Share Posted April 4, 2014 ماضبط طبعا الكود ناقص، لازم تحذف التايمر لما لاعب يطلع وغيره من الامور الي اتركها لك الاعب مامشى وراي ممكن تعديل انا بس ابي يمشي وراي اذا صوبت علية من قريب يجي وراك Link to comment
Bssol Posted April 4, 2014 Share Posted April 4, 2014 function makeTargetFollow ( target ) if ( target ) and ( getElementType(target) == "player" ) then if not ( getControlState(source,"aim_weapon") ) then return end local x,y,z = getElementPosition( source ) local tx,ty,tz = getElementPosition( target ) if ( getDistanceBetweenPoints3D( x,y,z,tx,ty,tz ) <= 7 ) then toggleAllControls( target, false ) setPedAnimation( target, "ped", "WALK_player", -1, true, true, false, false) setTimer( updateRotation, 500, 0, source, target ) end end end addEventHandler( "onPlayerTarget", root, makeTargetFollow ) function updateRotation( player, target ) if ( isElement(player) ) and ( isElement(target) ) then local x,y = getElementPosition( player ) local tx,ty = getElementPosition( target ) local rot = findRotation(tx,ty,x,y) setElementRotation ( target, 0, 0, rot ) end end function findRotation(x1,y1,x2,y2) --- مأخوذ من الويكي local t = -math.deg(math.atan2(x2-x1,y2-y1)) if t < 0 then t = t + 360 end; return t; end جرب هذا الكود + انا قلت لك اذا ما ضبط، بدل setControllState الى setPedAnimation 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