Jump to content

مشكلة بسيطة,


Adham

Recommended Posts

السلام عليكم ورحمه الله وبركاته

عندي مود توب بار كل م أجي اسوي رسالات كثيره بالتوب بار

يظهر بالديق بق كألتي :

ERROR: topbarchat/Client.lua:10 attempt to perform arithmectic on field '?' ( a nil value )

السطر الفيه الخطأ

function drawMessages()
    for index, Message in pairs(dxMessages) do
        dxDrawRectangle    (( x / 800 ) * 250, ( y / 900 ) * dxMessagesY[index], ( x / 1440 ) * 1160, ( y / 900 ) * 25, tocolor(0, 0, 0, 100))
        dxDrawText    ( Message[1], ( x / 800 ) * 265, ( y / 900 ) * ( dxMessagesY[index] * 2 ), ( x / 1440 ) * 1250, ( y / 900 ) * 25, tocolor(Message[2], Message[3], Message[4], 255), (x / 1440) * 1.8, "default-bold", "left", "center", true, false, false, true )
    end
end
addEventHandler("onClientRender", root, drawMessages)

السطر رقم 10 الهوأ

 dxDrawRectangle    (( x / 800 ) * 250, ( y / 900 ) * dxMessagesY[index], ( x / 1440 ) * 1160, ( y / 900 ) * 25, tocolor(0, 0, 0, 100))

 

Link to comment
11 hours ago, MR.GRAND said:

dxMessages = table
but
dxMessagesY = ?

 

مافرقت استعمل الاندكس هو ..
 

 

11 hours ago, -Le[3]bA. said:

السلام عليكم ورحمه الله وبركاته

عندي مود توب بار كل م أجي اسوي رسالات كثيره بالتوب بار

يظهر بالديق بق كألتي :

ERROR: topbarchat/Client.lua:10 attempt to perform arithmectic on field '?' ( a nil value )

السطر الفيه الخطأ


function drawMessages()
    for index, Message in pairs(dxMessages) do
        dxDrawRectangle    (( x / 800 ) * 250, ( y / 900 ) * dxMessagesY[index], ( x / 1440 ) * 1160, ( y / 900 ) * 25, tocolor(0, 0, 0, 100))
        dxDrawText    ( Message[1], ( x / 800 ) * 265, ( y / 900 ) * ( dxMessagesY[index] * 2 ), ( x / 1440 ) * 1250, ( y / 900 ) * 25, tocolor(Message[2], Message[3], Message[4], 255), (x / 1440) * 1.8, "default-bold", "left", "center", true, false, false, true )
    end
end
addEventHandler("onClientRender", root, drawMessages)

السطر رقم 10 الهوأ


 dxDrawRectangle    (( x / 800 ) * 250, ( y / 900 ) * dxMessagesY[index], ( x / 1440 ) * 1160, ( y / 900 ) * 25, tocolor(0, 0, 0, 100))

 

خطأك واضح زي ماتقول انه في جدول بهالأسم 
dxMessagesY
ومشكلتك تظهر فقط عند اضافة رسائل كثيرة ,
بالعادة مشكلتك بتكون اذا سويت 5 رسائل ومافوق 

ومستعمل جلب القيمة من عبر الاندكس بهالشكل

dxMessagesY[index]
فالي تسويه لما يوصل عند الرسالة الخامسة مثلاً
وانت في جدولك مافي الا اربع قيم 

وتحاول تجيب القيمة الخامسة وبيرجع لك نيل
عشان اوضحها اكثر ,
انت جبت قيمة غير موجودة اساساً ! , فايرجع لك نيل 
لان لما يوصل عند الرسالة الخامسة 
راح يصير كذا بسطر الي فيه المشكلة

 

 dxDrawRectangle    (( x / 800 ) * 250, ( y / 900 ) * dxMessagesY[index], ( x / 1440 ) * 1160, ( y / 900 ) * 25, tocolor(0, 0, 0, 100))
-- في حين ان
-- dxMessagesY[index] == nil,
-- dxMessagesY[5] == nil

وطبعاً هالكلام ينطبق لخمسة ومافوق والحل بسيط جداً 
اما انك تكتب فقط -25 بدون ماتتعب نفسك وتكرر او تعدل الكود الى :

 

function drawMessages()
    for index, Message in pairs(dxMessages) do
		local dxMessageY = ( index % 4 == 0 and dxMessagesY[1] or dxMessagesY[index % 4] )
        dxDrawRectangle    (( x / 800 ) * 250, ( y / 900 ) * dxMessageY, ( x / 1440 ) * 1160, ( y / 900 ) * 25, tocolor(0, 0, 0, 100))
        dxDrawText    ( Message[1], ( x / 800 ) * 265, ( y / 900 ) * ( dxMessageY * 2 ), ( x / 1440 ) * 1250, ( y / 900 ) * 25, tocolor(Message[2], Message[3], Message[4], 255), (x / 1440) * 1.8, "default-bold", "left", "center", true, false, false, true )
    end
end
addEventHandler("onClientRender", root, drawMessages)


 

Edited by iMr.WiFi..!
Link to comment
Quote

مافرقت استعمل الاندكس هو ..

Quote

عندي مود توب بار كل م أجي اسوي رسالات كثيره بالتوب بار

واضح إنه لما يسوي رسائل كثيرة تجي أرقام إندكس مو مضبوطة مع التيبل ويصير الخلل
لذلك قلتله انت حاط اندكس جدول آخر .
9_9

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