Peršokti į turinį

[ #1 Tobulo modo pamoka ] Rekordo sistemos kūrimas


Pyazo

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 4004 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Recommended Posts

Sveiki taigi pradėsiu "tobulos modifikacijos" kūrimo proceso aiškinimą. Šiai pamokai pamokinsiu sukurti paprastą MySQL rekordo sistemą. Taigi pradėkime:

  1. Įsirašome Xammp programėlę arba Wamp ( aš naudoju Xammp ), pasileidžiamia ją, tada nuėją adresu http://localhost/phpmyadmin įeiname į jūsų modifikacijos naudoją Duomenų bazę. Tarkim šiuo atveju ji bus Test.
  2. Įėją į duomenų bazę susikuriame naują lentelę:ac7efafa65069117391d2d45a9e4cac169.png
  3. Į Pavadinimas rašome rekordas, laukelių skaičius: 3
  4. Parametrus nustatykit tokius: http://www.part.lt/img/d611ff52a6edbf6d4a4b775e1aa81526530.png
  5. Spauskite išsaugoti ir jums bus sukurta lentelė pavadinimu rekordas.
  6. Taigi mysql dalis baigta pradėkime dirbti su pawno.
  7. Atsidarome savo modifikaciją ir viršuje rašome:
    new playersOnline;


  8. OnPlayerConnect callback'e viršuje rašome:
    playersOnline++;
    


  9. OnPlayerDisconnect callbacke viršuje rašome:
    playersOnline--;


  10. Taigi dabar mums skaičiuos kiek yra prisijungusių žaidėjų ir kai kuris atsijungs automatiškai sumažės ir skaičius.
  11. OnPlayerConnect callback'e oi playersOnline++; rašome:
    if (playersOnline > lastRecord)
    {
        new str[ 200 ];
        format(str, sizeof( str ), "* Pasiektas naujas rekordas: {FF0000}%i{FFFFFF}, senas rekordas:{FF0000}      %i",playersOnline, lastRecord);	
       SendClientMessageToAll(0xFFFFFF, str);
        lastRecord = playersOnline;
        new Year, Month, Day, Hour, Minute, Second;	    getdate( Year, Month, Day );
        gettime( Hour, Minute, Second );
        format( lastRecordDate, sizeof( lastRecordDate ), "%02d/%02d/%d %02d:%02d:%02d", Year, Month, Day, Hour,   Minute, Second );
        UpdatePlayersRecord(lastRecord);
        for( new i; i<MAX_PLAYERS; i++ )
    	 {
    		 GivePlayerMoneyEx( playerid, 1000 );
    		 SendClientMessage( i, 0xFFFFFF, "Gavote 1000LT iš serverio už pasiektą rekordą." );
    	 }
    }
    


  12. Taigi dabar mums atnaujins rekordą, bet iš kur mes jį gausim ir kokia funkcija atnaujins? Šį kodą dėkit modifikacijos pabaigoje:
    stock LoadRecord( )
    {
    new query[ 300 ];
    mysql_query("SELECT * FROM `rekordas` WHERE `ID` > '0'");
    mysql_store_result();
    if (mysql_num_rows())
    {
      while(mysql_fetch_row(query))
      {
       new idas, value2I, value3I[ 30 ];
       sscanf(query, "p<|>iis[30]", idas, value2I, value3I);
    
       lastRecord = value2I;
       format( lastRecordDate, sizeof( lastRecordDate ), "%s",value3I );	
    
      }
    }
    }
    stock UpdatePlayersRecord( naujasrec )
    {
    new
      iQuery[300]
    ;
    new Year, Month, Day, Hour, Minute, Second, date[ 50 ];
    
    getdate( Year, Month, Day );
    gettime( Hour, Minute, Second );
    format( date, 50, "%02d/%02d/%d %02d:%02d:%02d", Year, Month, Day, Hour, Minute, Second );
    format(iQuery, sizeof( iQuery ), "UPDATE `rekordas` SET `Rekordas` = '%i',`Data` = '%s'", naujasrec, date);
    mysql_query(iQuery);
    
    }
    



  13. Viskas turėtų veikti nepamirškite paspausti F5 mygtuko.

Ši pamoka nebuvo skirta aiškinti funkcijas ar pnš., tiesiog supažindinti kaip sukurti rekordo sistemą MySQL. Atsiprašau už lygiavimą, kadangi kai rašai postą taip jau būna.

Pamoka kurta by Carlo.

Rippinti draudžiama!

  • Teigiamai 2
  • Neigiamai 1
Nuoroda į komentarą
Dalintis per kitą puslapį

  • Parašė po 1 mėnesio...
C:\Users\KARABASAS\Desktop\LVKG SAN FIERRO\gamemodes\lvkg.pwn(107) : error 017: undefined symbol "lastRecord"
C:\Users\KARABASAS\Desktop\LVKG SAN FIERRO\gamemodes\lvkg.pwn(110) : error 017: undefined symbol "lastRecord"
C:\Users\KARABASAS\Desktop\LVKG SAN FIERRO\gamemodes\lvkg.pwn(112) : error 017: undefined symbol "lastRecord"
C:\Users\KARABASAS\Desktop\LVKG SAN FIERRO\gamemodes\lvkg.pwn(112) : warning 215: expression has no effect
C:\Users\KARABASAS\Desktop\LVKG SAN FIERRO\gamemodes\lvkg.pwn(115) : error 017: undefined symbol "lastRecordDate"
C:\Users\KARABASAS\Desktop\LVKG SAN FIERRO\gamemodes\lvkg.pwn(115) : error 017: undefined symbol "lastRecordDate"
C:\Users\KARABASAS\Desktop\LVKG SAN FIERRO\gamemodes\lvkg.pwn(115) : error 029: invalid expression, assumed zero
C:\Users\KARABASAS\Desktop\LVKG SAN FIERRO\gamemodes\lvkg.pwn(115) : fatal error 107: too many error messages on one line
Compilation aborted.Pawn compiler 3.2.3664	 Copyright (c) 1997-2006, ITB CompuPhase

7 Errors.

Nuoroda į komentarą
Dalintis per kitą puslapį

  • Parašė po 3 mėnesių...

C:\Users\KARABASAS\Desktop\LVKG SAN FIERRO\gamemodes\lvkg.pwn(107) : error 017: undefined symbol "lastRecord"
C:\Users\KARABASAS\Desktop\LVKG SAN FIERRO\gamemodes\lvkg.pwn(110) : error 017: undefined symbol "lastRecord"
C:\Users\KARABASAS\Desktop\LVKG SAN FIERRO\gamemodes\lvkg.pwn(112) : error 017: undefined symbol "lastRecord"
C:\Users\KARABASAS\Desktop\LVKG SAN FIERRO\gamemodes\lvkg.pwn(112) : warning 215: expression has no effect
C:\Users\KARABASAS\Desktop\LVKG SAN FIERRO\gamemodes\lvkg.pwn(115) : error 017: undefined symbol "lastRecordDate"
C:\Users\KARABASAS\Desktop\LVKG SAN FIERRO\gamemodes\lvkg.pwn(115) : error 017: undefined symbol "lastRecordDate"
C:\Users\KARABASAS\Desktop\LVKG SAN FIERRO\gamemodes\lvkg.pwn(115) : error 029: invalid expression, assumed zero
C:\Users\KARABASAS\Desktop\LVKG SAN FIERRO\gamemodes\lvkg.pwn(115) : fatal error 107: too many error messages on one line
Compilation aborted.Pawn compiler 3.2.3664	 Copyright (c) 1997-2006, ITB CompuPhase

7 Errors.

reikėjo man šitos pamokos labai greitai ,aklai dariau ir gavau tokį patį rezultata tai tesiog padaryk šitaip:

prie visų ' new ' rašyk :

new lastRecordDate[ 50 ];
new lastRecord;

Nuoroda į komentarą
Dalintis per kitą puslapį

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 4004 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Svečias
Ši tema yra užrakinta.
  • Šiame puslapyje naršo:   0 nariai

    • Nėra registruotų narių peržiūrinčių šį forumą.

Skelbimai


×
×
  • Sukurti naują...