Jump to content
Autentificarea cu Google și Facebook nu mai este disponibilă. ×

Recommended Posts

Posted

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!

Posted (edited)

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

Posted

Mulțumesc pentru tot sprijinul acordat. Cu această ocazie pot să spun că nu m-ai ajutat numai pe mine, ci pe toți cei ce vor mai căuta așa ceva. +1

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • 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.