™!>VàLéNTiNô<!™ Posted June 21, 2016 Share Posted June 21, 2016 السلام عليكم ورحمة الله وبركاته الموضوع معقد شوية لو على اللى انا ابيه لكن بحاول ابسطه حاليا فى لوحة فيها زر وجريد لست فيه اللاعبين المتواجدين بالسيرفر حابب لما انا احدد لاعب واضغط على الزر توصله رسالة لحد هنا سهل ^ لكن لو اللاعب وافق على الرسالة يتحقق منه اموالى واموال اللاعب يعنى يتحقق من اموال المرسل والمرسل اليه لحد هنا برضو سهل ^ حابب لما اللاعب يوافق على الطلب يعنى النافذة اللى بتظهر له اللى هى النافذة الثانية ( الجديدة ) فيها زرين واحد يقبل والتانى يرفض لو قبل اللاعب ينقلنى انا واللاعب منطقة ثانية setElementPosition المشكلة فى الموضوع انا حابب احدد الشخص اللى ارسل رسالة اللى هو انا اللاعب اللى انا ارسلته الرسالة اقدر احدده من خلال guiGridListGetItemText طيب بالنسبة لى انا اللى ارسلت الرسالة كيف احدد نفسى ملحوظة عشان لاحد يفهم غلط : - لما اللاعب يقبل يكون اللاعب اللى فى الجريد لست هو ال localPlayer يعنى انا لما ارسل رسالة انا اكون اللوكل بلاير وهو لما يقبل الرسالة هو يكون اللوكل بلاير .. فما ينفع استخدم لوكل بلاير بعد قبول اللاعب الدعوة او الرسالة اتمنى تكون الفكرة وصلت واللى مافهم ياريت يستفسر بالتعليقات .. يمكن الفكرة سهلة لكن الموضوع معقد اكتر من كدا بكثير ... فى المود اللى انا اصنعه حاليا ( لو الموضوع تافه اعتذر لانى تركت اللعبة حوالى سنتين ونسيت أشياء تافهة كثير رغم اهميتها ) لو فى حد مفهمش الفكرة اسهله واسهلى ياريت يسويلى كود فيه جريد لست فيه اللاعبين وفيه زر يرسل رسالة للاعب المحدد ولما اللاعب يقبل الدعوة ينقلنى انا واللاعب ذا لمكان يعنى لاحداثيات انا احددها .. طبعا الموضوع معقد اكتر لكن انا بحاول اظبطها من خلال الكود مع اللى عندى . Link to comment
Mr.CoR Posted June 21, 2016 Share Posted June 21, 2016 طيب حاول تسوي ان لما ينضغط الزر تجيب اسم اللاعب وترسله مع الكود الي يروح للاعب الثاني مثال addEventHandler("onClientGUIClick",root, function () if ( source == Botton ) then getPlayerName ( localPlayer ) end end ) او انك تحط ايديت بوكس وتلزم اللاعب يكتب اسم من ثم تجيب اسم اللاعب من خلال guiGetText Link to comment
Jupi Posted June 21, 2016 Share Posted June 21, 2016 حط داتا علي الاعب اللي وصلت له الدعوة .. setElementData(getPlayerFromName("InvitedPlayer"), "InvitedBy", You) ويوم يقبل هات الداتا دي و بكدة تكون جبت الاعب اللي ارسل Link to comment
taha201100 Posted June 21, 2016 Share Posted June 21, 2016 قم بالأطلاع على هذا الموضوع https://forum.multitheftauto.com/viewtopic.php?f=160&t=100292 حتى نساعدك في المره القادمه ويا ريت تعدل اسم موضوعك وبالتوفيق Link to comment
™!>VàLéNTiNô<!™ Posted June 21, 2016 Author Share Posted June 21, 2016 Mr.Cor الفكرة ماوصلتك DABL فكرتك ماتنفع ... خطرت ببالى وبإفتراض فكرتك بعد لما اعمل الداتا ازاى اجيب اللاعب من داتا getPlayerFromData .... فكرت اعمل وظيفة بنفس الاسم لكن حصلت فيها كمية جلتشات رهيبة وفافرتاض ان فكرتك ظبطت وعرفت اجيب اللاعب من الداتا وده مينفعش اصلا .. DABL بافتراض ان فى 2 لاعبيين بعتو دعوة ل 2 مختلفين لو حطيت داتا الاتنين اللى بعتو هتتحط عليهم الداتا فلو حبيت انقل اللاعب اللى أرسل واللاعب اللى جتله الرسالة هينقل اللى جتله الرسالة واحتمال ينقل معاه واحد تانى من ال 2 اللى ارسلو عشان الداتا عليهم هما الاتنين فمش هيفرق مبينهم .. انا عملت الفكرة دى بس مش بداتا عملتها بتحديد مكان بالجريد ليست لكن لما يكون فى دعوتين يحصل الجلتش .. ------------------------------------------------- وبالمناسبة برا الموضوع ... DABL افتح بتلاقى دعوة إقبلها بالسكايب .. -------------------------------------------------- لم تتم الإفادة بعد .. Link to comment
فاّرس Posted June 21, 2016 Share Posted June 21, 2016 انت تقصد انك بتحدد لاعب من الجريد ثم ترسل له رساله وتطلع له نافذه ويرفض او يقبل واذا قبل ينقلك وينقله لمكان محدد؟ طيب هو فعلاً تقدر تستخدم الداتا بطريقه سهله! او تقدر تستخدم الجداول تضيف اللاعب بالجدول ثم تجيب اللاعب، واذا كان فكرتك بتسويها سيرفر انصحك بالجداول عشان ما تجي لخبطه بالكلينت سوي داتا؟ Link to comment
KariiiM Posted June 21, 2016 Share Posted June 21, 2016 getPlayerFromData moch mawjoda, inta ta3ni getElementData ? Link to comment
Jupi Posted June 21, 2016 Share Posted June 21, 2016 [quote name=™!>VàLéNTiNô DABL فكرتك ماتنفع ... خطرت ببالى وبإفتراض فكرتك بعد لما اعمل الداتا ازاى اجيب اللاعب من داتا getPlayerFromData .... فكرت اعمل وظيفة بنفس الاسم لكن حصلت فيها كمية جلتشات رهيبة وفافرتاض ان فكرتك ظبطت وعرفت اجيب اللاعب من الداتا وده مينفعش اصلا .. DABL بافتراض ان فى 2 لاعبيين بعتو دعوة ل 2 مختلفين لو حطيت داتا الاتنين اللى بعتو هتتحط عليهم الداتا فلو حبيت انقل اللاعب اللى أرسل واللاعب اللى جتله الرسالة هينقل اللى جتله الرسالة واحتمال ينقل معاه واحد تانى من ال 2 اللى ارسلو عشان الداتا عليهم هما الاتنين فمش هيفرق مبينهم .. انا عملت الفكرة دى بس مش بداتا عملتها بتحديد مكان بالجريد ليست لكن لما يكون فى دعوتين يحصل الجلتش .. ------------------------------------------------- وبالمناسبة برا الموضوع ... DABL افتح بتلاقى دعوة إقبلها بالسكايب ..[/size] -------------------------------------------------- لم تتم الإفادة بعد .. ترا الفكرة تضبط ومطبقها في احد المودات اللي فيها منافسة : 3 وضابطة كل ما عليك تسويه شوية تحققات وبيطلع تمام وليه ما تقدر تجيب الاعب من الداتا؟ -.- تقدر تحفظ الاعب نفسه وتقدر تحفظ اسمه و تجيبه بوظيفة getPlayerFromName ------ بلنسبة لسكايب ما وصلني شيء : dabl_24 Link to comment
MR.S3D Posted June 21, 2016 Share Posted June 21, 2016 الموضوع سهل جدا اطرد لي اكوادك على الخاص وبأذن الله سوف أساعدك Link to comment
™!>VàLéNTiNô<!™ Posted June 22, 2016 Author Share Posted June 22, 2016 منتظر ردك بالخاص من اربع ساعات Link to comment
™!>VàLéNTiNô<!™ Posted June 23, 2016 Author Share Posted June 23, 2016 getPlayerFromData moch mawjoda, inta ta3ni getElementData ? انا اقول انى سويت وظيفة بهذا الاسم وحصل فيها جلتشات . Link to comment
Abdul KariM Posted June 23, 2016 Share Posted June 23, 2016 [quote name=™!>VàLéNTiNô getPlayerFromData moch mawjoda, inta ta3ni getElementData ? انا اقول انى سويت وظيفة بهذا الاسم وحصل فيها جلتشات . تقصد بقات ؟ ورينا كودك طيب Link to comment
™!>VàLéNTiNô<!™ Posted June 23, 2016 Author Share Posted June 23, 2016 [quote name=™!>VàLéNTiNôgetPlayerFromData moch mawjoda, inta ta3ni getElementData ? انا اقول انى سويت وظيفة بهذا الاسم وحصل فيها جلتشات . تقصد بقات ؟ ورينا كودك طيب بحاول اسلها لك .. واسويلك لوحة مبسطة عشان اللوحة عندى معوقة حبتين .. addEventHandler("onClientResourceStart", resourceRoot, function ()screenW, screenH = guiGetScreenSize()wnd = guiCreateWindow((screenW - 590) / 2, (screenH - 302) / 2, 300, 302, "اللوحة الرئيسية", false) playerLists = guiCreateGridList(18, 52, 126, 233, false, wnd) column = guiGridListAddColumn( playerLists, "Players", 0.85 ) if ( column ) then row = guiGridListAddRow ( playerLists ) guiGridListSetItemText ( playerLists, row, column, getPlayerName ( player ), false, false ) btn = guiCreateButton(174, 233, 83, 49, "الزر المطلوب", false, wnd) endend) local screenWH, screenHW = guiGetScreenSize() wantedwnd3 = guiCreateWindow((screenWH - 325) / 2, (screenHW - 113) / 2, 325, 113, "قام لاعب بدعوتك", false) guiWindowSetSizable(wantedwnd3, false) guiSetVisible ( wantedwnd3, false ) btnaccept3 = guiCreateButton(27, 41, 108, 52, "Acceept ><", false, wantedwnd3) btnrefuse3 = guiCreateButton(182, 41, 108, 52, "Refuse ><", false, wantedwnd3) -----------------------------------------------حابب لما يختار لاعب يتحقق من فلوس كلا من اللى ارسل الدعوة واللى استلم الدعوةبعدها لو كان معهم الفلوس يرسل دعوة للشخص اللى انا حددته بالجريد ليستبعدها لو وافق الشخص من خلال الزر btnaccept3ينقلنى انا الشخص اللى ارسلت الدعوة وهو الشخص اللى وافق على الدعوة لمكان انا احدده من خلال setElementPositionطبعا معظم اللى قلته سهل بس المشكلة ان لما اللاعب الثانى يوافق يكون الكود مختلف لان الحدث يكون onClientGUIClickويكون اللوكل هو اللى تم ارسال له الدعوة فتكون الصعوبة انى احدد اللاعب اللى ارسل الدعوة لهلو مافهمت الجزئية ذى سويلى الكود كامل عشان لا تتلخبط .. الجزئية كنت كاتبها عشان لا تفهم شئ ثانى .------------------------------------------------ Link to comment
فاّرس Posted June 23, 2016 Share Posted June 23, 2016 الطريقه اسهل مماتتخيل, شوف ذا مثال, addCommandHandler ( 'g', function ( plr, _, name ) if name then if getPlayerFromName ( name ) then setElementData ( resourceRoot, 'inv', { c = plr, n = getPlayerFromName (name) } ) -- { c = اللاعب اللي ارسل الدعوه, n = اللاعب اللي وصلته الدعوه} -- ... كمل اللي تبي تسويه else outputChatBox ( "There's no player.", plr ) end else outputChatBox ( "You must write player name.", plr ) end end) بعدين اذا تبي تجيب اللاعب اللي ارسل الدعوه او اللي وصلته الدعوه تسوي كذا getElementData ( resourceRoot, 'inv' ).c -- اللاعب اللي ارسل الدعوه getElementData ( resourceRoot, 'inv' ).n -- اللاعب اللي وصلته الدعوه مثال : btn = guiCreateButton(...) addEventHandler ( 'onClientGUIClick', btn, function ( ) if getElementData ( resourceRoot, 'inv' ) then setElementPosition ( getElementData ( resourceRoot, 'inv' ).c, x, y, z ) -- ننقل اللي ارسل الدعوه فقط else outputChatBox ( "There's no data!" ) end end) واذا نقلت اللاعب وخلصت احذف الداتا او غير قيمتها . Link to comment
</Mr.Tn6eL> Posted June 23, 2016 Share Posted June 23, 2016 الطريقه اسهل مماتتخيل, شوف ذا مثال, addCommandHandler ( 'g', function ( plr, _, name ) if name then if getPlayerFromName ( name ) then setElementData ( resourceRoot, 'inv', { c = plr, n = getPlayerFromName (name) } ) -- { c = اللاعب اللي ارسل الدعوه, n = اللاعب اللي وصلته الدعوه} -- ... كمل اللي تبي تسويه else outputChatBox ( "There's no player.", plr ) end else outputChatBox ( "You must write player name.", plr ) end end) بعدين اذا تبي تجيب اللاعب اللي ارسل الدعوه او اللي وصلته الدعوه تسوي كذا getElementData ( resourceRoot, 'inv' ).c -- اللاعب اللي ارسل الدعوه getElementData ( resourceRoot, 'inv' ).n -- اللاعب اللي وصلته الدعوه مثال : btn = guiCreateButton(...) addEventHandler ( 'onClientGUIClick', btn, function ( ) if getElementData ( resourceRoot, 'inv' ) then setElementPosition ( getElementData ( resourceRoot, 'inv' ).c, x, y, z ) -- ننقل اللي ارسل الدعوه فقط else outputChatBox ( "There's no data!" ) end end) واذا نقلت اللاعب وخلصت احذف الداتا او غير قيمتها . للو افترضنا لاعبين سوو الكوماند بتروح الداتا الاولى وبتجي الجديدة Link to comment
فاّرس Posted June 23, 2016 Share Posted June 23, 2016 .بس نفس الفكره يستخدم الجدول , resourceRoot هو عشان الـ Link to comment
</Mr.Tn6eL> Posted June 23, 2016 Share Posted June 23, 2016 اذ تبي ترسل دعوة استخدم triggerServerEvent("onPlayerInvite", localPlayer, to) to : هو الاعب الي تبي ترسله دعوة بعدين استخدم ذا الكود Server addEvent("onPlayerInvite", true) addEventHandler("onPlayerInvite", root, function(to) triggerClientEvent(to, "showAcceptWindow", to, source) end) Client invites = { } addEvent("showAcceptWindow", true) addEventHandler("showAcceptWindow", root, function(from) guiSetVisible(window, true) showCursor(true) invites[source] = from end) addEventHandler("onClientGUIClick", resourceRoot, function( ) if invites[localPlayer] and (source == accept or source == decline) then if source == accept then setElementPosition(localPlayer, x, y, z) setElementPosition(invites[localPlayer], x, y, z) end guiSetVisible(window, false) showCursor(false) invites[source] = nil end end) accept : زر القبول decline : زر الرفض window : نافذة القبول والرفض x, y, z : مكان الاجتماع Link to comment
™!>VàLéNTiNô<!™ Posted June 24, 2016 Author Share Posted June 24, 2016 اذ تبي ترسل دعوة استخدم triggerServerEvent("onPlayerInvite", localPlayer, to) to : هو الاعب الي تبي ترسله دعوة بعدين استخدم ذا الكود Server addEvent("onPlayerInvite", true) addEventHandler("onPlayerInvite", root, function(to) triggerClientEvent(to, "showAcceptWindow", to, source) end) Client invites = { } addEvent("showAcceptWindow", true) addEventHandler("showAcceptWindow", root, function(from) guiSetVisible(window, true) showCursor(true) invites[source] = from end) addEventHandler("onClientGUIClick", resourceRoot, function( ) if invites[localPlayer] and (source == accept or source == decline) then if source == accept then setElementPosition(localPlayer, x, y, z) setElementPosition(invites[localPlayer], x, y, z) end guiSetVisible(window, false) showCursor(false) invites[source] = nil end end) accept : زر القبول decline : زر الرفض window : نافذة القبول والرفض x, y, z : مكان الاجتماع تسلم يابطل اشتغل انا مسوى انه ياخد فلوس فلازم فرع سيرفر انا ظبطها واشتغل الحمدلله انا كنت مسوى نفس الفكرة وكانت شغالة بس تدرى وش كانت المشكلة انى ماكنت مسوى جدول فكان لو فى اكتر من دعوة يتلخبط الدنية بس ممكن تشرحلى فائدة الجدول بالموضوع بشكل موضح أكثر Link to comment
</Mr.Tn6eL> Posted June 24, 2016 Share Posted June 24, 2016 فائدة الجدول فقط لتعدد البيانات 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