Jump to content

ممكن تصحيح كود


Recommended Posts

السلام عليكم

ممكن تصحيح للكود

هاذا اذا صوبت على باد او لاعب يمشي وراك وين مارحت

ممكن تصحيح

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
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
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

ماضبط

طبعا الكود ناقص، لازم تحذف التايمر لما لاعب يطلع وغيره من الامور الي اتركها لك

الاعب مامشى وراي ممكن تعديل

انا بس ابي يمشي وراي اذا صوبت علية من قريب يجي وراك

Link to comment
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

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...