Jump to content

Welcome to RpgWars România
Register now to gain access to all of our features. Once registered and logged in, you will be able to create topics, post replies to existing threads, give reputation to your fellow members, get your own private messenger, post status updates, manage your profile and so much more. If you already have an account, login here - otherwise create an account for free today!



Foto

nVault Tutorial




    No replies to this topic

    #1
    OfflinePrime

    Premium
    Member Title : WwW.RpgWars.Ml
    Posts : 230
    warning points : 0 puncte de avertizare
    Puncte : 528

    info nVault de documentare AMX-X:

    nVault este o implementare seif binar. Acesta vă permite să deschideți bolți numele (care sunt stocate în datele \ seif) și a citi / scrie pentru a le în orice moment.

    Bolta este implementat cu un simplu căutare hash, iar formatul de fișier binar este primitiv. Cu toate acestea, ar trebui să fie mult mai rapid decât built-in seif AMX Mod X pentru cele mai multe lucruri. Fiecare intrare este, de asemenea, timestamped, astfel încât să puteți prune pentru intrările vechi.

    În plus, bolta încearcă să fie jurnalizată. Asta este, se păstrează un jurnal de tot ceea ce face, așa că, dacă se blochează serverul, se poate "replay" revista și recupera daune. Revista este șters pe sincronizare a binar bolta, care apare pe bolta aproape / DescarcãSchimbă.
    Acestea sunt funcțiile nvault disponibile:
    nvault_open - Deschide o bolta de nume (cum ar fi "myvault").
    nvault_close - Închide un seif.
    nvault_lookup - Pare o valoare seif pentru informații complete.
    nvault_get - Ajunge o valoare boltă prin trimiterea unui int stabilirea unui float byref sau stabilirea unui șir & maxlength.
    nvault_set - Seteaza o valoare bolta cu timestamp actuale.
    nvault_pset - Seteaza o valoare bolta permanent cu nici timestamp.
    nvault_touch - "Atinge" o cheie pentru a actualiza valoarea amprentă de timp.
    nvault_prune - Prune uscate bolta pentru intrările care sunt în marcajele de timp dat.
    nvault_open
    Înainte de a face orice tranzacție cu o bolta, trebuie mai întâi deschis. Acest lucru se face cu comanda nvault_open; este nevoie de 1 parametru șir care va servi atât ca nume folosit pentru a deschide și numele fișierului care este creat pe serverele hard-disk ([nume] .vault). Când apelați comanda nvault_open (), se va întoarce un mâner (valoare întreagă), care este folosit de toate celelalte funcții nvault ca o trimitere la bolta particular. Dacă apare o eroare la deschiderea seifului, nvault_open () va întoarce -1 (INVALID_HANDLE) deci este o idee bună pentru a verifica dacă a deschis în mod corect înainte de a utiliza orice alte comenzi.

    nvault_open (const szVaultName [])

    szVaultName = Acesta va fi numele seiful. De fiecare dată când doriți să comunice cu aceasta bolta trebuie să folosiți întotdeauna același nume pentru a accesa seif. Un fișier va fi creat în datele \ folderul bolta denumit [szVaultName] .vault
    PHP
    //Open a vault and throw a plugin error if INVALID_HANDLE is returned.
    new iVaultHandle = nvault_open ( "testvault" );

    if ( iVaultHandle == INVALID_HANDLE )
    set_fail_state ( "Error opening nVault" );
    nvault_close
    Această funcție va închide bolta. Este nevoie de mânerul sărituri pentru a închide ca un parametru. Odată ce o bolta este închis, nu se pot face orice tranzacții cu bolta până când este redeschis. În cele mai multe cazuri este mai bine pentru a pune nvault_close () în plugin_end (). Imposibilitatea de a închide un fișier seif va face ca acesta să fie corupt și veți pierde toate datele.

    nvault_close (iHandle)

    iHandle = Mânerul de bolta pe care ne-o dorim pentru a închide


    PHP
    //Open and close a vault.
    new iVaultHandle = nvault_open ( "testvault" );

    nvault_close ( iVaultHandle );
    nvault_lookup
    Această funcție va lookup date utilizând o cheie șir și va plasa datele găsite în szValue byref pentru un maxim de caractere iMaxLength. Dacă se găsește date, funcția va returna 1 (true), în cazul în care nu există date găsit 0 (fals). Timestamp va organiza la data la care intrarea a fost scris sau atins ultima. Această funcție poate prelua doar date din bolta și depozitați-l într-o variabilă șir. Vezi secțiunea de mai jos amprente de timp pentru o explicație a muncii cum amprente de timp.

    nvault_lookup (iHandle, const szKey [], szValue [], iMaxLength, iTimestamp)

    iHandle = Mânerul întors din nvault_open.
    szKey = Cheia pe care doriți să utilizați pentru lookup de date.
    szValue = Variabila șir care va stoca datele pe care le sunt preluarea.
    iMaxLength = Lungimea maxima a șirului vrem citit în szValue.
    iTimestamp = va organiza o amprentă de timp atunci când intrarea a fost scris sau ultima atins.
    PHP
    //Lookup a string stored in a vault using the players steamid as the key.
    new szAuthID [ 35 ];
    new szData [ 30 ];
    new iTimestamp ;
    new iVault ;
    new iDataExists

    get_user_authid ( id , szAuthID , charsmax ( szAuthID ) );

    iVault = nvault_open ( "testvault" );
    iDataExists = nvault_lookup ( iVault , szAuthID , szData , charsmax ( szData ) , iTimestamp );

    //An entry was found, the data for this key is now stored in szData.
    if ( iDataExists )
    {
    client_print ( id , print_chat , "Data=%s Timestamp=%d" , szData , iTimestamp );
    }
    else
    {
    client_print ( id , print_chat , "No entry found with key %s" , szAuthID );
    }
    nvault_get
    Această funcție este foarte similar cu nvault_lookup; se pare a datelor într-un seif cu ajutorul tastei specificat. Cu toate acestea, nvault_get este un pic mai flexibil decât nvault_lookup pentru că vă permite pentru a prelua date direct într-o altă variabilă decât string. Acest lucru va nega necesitatea pentru tine să faci orice conversie de date odată datele sunt preluate ca va trebui sa faci daca folosesti nvault_lookup pentru a prelua un flotor sau Int. Notă, nvault_get nu vă permite pentru a prelua timestamp deci, dacă aveți nevoie de amprenta de timp, atunci va trebui să utilizați nvault_lookup.

    nvault_get (mâner, const szKey [], ...)

    mâner = Mânerul întors din nvault_open.
    key = Cheia pe care doriți să utilizați pentru lookup de date.
    [...] = [# Variabilă a parametrilor] Aceasta poate fi fie o variabilă float, string & maxlen, sau gol. Vezi mai jos

    Numărul de parametri spune funcția ce tip de date pe care doriți să preluați. Numărului parametru începe după szKey []
    0 Parametrii = nvault_get va returna valoarea întreagă.
    1 Parametrii = valoarea float va fi adoptat de referință. nvault_get returnează 1 dacă a fost găsită o valoare.
    2 parametri = valoarea șir va fi adoptat de ref pentru caractere maxlen. nvault_get returnează 1 dacă a fost găsită o valoare.

    Integer: iValue = nvault_get (iHandle, szKey []);
    Float: nvault_get (iHandle, szKey [], float);
    String: nvault_get (iHandle, szKey [], szValue [], iMaxLen);
    PHP
    //Retrieve an integer, float, and string value from a vault.
    new iVault ;
    new szAuthID [ 35 ];
    new szData [ 30 ];

    iVault = nvault_open ( "testvault" );
    get_user_authid ( id , szAuthID , charsmax ( szAuthID ) );

    //To retrieve a number that is stored as the data
    new iNumber = nvault_get ( iVault , szAuthID );

    //To retrieve a float that is stored as the data
    new Float : fValue ;
    nvault_get ( iVault , szAuthID , fValue );

    //To retrieve a string that is stored as the data
    new szDataString [ 10 ];
    nvault_get ( iVault , szAuthID , szDataString , charsmax ( szDataString ) );

    nvault_set
    Acest lucru va scrie date la bolta și timestamp intrarea.

    nvault_set (mâner, tasta const [], valoarea const [])
    mâner = Mânerul întors din nvault_open.
    key = Cheia pe care doriți să utilizați pentru lookup de date.
    Valoarea = Șirul pe care doriți să scrie la bolta
    PHP
    //Save the phrase "hello world" to vault using steamid as the key.
    new iVault ;
    new szAuthID [ 35 ];
    new szData [ 30 ];

    iVault = nvault_open ( "testvault" );
    get_user_authid ( id , szAuthID , charsmax ( szAuthID ) );

    //Pass the value directly with no variable
    nvault_set ( iVault , szAuthID , "hello world" );

    //Pass the value with a string variable
    new szText [] = "hello world" ;
    nvault_set ( iVault , szAuthID , szText );
    nvault_pset
    La fel ca nvault_set (), cu excepția acestei scrie o intrare fără marcaj de timp, astfel încât intrarea nu va fi eliminat prin funcția nvault_prune () (dacă este numit). Valoarea timestamp este 0 atunci când permanent.

    nvault_touch
    Această funcție va "atinge" o intrare, actualizarea este timestamp; valoarea de intrare va rămâne neschimbată. Dacă cheia nu există, care este în curs de atins, va fi creat o intrare goală pentru acea cheie. Vezi secțiunea de mai jos amprente de timp pentru o explicație a amprente de timp.

    nvault_touch (iHandle, const szKey [], [iTimestamp = -1])

    iHandle = Mânerul de bolta
    szKey = Cheia pentru care dorim să actualizeze timestamp
    iTimeStamp - [param Optional] Dacă nu a trecut la funcția (sau -1 este trecut)
    se va actualiza cheia cu ora curentă. În caz contrar, va actualiza
    cheie cu amprenta de timp specificat.
    PHP
    //Touch the entry
    new iVault ;
    new szAuthID [ 35 ];

    iVault = nvault_open ( "testvault" );

    get_user_authid ( id , szAuthID , charsmax ( szAuthID ) );

    //Touch the entry with current timestamp
    nvault_touch ( iVault , szAuthID );

    //Touch entry with timestamp 1 hour ago. (60 * 60) = 3600
    nvault_touch ( iVault , szAuthID , get_systime () - 3600 );

    nvault_prune
    Această funcție este utilizată pentru a elimina intrările care se încadrează în marcajele de timp de început și sfârșit specificate. O valoare amprentă de timp este in secunde deci rețineți acest considerare atunci când tăiere intrări. Vezi secțiunea de mai jos amprente de timp pentru o explicație a amprente de timp.

    nvault_prune (iHandle, ISTART, ieten)

    iHandle = Mânerul întors din nvault_open.
    ISTART = Amprenta de timp în cazul în care pentru a începe eliminarea intrărilor.
    ieten = Amprenta de timp în care să se oprească eliminarea intrărilor.
    PHP
    new iVault ;

    iVault = nvault_open ( "testvault" );

    //Remove all entries in vault. 0 = earliest possible time, get_systime() = now.
    nvault_prune ( iVault , 0 , get_systime () );

    new szAuthID [ 35 ];
    new szData [ 30 ];
    new iTimestamp ;
    new iVault ;
    new iDataExists

    get_user_authid ( id , szAuthID , charsmax ( szAuthID ) );

    iVault = nvault_open ( "testvault" );
    iDataExists = nvault_lookup ( iVault , szAuthID , szData , charsmax ( szData ) , iTimestamp );

    //An entry was found, the data for this key is now stored in szData.
    if ( iDataExists )
    {
    client_print ( id , print_chat , "Data=%s Timestamp=%d" , szData , iTimestamp );
    }
    else
    {
    client_print ( id , print_chat , "No entry found with key %s" , szAuthID );
    }
    nvault_get
    Această funcție este foarte similar cu nvault_lookup; se pare a datelor într-un seif cu ajutorul tastei specificat. Cu toate acestea, nvault_get este un pic mai flexibil decât nvault_lookup pentru că vă permite pentru a prelua date direct într-o altă variabilă decât string. Acest lucru va nega necesitatea pentru tine să faci orice conversie de date odată datele sunt preluate ca va trebui sa faci daca folosesti nvault_lookup pentru a prelua un flotor sau Int. Notă, nvault_get nu vă permite pentru a prelua timestamp deci, dacă aveți nevoie de amprenta de timp, atunci va trebui să utilizați nvault_lookup.

    nvault_get (mâner, const szKey [], ...)

    mâner = Mânerul întors din nvault_open.
    key = Cheia pe care doriți să utilizați pentru lookup de date.
    [...] = [# Variabilă a parametrilor] Aceasta poate fi fie o variabilă float, string & maxlen, sau gol. Vezi mai jos

    Numărul de parametri spune funcția ce tip de date pe care doriți să preluați. Numărului parametru începe după szKey []
    0 Parametrii = nvault_get va returna valoarea întreagă.
    1 Parametrii = valoarea float va fi adoptat de referință. nvault_get returnează 1 dacă a fost găsită o valoare.
    2 parametri = valoarea șir va fi adoptat de ref pentru caractere maxlen. nvault_get returnează 1 dacă a fost găsită o valoare.

    Integer: iValue = nvault_get (iHandle, szKey []);
    Float: nvault_get (iHandle, szKey [], float);
    String: nvault_get (iHandle, szKey [], szValue [], iMaxLen);
    PHP
    //Retrieve an integer, float, and string value from a vault.
    new iVault ;
    new szAuthID [ 35 ];
    new szData [ 30 ];

    iVault = nvault_open ( "testvault" );
    get_user_authid ( id , szAuthID , charsmax ( szAuthID ) );

    //To retrieve a number that is stored as the data
    new iNumber = nvault_get ( iVault , szAuthID );

    //To retrieve a float that is stored as the data
    new Float : fValue ;
    nvault_get ( iVault , szAuthID , fValue );

    //To retrieve a string that is stored as the data
    new szDataString [ 10 ];
    nvault_get ( iVault , szAuthID , szDataString , charsmax ( szDataString ) );

    nvault_set
    Acest lucru va scrie date la bolta și timestamp intrarea.

    nvault_set (mâner, tasta const [], valoarea const [])
    mâner = Mânerul întors din nvault_open.
    key = Cheia pe care doriți să utilizați pentru lookup de date.
    Valoarea = Șirul pe care doriți să scrie la bolta
    PHP
    //Save the phrase "hello world" to vault using steamid as the key.
    new iVault ;
    new szAuthID [ 35 ];
    new szData [ 30 ];

    iVault = nvault_open ( "testvault" );
    get_user_authid ( id , szAuthID , charsmax ( szAuthID ) );

    //Pass the value directly with no variable
    nvault_set ( iVault , szAuthID , "hello world" );

    //Pass the value with a string variable
    new szText [] = "hello world" ;
    nvault_set ( iVault , szAuthID , szText );
    nvault_pset
    La fel ca nvault_set (), cu excepția acestei scrie o intrare fără marcaj de timp, astfel încât intrarea nu va fi eliminat prin funcția nvault_prune () (dacă este numit). Valoarea timestamp este 0 atunci când permanent.

    nvault_touch
    Această funcție va "atinge" o intrare, actualizarea este timestamp; valoarea de intrare va rămâne neschimbată. Dacă cheia nu există, care este în curs de atins, va fi creat o intrare goală pentru acea cheie. Vezi secțiunea de mai jos amprente de timp pentru o explicație a amprente de timp.

    nvault_touch (iHandle, const szKey [], [iTimestamp = -1])

    iHandle = Mânerul de bolta
    szKey = Cheia pentru care dorim să actualizeze timestamp
    iTimeStamp - [param Optional] Dacă nu a trecut la funcția (sau -1 este trecut)
    se va actualiza cheia cu ora curentă. În caz contrar, va actualiza
    cheie cu amprenta de timp specificat.
    PHP
    //Touch the entry
    new iVault ;
    new szAuthID [ 35 ];

    iVault = nvault_open ( "testvault" );

    get_user_authid ( id , szAuthID , charsmax ( szAuthID ) );

    //Touch the entry with current timestamp
    nvault_touch ( iVault , szAuthID );

    //Touch entry with timestamp 1 hour ago. (60 * 60) = 3600
    nvault_touch ( iVault , szAuthID , get_systime () - 3600 );

    nvault_prune
    Această funcție este utilizată pentru a elimina intrările care se încadrează în marcajele de timp de început și sfârșit specificate. O valoare amprentă de timp este in secunde deci rețineți acest considerare atunci când tăiere intrări. Vezi secțiunea de mai jos amprente de timp pentru o explicație a amprente de timp.

    Vezi profilul utilizatorului


    In total sunt 0 utilizatori conectati: 0 Inregistrati, 0 Invizibil si 0 Vizitatori

    Utilizatori ce navigheaza in acest forum: Nici unul



     
    • creeaza un forum | © PunBB | Forum gratuit de suport | Contact | Semnaleaza un abuz | Creeaza-ti blogul tau gratuit