Jump to content

Tab nou sql.


Olibook

Recommended Posts

Salutare tuturor.

Am un server Sa:Mp ce rulează pe mysql, cu baza saints. În gamemode am unele variabile care, potrivit scriptului, s-ar salva în bază, însă eu nu am acea variabilă implementată acolo. Spre exemplu, să zicem că am implementat un cadou care, dacă-l găsești, îți oferă +1 CadouPoint. CadouPoint-ul acesta, după ce a fost oferit jucătorului, trebuie salvat și în bază pentru ca jucătorul după ce părăsește serverul să nu piardă punctul. Problema este că, în bază, în lista acelor variabile cu bani, ore jucate, premium points, RP-uri ș.a.m.d, nu există CadouPoint. Cum aș putea implementa în bază CadouPoint, astfel încât după un relog punctul să nu se piardă? Nu am încercat niciodată să modific ceva în bază și am considerat că ar fi ok să vă întreb pe voi.

 

Mulțumesc anticipat!

Link to comment
Share on other sites

Pai, in primul rand trebuie sa il precizezi la enum-uri.

In general, mai toate serverele au enum PlayerData.

enum PlayerData
{
    Level, Admin, //Chestii...
};

tu trebuie sa introduce CadouPoint in acel enum.

enum PlayerData
{
    CadouPoint
};

Dupa care te duci la OnPlayerConnect si introduci variabila.

PlayerInfo[playerid][CadouPoint] = 0;

Apoi te duci la OnPlayerDisconnect si faci acelasi lucru.

 

Asa, acum tot la publicul OnPlayerDisconnect trebuie sa gasesti o functie care iti salveaza statisticile. (In general se foloseste SaveStats(playerid))

asa, dupa care te duci la stock-ul SaveStats iar acolo vei avea ceva de genu'

format(query, sizeof(query), "UPDATE `Accounts` SET `Level` = '%d', `Admin` = '%d' WHERE `Name` = '%s'", PlayerInfo[playerid][Leve], PlayerInfo[playerid][Admin], PlayerName(playerid));

unde, tu trebuie sa introduci acel CadouPoint.

format(query, sizeof(query), "UPDATE `Accounts` SET `Level` = '%d', `Admin` = '%d', `CadouPoint` = '%d' WHERE `Name` = '%s'", PlayerInfo[playerid][Leve], PlayerInfo[playerid][Admin], PlayerInfo[playerid][CadouPoint], PlayerName(playerid));

Acum e putin mai greu fiindca nu stiu exact cum e definite a 2-a functie a ta care ajuta la revenirea statisticilor pe server atunci cand te conectezi.

O sa presupunem ca e LoginPlayer(playerid), unde tu trebuie sa adaugi CadouPoint.

public LoginPlayer(playerid)
{
    PlayerInfo[playerid][CadouPoint] = cache_get_field_content_int(0, "CadouPoint");
    return 1;
}

 

Asa, cu scriptul am terminat, acum incepem partea cu baza de date.

Te duci in baza de date a serverului, dai click pe ea si o sa iti apara niste tabeluri de genul:

 


Accounts
Banned
Houses
etc.
 

dar tu trebuie sa te axezi doar pe tabelul Accounts, asadar o sa il bifezi si o sa te duci putin mai jos la optiuni, dupa care alegi Structure/Structura.

In fine, o sa iti apara toate chestiile de la conturi, dar tu mai jos ai niste 'casute' unde scrie ceva asemanator cu

Add: 1 column(s)  * At End of Table *After ..

tu trebuie sa apesi pe butonul 'Go' iar apoi o sa iti apara un fel de table

 


Nume   Type   Values   Default   Collation   etc.

 Si o sa scrii asa.

Nume - CadouPoint

Type - INT

Values - 6(7, 8, 9, 10, 12 ..numarul de cifre maxim pentru acel cadou)

Default - As defined: 0

 

Dupa care apesi pe butonul 'Save' si ai terminat ^^.

Scuze ca nu am putut sa fac poze, sunt cam ocupat.

Edited by KnowN

242086.png

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
Reply to this topic...

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