Jump to content

طلب شرح


Recommended Posts

  
  
-- كلينت 
  
-- تسوي جـدول بـأسماء السيارات 
  
guiGridListGetSelectedItem -- يتاأكد إن فيه شيء محدد في القريدليست 
guiGridListGetItemText -- يجيب الـكلام المحدد من القريدليست 
getVehicleModelFromName -- يجـيب أإيدي السيارة من إسمها 
triggerServerEvent -- يرسل لسيرفر الايدي 
  
-- كلينت 
  
-- سيرفر 
addEvent -- تضيف حديث 
addEventHandler -- تسوي حدث 
function( t هنا تحط الايدي الي ارسلته من الكلينت t ) -- وظيفة 
getElementPosition -- تجيب الموقع حقك 
createVehicle -- تصنع سيارة 
warpPedIntoVehicle -- تنقل اللاعب الى السيارة 
end 
) 
  
-- ولاتنسى باقي isElement ~ destroyElement عشان م يصير تكرار للمواتر 
  
  

Link to comment

مثال بسيط سويته لك على السريع

تختار سيارهـ من القريد ليست وتضغط الزر ويعطيك السيارهـ

#Client Side

local Vehicles =  { 
    { "Car1", 569 }, 
    { "Car2", 411 }, 
    -- { "Car3", 469 }, 
} 
  
GridList = guiCreateGridList ( ... ) 
Colmun = guiGridListAddColumn ( ... ) 
Button = guiCreateButton ( ... ) 
  
addEventHandler ( "onClientResourceStart", resourceRoot, function (    ) 
    for _,value in ipairs ( Vehicles ) do 
        local Row = guiGridListAddRow ( GridList ) 
        guiGridListSetItemText ( GridList, Row, 1, tostring ( v[1] ), false, false ) 
        guiGridListSetItemData ( GridList, Row, 1, v[2] ) 
    end 
end ) 
  
addEventHandler ( "onClientGUIClick", resourceRoot, 
function (    ) 
    if ( source == Button ) then 
        if ( guiGridListGetSelectedItem ( GridList ) ~= -1 ) then 
        local Select = guiGridListGetItemText ( GridList, guiGridListGetSelectedItem ( GridList ), 1 ) 
        local iD = guiGridListGetItemData ( GridList, guiGridListGetSelectedItem ( GridList ), 1 ) 
        if ( Select ~= "" and iD ~= "" ) then 
        triggerServerEvent ( "GiveCar", localPlayer, iD ) 
    end 
  else 
    outputChatBox ( "* الرجاء اختيار سيارهـ اولاً *", 255, 0, 0, true ) 
    end 
  end 
end ) 

#Server Side

local Vehicle = {    }; 
  
addEvent ( "GiveCar", true ) 
addEventHandler ( "GiveCar", root, function ( iD ) 
    if ( Vehicle[source] ) and isElement ( Vehicle[source] ) then 
        destroyElement ( Vehicle[source] ) 
    end 
    local x, y, z = getElementPosition ( source ) 
    Vehicle[source] = createVehicle ( iD, x, y, z ) 
    warpPedIntoVehicle ( source, Vehicle[source] ) 
    outputChatBox ( "* تم اعطاؤك سيارهـ", source, 255, 255, 255, true ) 
end ) 
  
addEventHandler ( "onPlayerQuit", resourceRoot, function (    ) 
    if ( Vehicle[source] ) and isElement ( Vehicle[source] ) then 
    destroyElement ( Vehicle[source] ) 
    Vehicle[source] = nil 
    end 
end ) 
  
addEventHandler ( "onVehicleExplode", resourceRoot, function (    ) 
    destroyElement ( source ) 
end ) 

واذا منت بفاهم شيء .. تفضل اسأل ؟

Link to comment
مثال بسيط سويته لك على السريع

تختار سيارهـ من القريد ليست وتضغط الزر ويعطيك السيارهـ

#Client Side

local Vehicles =  { 
    { "Car1", 569 }, 
    { "Car2", 411 }, 
    -- { "Car3", 469 }, 
} 
  
GridList = guiCreateGridList ( ... ) 
Colmun = guiGridListAddColumn ( ... ) 
Button = guiCreateButton ( ... ) 
  
addEventHandler ( "onClientResourceStart", resourceRoot, function (    ) 
    for _,value in ipairs ( Vehicles ) do 
        local Row = guiGridListAddRow ( GridList ) 
        guiGridListSetItemText ( GridList, Row, 1, tostring ( v[1] ), false, false ) 
        guiGridListSetItemData ( GridList, Row, 1, v[2] ) 
    end 
end ) 
  
addEventHandler ( "onClientGUIClick", resourceRoot, 
function (    ) 
    if ( source == Button ) then 
        if ( guiGridListGetSelectedItem ( GridList ) ~= -1 ) then 
        local Select = guiGridListGetItemText ( GridList, guiGridListGetSelectedItem ( GridList ), 1 ) 
        local iD = guiGridListGetItemData ( GridList, guiGridListGetSelectedItem ( GridList ), 1 ) 
        if ( Select ~= "" and iD ~= "" ) then 
        triggerServerEvent ( "GiveCar", localPlayer, iD ) 
    end 
  else 
    outputChatBox ( "* الرجاء اختيار سيارهـ اولاً *", 255, 0, 0, true ) 
    end 
  end 
end ) 

#Server Side

local Vehicle = {    }; 
  
addEvent ( "GiveCar", true ) 
addEventHandler ( "GiveCar", root, function ( iD ) 
    if ( Vehicle[source] ) and isElement ( Vehicle[source] ) then 
        destroyElement ( Vehicle[source] ) 
    end 
    local x, y, z = getElementPosition ( source ) 
    Vehicle[source] = createVehicle ( iD, x, y, z ) 
    warpPedIntoVehicle ( source, Vehicle[source] ) 
    outputChatBox ( "* تم اعطاؤك سيارهـ", source, 255, 255, 255, true ) 
end ) 
  
addEventHandler ( "onPlayerQuit", resourceRoot, function (    ) 
    if ( Vehicle[source] ) and isElement ( Vehicle[source] ) then 
    destroyElement ( Vehicle[source] ) 
    Vehicle[source] = nil 
    end 
end ) 
  
addEventHandler ( "onVehicleExplode", resourceRoot, function (    ) 
    destroyElement ( source ) 
end ) 

واذا منت بفاهم شيء .. تفضل اسأل ؟

شكراًً لكم على المساعدة

Link to comment

ممكن شرح لذا الكود ؟

  
  
local Vehicle = {    }; -- ? وش ذا 
    if ( Vehicle[source] ) and isElement ( Vehicle[source] ) then 
        destroyElement ( Vehicle[source] ) -- ? وش ذا 
  
addEventHandler ( "onPlayerQuit", resourceRoot, function (    ) 
    if ( Vehicle[source] ) and isElement ( Vehicle[source] ) then 
    destroyElement ( Vehicle[source] ) 
    Vehicle[source] = nil 
    end 
end ) 
  
addEventHandler ( "onVehicleExplode", resourceRoot, function (    ) 
    destroyElement ( source ) 
end )  
  
ذول كمان ابي شرح لهم لاهنتم 
  

Link to comment

ممكن شرح لذا الكود ؟

  
  
local Vehicle = {    }; -- ? وش ذا 
    if ( Vehicle[source] ) and isElement ( Vehicle[source] ) then 
        destroyElement ( Vehicle[source] ) -- ? وش ذا 
  
addEventHandler ( "onPlayerQuit", resourceRoot, function (    ) 
    if ( Vehicle[source] ) and isElement ( Vehicle[source] ) then 
    destroyElement ( Vehicle[source] ) 
    Vehicle[source] = nil 
    end 
end ) 
  
addEventHandler ( "onVehicleExplode", resourceRoot, function (    ) 
    destroyElement ( source ) 
end )  
  
ذول كمان ابي شرح لهم لاهنتم 
  

local Vehicle = {    }; -- هذا جدول فارغ عشان تتفخز فيه السيارات الي ياخذونها الاعبين وطبعاً هذي العلامه ( ; ) فقط منظر مامنها اي فايدهـ تقدر تشيلها مايضر 
  
addEventHandler ( "onPlayerQuit", resourceRoot, function (    ) -- function حدث عند خروج الاعب + وظيفه  الي هي 
    if ( Vehicle[source] ) and isElement ( Vehicle[source] ) then -- نتحقق من السيارهـ ونتحقق انها موجودهـ 
    destroyElement ( Vehicle[source] ) -- ثم نخفيها 
    Vehicle[source] = nil -- هنا يعني ان السيارهـ خلاص انخفت قيمتها لا شيء 
    end -- function ايند الـ 
end ) -- وقوس اغلاق الحدث if ايند الـ 
  
addEventHandler ( "onVehicleExplode", resourceRoot, function (    ) -- حدث عندانفجار السيارهـ + وظيفه 
    destroyElement ( source ) -- ثم بعد ماتنفجر السياره نخفيها يعني تصير مو موجودهـ تماماً 
end ) -- ايند الوظيفه الي هي الفنكشن وقوس أغلاق الحدث 

Link to comment
طيب الجدول الفارغ لازم يكون ع اإسم الجدول الي فلكينت حق السيارات؟

جواباً على سؤالكـ .. لا

+ Vehicles لو تلاحظ الجدول الي فكلينت اسمه

وحطينا فيه القيم الي هي اسم السيارهـ والايدي

---

Vehicle والي في سيرفر اسمه

وسويناهـ عشان تتخزن فيه سيارات الاعبين الي يطلعونها هم من نفس المود

s الفرق حرف

وطبعاً هذا جدول لحاله وهذا جدول لحاله مالهم شغل في بعض يعني لو تغير اساميهم للاسم الي تبيه عادي

Link to comment
if ( Vehicle[source] ) and isElement ( Vehicle[source] ) then 
  
التحقق الي هنا كيف عرفت انها سيارة ؟ 

حن اصلا مسوين الجدول لـ السيارات وهذا شيء محدد , فشيء اكيد راح يكون التحقق للسيارهـ

تقدر تقول كذا

if ( isElement ( Vehicle[source] ) ) then 

وتقدر تقول كذا

if ( Vehicle[source] ) and isElement ( Vehicle[source] ) then 

^

للمعلوميه بس , وماتفرق

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