Jump to content

مطلوب شرح


Recommended Posts

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

اليوم ابي شرح كيف اسوي زر داخل لوحة لفتح لوحة اخري ولاكن بمود تاني

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

Link to comment

وعليكم السلام ورحمة الله وبركاته بنسبة لشرح :

بسم الله نبدأ على بركة الله /

المتطلبات او الفنكشنات :

  
'onClientGUIClick' -- حدث عند ضغط  
guiSetVisible -- x2 ااستخدامه مرتين 
  

مثال :

  
wnd1 = guiCreateWindow(...) -- صنعنا النافذة الاولى 
wnd2 = guiCreateWindow(...) -- صنعنا النافذة الثانية  
BtnWarp = guiCreateButton(...) -- صنعنا زر في النافذة الاولى 
guiSetVisible(wnd1,true) -- نفتح النافذة الاولى 
guiSetVisible(wnd2,false) -- نقفل النافذة الثانية 
addEventHandler("onClientGUIClick",root,function () -- حدث عند الضغط 
if source == BtnWarp then -- نتحقق اذا ضغط الزر  
guiSetVisible(wnd2,true) -- نتفتح النافذة الثانية 
guiSetVisible(wnd1,false) -- نقفل النافذة الاولى 
end -- end لل تحقق 
end -- end لل فنكشن 
) -- قوس قفل الحدث 
  

وكذا نختم الشرح بتمني لك النجاح وتوفيق وفهم الدرس وعيه

Link to comment
وعليكم السلام ورحمة الله وبركاته بنسبة لشرح :

بسم الله نبدأ على بركة الله /

المتطلبات او الفنكشنات :

  
'onClientGUIClick' -- حدث عند ضغط  
guiSetVisible -- x2 ااستخدامه مرتين 
  

مثال :

  
wnd1 = guiCreateWindow(...) -- صنعنا النافذة الاولى 
wnd2 = guiCreateWindow(...) -- صنعنا النافذة الثانية  
BtnWarp = guiCreateButton(...) -- صنعنا زر في النافذة الاولى 
guiSetVisible(wnd1,true) -- نفتح النافذة الاولى 
guiSetVisible(wnd2,false) -- نقفل النافذة الثانية 
addEventHandler("onClientGUIClick",root,function () -- حدث عند الضغط 
if source == BtnWarp then -- نتحقق اذا ضغط الزر  
guiSetVisible(wnd2,true) -- نتفتح النافذة الثانية 
guiSetVisible(wnd1,false) -- نقفل النافذة الاولى 
end -- end لل تحقق 
end -- end لل فنكشن 
) -- قوس قفل الحدث 
  

وكذا نختم الشرح بتمني لك النجاح وتوفيق وفهم الدرس وعيه

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

اليوم ابي شرح كيف اسوي زر داخل لوحة لفتح لوحة اخري ولاكن بمود تاني

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

Link to comment

^

ماشفت طيب نشرح مره تانيةة !

بسم الله نبدأ على بركة الله :

المتطلبات او الفنكشنات :

  
addCommandHandler -- سوي اسم لل كوماند في المود ويوم يكتب الكلمة يفتح له المود 
executeCommandHandler -- نستعمل الكوماند 
[lua] 
  
Ex : 
[lua] 
-- نحط هذا الكود عند المود 
addCommandHandler("OnClickPanel",function ( Plr ) -- نسوي عند كتابة كلمة في اف 8ونجيب اللاعب 
triggerClientEvent(Plr,"OnWin",Plr) -- نسوي ترايقر للكلنت 
end) 
  
-- Client 
addEvent("OnWin",true) -- نفعل الحدث  
addEventHandler("OnWin",root,function( ) -- نستقبله 
if guiGetVisible(اسم النافذة) == true then -- نتحقق اذا كانت النافذة موجودة 
guiSetVisible(اسم النافذة,false) -- اذا كانت موجودة بيقفل النافذة وبيلغي الماوس 
showCursor(false) 
else 
guiSetVisible(اسم النافذة,true) -- وهذا العكس 
showCursor(true) 
end 
end) 
  

بعد ما تضيف ذذ في المود سوي كذا

زي ما ذكرنا في المتطلبات :

  
'onClientGUIClick' -- حدث عند ضغط 
guiSetVisible -- x2 ااستخدامه مرتين 
  

ونسوي عند حدث ضغط الزر ثم نتحقق من الزر ثم نستعمل الكلمة بواسطة

  
executeCommandHandler 
  

Ex :

  
wnd1 = guiCreateWindow(...) -- كما ذكرنا في سابق 
btn1 = guiCreateButton(...) -- ... 
guiSetVisible(wnd1,true) -- نفتح ال نافذة 
addEventHander("onClientGUIClick",root, -- حدث عند ضغط شيء ما 
function () -- وظيفة 
if source == btn1 then -- نتحقق انه ضغط btn1 
guiSetVisible(wnd1,false) -- نقفل النافذة 
executeCommandHandler("onClickPanel",source) -- نستعمل كوماند onClickPanel 
end -- End لل تحقق 
end -- End لل فنكشن 
) 
  

وكذا نختم الشرح بتمني لك النجاح وتوفيق وفهم الدرس وعيه

Link to comment

بالنسبة للكود حقك ذا مداك تحطه كلنت فقط ليه كلنت وسيرفر؟

-- نحط هذا الكود عند المود 
addCommandHandler("OnClickPanel",function ( Plr ) -- نسوي عند كتابة كلمة في اف 8ونجيب اللاعب 
triggerClientEvent(Plr,"OnWin",Plr) -- نسوي ترايقر للكلنت 
end) 
  
-- Client 
addEvent("OnWin",true) -- نفعل الحدث 
addEventHandler("OnWin",root,function( ) -- نستقبله 
if guiGetVisible(اسم النافذة) == true then -- نتحقق اذا كانت النافذة موجودة 
guiSetVisible(اسم النافذة,false) -- اذا كانت موجودة بيقفل النافذة وبيلغي الماوس 
showCursor(false) 
else 
guiSetVisible(اسم النافذة,true) -- وهذا العكس 
showCursor(true) 
end 
end) 

التصحـيح مع الاختصـار:

-- جانـب الكلنت--

addCommandHandler("OnClickPanel",function() 
    guiSetVisible(not guiGetVisible(اسم النافذة)) 
    showCursor(guiGetVisible(اسم النافذة)) 
end) 

وبالنسبة لكودك هذا

wnd1 = guiCreateWindow(...) -- كما ذكرنا في سابق 
btn1 = guiCreateButton(...) -- ... 
guiSetVisible(wnd1,true) -- نفتح ال نافذة 
addEventHander("onClientGUIClick",root, -- حدث عند ضغط شيء ما 
function () -- وظيفة 
if source == btn1 then -- نتحقق انه ضغط btn1 
guiSetVisible(wnd1,false) -- نقفل النافذة 
executeCommandHandler("onClickPanel",source) -- نستعمل كوماند onClickPanel 
end -- End لل تحقق 
end -- End لل فنكشن 
) 

addEventHandler عندك خطأ في كتابة

. مافيها أرقمنت لاعب بالكلنـت ولو قلنا أنه فيه أرقمنت فـ أنت حطيت أرقمنت اللاعب هو السورس والسورس هو الالمنت الي انضغط عليه executeCommandHandler والوظيفة

التصحيح:

-- جانب الكلنت --

addEventHandler( "onClientGUIClick", resourceRoot, function() 
    if source == btn1 then 
        guiSetVisible(wnd1,false) 
        executeCommandHandler("onClickPanel") 
    end 
end) 

Link to comment
مب افهم ابي احد يشرك و يكتبلي الاكواد الصحيحة

اعتقد كذا اسهل شوف

المود الاول كليينت

window = guiCreateWindow(300, 200, 100, 100, "window", false)--اللوحة الاولى 
button = guiCreateButton(0, 0, 100, 100, "موافق", false, window) -- الزر 
  
function onClick() 
    if (source == button ) then --اذا كان المصدر button  
        triggerServerEvent ( "window", localPlayer ,localPlayer) --ارسل لسيرفر لازام تحدد العنصر وهو localPlayer 
    end 
end 
addEventHandler ( "onClientGUIClick", root,onClick) --عند النقر 
  

المود الاول سيرفر

addEvent( "window", true ) --تفعيل الحدث 
addEventHandler( "window", root, -- اضافة الحدث 
    function(player)  --player العنصر الي حددناه 
        triggerClientEvent (player,"open_window1",player) --هنا ارسلنا حدث لكلينت ونفعل الحدث الي بيستقبله في المود الثاني 
    end 
) 

الموود الثاني كلينت

window1 = guiCreateWindow(300, 300, 100, 100, "window1", false) --اللوحه الثانية 
guiSetVisible (window1,false ) 
addEvent( "open_window1", true ) --فعلنا الحدث الي جا من من سيرفر في هذا المود 
addEventHandler( "open_window1", root,--اضافه 
    function()   
        guiSetVisible (window1,true ) --فتح اللوحهة 
    end 
) 

مجررب

وصلى الله على محمد

ان اصبت فمن الله وان اخطئت فمني ومن الشيطان

Link to comment
مب افهم ابي احد يشرك و يكتبلي الاكواد الصحيحة
 --هذا ب المود رقم 1 الي يضرب الزر 
  
addEventHandler('onClientGUIClick',root, function() 
    if source == GUIEditor.button[1] then --- هنا الزر الي في الوحه رقم 1  الزر الي ههو حدث ضرب الزر 
    showCursor ( false ) -- هنا لم تضرب الزر يسكر الوحه رقم 1 و يفتح 2 او الي انت حدددته و يشيل الموؤشر و يجي الموؤشر حق الوحه 2 
    executeCommandHandler ( "الكلمه الي  لما تضرب الزر يفتح لك لوحه" )  -- هنا الكمه الي حاطه ب الوحه الثاني  الي حاط كلمه فتح من اف8 
    guiSetVisible (GUIEditor.window[1] ,false) --- هنا يسكر الوحه رقم 1  ويفتح رقم 2 يعني يفتح الوحه الي بي المود الثآني 
  end --- نسكر function 
end -- IF 
 )--- هان القوس لو نسيته مراح يشتغل لانه تقفيل للحدث ض2 
  
  
  
  
 -- لوحه  هذا الاكواد الي تحت تنحط بي المود الثاني بس الكلمه الي بي addCommandHandler 
  
  --لزم تنحط فوق بي executeCommandHandler 
  
-- addEventHandler = executeCommandHandler  -  
  
-- هذا كود الكلمه الي تحطه يعني الي لما تضرب الزر يسوي حدث و الزر  يجيب لك ذي الوحه ض2 
  
-- هذا تحطه  حدث فك الوحه حقت المود رقم 2 
addCommandHandler('ااكلمه  الي لم تضرب الزر تطلع لك هنا تحطه',function() 
        guiSetVisible(GUIEditor.window[1], not guiGetVisible(GUIEditor.window[1]))---- اسماء النوافذ 
        showCursor(guiGetVisible(GUIEditor.window[1])) 
    end 
) 
  
---- اذا تبي لم يضرب الزر يطلع له مود تركب المود لكن م تحط له فتح ب زر تحط له فتح ب كلمه في اف8 
---  و تركبه و تسوي زي طريقتي الي هناك هنا الوحه 2 اعتبره موو الوحه 1 اعتبره الزر ض2\ 
  
----  المهم رح تففهم ان شاء الله 
  
  

Link to comment

تقدر تسوي كذا :

ملف كلينت الاول :

function toboolean(x) -- نسوي وظيفه مع برامتر 
     -- البرامتر اللي داخل قوسين الوظيفه وتقدر تستفيد منه كثير 
    if x and not tonumber ( x ) and x == 'false' or x == 'true' then   -- نتحقق انه الاكس موجود والاكس هو الشي اللي كتبه اللاعب ونتحقق انه مايساوي رقم ونتحقق انه يساوي سلسلة نصيه فولس او ترو 
    if x == 'false' then  -- نتحقق اذا كان الاكس يساوي فولس داخل علامة تنصيص 
        x = false  -- نخلي الاكس فولس بدون علامة تنصيص 
    elseif x == 'true' then -- نتحقق ان الاكس يساوي ترو داخل علامة تنصيص 
        x = true  -- نخلي الاكس يساوي ترو بدون علامة تنصيص 
        end  -- نقفل الشرط 
    else -- اذا لم يتحقق الشرط الأول 
            return outputDebugString ( 'bad usage' ) -- /debugscript 3 نطلع كتابة بالديبوق 
    end -- نقفل الشرط 
        return x -- نخلي القيمه اللي تطلع لنا يوم نستخدم الوظيفه هي اكس 
end -- نقفل الوظيفه 
  
  
win = guiCreateWindow(400,200,350,200,"Test",false) -- نسوي لوحة 
guiSetVisible (win, not not var) -- نخليها مخفيه 
 -- not not var : والقيمة اساسا غير موجوده يعني بتكون فولس var بمعنى انه لا يساوي  
  
function openWin(message) -- نسوي وظيفه مع برامتر 
    local message = toboolean ( message ) -- نستخدم الوظيفه اللي سويناها فوق 
    guiSetVisible(win, message) -- نظهر او نخفي اللوحه على حسب اللي يكتبه اللاعب بالوظيفه 
    showCursor(message) -- نظهر او نخفي الماوس على حسب اللي يكتبه اللاعب بالوظيفه 
end -- نقفل الوظيفه 

خلصنا من الكلينت الاول, نروح للميتا :

>    name="script" author="no" version="1.5" />    ="client.lua" type="client" />    function="openWin" type="client"/>  >

^ طبعاً ذا الميتا التابع للكلينت الاول, نروح للكلينت الثاني :

عشان تفتح اللوحه من مود ثاني تسوي كذا:

exports.resource:openWin( state ) 

resource : اسم المود

state : true, false عشان تفتح وتقفل

كـ مثال :

addCommandHandler ( 'show', function (_, state ) 
    if ( state ) then 
        exports.sp:openWin( state ) 
    end 
end) 

F8 : show true, show false اكتب ب اف 8 :

اتمنى وصلت وبالتوفيق .

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