Jump to content

الصاق


Sfa7

Recommended Posts

سلام ي اخوان انا ابي اطلع شاحنه والصق فيها الي وراها ذيك الصندوق بس ابي لما ينفك الصندوق الي ورا الشاحنه يطلع بشات لقد انفك الصندوق يجب الصاقه

اتمني فهمتوني

Link to comment

Event: "onTrailerDetach"

الحدث هذا كيف اخليه يشتغل لو عندي داتا ؟

ابيه يتحقق اذا كانت عندي داتا اسمها car

يسوي الوظيفه هاذي كيف؟ ممكن مثال بسيط لاهنت

Link to comment
Event: "onTrailerDetach"

الحدث هذا كيف اخليه يشتغل لو عندي داتا ؟

ابيه يتحقق اذا كانت عندي داتا اسمها car

يسوي الوظيفه هاذي كيف؟ ممكن مثال بسيط لاهنت

اذا كانت الداتا للآعـب نفسه استخدم الفنكشن اللي سبق وعطاك ايـاه للـقـائد :

getVehicleController() 

Link to comment
انا ابي ماركر اذا لمسته يعطيك شاحنه وفيه وراها الصندوق الي تسحبه واذا انفصل يجيك كلام يقول يجب ان ترجع الصندوق لقد فقدته ككيف ؟

مثآل بسيط و الكود غير كامل فقط مثآل بسيط .. لـ التوضيح ..

gVehicle = {     
    gTruck = {      }, 
    gTrailer = {        }, 
} 
  
  
local gMarker = createMarker ( x,y,z ) 
  
  
addEventHandler ( 'onMarkerHit',gMarker, 
    function ( gPlayer ) 
        if getElementType ( gPlayer ) == 'player' and not isPedInVehicle ( gPlayer ) then 
            if gVehicle.gTruck [ gPlayer ] and isElement ( gVehicle.gTruck [ gPlayer ] )  then return destroyElement ( gVehicle.gTruck [ gPlayer ] ) end 
            if gVehicle.gTrailer [ gPlayer ] and isElement ( gVehicle.gTrailer [ gPlayer ] )  then return destroyElement ( gVehicle.gTrailer [ gPlayer ] ) end                   
                gVehicle.gTruck [ gPlayer ] = createVehicle ( 403,x+math.random ( 1,10 ),y,z ) 
                gVehicle.gTrailer [ gPlayer ] = createVehicle ( 435,0,0,0 ) 
                 attachTrailerToVehicle ( gVehicle.gTruck [ gPlayer ],gVehicle.gTrailer [ gPlayer ] ) 
                 warpPedIntoVehicle ( gPlayer,gVehicle.gTruck [ gPlayer ] )  
                 outputChatBox ( '* You have get a truck & trailer!!',gPlayer,0,255,0 ) 
        end 
    end ) 
     
addEventHandler ( 'onTrailerDetach',root, 
    function ( truck ) 
      local gPlayer = getVehicleController ( truck ) 
        if truck == gVehicle.gTruck [ gPlayer ] and gVehicle.gTrailer [ gPlayer ] and isElement ( gVehicle.gTrailer [ gPlayer ] ) then 
            outputChatBox ( '* The Trailer Was Detached From The Truck!',gPlayer,255,0,0 ) 
        end 
    end ) 

Link to comment

اها فهمت فهمت حلوو شكككرا وماتقصرون وتسلم ي برستيج ع المثال الجميل

طيب لو خليت هذا كذا عادي ؟

if truck == gVehicle.gTruck [ gPlayer ] and isElement ( gVehicle.gTrailer [ gPlayer ] ) then

لاني شفت تحقق انت مسويه ماله داعي وقلت اختصر شوي واسويه كذا عادي صح ؟

Link to comment
اها فهمت فهمت حلوو شكككرا وماتقصرون وتسلم ي برستيج ع المثال الجميل

طيب لو خليت هذا كذا عادي ؟

if truck == gVehicle.gTruck [ gPlayer ] and isElement ( gVehicle.gTrailer [ gPlayer ] ) then

لاني شفت تحقق انت مسويه ماله داعي وقلت اختصر شوي واسويه كذا عادي صح ؟

انا تحققت انة الترايلر موجود وانة المنت يفضل تتحقق تفادياً للأخطاء .

Link to comment
انا ابي ماركر اذا لمسته يعطيك شاحنه وفيه وراها الصندوق الي تسحبه واذا انفصل يجيك كلام يقول يجب ان ترجع الصندوق لقد فقدته ككيف ؟

مثآل بسيط و الكود غير كامل فقط مثآل بسيط .. لـ التوضيح ..

gVehicle = {     
    gTruck = {      }, 
    gTrailer = {        }, 
} 
  
  
local gMarker = createMarker ( x,y,z ) 
  
  
addEventHandler ( 'onMarkerHit',gMarker, 
    function ( gPlayer ) 
        if getElementType ( gPlayer ) == 'player' and not isPedInVehicle ( gPlayer ) then 
            if gVehicle.gTruck [ gPlayer ] and isElement ( gVehicle.gTruck [ gPlayer ] )  then return destroyElement ( gVehicle.gTruck [ gPlayer ] ) end 
            if gVehicle.gTrailer [ gPlayer ] and isElement ( gVehicle.gTrailer [ gPlayer ] )  then return destroyElement ( gVehicle.gTrailer [ gPlayer ] ) end                   
                gVehicle.gTruck [ gPlayer ] = createVehicle ( 403,x+math.random ( 1,10 ),y,z ) 
                gVehicle.gTrailer [ gPlayer ] = createVehicle ( 435,0,0,0 ) 
                 attachTrailerToVehicle ( gVehicle.gTruck [ gPlayer ],gVehicle.gTrailer [ gPlayer ] ) 
                 warpPedIntoVehicle ( gPlayer,gVehicle.gTruck [ gPlayer ] )  
                 outputChatBox ( '* You have get a truck & trailer!!',gPlayer,0,255,0 ) 
        end 
    end ) 
     
addEventHandler ( 'onTrailerDetach',root, 
    function ( truck ) 
      local gPlayer = getVehicleController ( truck ) 
        if truck == gVehicle.gTruck [ gPlayer ] and gVehicle.gTrailer [ gPlayer ] and isElement ( gVehicle.gTrailer [ gPlayer ] ) then 
            outputChatBox ( '* The Trailer Was Detached From The Truck!',gPlayer,255,0,0 ) 
        end 
    end ) 

عندكـ تحققات زايدة مره ومالها داعي

ثاني وثالث تحقق بحدث دخول الماركر ليه مسوي ريتيرن وسحب المركبة بنفس الوقت؟ ياتسوي ريتيرن بدون سحب او بالأصل مايحتاج تسوي ريتيرن أساساً +

لو انا دخلت اول مرة وكنت داخل الماركر من قبل، اول شي رح يسحب المركبة لانكـ مسوي ريتيرن ثم يوقف الوظيفة +

xD بعدين يوم ادخل المرة الثانية رح يسحب المقطورة ثم يوقف الوظيفة

!!! بعدين لين ادخل المرة الثالثة يعطني المركبة مع المقطورة

الي طلبها صاحب الموضوع car بالإضافة إلى داتا resourceRoot عن طريق وظيفة "onTrailerDetach" كان يمديكـ تختصر كل تحققاتكـ بحدث +

الي هو إذا تم جلب سائق المركبة ام لا؛ لأنه ممكن تنفك المقطورة ومافيه سائق للمركبة "onTrailerDetach" ناقصكـ تحقق بحدث +

--

: بالنسبة لصاحب الموضوع، جرب هذا الكود كامل

* Server Side:

local marker = createMarker ( x, y, z, "type", size, r, g, b, alpha ) 
local trailerTower = { } 
local trailer = { } 
  
function _destroyElement ( theElm ) 
    if ( isElement ( theElm ) ) then 
        destroyElement ( theElm ) 
    end 
end 
  
addEventHandler ( "onMarkerHit", marker, 
    function ( player ) 
        if ( getElementType ( player ) == "player" ) and not ( isPedInVehicle ( player ) ) then 
            _destroyElement ( trailerTower [ player ] ) 
            _destroyElement ( trailer [ player ] ) 
            local x, y, z = getElementPosition ( player ) 
            trailerTower [ player ] = createVehicle ( 515, x, y, z + 1 ) 
            trailer [ player ] = createVehicle ( 435, x, y + 5, z + 1 ) 
            warpPedIntoVehicle ( player, trailerTower [ player] ) 
            attachTrailerToVehicle ( trailerTower [ player ], trailer [ player ] ) 
            setElementData ( player, "car", true ) 
        end 
    end 
) 
  
addEventHandler ( "onTrailerDetach", resourceRoot, 
    function ( theTruck ) 
        local player = getVehicleController ( theTruck ) 
        if ( player ) and ( getElementData ( player, "car", true ) ) then 
            outputChatBox ( "يجب ان ترجع الصندوق لقد فقدته", player, 255, 0, 0 ) 
        end 
    end 
) 
  
addEventHandler ( "onVehicleExplode", resourceRoot, 
    function ( ) 
        destroyElement ( source ) 
    end 
) 
  
addEventHandler ( "onPlayerQuit", root, 
    function ( ) 
        _destroyElement ( trailerTower [ source ] ) 
        _destroyElement ( trailer [ source ] ) 
        trailerTower [ source ] = nil 
        trailer [ source ] = nil 
    end 
) 

. عوض مكان الأرقمنتات حقت الماركر بأول سطر فقط، الي تحته لاتعدل فيه شي

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