Çàêðûòü Ïðèâåò! Åñëè âû ÷èòàåòå ýòî - Âû åùå íå çàðåãèñòðèðîâàíû. Ýòî çàéìåò íå áîëüøå ìèíóòû. Íàæìèòå çäåñü, ÷òîáû ïðîéòè ðåãèñòðàöèþ â íåñêîëüêî ïðîñòûõ øàãîâ, ÷òîáû ïîëüçîâàòüñÿ âñåìè âîçìîæíîñòÿìè íàøåãî ôîðóìà. Îáðàòèòå âíèìàíèå, çàïðåùåíû íåïðèñòîéíûå, ìàòåðíûå, áåññìûñëåííûå (öèôðû, ñëó÷àéíûé íàáîð áóêâ) íèêè. Óäà÷è!

Ðåêëàìà






Ïðåäñòàâëÿþ âàøåìó âíèìàþ ñîîáùåñòâî ñ êîíñóëüòàòèâíûìè óñëóãàìè "×åñòíàÿ LEAGUE"
Ïèñàòü ïî ïîâîäó ðåêëàìû VK: vk.com/sergey68

Áàííåð 768õ90 - 1000ð,468õ60 - 500ð,òåêñò 300ð
** Êàê ïîëó÷èòü V.I.P --> ÊËÈÊ **

Òåìà: Ñîçäàíèå RolePlay ìîäà íà MySql #1

Ïîêàçàíî ñ 1 ïî 1 èç 1

  1. #1
    Çàðåãèñòðèðîâàíûé

    Àâàòàð äëÿ Zzzerl

    Ñòàòóñ: Îôôëàéí
    Ðåãèñòðàöèÿ:29.09.2017
    Ñîîáùåíèé:8
    Ðåïóòàöèÿ:7 [+/-] 

    Ñîçäàíèå RolePlay ìîäà íà MySql #1

    Ïðèâåòñòâóþ âñåõ íà ïîðòàëå P-I Ñåãîäíÿ ÿ íà÷íó ñïèñîê óðîêîâ î òîì êàê ñîçäàòü ñâîé ïîëíîöåííûé RolePlay ïðîåêò â Rage MP.

    Âíèìàíèå! Â ýòîì óðîêå ÿ íå áóäó ïîêàçûâàòü êàê äåëàòü êðàñèâûå ôîðìû àâòîðèçàöèè è òï. ß íå äèçàéíåð, ÿ ñêðèïòåð-ïðîãðàììèñò. Íî ÿ ïîêàæó êàê àäàïòèðîâàòü ëþáóþ íàéäåííóþ èç èíòåðíåòà =)

    ×òî æ... íà÷íåì =)

    1. Äëÿ íà÷àëà íàì íóæíî ðàçîáðàòüñÿ ñ áàçîé äàííûõ

    Îòêðûòü ñïîéëåð

    Åñëè ó âàñ íåò MySql íà ïê, òî êà÷àåì ÒÛÊ èëè ìîæíî ñêà÷àòü öåëûé ïàêåò ïðîãðàìì(êàê ÿ) êà÷àåì OpenServer ÒÛÊ íå áóäó îñòàíàâëèâàòüñÿ íà ýòîì, óðîêîâ êó÷à ïî áàçàì, ïîýòîìó èäåì äàëüøå.


    1. Ñîçäàåì áàçó äàííûõ. äîïóñòèì mybase.
    2. Ñîçäàåì òàáëèöó â êîòîðîé áóäåì õðàíèòü äàííûå ïîëüçîâàòåëåé users.
    3. Äîáàâëÿåì ñëåäóþùèå ñòîëáöû â òàáëèöó users: id òèïà int ñ êëþ÷îì AUTO_INCREMENT, name òèïà VARCHAR, email òèïà VARCHAR, password òèïà VARCHAR, money òèïà int

    Ãîòîâî!
    [Ñêðûòü]


    2. Òåïåðü íàì íåîáõîäèìî ïîäãîòîâèòü âñ¸ äëÿ ðàáîòû.

    Îòêðûòü ñïîéëåð


    Ñêà÷èâàåì ïàêåòû äëÿ ñåðâåðà

    Êà÷àåì è óñòàíàâëèâàåì nodejs ÒÛÊ

    1. Îòêðûâàåì êîíñîëü, è ïåðåõîäèì ê ïàïêå ñ ñåðâåðîì êîìàíäîé: cd dir (âìåñòî dir ââîäèòå ïóòü ê ñåðâåðó, â ìîåì ñëó÷àå) cd C:\RAGEMP\server-files
    2. Èíèöèàëèçèðóåì npm package.json ôàéë: npm init -y
    3. Óñòàíàâëèâàåì íåîáõîäèìûå íàì ïàêåòû: npm install mysql

    Ñîçäàåì js ôàéëû â ïàïêàõ

    1. â client_packages: index.js,login.js è ïàïêó login. Â ïàïêå login ìû ñîçäàåì ïàïêó js, â íåé ôàéë main.js
    2. â packages: ñîçäàåì ïàïêó roleplay â íåé ìû ñîçäàåì ôàéëû: index.js - ãëàâíûé ôàéë, mysql.js - ôàéë óïðàâëåíèÿ áàçîé, events.js - äëÿ ôóíêöèé
    [Ñêðûòü]


    3. Ïåðåéäåì íåïîñðåäñòâåííî ê íàïèñàíèþ êîäà.

    Îòêðûòü ñïîéëåð

    Ïåðâûì äåëîì íàïèøåì ñêà÷àåì âèçóàëüíóþ ÷àñòü òóò ÒÛÊ, èäåì â ïàïêó client_packages\login è ðàñïàêîâûâàåì ñîäåðæèìîå, äîëæíî âûãëÿäåòü òàê



    Èäåì â ïàïêó js è îòêðûâàåì ôàéë main.js
    Èùåì ñîáûòèå íàæàòèå êíîïêè Àâòîðèçàöèÿ â ìîåì ñëó÷àå
    PHP êîä:
    $('.validate-form').on('submit',function(){
            var 
    check true;

            for(var 
    i=0i<input.lengthi++) {
                if(
    validate(input[i]) == false){
                    
    showValidate(input[i]);
                    
    check=false;
                }
            }
            return 
    check;
        }); 
    È äîáàâëÿåì
    PHP êîä:
    if(check){
                
    let email document.getElementById("email").value
                let pass 
    document.getElementById("pass").value
                mp
    .trigger("loginDataToServer"emailpass0); //îòïðàâëÿåì äàííûå ôîðìû íà êëèåíò
            

            else {
                
    console.log("Îøèáêà");
            } 
    â èòîãå ïîëó÷àåòñÿ
    PHP êîä:
    $('.validate-form').on('submit',function(){
            var 
    check true;

            for(var 
    i=0i<input.lengthi++) {
                if(
    validate(input[i]) == false){
                    
    showValidate(input[i]);
                    
    check=false;
                }
            }
            if(
    check){
                
    let email document.getElementById("email").value
                let pass 
    document.getElementById("pass").value
                mp
    .trigger("loginDataToServer"emailpass0); //îòïðàâëÿåì äàííûå ôîðìû íà êëèåíò
            

            else {
                
    console.log("Îøèáêà");
            }
            return 
    check;
        }); 
    Èäåì â ïàïêó client_packages è îòêðûâàåì ôàéë index.js
    PHP êîä:
    require("login.js"); //óêàçûâàåì ôàéë àâòîðèçàöèè
    mp.gui.chat.show(true); //îòîáðàæàåì ÷àò
    mp.gui.chat.activate(false);//îòêëþ÷àåì ÷àò 
    Èäåì â ôàéë login.js è ïèøåì
    PHP êîä:
    var loginBrowser mp.browsers.new("package://login/index.html"); //ñîçäàåì ëîêàëüíóþ ïåðåìåííóþ áðàóçåðà è óêàæåì ññûëêó íà íàøó ôîðìó. Ïîñëå òîãî êàê ðåñóðñû ñêà÷àþòñÿ, àâòîìàòè÷åñêè ñðàáîòàåò ñêðèïò index.js à çàòåì login.js òî åñòü çàïóñòèòüñÿ íàøà ôîðìà
    mp.gui.cursor.show(truetrue); //âêëþ÷àåì êóðñîð
    mp.events.add("loginDataToServer", (emailpassstate) => { //ñëóøàåì äàííûå ñ ôîðìû àâòîðèçàöèè
         
    mp.events.callRemote("sendDataToServer"emailpassstate); //îòïðàâèì äàííûå íà ñåðâåð
    });
    mp.events.add("loginHandler", (handle) => { //ñëóøàåì äàííûå ñ ñåðâåðà
       
    switch(handle){
            case 
    "success"//åñëè àâòîðèçîâàëñÿ óñïåøíî
        
    {
                  
    loginBrowser.destroy(); //çàêðûâàåì áðàóçåð ñ ôîðìîé
                  
    mp.gui.chat.push("Âû óñïåøíî àâòîðèçîâàëèñü"); //ïèøåì ñîîáùåíèå î àâòîðèçàöèè
                  
    mp.gui.chat.activate(true); //àêòèâèðóåì ÷àò
              
    mp.gui.cursor.show(falsefalse); //ïðÿ÷åì êóðñîð
                  
    break;
            }
       }
    }); 
    Äàëåå ïåðåõîäèì â ñåðâåðíóþ ÷àñòü packages\roleplay è îòêðûâàåì ôàéë mysql.js è ïèøåì
    PHP êîä:
    "use strict";
    let mysql module.exports//íàñòðàèâàåì ìîäóëü ýêñïîðòà
    console.log('Êîííåêò ê ìóñêóëó...'); //ëîãè

    var mysql2 = require('mysql'); //ïîäêëþ÷àåì ìóñêóë

    mysql.connection mysql2.createConnection({ 
        
    host     'õîñò',
        
    user     'ïîëüçîâàòåëü',
        
    password 'ïàðîëü',
        
    database 'áàçà'
    });
    mysql.connection.connect(function(err) { //ñîçäàåì ïîäêëþ÷åíèå
         
    if(err) { //åñëè îøèáêà ïîäêëþ÷åíèÿ 
          
    console.log("Îøèáêà ïîäêëþ÷åíèÿ ê áàçå äàííûõ...");
          throw 
    err;
          } else {
              
    console.log('Ïîäêëþ÷åíèå ê áàçå, óñïåøíî!'); 
          }
    });
    console.log('Áàçà çàãðóæåíà...');

    setInterval(function() { //ñîçäàåì òàéìåð íà âûáîð òàáëèöû êàæäûå 10 ñåêóíä, ñòðàííàÿ ôèãíÿ, íî åñëè äîëãî íå îòïðàâëÿòü äàííûå íà ñåðâåð ìóñêóëà, òî îíà ðàçðûâàåò ïîäêëþ÷åíèå
        
    mysql.connection.query('select 1', function(errresults) {
        });
    }, 
    10000); 
    Îòêðûâàåì ôàéë events.js è ïèøåì
    PHP êîä:
    var mysql = require('./mysql.js'); // íàø ñêðèïò ìóñêóëà
    //Ýâåíòû
    mp.events.add("playerJoin"checkJoinPlayer); //åñëè èãðîê çàøåë íà ñåðâåð
    mp.events.add("sendDataToServer"sendDataToServer); //ïîëó÷àåì äàííûå ñ êëèåíòà

    //ôóíêöèè
    function checkJoinPlayer(player//åñëè èãðîê çàøåë íà ñåðâåð
    {
        
    console.log(`${player.name} âîøåë íà ñåðâåð.`);
        
    player.loggedInAs "";//ñîçäàåì ïåðåìåííóþ ñåññèè
        
    }
    function 
    sendDataToServer(playeremailpassstate//ïîëó÷àåì äàííûå ñ êëèåíòà
    {
        
    let loggedAccount mp.players.toArray().find(=> p.loggedInAs == email); //ïðîâåðÿåì ñåññèþ
        
    switch(state)
        {
            case 
    0:
            {
                if(
    loggedAccount)//åñëè àâòîðèçîâàí
                
    {
                    
    console.log("Èãðîê óæå àâòîðèçîâàí.");
                }
                else
                {
                    
    mysql.connection.query('SELECT `password`,`name` FROM `users` WHERE `email` = ?', [email], function(errres)
                    {
                        if(
    res.length 0)//åñëè àêêàóíò åñòü
                        
    {
                            
    let sqlPass res[0]["password"];
                            
    let sqlName res[0]["name"];
                            if(
    sqlPass == pass//åñëè ââåäåííûé ïàðîëü ðàâåí èç áàçû òî
                            
    {
                                
    player.name sqlName//óñòàíàâëèâàåì íèê èãðîêà
                                
    player.call("loginHandler", ["success"]); //îòïðàâëÿåì äàííûå íà êëèåíò
                                
    loadAccount(player);//çàãðóæàåì àêêàóíò
                            
    }
                        }
                    });
                }
            }
        }
    }
    function 
    loadAccount(p)
    {
        
    mysql.connection.query('SELECT * FROM `users` WHERE name = ?', [p.name], function(errresrow){
             if(
    errconsole.log(err);
             if(
    res.length)
             {
                
    p.loggedInAs res[0]["email"]; //Ñîçäàåì ñåññèþ èãðîêà
             
    }
        });

    Äàëåå èäåì â ôàéë index.js è äîáàâëÿåì ññûëêè
    PHP êîä:
    require('./events.js'); //Ýâåíòû 
    [Ñêðûòü]

    4. Íàñòðîéêà ñåðâåðà è çàïóñê

    Îòêðûòü ñïîéëåð


    Èäåì â ïàïêó ñ ñåðâåðîì è îòêðûâàåì conf.json
    PHP êîä:
    {
        
    "maxplayers" 100//ìàêñ ÷èñëî èãðîêîâ
        
    "name" "Pawno-info"//íàçâàíèå ñåðâåð
        
    "gamemode" "roleplay"//ãåéììîä
        
    "stream-distance" 500.0//äèñòàíöèÿ ïðîðèñîâêè âðîäå
        
    "announce" false//âèäíî ëè ñåðâåð â ïîèñêå
        
    "csharp" "disabled"//çàáûë....
        
    "port"22005//ïîðò
        
    "language""ru"//ÿçûê
        
    "url":"http://pawno-info.ru/"//ñàéò
        
    "voice-chat"true//âîèñ ÷àò
        
    "voice-chat-sample-rate"48000 //òèêðåéò âîèñà

    Çàïóñêàåì ñåðâåð è òåñòèì =)

    [Ñêðûòü]

    Ýòî ìîÿ ïåðâàÿ òåìà, ÿ ïëîõî óìåþ îáúÿñíÿòü. Ïîýòîìó åñëè ÷òî-òî çàáûë òî æåëàòåëüíî äàéòå ìíå çíàòü, äîïîëíþ. Åñëè çàéäåò ýòà òåìà, òî ïðîäîëæó äåëàòü óðîêè ïî Rage MP. À â ñëåäóþùåì óðîêå ïëàíèðóåòñÿ, ñîçäàíèå ïåðñîíàæà è ñïàâí èãðîêà
  2. 1 ïîëüçîâàòåëü ñêàçàë cïàñèáî Zzzerl çà ýòî ïîëåçíîå ñîîáùåíèå:

    me0w (02.09.2019)

Ïîëüçîâàòåëè, êîòîðûå ÷èòàëè ýòó òåìó: 66

Âàøè ïðàâà

  • Âû íå ìîæåòå ñîçäàâàòü íîâûå òåìû
  • Âû íå ìîæåòå îòâå÷àòü â òåìàõ
  • Âû íå ìîæåòå ïðèêðåïëÿòü âëîæåíèÿ
  • Âû íå ìîæåòå ðåäàêòèðîâàòü ñâîè ñîîáùåíèÿ
 îáÿçàííîñòè Àäìèíèñòðàöèè íå âõîäèò êîíòðîëü ëåãàëüíîñòè èëè íåëåãàëüíîñòè ïåðåäàâàåìîé èíôîðìàöèè (ëþáîé, âêëþ÷àÿ, íî íå îãðàíè÷èâàÿñü, èíôîðìàöèåé ïåðåäàâàåìîé ìåæäó ïîëüçîâàòåëÿìè, âíóòðåííåé ïåðåñûëêè èíôîðìàöèè â âèäå ðàçëè÷íûõ ññûëîê, òåêñòîâ èëè àðõèâîâ), îïðåäåëåíèå ïðàâ ñîáñòâåííîñòè èëè çàêîííîñòè ïåðåäà÷è, ïðèåìà èëè èñïîëüçîâàíèÿ ýòîé èíôîðìàöèè.
Àäìèíèñòðàöèÿ íå íåñ¸ò íèêàêîé îòâåòñòâåííîñòè çà ïîëüçîâàòåëåé è ìîäåð ñîñòàâ ôîðóìà!
÷èòû õàêè samp-rp advanvce ñêà÷àòü pawn ñêðèïòèíã ìîäû ñêðèïòû ãàðàíò s0beit cs 1.6 0.3x ÷èòû World of Tanks Áàãè samp-rp,÷èòû samp-rp,àêêàóíòû ñàìï-ðï Ñêðèïòèíã PAWNO SA-MP IV-MP MTA óðîêè ïîìîùü ñîçäàíèå ñåðâåð ìîäû ñêðèïòû ïëàãèíû cleo ÷èòû ÷èòèíã ñîáåéò s0beit sobeit ìîäû äëÿ sa-mp ñêðèïòû äëÿ sa-mp pawno ñêðèïòèíã pawno ñêðèïòû pawno ìîäû iv-mp ñêðèïòèíã iv-mp ñêðèïòû iv-mp ìîäû ìîä godfather Ìîäû SAMP êàê óñòàíîâèòü ìàøèíû äëÿ gta 4 Ìîäû ãòà 4 Ìîäû GTA 4 ñêà÷àòü ìîäû äëÿ GTA 4 ñêðèïòû è ìîäû GTA 4 ñêà÷àòü ñêðèïòû SAMP ìîäû SAMP íà ðóññêîì ÿçûêå ãäå ìîæíî ñêà÷àòü Pen1 LS ñêà÷àòü Pen1 Fugitive ñêà÷àòü The Godfather rp roleplay samp-rp ñêà÷àòü áåñïëàòíî ñîçäàòü sa-mp ñåðâåð ñîçäàòü ìîä sa-mp ñîçäàòü ñêðèïò â pawno gta-iv gta-v gta-sa gta-3 gta-III gta-4 gta-5 gta-vc mta mta-dm mta-race mta-sa pawno èíôî info èíôîðìàöèÿ ru ïîìîùü â pawno îøèáêè pawno ñåðâåð ïàâíî gta-iv êðýê gta-iv ïàò÷ gta-v äåìî gta-v òðåéëåð gta-iv keygen ñêðèïòû gta sa gta 4 multiplayer gta san adnreas multiplayer sa-mp forum ôîðóì î sa-mp ôîðóì î pawno ðóññêèé sa-mp ðóññêîå pawno ðóñèôèêàòîð ðåêëàìà ðàñêðóòêà ñåðâåðà ïèàð ñåðâåðà sa-mp ìîíèòîðèíã gta-sa îøèáêè â pawno pawno errors sa-mp 0.3c SA-MP 0.3d Èãðàòü â ãòà ïî ñåòè ìîäû äëÿ ñàìïà ñêðèïòû ñàìï Ìîäû ãòà 4 Ìîäû GTA 4 ñêà÷àòü ìîäû äëÿ GTA 4 ñêðèïòû è ìîäû GTA 4 ñêà÷àòü ñêðèïòû SAMP ìîäû SAMP íà ðóññêîì ÿçûêå ãäå ìîæíî ñêà÷àòü Pen1 LS ñêà÷àòü Pen1 Fugitive ñêà÷àòü The Godfather Âñå ìîäû SAMP ó íàñ âçëîì âê hack rat android instagram twitter õàê õàêåð ëàéôõàê ðûíîê ïðîäàæà ddos çàùèòà óñëóãè àäìèíèñòðàòîð root linux ubuntu mac android àíäðîèä ïðîøèâêà áåç îãðàíè÷åíèé advance arizona ÷èòû 4g áåçëèìèò