Jump to content

طلب فنكشنات


Recommended Posts

السلام عليكم

سويت لوحة تسجيل

سويت التسجيل والريجستري وكل شيء

الحين الي ابغاه هو :

auto login ابي فنكشنات حق حفظ الاكاونت وال

واذا يحط صح على حفظ الحساب يوم يرجع الحساب يكون محفوظ والباس check boxيعني يكون

والسلام عليكم

Link to comment
onClientGUIClick -- Event 
xmlLoadFile 
xmlCreateFile 
xmlNodeSetValue 
xmlCreateChild 
xmlNodeSetAttribute 
xmlSaveFile 
xmlUnloadFile 
  
onClientResourceStart -- Event 
xmlLoadFile 
xmlFindChild 
xmlNodeGetValue 
  

جبت الموضوع

هذي الفنكشنات

لكن ممكن شرح

xml لأني صرآحة ماعندي خبرة نهائياً بموضوع الـ

Link to comment

loginكود السيرفر حق ال

addEvent("onlogin",true) 
addEventHandler("onlogin",getRootElement(), 
    function (user,pass) 
        local account = getAccount(user,pass) 
        if ( account ) then 
        logIn(source,account,pass) 
    triggerClientEvent(source,"hide",source) 
            else 
            outputChatBox("* Worng Username Or Password",source,255,0,0) 
        end 
    end 
) 

Link to comment
في حفظ بيانات الاعب السرية SQL أفضل استخدام

غير آمن xml

استطيع اخذ كلمة مرور الاعب عن طريق سكربت ملغم فقط

لا تسئلني كيف

XML افضل لك لحفظ الاسم والباسورد واذا عن صاحب السيرفر يقدر يشوف باسورد اللاعب

XML او SQL بيقدر يشوفه

Link to comment
في حفظ بيانات الاعب السرية SQL أفضل استخدام

غير آمن xml

استطيع اخذ كلمة مرور الاعب عن طريق سكربت ملغم فقط

لا تسئلني كيف

XML افضل لك لحفظ الاسم والباسورد واذا عن صاحب السيرفر يقدر يشوف باسورد اللاعب

XML او SQL بيقدر يشوفه

SQL أفضل

قواعدها محمية وبياناتها مشفرة

وأنا ما أرضى واحد يشوف باسورد الاعبين

+

اذ كنت مصر على استخدام xml

فهو رأيك وانا مالي شغل فيك :)

Link to comment

آصنع جدول .

وسو تحقق اذا ظغط زر لوقن ان هو محدد على الشيك بوكس ولا لا

اذا كان محدد

تسوي ترايقر وتضيف الي بـ edit box لـ قاعدة البيانات

واذا مو كان محدد سوي ترآيقر يسجل دخول بدون م يضيف لـ قاعدة البيانات

وفيه كم شيء ناقص م آعرفه آتوقع تسوي يوم يخلص تحميلة تسوي ترايقر يجيب الي بـ قاعدة البيانات تسوي triggerClientEvent

وتسوي

guiSetText

هاذا الي آقدر آقوله <3

Link to comment
loginكود السيرفر حق ال
addEvent("onlogin",true) 
addEventHandler("onlogin",getRootElement(), 
    function (user,pass) 
        local account = getAccount(user,pass) 
        if ( account ) then 
        logIn(source,account,pass) 
    triggerClientEvent(source,"hide",source) 
            else 
            outputChatBox("* Worng Username Or Password",source,255,0,0) 
        end 
    end 
) 

تمام اطرح الكلنت /

Link to comment
addEventHandler("onClientGUIClick",getRootElement(), 
    function () 
        local user = guiGetText(lName) 
        local pass = guiGetText(lPass) 
        local ruser = guiGetText(rName) 
        local rpass = guiGetText(rPass) 
        if ( source == login ) then 
            triggerServerEvent("onlogin",getLocalPlayer(),user,pass) 
        elseif ( source == register ) then 
            triggerServerEvent("onre",getLocalPlayer(),ruser,rpass) 
        end 
    end 
) 

عند الضغط . .

Link to comment

اظهار النافذه

addEventHandler("onClientResourceStart", resourceRoot, 
    function() 
    showChat(false) 
guiSetVisible (wnd, true ) 
guiSetVisible (register, true ) 
guiSetVisible ( login, true ) 
    setTimer ( move, 1000, 1 ) 
    end 
) 

وش تقصد بالثانية وش اطرح

Link to comment

في هذا الكود

-- Client 
    addEventHandler("onClientGUIClick",getRootElement(), 
        function () 
            local user = guiGetText(lName) 
            local pass = guiGetText(lPass) 
            local ruser = guiGetText(rName) 
            local rpass = guiGetText(rPass) 
            if ( source == login ) then 
                triggerServerEvent("onlogin",getLocalPlayer(),user,pass, guiCheckBoxGetSelected ( ........ ) ) 
            elseif ( source == register ) then 
                triggerServerEvent("onre",getLocalPlayer(),ruser,rpass) 
            end 
        end 
    ) 
  

شفت محل النقاط ^

حط بداله تعريف التشيك بوكس حق الدخول التلقائي

يعني مثلاً

checkedBox = guiCreateCheckBox(20,30,150,20,"Checked checkbox",true,false,guiWindow) 

checkedBox خذ

---

-- Client  
addEventHandler ( "onClientResourceStart", resourceRoot, 
    function ( ) 
        triggerServerEvent ( "onCheckAutoLogin", localPlayer ) 
    end 
) 
  
addEvent ( "onOpenLoginWindow", true ) 
addEventHandler ( "onOpenLoginWindow", root, 
    function ( )  
        showChat(false) 
        guiSetVisible (wnd, true ) 
        guiSetVisible (register, true ) 
        guiSetVisible ( login, true ) 
        setTimer ( move, 1000, 1 )   
    end 
) 

-- Server 
local AutoLogin_DB = dbConnect ( "sqlite", "AutoLogin.db" ) 
dbExec ( AutoLogin_DB, "CREATE TABLE IF NOT EXISTS `AutoLogin` (`UserName`, `PassWord`, `Serial`)") 
  
addEvent ( "onCheckAutoLogin", true ) 
addEventHandler ( "onCheckAutoLogin", root, 
    function ( ) 
        local DB = dbPoll ( dbQuery ( AutoLogin_DB, "SELECT * FROM `AutoLogin` WHERE `Serial`=?", tostring(getPlayerSerial ( source )) ), -1 ) 
        if #DB > 0 then  
            local user, pass = tostring(DB[1].UserName), tostring(DB[1].PassWord) 
            local account = getAccount ( user, pass ) 
            if account then          
                logIn ( source, account, pass ) 
                triggerClientEvent ( source, "hide", resourceRoot )              
            else 
                triggerClientEvent ( source, "onOpenLoginWindow", resourceRoot )     
            end 
        else 
            triggerClientEvent ( source, "onOpenLoginWindow", resourceRoot )     
        end 
    end 
) 
  
addEvent ( "onlogin", true ) 
addEventHandler ( "onlogin", root, 
    function ( user, pass, auto ) 
        local account = getAccount ( user, pass ) 
        if account then 
            if logIn ( source, account, pass ) then 
                triggerClientEvent ( source, "hide", resourceRoot ) 
                if auto then 
                    local DB = dbPoll ( dbQuery ( AutoLogin_DB, "SELECT * FROM `AutoLogin` WHERE `Serial`=?", tostring(getPlayerSerial ( source )) ), -1 ) 
                    if #DB > 0 then 
                        dbExec ( AutoLogin_DB, "UPDATE `AutoLogin` SET `UserName`=?,`PassWord`=? WHERE `Serial`=?", tostring(user), tostring(pass), tostring(getPlayerSerial (source)) ) 
                    else 
                        dbExec ( AutoLogin_DB, "INSERT INTO `AutoLogin` VALUES(?,?,?)", tostring(user), tostring(pass), tostring(getPlayerSerial (source)) ) 
                    end 
                else 
                    local DB = dbPoll ( dbQuery ( AutoLogin_DB, "SELECT * FROM `AutoLogin` WHERE `Serial`=?", tostring(getPlayerSerial ( source )) ), -1 ) 
                    if #DB > 0 then                  
                        dbExec ( AutoLogin_DB, "DELETE FROM `AutoLogin` WHERE `Serial`=?", tostring(getPlayerSerial(source)) ) 
                    end 
                end 
            else 
                outputChatBox ( "* Account already in use.", source, 255, 0, 0 ) 
            end 
        else 
            outputChatBox ( "* Worng Username Or Password.", source, 255, 0, 0 ) 
        end 
    end 
) 
  
addCommandHandler ( "disableAuto",  
    function ( player ) 
        local DB = dbPoll ( dbQuery ( AutoLogin_DB, "SELECT * FROM `AutoLogin` WHERE `Serial`=?", tostring(getPlayerSerial ( player )) ), -1 ) 
        if #DB > 0 then                  
            dbExec ( AutoLogin_DB, "DELETE FROM `AutoLogin` WHERE `Serial`=?", tostring(getPlayerSerial(player)) ) 
            outputChatBox ( "* Auto-Login has been disabled.", player, 0, 255, 0 ) 
        end  
    end 
) 

ضفت لك كوماند حق إلغاء الدخول التلقائي

disableAuto

* لم يتم التجربة, رد خبر

Link to comment

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

setAccountData ( getPlayerAccount ( source , "DataName" ,getPlayerSerial(source))

وتعمل حدث اول ما اللاعب يدخل

يسوي تحقق اذا كانت الداتا موجوده يسجل الدخول

وطبعا لازم تحفظ اليوزر والباس

Link to comment
ممكن تسوي أكونت داتا بسريال اللاعب يعني

setAccountData ( getPlayerAccount ( source , "DataName" ,getPlayerSerial(source))

وتعمل حدث اول ما اللاعب يدخل

يسوي تحقق اذا كانت الداتا موجوده يسجل الدخول

وطبعا لازم تحفظ اليوزر والباس

وش تحوس ؟؟

ممكن تقول لي هذا وش فايدتها ؟

getPlayerAccount

ووش الفايده من الداتا اصلا ؟

واكاونت داتا للحساب

يعني لما يسجل دخوله

كيف يسوي اوتو لوقين وهو مسوي لوقين من اول؟ :roll:

Link to comment
يانوب اقولك لما اللاعب يدخل

onPlayerJoin

+

getAccountSerial

+

انا اقدر اسويها بس مابي

اوك ممكن تسويها ابي اتعلم

يانوب اقولك لما اللاعب يدخل

onPlayerJoin

+

getAccountSerial

+

انا اقدر اسويها بس مابي

وانت تقول ويش فايده ذي getPlayerAccount

ذي لما اللاعب يضغط علي الشيك بوكس يسوي ترايقر للسيرفر ويسوي الكود

اها توني اعرف ان هذي هي الترايقر

شكرراً :oops:

Link to comment
ممكن تسوي أكونت داتا بسريال اللاعب يعني

setAccountData ( getPlayerAccount ( source , "DataName" ,getPlayerSerial(source))

وتعمل حدث اول ما اللاعب يدخل

يسوي تحقق اذا كانت الداتا موجوده يسجل الدخول

وطبعا لازم تحفظ اليوزر والباس

فكرتك جميلة

---

يوم يسوي حفظ تسجيل الدخول نحط له الداتا

  
addEvent ( "onlogin", true ) 
addEventHandler ( "onlogin", root, 
    function ( user, pass ) 
        local account = getAccount ( user, pass ) 
        if account then 
            if logIn ( source, account, pass ) then 
                triggerClientEvent ( source, "hide", resourceRoot ) 
                setAccountData ( account, "DataName", getPlayerSerial ( source ) ) 
            end 
        end 
    end 
) 

بعدين يوم بيدخل السيرفر مرة ثانية نجيب الداتا عشان نسجل الدخول

  
addEventHandler ( "onPlayerJoin", root, 
    function ( ) 
        local account = getAccount ( مادري منين اجيبها ) 
        local data = getAccountData ( account, "DataName" ) 
        if data then 
            logIn ( source, account, مادري منين اجيبها ) 
        end 
    end 
) 

انا تورطت هنا ^

أتمنى منك الإفادة العاجلة :(

Link to comment
ممكن تسوي أكونت داتا بسريال اللاعب يعني

setAccountData ( getPlayerAccount ( source , "DataName" ,getPlayerSerial(source))

وتعمل حدث اول ما اللاعب يدخل

يسوي تحقق اذا كانت الداتا موجوده يسجل الدخول

وطبعا لازم تحفظ اليوزر والباس

فكرتك جميلة

---

يوم يسوي حفظ تسجيل الدخول نحط له الداتا

  
addEvent ( "onlogin", true ) 
addEventHandler ( "onlogin", root, 
    function ( user, pass ) 
        local account = getAccount ( user, pass ) 
        if account then 
            if logIn ( source, account, pass ) then 
                triggerClientEvent ( source, "hide", resourceRoot ) 
                setAccountData ( account, "DataName", getPlayerSerial ( source ) ) 
            end 
        end 
    end 
) 

بعدين يوم بيدخل السيرفر مرة ثانية نجيب الداتا عشان نسجل الدخول

  
addEventHandler ( "onPlayerJoin", root, 
    function ( ) 
        local account = getAccount ( مادري منين اجيبها ) 
        local data = getAccountData ( account, "DataName" ) 
        if data then 
            logIn ( source, account, مادري منين اجيبها ) 
        end 
    end 
) 

النتيجة = nil

ليش طيب ؟ شغلي صح ؟

أتمنى منك الإفادة

XXX

وانت تقول ويش فايده ذي getPlayerAccount

ذي لما اللاعب يضغط علي الشيك بوكس يسوي ترايقر للسيرفر ويسوي الكود

ماسويت ترايقر ي اخ عناد لآزم تتعلم الترايقر وبعدين سو :redhotevil:

Link to comment

وانت تقول ويش فايده ذي getPlayerAccount

ذي لما اللاعب يضغط علي الشيك بوكس يسوي ترايقر للسيرفر ويسوي الكود

ماسويت ترايقر ي اخ عناد لآزم تتعلم الترايقر وبعدين سو :redhotevil:

getPlayerAccount اها لازم اسوي تريقر

ThePrInCe أتمنى تصلح الكود يا

لأني أحتاج مساعدتك كثير :(

Link to comment

addEvent ( "onlogin", true ) 
addEventHandler ( "onlogin", root, 
    function ( user, pass ) 
        local account = getAccount ( user, pass ) 
        if account then 
            if logIn ( source, account, pass ) then 
                triggerClientEvent ( source, "hide", resourceRoot ) 
                setAccountData ( account, "autoLogin", toJSON({user, pass})) 
            end 
        end 
    end 
) 
  
addEventHandler ( "onPlayerJoin", root, 
    function ( ) 
        for k,v in ipairs(getAccountsBySerial(getPlayerSerial(source))) 
            local data = getAccountData (v, "autoLogin" ) 
            if data then 
                local json = fromJSON(data) 
                local account = getAccount (getAccountName(v), json[2]) 
                if account then 
                    logIn ( source, account, json[2]) 
                end 
            end 
        end 
    end 
) 

بس اتوقع الطريقة ماهي آمنة

  • Like 1
Link to comment
في هذا الكود
-- Client 
    addEventHandler("onClientGUIClick",getRootElement(), 
        function () 
            local user = guiGetText(lName) 
            local pass = guiGetText(lPass) 
            local ruser = guiGetText(rName) 
            local rpass = guiGetText(rPass) 
            if ( source == login ) then 
                triggerServerEvent("onlogin",getLocalPlayer(),user,pass, guiCheckBoxGetSelected ( ........ ) ) 
            elseif ( source == register ) then 
                triggerServerEvent("onre",getLocalPlayer(),ruser,rpass) 
            end 
        end 
    ) 
  

شفت محل النقاط ^

حط بداله تعريف التشيك بوكس حق الدخول التلقائي

يعني مثلاً

checkedBox = guiCreateCheckBox(20,30,150,20,"Checked checkbox",true,false,guiWindow) 

checkedBox خذ

---

-- Client  
addEventHandler ( "onClientResourceStart", resourceRoot, 
    function ( ) 
        triggerServerEvent ( "onCheckAutoLogin", localPlayer ) 
    end 
) 
  
addEvent ( "onOpenLoginWindow", true ) 
addEventHandler ( "onOpenLoginWindow", root, 
    function ( )  
        showChat(false) 
        guiSetVisible (wnd, true ) 
        guiSetVisible (register, true ) 
        guiSetVisible ( login, true ) 
        setTimer ( move, 1000, 1 )   
    end 
) 

-- Server 
local AutoLogin_DB = dbConnect ( "sqlite", "AutoLogin.db" ) 
dbExec ( AutoLogin_DB, "CREATE TABLE IF NOT EXISTS `AutoLogin` (`UserName`, `PassWord`, `Serial`)") 
  
addEvent ( "onCheckAutoLogin", true ) 
addEventHandler ( "onCheckAutoLogin", root, 
    function ( ) 
        local DB = dbPoll ( dbQuery ( AutoLogin_DB, "SELECT * FROM `AutoLogin` WHERE `Serial`=?", tostring(getPlayerSerial ( source )) ), -1 ) 
        if #DB > 0 then  
            local user, pass = tostring(DB[1].UserName), tostring(DB[1].PassWord) 
            local account = getAccount ( user, pass ) 
            if account then          
                logIn ( source, account, pass ) 
                triggerClientEvent ( source, "hide", resourceRoot )              
            else 
                triggerClientEvent ( source, "onOpenLoginWindow", resourceRoot )     
            end 
        else 
            triggerClientEvent ( source, "onOpenLoginWindow", resourceRoot )     
        end 
    end 
) 
  
addEvent ( "onlogin", true ) 
addEventHandler ( "onlogin", root, 
    function ( user, pass, auto ) 
        local account = getAccount ( user, pass ) 
        if account then 
            if logIn ( source, account, pass ) then 
                triggerClientEvent ( source, "hide", resourceRoot ) 
                if auto then 
                    local DB = dbPoll ( dbQuery ( AutoLogin_DB, "SELECT * FROM `AutoLogin` WHERE `Serial`=?", tostring(getPlayerSerial ( source )) ), -1 ) 
                    if #DB > 0 then 
                        dbExec ( AutoLogin_DB, "UPDATE `AutoLogin` SET `UserName`=?,`PassWord`=? WHERE `Serial`=?", tostring(user), tostring(pass), tostring(getPlayerSerial (source)) ) 
                    else 
                        dbExec ( AutoLogin_DB, "INSERT INTO `AutoLogin` VALUES(?,?,?)", tostring(user), tostring(pass), tostring(getPlayerSerial (source)) ) 
                    end 
                else 
                    local DB = dbPoll ( dbQuery ( AutoLogin_DB, "SELECT * FROM `AutoLogin` WHERE `Serial`=?", tostring(getPlayerSerial ( source )) ), -1 ) 
                    if #DB > 0 then                  
                        dbExec ( AutoLogin_DB, "DELETE FROM `AutoLogin` WHERE `Serial`=?", tostring(getPlayerSerial(source)) ) 
                    end 
                end 
            else 
                outputChatBox ( "* Account already in use.", source, 255, 0, 0 ) 
            end 
        else 
            outputChatBox ( "* Worng Username Or Password.", source, 255, 0, 0 ) 
        end 
    end 
) 
  
addCommandHandler ( "disableAuto",  
    function ( player ) 
        local DB = dbPoll ( dbQuery ( AutoLogin_DB, "SELECT * FROM `AutoLogin` WHERE `Serial`=?", tostring(getPlayerSerial ( player )) ), -1 ) 
        if #DB > 0 then                  
            dbExec ( AutoLogin_DB, "DELETE FROM `AutoLogin` WHERE `Serial`=?", tostring(getPlayerSerial(player)) ) 
            outputChatBox ( "* Auto-Login has been disabled.", player, 0, 255, 0 ) 
        end  
    end 
) 

ضفت لك كوماند حق إلغاء الدخول التلقائي

disableAuto

* لم يتم التجربة, رد خبر

respect .

صرآحة /

انسان طيب ي عناد وربي

كود مثل هذا ماي يعطيه الا فاعلين الخير :mrgreen:

تراهـ حصري لسيرفرك :]

بالتوفيق

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