Jump to content

[REZOLVAT] MySQL intrebare


Yeed
 Share

Recommended Posts

Salutare, am facut un job pe un gamemode de la 0, care are si sistem de inregistrare/logare cu MySQL, problema este ca nu imi updateaza banii in baza de date. Cum pot face asta?

Link to comment
Share on other sites

mysql_format(SQL, var, sizeof(var), "UPDATE `users` SET `Money`='%d' WHERE `name`='%s'",GetPlayerCash(playerid), PlayerInfo[playerid][pNormalName]);

Adauga asta la sfarsit de checkpont la job

Ok, vad acum daca o sa mearga, mersi.

 

Edit: error 017: undefined symbol "var", este gamemode de la 0, deci nu am definita asta.

Edited by Yeed
Link to comment
Share on other sites

  • Administrator
** Pasul 1
 
Adaugi la ENUM-ul care stocheaza datele unui jucator, de obicei acesta este denumit 'pInfo', variabila pCash:
 
Exemplu:
enum pInfo {

	// celelalte variabile
	pCash

}
** Pasul 2
 
Creezi o functie care te va ajuta atunci cand vrei sa updatezi banii unui jucator in baza de date:
function updatePlayerCash( playerid, cash ) {
	new gQuery[ 128 ]; // Variabila care o sa ne ajute sa formatam interogarea.

	PlayerInfo[ playerid ][ pCash ] = cash;
	mysql_format( SQL, gQuery, sizeof gQuery, "UPDATE `tabelUsers` SET `coloanaCash` = '%d' WHERE `coloanaSQLID` = '%d'", cash, PlayerInfo[ playerid ][ pSQLID ] ); // Interogarea formatata cu variabila de mai sus.
	mysql_tquery( SQL, gQuery, "", "" ); // Trimitem catre baza de date interogarea pe care tocmai am formatat-o mai sus.

	return true; // returnam 1
}
** Pasul 3
 
Pentru a putea folosi functia 'updatePlayerCash( playerid, cash )' trebuie sa faci urmatorul lucru:
 
Exemplu:
YCMD:vreubani( playerid, params[], help ) {

	new 
		sumaRandom = random( 5000 ) + 1000, // variabila care ia o valoare 5000 + random de 1000.
		string[ 64 ] // variabila care o sa ne ajute sa formatam un mesaj
	;

	updatePlayerCash( playerid, sumaRandom ); // functia pe care tocmai am creat-o putin mai sus pentru a salva banii unui jucator in baza de date.

	format( string, sizeof string, "Ai primit suma de $%d.", sumaRandom ); // formatam mesajul cu variabila pe care am declarat-o mai sus putin.
	SendClientMessage( playerid, -1, string ); // trimitem mesajul catre jucatorul care a folosit comanda.

	return true; // returnam 1
}

Eu ti-am facut decat o metoda cum poti salva banii mai usor, sper ca ai inteles.

Link to comment
Share on other sites

 

** Pasul 1
 
Adaugi la ENUM-ul care stocheaza datele unui jucator, de obicei acesta este denumit 'pInfo', variabila pCash:
 
Exemplu:
enum pInfo {

	// celelalte variabile
	pCash

}
** Pasul 2
 
Creezi o functie care te va ajuta atunci cand vrei sa updatezi banii unui jucator in baza de date:
function updatePlayerCash( playerid, cash ) {
	new gQuery[ 128 ]; // Variabila care o sa ne ajute sa formatam interogarea.

	PlayerInfo[ playerid ][ pCash ] = cash;
	mysql_format( SQL, gQuery, sizeof gQuery, "UPDATE `tabelUsers` SET `coloanaCash` = '%d' WHERE `coloanaSQLID` = '%d'", cash, PlayerInfo[ playerid ][ pSQLID ] ); // Interogarea formatata cu variabila de mai sus.
	mysql_tquery( SQL, gQuery, "", "" ); // Trimitem catre baza de date interogarea pe care tocmai am formatat-o mai sus.

	return true; // returnam 1
}
** Pasul 3
 
Pentru a putea folosi functia 'updatePlayerCash( playerid, cash )' trebuie sa faci urmatorul lucru:
 
Exemplu:
YCMD:vreubani( playerid, params[], help ) {

	new 
		sumaRandom = random( 5000 ) + 1000, // variabila care ia o valoare 5000 + random de 1000.
		string[ 64 ] // variabila care o sa ne ajute sa formatam un mesaj
	;

	updatePlayerCash( playerid, sumaRandom ); // functia pe care tocmai am creat-o putin mai sus pentru a salva banii unui jucator in baza de date.

	format( string, sizeof string, "Ai primit suma de $%d.", sumaRandom ); // formatam mesajul cu variabila pe care am declarat-o mai sus putin.
	SendClientMessage( playerid, -1, string ); // trimitem mesajul catre jucatorul care a folosit comanda.

	return true; // returnam 1
}

Eu ti-am facut decat o metoda cum poti salva banii mai usor, sper ca ai inteles.

 

Primesc eroarea asta error 010: invalid function or declaration la functie UpdateplayerCash

Cum o pot rezolva ? Nu prea le am cu MySQL

 

Edit: pai eu la enum pInfo am pMoney mai pun pCash sau il las asa?

Edited by Yeed
Link to comment
Share on other sites

 

** Pasul 1
 
Adaugi la ENUM-ul care stocheaza datele unui jucator, de obicei acesta este denumit 'pInfo', variabila pCash:
 
Exemplu:
enum pInfo {

	// celelalte variabile
	pCash

}
** Pasul 2
 
Creezi o functie care te va ajuta atunci cand vrei sa updatezi banii unui jucator in baza de date:
function updatePlayerCash( playerid, cash ) {
	new gQuery[ 128 ]; // Variabila care o sa ne ajute sa formatam interogarea.

	PlayerInfo[ playerid ][ pCash ] = cash;
	mysql_format( SQL, gQuery, sizeof gQuery, "UPDATE `tabelUsers` SET `coloanaCash` = '%d' WHERE `coloanaSQLID` = '%d'", cash, PlayerInfo[ playerid ][ pSQLID ] ); // Interogarea formatata cu variabila de mai sus.
	mysql_tquery( SQL, gQuery, "", "" ); // Trimitem catre baza de date interogarea pe care tocmai am formatat-o mai sus.

	return true; // returnam 1
}
** Pasul 3
 
Pentru a putea folosi functia 'updatePlayerCash( playerid, cash )' trebuie sa faci urmatorul lucru:
 
Exemplu:
YCMD:vreubani( playerid, params[], help ) {

	new 
		sumaRandom = random( 5000 ) + 1000, // variabila care ia o valoare 5000 + random de 1000.
		string[ 64 ] // variabila care o sa ne ajute sa formatam un mesaj
	;

	updatePlayerCash( playerid, sumaRandom ); // functia pe care tocmai am creat-o putin mai sus pentru a salva banii unui jucator in baza de date.

	format( string, sizeof string, "Ai primit suma de $%d.", sumaRandom ); // formatam mesajul cu variabila pe care am declarat-o mai sus putin.
	SendClientMessage( playerid, -1, string ); // trimitem mesajul catre jucatorul care a folosit comanda.

	return true; // returnam 1
}

Eu ti-am facut decat o metoda cum poti salva banii mai usor, sper ca ai inteles.

 

Primesc eroarea asta error 010: invalid function or declaration la functie Updateplayermoney ma poti ajuta ?

Link to comment
Share on other sites

 

** Pasul 1
 
Adaugi la ENUM-ul care stocheaza datele unui jucator, de obicei acesta este denumit 'pInfo', variabila pCash:
 
Exemplu:
enum pInfo {

	// celelalte variabile
	pCash

}
** Pasul 2
 
Creezi o functie care te va ajuta atunci cand vrei sa updatezi banii unui jucator in baza de date:
function updatePlayerCash( playerid, cash ) {
	new gQuery[ 128 ]; // Variabila care o sa ne ajute sa formatam interogarea.

	PlayerInfo[ playerid ][ pCash ] = cash;
	mysql_format( SQL, gQuery, sizeof gQuery, "UPDATE `tabelUsers` SET `coloanaCash` = '%d' WHERE `coloanaSQLID` = '%d'", cash, PlayerInfo[ playerid ][ pSQLID ] ); // Interogarea formatata cu variabila de mai sus.
	mysql_tquery( SQL, gQuery, "", "" ); // Trimitem catre baza de date interogarea pe care tocmai am formatat-o mai sus.

	return true; // returnam 1
}
** Pasul 3
 
Pentru a putea folosi functia 'updatePlayerCash( playerid, cash )' trebuie sa faci urmatorul lucru:
 
Exemplu:
YCMD:vreubani( playerid, params[], help ) {

	new 
		sumaRandom = random( 5000 ) + 1000, // variabila care ia o valoare 5000 + random de 1000.
		string[ 64 ] // variabila care o sa ne ajute sa formatam un mesaj
	;

	updatePlayerCash( playerid, sumaRandom ); // functia pe care tocmai am creat-o putin mai sus pentru a salva banii unui jucator in baza de date.

	format( string, sizeof string, "Ai primit suma de $%d.", sumaRandom ); // formatam mesajul cu variabila pe care am declarat-o mai sus putin.
	SendClientMessage( playerid, -1, string ); // trimitem mesajul catre jucatorul care a folosit comanda.

	return true; // returnam 1
}

Eu ti-am facut decat o metoda cum poti salva banii mai usor, sper ca ai inteles!

 

In loc de function nu trebuie public si forward? Tot nu imi merge..

Link to comment
Share on other sites

Trebuie sa trimiti un query in baza de date (cum ti s-a explicat mai sus):

UPDATE `users` SET `VariabilaDeBaniDinBaza`=%d WHERE `Name`='NumeleJucatorului'

Ok, vad acum daca o sa mearga, mersi.

 

Edit: error 017: undefined symbol "var", este gamemode de la 0, deci nu am definita asta.

Poti folosi acel cod si sa adaugi deasupra:

new var[256];

@@Leonard ti-a facut un intreg sistem de bani, dar presupun ca deja aveai unul in GM.

Edited by iMatt

Respecta si vei fi respectat.

 

BigInt Pawn:

Pacman C++: 

Snake C++:

Minesweeper C++:

 

mattbb.cash

leaks.ro

Link to comment
Share on other sites

Trebuie sa trimiti un query in baza de date (cum ti s-a explicat mai sus):

UPDATE `users` SET `VariabilaDeBaniDinBaza`=%d WHERE `Name`='NumeleJucatorului'

Poti folosi acel cod si sa adaugi deasupra:

new var[256];

@@Leonard ti-a facut un intreg sistem de bani, dar presupun ca deja aveai unul in GM.

Nope, tot nu merge, am in gamemode un public numic Update. Oare ma poate ajuta ? Am vazut prin gamemode Update(playerid, pLanguage); si toate astea. Oare ma ajuta ? Adica am incercat si tot nu merge sa salveze banii in baza de date, poate gamemode-ul este de vina. 

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...