N3xT Posted July 2, 2016 Share Posted July 2, 2016 . السلام عليكم ورحمة الله وبركاته اليوم واجهتني مشكلة وصراحة حاولت أحلها بجميع الطرق لكن مافيه فايدة ، لذلك قلت أستشيركم وتحديداً تنطيل هو اللي يعرف مشاكلي مع الجداول que = { ['السلام عليكم'] = 'وعليكم السلام', } addEventHandler("onPlayerChat",root, function(msg,type) for k,v in ipairs( que ) do if string.find(msg,v[1]) then if type == 0 then setTimer(outputChatBox,100,1,v[2],root,0,0,0,true) end end end end) فكرة المود ، لو قلت بالشات السلام عليكم يرد عليك وعليكم السلام حاولت لكن م ظبط وأيضاً الديبق مافيه أي أخطاء . Link to comment
YourMind Posted July 2, 2016 Share Posted July 2, 2016 que = { ['السلام عليكم'] = 'وعليكم السلام', } addEventHandler("onPlayerChat",root, function(msg,type) for k,v in pairs( que ) do if string.find(msg,k) then if type == 0 then setTimer(outputChatBox,100,1,v,root,0,0,0,true) end end end end) Link to comment
#DRAGON!FIRE Posted July 2, 2016 Share Posted July 2, 2016 que = { ['السلام عليكم'] = 'وعليكم السلام', } addEventHandler ( "onPlayerChat",root, function(msg,type) if type == 0 then for k,v in pairs( que ) do if string.find(string.lower(msg),string.lower(k)) then outputChatBox ( v, source, 0,0,0,true ) break end end end end ) Link to comment
N3xT Posted July 2, 2016 Author Share Posted July 2, 2016 مشكورين جميعاً ظبط ، لكن عندي إستفسار بسيط وش الفنكشن اللي يخليه يجيب قيمة تقريبيه يعني بدال ما اقول السلام عليكم كلها ، مثلاً أقول السلام بس ويرد علي Link to comment
#DRAGON!FIRE Posted July 2, 2016 Share Posted July 2, 2016 string.find مدام انكـ مستخدم اتوقع انه المفروض يرد عليكـ . Link to comment
Me[Z]oO Posted July 2, 2016 Share Posted July 2, 2016 مشكورين جميعاً ظبط ، لكن عندي إستفسار بسيط وش الفنكشن اللي يخليه يجيب قيمة تقريبيه يعني بدال ما اقول السلام عليكم كلها ، مثلاً أقول السلام بس ويرد علي string.find Link to comment
N3xT Posted July 2, 2016 Author Share Posted July 2, 2016 جربت أقول السلام لكن ما يرد ، لازم أقول السلام عليكم Link to comment
YourMind Posted July 2, 2016 Share Posted July 2, 2016 string.find مدام انكـ مستخدم اتوقع انه المفروض يرد عليكـ . اعتقد لأ split Link to comment
فاّرس Posted July 2, 2016 Share Posted July 2, 2016 (edited) pairs لأن مفتاح الجدول سترنق ف عشان كذا لازم تستخدم ipairs ما يصلح تستخدم for k,v ... تكون القيمه كـ مثال لو طبقناه على كودك v تكون المفتاح و k بحيث k = ['السلام عليكم'] v = ['وعليكم السلام'] بعطيك شوية امثله يمكن توصلك المعلومه : t = { ['Hello'] = 'هلا' } for k,v in ipairs ( t ) do outputChatBox ( k..','..v ) end ما يظهر شي صح؟ عشان القيمه سترنق ما راح يظهر, طيب لو سوينا كذا : t = { ['Hello'] = 'هلا' } for k,v in pairs ( t ) do outputChatBox ( k..','..v ) end > Hello, هلا k والسطر الثامن تحط قيمة المفتاح اللي هو pairs كودك لازم تعدله وتستخدم Edited July 2, 2016 by Guest Link to comment
N3xT Posted July 2, 2016 Author Share Posted July 2, 2016 مشكور ع الشرح ، والحمدلله فهمت الجداول لكن عندي إستفسار عن إنه يجيب الكلام الأقرب للجدول ، لأن الاكواد اللي فوق لازم تكون نفس اللي بالجدول ولا ما يرد عليك Link to comment
فاّرس Posted July 2, 2016 Share Posted July 2, 2016 تقصد كذا؟ que = { ['السلام,عليكم'] = 'وعليكم السلام', } addEventHandler("onPlayerChat",root, function(msg,type) for k,v in pairs( que ) do for n,s in ipairs ( split ( k, ',' ) ) do if string.find(msg,s) then if type == 0 then setTimer(outputChatBox,100,1,v,root,0,0,0,true) end end end end end) Link to comment
' A F . Posted July 2, 2016 Share Posted July 2, 2016 مدري مافهمتك زين بس اتوقع تقصد كذا صح ولا ؟ string.match Link to comment
فاّرس Posted July 2, 2016 Share Posted July 2, 2016 ^ لا اتوقع انه يبي مثل ما سويت, اذا كتب الكلمه او جزء من الكلمه يرد عليه . Link to comment
#1Topro Posted July 2, 2016 Share Posted July 2, 2016 ^ لا اتوقع انه يبي مثل ما سويت, اذا كتب الكلمه او جزء من الكلمه يرد عليه . يبي مثلا هو كاتب هنا السلامم عليكم لو كتبها السلام عليكم تيجي ََََ! فهمت ؟ او سلام Link to comment
فاّرس Posted July 2, 2016 Share Posted July 2, 2016 ^ اللي فهمته مثلاً اذا كتبت السلام يطلع وعليكم السلام ولو كتب السلام عليكم نفس الكلام, ويقدر يضيف اكثر من مفتاح للجدول كذا : que = { ['السلام,سلام,عليكم'] = 'وعليكم السلام', } Link to comment
Mr.CoR Posted July 2, 2016 Share Posted July 2, 2016 عههههههههههههههههههههههههههههههههههههه Link to comment
#1Topro Posted July 2, 2016 Share Posted July 2, 2016 عههههههههههههههههههههههههههههههههههههه ربنا يهدي Link to comment
MR.GRAND Posted July 2, 2016 Share Posted July 2, 2016 Table = { { 'السلام عليكم', 'وعليكم السلام' } } for _, value in ipairs( Table ) do if string.find( sourceString, value[1] ) then . . . end end الحين هذا كود نفس كودك بعطيك مثال على ال string.find فــ بالحالة اللي موجودة راح يبحث بالقيمة value عن السترنق كامل : السلام عليكم بس لو نبيه حتى لو قال السلام بس تجي ؟ نسوي كذا Table = { { 'السلام', 'وعليكم السلام' } } فــ كذا راح يسوي string.find ولو تم ايجاد السترنق : السلام راح يسوي الشيء اللي تبغاه اتمنى انك فاهم والباقين عارفين هالشيء Link to comment
فاّرس Posted July 2, 2016 Share Posted July 2, 2016 ^ هو قصده اكثر من كلمه مثلا لو كتب سلام السلام السلام عليكم تطلع نفس القيمه, ما يقصد اللي انت سويته, شتفهم ولا اهبدك Link to comment
#1Topro Posted July 2, 2016 Share Posted July 2, 2016 ^ هو قصده اكثر من كلمه مثلا لو كتب سلام السلام السلام عليكم تطلع نفس القيمه, ما يقصد اللي انت سويته, شتفهم ولا اهبدك عجبني سلام السلام السلام عليكم Link to comment
N3xT Posted July 2, 2016 Author Share Posted July 2, 2016 بالظبط ي شاطح كودك ظبط ، لكن فيه مشكلة اللي هي لو قلت مثلا السلام عليكم كاملة يرد عليك وعليكم السلام مرتين , وإذا قلت السلام يرد عليك مرة وحدة Link to comment
فاّرس Posted July 2, 2016 Share Posted July 2, 2016 المعذره نسيت ااوقف الجدول مع اني متأكد ان سويت كذا الزهايمر وما يفعل بعد الاند اللي بسطر 12 حط بريك وخلاص للمعلوميه ما يصلح تحط فراغات ف الجدول يعني كذا que = { ['سلام, السلام عليكم'] = 'وعليكم السلام', } لازم مايكون فيه فراغات بين الفواصل وبالتوفيق. Link to comment
N3xT Posted July 2, 2016 Author Share Posted July 2, 2016 مشكورين جميعاً بس عندي إستفسار بسيط ، لو مثلا أبيه لازم يحصل كلمتين بالشات عشان يرد يعني مثلاً السلام عليكم اذا كتبتها يطلع بالشات وعليكم السلام ورحمة الله وبركاته أبيه يتحقق إنه حصل كلمتين بالشات متوفرة بالجدول ، لكن إذا كانت كلمة واحدة فقط ما يرد Link to comment
فاّرس Posted July 3, 2016 Share Posted July 3, 2016 طيب دام انك تبيها لازم يكتب كلمتين ليه ما تخلي الجدول كذا que = { ['السلام عليكم'] = 'وعليكم السلام ورحمة الله وبركاته', } ...وقروشه split وبدون ع العموم كل واحد وله طريقته, بخصوص طلبك عندي طريقه بس مادري هل هي بتنفع او لا لأن اللعبه مب عندي عشان اجرب ... timer, que = {}, { ['السلام,سلام,عليكم'] = 'وعليكم السلام ورحمة الله وبركاته', } addEventHandler("onPlayerChat",root, function(msg,type) for k,v in pairs( que ) do for n,s in ipairs ( split ( k, ',' ) ) do if msg:find( s ) then if not t then t = {}; t [ source ] = 0; end t [ source ] = t [ source ] + select ( 2, (s):gsub("%S+","") ) if t [ source ] == 2 and type == 0 then t [ source ] = 0; if isTimer ( timer [ source ] ) then destroyElement ( timer [ source ] ) timer [ source ] = nil; end timer [ source ] = setTimer(outputChatBox,100,1,v,root,0,0,0,true) end end end end end) جرب ورد لي خبر 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