3ssol Posted December 17, 2013 Author Share Posted December 17, 2013 يعني source= الي لمس الماركر ؟ ________________________________ local theMarker = false -- مافهمتها ؟ addEventHandler( "onClientGUIClick", GUIEditor.button[1], function( ) triggerServerEvent( "Trigger", localPlayer, theMarker ) -- ليه حطيتها هنا في اهر شي end, false ) addEvent( "open_window",true ) addEventHandler( "open_window", root, function( marker ) guiSetVisible( GUIEditor.window[1], true ) showCursor( true ) theMarker = marker -- مافهمتها ؟ end ) شوف الي حاطلك عليهم كلمات مافهمتهم ممكن توضحهم لي Link to comment
PaiN^ Posted December 17, 2013 Share Posted December 17, 2013 local theMarker = false -- عرفت متغير addEventHandler( "onClientGUIClick", GUIEditor.button[1], function( ) triggerServerEvent( "Trigger", localPlayer, theMarker ) -- أرسل الماركر للسيرفر عشان أقدر أعرف مين سواه end, false ) addEvent( "open_window",true ) addEventHandler( "open_window", root, function( marker ) guiSetVisible( GUIEditor.window[1], true ) showCursor( true ) theMarker = marker -- كل ما النافذة تنفتح يغير الماركر القديم اللي كان موجود بالجديد end ) Link to comment
3ssol Posted December 17, 2013 Author Share Posted December 17, 2013 للحين مافهمت شوف هنا addEventHandler( "onMarkerHit", resourceRoot, function( hitElement ) if getElementType( hitElement ) == "player" then triggerClientEvent( hitElement, "open_window", hitElement, source ) -- من وين جت سورس ؟ end end ) addEvent( "open_window",true ) addEventHandler( "open_window", root, function( marker ) -- ماركر من وين جت ؟؟ guiSetVisible( GUIEditor.window[1], true ) showCursor( true ) theMarker = marker -- ليه سويت كذا ؟ ووش الفايده ؟ end ) local theMarker = false -- يصير تحطها ترو ؟ addEventHandler( "onClientGUIClick", GUIEditor.button[1], function( ) triggerServerEvent( "Trigger", localPlayer, theMarker ) -- ليه ارسلت " ذاماركر" واذا رحت للترايقر ماراح تحصل الـ ذا ماركر end, false ) addEvent( "Trigger", true ) addEventHandler( "Trigger", root, function( marker ) -- ؟؟ local player = getElementData( marker, "Creater" )-- ؟؟ if getPlayerMoney( source ) >= 100 and isElement( player ) then -- ؟؟ takePlayerMoney( source, 100 ) --؟؟ givePlayerMoney( player, 50 ) end end ) Link to comment
#DRAGON!FIRE Posted December 17, 2013 Share Posted December 17, 2013 للحين مافهمتشوف هنا addEventHandler( "onMarkerHit", resourceRoot, function( hitElement ) if getElementType( hitElement ) == "player" then triggerClientEvent( hitElement, "open_window", hitElement, source ) -- من وين جت سورس ؟ end end ) addEvent( "open_window",true ) addEventHandler( "open_window", root, function( marker ) -- ماركر من وين جت ؟؟ guiSetVisible( GUIEditor.window[1], true ) showCursor( true ) theMarker = marker -- ليه سويت كذا ؟ ووش الفايده ؟ end ) local theMarker = false -- يصير تحطها ترو ؟ addEventHandler( "onClientGUIClick", GUIEditor.button[1], function( ) triggerServerEvent( "Trigger", localPlayer, theMarker ) -- ليه ارسلت " ذاماركر" واذا رحت للترايقر ماراح تحصل الـ ذا ماركر end, false ) addEvent( "Trigger", true ) addEventHandler( "Trigger", root, function( marker ) -- ؟؟ local player = getElementData( marker, "Creater" )-- ؟؟ if getPlayerMoney( source ) >= 100 and isElement( player ) then -- ؟؟ takePlayerMoney( source, 100 ) --؟؟ givePlayerMoney( player, 50 ) end end ) # شكلك نعسان خخ اول شي السورس جا من الحدث نفسه , لأنه الحدث السورس حقه هو الماركر اللي دخله الالمنت فـ هو سوأ تريقر وعرفت الـ سورس بـ اسم ماركر من وين جت ؟ , من السماء خخ زي ما قلت لك عرف السورس ماركر اي اسم عأدي , عشان يرجعه من الكلنت للسيرفر وعشان يجيب اللاعب اللي سوا الماركر ويعطيه فلوس Link to comment
3ssol Posted December 17, 2013 Author Share Posted December 17, 2013 طيب انا مافهمت وش تقصد فيه حدثين فيهم سورس اي واحد تقصد ي ليت تكتب علي الاكواد وش فايدتهم وكيف وكذا لأني مادري وش تقصد و اي واحد تتكلم عنه Link to comment
3ssol Posted December 17, 2013 Author Share Posted December 17, 2013 بس لو تشوف الويكي hitElement: The element that hit the marker يعني المفروض يكون كذا triggerClientEvent( hitElement, "open_window", hitElement) بدون سورس كيف ؟ Link to comment
3ssol Posted December 17, 2013 Author Share Posted December 17, 2013 انا مافهمت هنا addEvent( "open_window",true ) addEventHandler( "open_window", root, function( marker ) guiSetVisible( GUIEditor.window[1], true ) showCursor( true ) theMarker = marker -- انت عرفت الماركر بـ ذا ماركر end ) ولو تشوف فوق local theMarker = false ؟؟ وش يعني يعني الغيت الماركر بـ كذا ولا كيف؟ ابي توضيح بس لهاذا لأني مافهمتها Link to comment
PaiN^ Posted December 17, 2013 Share Posted December 17, 2013 * Server side : local markers = { } -- عرفنا جدول addCommandHandler( "markerC", function( player ) -- أضفنا الأمر if isElement( markers[player] ) then destroyElement( markers[player] ) end -- إذا اللاعب هذا سوا ماركر من قبل, نشيل الماركر القديم local x,y,z = getElementPosition( player ) -- نجيب احداثيات اللاعب markers[player] = createMarker( x, y, z, "cylinder", 3, 255, 0, 2 ) -- نسوي ماركر جديد, ونربطه باللاعب عن طريق الجدول setElementData( markers[player], "Creater", player ) -- حطيت اللاعب كقيمة للداتا Creater الخاصة بالماركر end ) -- إغلاق addEventHandler( "onMarkerHit", resourceRoot, function( hitElement ) -- حدث لو اتلمس ماركر -- لاحظ ان في الحدث resourceRoot عشان الوظيفة اللي موجودة في الحدث ماتصير الا للماركرات اللي صارت من المود نفسه if getElementType( hitElement ) == "player" then -- نتحقق من ان العنصر اللي دخل الماركر لاعب triggerClientEvent( hitElement, "open_window", hitElement, source ) -- نسوي تريقر للكلنت, نرسله للاعب اللي دخل الماركر فقط -- source = الماركر -- طبعا أنا أرسلت الماركر مع التريقر عشان أقدر أجيب اللاعب اللي سواه -- لأني عرفت اللاعب اللي سوا الماركر كداتا في سطر 7 end -- إغلاق end ) -- إغلاق addEvent( "Trigger", true ) -- إضافة حدث addEventHandler( "Trigger", root, function( marker ) -- إضافة الوظائف عند الحدث -- طبعا هنا marker = theMarker اللي رسلتها من الكلنت local player = getElementData( marker, "Creater" ) -- أجيب اللاعب اللي مسوي الماركر من الداتا حقت الماركر if getPlayerMoney( source ) >= 100 and isElement( player ) then -- أتحقق ان في لاعب سوا الماركر و ان الفلوس اللي مع اللي ضغط الزر أكثر من مية takePlayerMoney( source, 100 ) -- أخذ مية من اللي ضغط الزر givePlayerMoney( player, 50 ) -- أعطي مية للي سوا الماركر end -- إغلاق end ) -- إغلاق * Client side : local theMarker = false -- أعرف متغير -- طبعا ما تفرق لو حطيت true, nil, "sdl" حط أي شي, أنا بس أعرف متغير لا أكثر addEventHandler( "onClientGUIClick", button, function( ) -- حدث عند ضغط الزر triggerServerEvent( "Trigger", localPlayer, theMarker ) -- يرسل تريقر للسيرفر مع متغير قيمته تساوي الماركر اللي دخله اللاعب end, false ) -- إغلاق addEvent( "open_window",true ) -- إضافة حدث addEventHandler( "open_window", root, function( marker ) -- إضافة الوظائف عند الحدث -- طبعا هنا الماركر اللي في function تم ارساله من السيرفر guiSetVisible( window, true ) -- افتح النافذة showCursor( true ) -- اطلع المؤشر حق الفأرة theMarker = marker -- هنا اللعبة :] اقرأ بتمعن : -- هنا أعرف المتغير theMarker بالماركر اللي اترسل من السيرفر عشان لمن الزر ينضغط راح يترسل هذا المتغير اللي قيمته هي الماركر الى السيرفر -- و بالتالي في السيرفر أقدر اجيب اللاعب اللي سواه عن طريق الداتا Creater end ) -- إغلاق Link to comment
3ssol Posted December 17, 2013 Author Share Posted December 17, 2013 اها شكككرا ويعطيك العافيه \وتعبتك معاي >< طيب اخر طلب لو ابي اكتب الكلمه ويجيني ماركر واذا اي واحد لمس الماركر تنقص من فلوسه 100 وتجيني انا كيف ؟ اعتقد ليها طريقه ثانيه ممكن توريني مثال Link to comment
PaiN^ Posted December 17, 2013 Share Posted December 17, 2013 والله اذا تبي بدون لوحة يعني, يصير كذا : local markers = { } addCommandHandler( "cmd", function( player ) if isElement( markers[player] ) then destroyElement( markers[player] ) end local x, y, z = getElementPosition( player ) markers[player] = createMarker( x, y, z, "cylinder", 3, 255, 0, 0, 255 ) end ) addEventHandler( "onMarkerHit", resourceRoot, function( hitElement ) if getElementType( hitElement ) == "player" then for player, marker in pairs( markers ) do if marker == source then givePlayerMoney( player, 100 ) takePlayerMoney( hitElement, 100 ) end end end end ) Link to comment
3ssol Posted December 17, 2013 Author Share Posted December 17, 2013 هههههههههههه والله انك فنان اشرحلياه لاهنت لان انا احب اكون فاهم الكود 100 % 100 مو بس اخذ الكود وخلاص لاهنت يعني ي الغالي Link to comment
PaiN^ Posted December 17, 2013 Share Posted December 17, 2013 local markers = { } -- عرف جدول addCommandHandler( "cmd", function( player ) -- ضيف أمر if isElement( markers[player] ) then -- تحقق هل اللاعب يوا ماركر قبل destroyElement( markers[player] ) -- إذا سوا, شيل الماركر end -- إغلاق local x, y, z = getElementPosition( player ) -- جيب إحداثيات اللاعب markers[player] = createMarker( x, y, z, "cylinder", 3, 255, 0, 0, 255 ) -- سوي ماركر مبروط مع اللاعب بالجدول end ) -- إغلاق addEventHandler( "onMarkerHit", resourceRoot, function( hitElement ) -- ضيف حدث عند دخول ماركر -- لاحظ استخدمنا resourceRoot عشان الحدث يشتغل مع الماركرات اللي سواها هذا المود فقط if getElementType( hitElement ) == "player" then -- اذا نوع العنصر اللي دخل الماركر لاعب for player, marker in pairs( markers ) do -- لف على جميع عناصر الجدول اللي فوق, اللي فيه مربوط كل لاعب مع ماركره -- لاحظ استخدمنا pairs مو ipairs لأن الجدول فيه قيم k,v مو _,v if marker == source then -- إذا العنصر المخزن في الجدول == الماركر حق الحدث givePlayerMoney( player, 100 ) -- أعطي صاحب الماركر 100 takePlayerMoney( hitElement, 100 ) -- خذ من اللي دخل الماركر 100 -- و الباقي إغلاقات end end end end ) Link to comment
3ssol Posted December 17, 2013 Author Share Posted December 17, 2013 شرحك عسسل انت مستخدم for player, marker in pairs( markers ) do pairs لانك كاتب كلمات الي هم player + marker لو كنت مسوي كذا for _, v in ipairs( markers ) do ipairs تستخدم صح ؟؟ + if marker == source then -- مافهمته ممكن توضحلي اكثر Link to comment
PaiN^ Posted December 18, 2013 Share Posted December 18, 2013 شوف في الجداول في أكثر من طريقة للحفظ تقدر تحفظ قيم بس زي كذا مثلا local aTable = { "value" } أو تحفظ قيم بمافتيح, زي كذا local aTable = { ["key"] = "value" } لازم تعرف طريقة التخزين فيه for لمن تغبى تلف على عناصر جدول معين باستخدام ipairs - pairs لو كانت الطريقة الأولى, ما راح تفرق سواء استخدمت ما تتعرف الا على الجداول اللي مفاتيحها أرقام ipairs ما راح يشتغل, لأن ipairs أما لو كانت الطريقة الثانية, لو استخدمت pairs و بما إننا استخدمنا التخزين بالطريقة الثانية انا استخدمت ---------------------- marker == source بالنسبة لـ لمن الجهاز يقعد يلف عناصر الجدول عنصر عنصر, راح يسوي ذا الشرط source طبعا كل ما واحد يسوي ماركر راح يتخزن ماركره في الجدول, فلمن يلف اللجهاز على عناصر الجدول راح يدور على الماركر الل هو يساوي لمن يلقاه, راح يجيب اللاعب من الداتا المخزنة فيه, وبعدين يسحب من فلوس اللاعب اللي دخل الماركر, ويعطي صاحب الماركر اللي لقاه فلوس 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