Jump to content
  • 0

Ajutati-ma pls


CosminZEQ

Question

5 answers to this question

Recommended Posts

  • 0

Eu zic ca aceste functii sunt destul de complicate pentru tine, te sfatuiesc sa incepi cu ceva usor pentru inceput.

Daca ai dat return deja nu mai trebuie sa deschizi acoladele pentru ca nu are logica. Elimina acoladele care contin queryul in care schimbi valorile de la premiumskin + ca query-ul este gresit complet... Eu zic sa imi asculti sfatul!

Link to comment
Share on other sites

  • 0

Modalitatea asta de salvare e veche si ineficienta. Modalitatea ce mai buna e sa faci un alt tabel in baza "PremiumSkin" sau ceva gen in care sa inserezi fiecare skin cumparat de player. Si astfel la login ii incarci skinurile intr-un array si el doar scrie un numar(index) si primeste skin din array respectiv la index x. 

Structura tabelului: 

CREATE TABLE PremiumSkin(
    id int NOT NULL,
    player_id int NOT NULL,
    skin int NOT NULL,
    UNIQUE (skin),
    PRIMARY KEY(id)
);

Ca sa salvezi(inserezi un skin): 

new query[129];
mysql_format(SQL, query, sizeof(query), "INSERT INTO PremiumSkin (player_id, skin) VALUES (%i, %i)", pSQLID, skin);
mysql_tquery(SQL, query);

Ca sa schimbi un anumit skin(playerului poate nu-i place skin x si vrea skin y): 

new query[129];
mysql_format(SQL, query, sizeof(query), "UPDATE PremiumSkin SET skin = %i WHERE player_id = %i AND skin = %i", skindorit, pSQLID, skinactual);
mysql_tquery(SQL, query);

Ca sa incarci skinurile: 

//OnPlayerLogin
new query[90];
mysql_format(SQL, query, sizeof(query), "SELECT * FROM Premiumskin WHEREE player_id = %i", pSQLID);
new Cache: queryResult = mysql_query(SQL, query, true);
if(cache_num_rows())
{
    new rows = cache_num_rows();
    for(new row = 0; row < rows;  row++)
    {
        PlayerInfo[playerid][Skins][row] = cache_get_field_content_int(row, "skin");
    }
}
cache_delete(queryResult);

Cand ai de a face cu multiple variabile de gne: skin1, skin2, skin3 etc sau orice o fi e mult mai bine sa faci un tabel separat pentru ele decat sa incarci tabelul de users/players cu ele

Edited by Banditul
Link to comment
Share on other sites

  • 0
Acum 9 ore, Mister a spus:

 

Tutorialul tau este ineficient in acest caz. N-ai de unde stii cate skin-uri are jucatorul sau din cate numere este format-ul id-ul skin-ului de pe locul x din sirul 25|56|123|301|2|1... E posibil, insa necesita verificari multe si nu e optim.

image.thumb.png.06ae8cdc9199c8e975c64504e18272ea.png

Un tutorial de pe sa-mp.com facut de Emmet_ iti arata cum poti folosi sscanf delimiter. In linii generale este simplu, insa va trebui sa pui capul in miscare, sa te gandesti cum sa incarci datele.

Edited by L0K3D_Hokage
Link to comment
Share on other sites

  • 0
3 hours ago, Banditul said:

Modalitatea asta de salvare e veche si ineficienta. Modalitatea ce mai buna e sa faci un alt tabel in baza "PremiumSkin" sau ceva gen in care sa inserezi fiecare skin cumparat de player. Si astfel la login ii incarci skinurile intr-un array si el doar scrie un numar(index) si primeste skin din array respectiv la index x. 

Structura tabelului: 


CREATE TABLE PremiumSkin(
    id int NOT NULL,
    player_id int NOT NULL,
    skin int NOT NULL,
    UNIQUE (skin),
    PRIMARY KEY(id)
);

Ca sa salvezi(inserezi un skin): 


new query[129];
mysql_format(SQL, query, sizeof(query), "INSERT INTO PremiumSkin (player_id, skin) VALUES (%i, %i)", pSQLID, skin);
mysql_tquery(SQL, query);

Ca sa schimbi un anumit skin(playerului poate nu-i place skin x si vrea skin y): 


new query[129];
mysql_format(SQL, query, sizeof(query), "UPDATE PremiumSkin SET skin = %i WHERE player_id = %i AND skin = %i", skindorit, pSQLID, skinactual);
mysql_tquery(SQL, query);

Ca sa incarci skinurile: 


//OnPlayerLogin
new query[90];
mysql_format(SQL, query, sizeof(query), "SELECT * FROM Premiumskin WHEREE player_id = %i", pSQLID);
new Cache: queryResult = mysql_query(SQL, query, true);
if(cache_num_rows())
{
    new rows = cache_num_rows();
    for(new row = 0; row < rows;  row++)
    {
        PlayerInfo[playerid][Skins][row] = cache_get_field_content_int(row, "skin");
    }
}
cache_delete(queryResult);

Cand ai de a face cu multiple variabile de gne: skin1, skin2, skin3 etc sau orice o fi e mult mai bine sa faci un tabel separat pentru ele decat sa incarci tabelul de users/players cu ele

Voi incerca. Multumesc

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more details you can also review our Terms of Use and Privacy Policy.