Jump to content
  • 0

Problema /v pe MySQL R40


Mariusik[]

Question

In consola imi arata ca masinile s-au incarcat bine din baza de date, dar cand dau /v zice ca nu am masini personale

CMD:v(playerid, params[])
{
	new string[60],string1[512],string2[700];
	if(GetVehNumber(playerid) == 0) 
	{
		return SendClientMessage( playerid, COLOR_ERROR, "Tu nu ai vehicule personale!" );
	}
	else
	{
		format(string,sizeof(string), "Garajul lui %s (%d/%d Sloturi)", GetName(playerid), GetVehNumber(playerid), PlayerData[playerid][pCar]);
		new header[64] = "Slot\tNume\tStatus";
		for(new i = 1; i <= Total_Veh_Created; i++)
		{
			if(strmatch(CarInfo[i][cOwner], GetName(playerid)))
			{
				if(IsVehSpawned(i) == 1) format(string1,sizeof(string1), "%s\tAscuns\n",VehicleNames[CarInfo[i][cModel] -400]);
				else format(string1,sizeof(string1), "%d\t%s\tAscuns\n",VehicleNames[CarInfo[i][cModel] -400]);
				strcat(string2,string1);
			}
		}
		strins(string2, header, 0);
		ShowPlayerDialog(playerid,DIALOG_GARAGE,DIALOG_STYLE_TABLIST_HEADERS, string, string2, "Alege","Iesi");
	}
	return 1;
}
function LoadPlayerCar()
{
	new row_count;
	if(!cache_get_row_count(row_count))
	{
		new veh = 0;
		for(new i = 0; i < row_count; i++)
		{
			veh++;
			cache_get_value_name_int(i, "ID", CarInfo[veh][cID]);
			cache_get_value_name_int(i, "Model", CarInfo[veh][cModel]);
			cache_get_value_name(i, "Owner", CarInfo[veh][cOwner]);
			cache_get_value_name_int(i, "Type", CarInfo[veh][cType]);
			cache_get_value_name_float(i, "PosX", CarInfo[veh][cPosX]);
			cache_get_value_name_float(i, "PosY", CarInfo[veh][cPosY]);
			cache_get_value_name_float(i, "PosZ", CarInfo[veh][cPosZ]);
			cache_get_value_name_float(i, "PosR", CarInfo[veh][cPosR]);
			cache_get_value_name_float(i, "Km", CarInfo[veh][cKm]);
			cache_get_value_name_int(i, "Lock", CarInfo[veh][cLock]);
			cache_get_value_name_int(i, "Price", CarInfo[veh][cPrice]);
			cache_get_value_name_int(i, "Insurance", CarInfo[veh][cInsurance]);
			cache_get_value_name_int(i, "ColorOne", CarInfo[veh][cColorOne]);
			cache_get_value_name_int(i, "ColorTwo", CarInfo[veh][cColorTwo]);
			cache_get_value_name_int(i, "Spawuned", CarInfo[veh][cSpawuned]);
			
			Total_Veh_Created = CarInfo[veh][cID];
		}
	}
	for(new i = 1; i < MAX_VEHICLES; i++) OwnedVeh(i) = 0;
	printf("Vehicles: %d", row_count);
	return 1;
}

 

Link to comment
Share on other sites

24 answers to this question

Recommended Posts

  • 0

Pe langa faptul ca functia 

LoadPlayerCar()

Nu este public , presupun ca folosesti mysql_tquery (http://wiki.sa-mp.com/wiki/MySQL/R40#mysql_tquery) specifica faptul ca functia pe care vrei sa o folosesti ca callback trebuie sa fie public si cu forward inainte de a fi folosita...

Poate arati GetVehNumber(playerid) sa vedem cum e si in ce conditi intoarce 1 si nu 0?

Link to comment
Share on other sites

  • 0
Acum 3 minute, Banditul a spus:

Pe langa faptul ca functia 


LoadPlayerCar()

Nu este public , presupun ca folosesti mysql_tquery (http://wiki.sa-mp.com/wiki/MySQL/R40#mysql_tquery) specifica faptul ca functia pe care vrei sa o folosesti ca callback trebuie sa fie public si cu forward inainte de a fi folosita...

Poate arati GetVehNumber(playerid) sa vedem cum e si in ce conditi intoarce 1 si nu 0?

forward GetVehNumber(playerid);
public GetVehNumber(playerid)
{
    new nr = 0;
    for(new i = 1; i <= CarInfo[cID]; i++) if(strmatch(CarInfo[cOwner], GetName(playerid)) && !CarInfo[cType]) nr ++;
    return nr;
}

Link to comment
Share on other sites

  • 0
Acum 21 minute, Anonim69 a spus:

forward GetVehNumber(playerid);
public GetVehNumber(playerid)
{
    new nr = 0;
    for(new i = 1; i <= CarInfo[cID]; i++) if(strmatch(CarInfo[cOwner], GetName(playerid)) && !CarInfo[cType]) nr ++;
    return nr;
}

Nu asa functioneaza un enum.....Si for ala....

GetVehNumber(playerid)
{
    new nr = 0;
    for(new i = 1; i <= Total_Veh_Created; i++) 
    	if(strmatch(CarInfo[i][cOwner], GetName(playerid)) && !CarInfo[i][cType]) 
    		nr++;
    return nr;
}

Asa ar fi sugestia mea, presupunand ca Total_Veh_Created e variabila globala si retine numarul de vehicule incarcate din baza de date(nu sunt sigur daca va merge)

Cand iei date dintr-un enum , trebuie sa specifici 2 parametri nu 1, 1 e id la care faci referire si al doilea e propietate pe care vrei sa o acesezi

Link to comment
Share on other sites

  • 0
Acum 2 minute, Banditul a spus:

Nu asa functioneaza un enum.....Si for ala....


GetVehNumber(playerid)
{
    new nr = 0;
    for(new i = 1; i <= Total_Veh_Created; i++) 
    	if(strmatch(CarInfo[i][cOwner], GetName(playerid)) && !CarInfo[i][cType]) 
    		nr++;
    return nr;
}

Asa ar fi sugestia mea, presupunand ca Total_Veh_Created e variabila globala si retine numarul de vehicule incarcate din baza de date(nu sunt sigur daca va merge)

Cand iei date dintr-un enum , trebuie sa specifici 2 parametri nu 1, 1 e id la care faci referire si al doilea e propietate pe care vrei sa o acesezi

nu merge

Link to comment
Share on other sites

  • 0
GetVehNumber(playerid)
{
    new nr = 0;
    for(new i = 0; i < MAX_VEHICLES; i++) 
    	if((!strcmp(CarInfo[i][cOwner], GetName(playerid))) && (!CarInfo[i][cType])) 
    		nr++;
    return nr;
}

Sunt fara idei daca asa nu merge. Avand in vedere ca enum-ul tau de CarInfo incepe de la 0 pana la MAX_VEHICLES(presupun ca ai 2000 sau MAX_VEHICLES la enum) 

Functia asta e singura problema , pentru ca de incarcat din cate ziceai se incarca....

Link to comment
Share on other sites

  • 0
Acum 8 minute, Banditul a spus:

GetVehNumber(playerid)
{
    new nr = 0;
    for(new i = 0; i < MAX_VEHICLES; i++) 
    	if((!strcmp(CarInfo[i][cOwner], GetName(playerid))) && (!CarInfo[i][cType])) 
    		nr++;
    return nr;
}

Sunt fara idei daca asa nu merge. Avand in vedere ca enum-ul tau de CarInfo incepe de la 0 pana la MAX_VEHICLES(presupun ca ai 2000 sau MAX_VEHICLES la enum) 

Functia asta e singura problema , pentru ca de incarcat din cate ziceai se incarca....

da se incarca dar am pus la LoadPlayerCar() createvehicle, bla bla si nu o creeaza..

Link to comment
Share on other sites

  • 0

De ce nu pui la loadplayercar un printf sa vezi daca se pune corect numele ownerului si ar trebui pentru toate variabilele un printf pentru a vedea pentru inceput daca se incarca corect

Dupa linia asta

Total_Veh_Created = CarInfo[veh][cID];

printf  ("%s",CarInfo [veh][cOwner]);

*Cand folosesti comanda /v incearca sa scoti tagul de la clan daca ai

 

 

    __  ____      __           
   /  |/  (_)____/ /____  _____
  / /|_/ / / ___/ __/ _ \/ ___/
 / /  / / (__  ) /_/  __/ /    
/_/  /_/_/____/\__/\___/_/     
SERVICII SCRIPTING DE CALITATE
Pagina     Scripting     pawn
Link to comment
Share on other sites

  • 0
Acum 25 minute, Mister a spus:

De ce nu pui la loadplayercar un printf sa vezi daca se pune corect numele ownerului si ar trebui pentru toate variabilele un printf pentru a vedea pentru inceput daca se incarca corect

Dupa linia asta


Total_Veh_Created = CarInfo[veh][cID];

printf  ("%s",CarInfo [veh][cOwner]);

*Cand folosesti comanda /v incearca sa scoti tagul de la clan daca ai

 

nu am sistem de clan. o sa incerc si revin

Link to comment
Share on other sites

  • 0
Acum 27 minute, Mister a spus:

De ce nu pui la loadplayercar un printf sa vezi daca se pune corect numele ownerului si ar trebui pentru toate variabilele un printf pentru a vedea pentru inceput daca se incarca corect

Dupa linia asta


Total_Veh_Created = CarInfo[veh][cID];

printf  ("%s",CarInfo [veh][cOwner]);

*Cand folosesti comanda /v incearca sa scoti tagul de la clan daca ai

 

in Consola nu mai apare nmk

Link to comment
Share on other sites

  • 0
55 minutes ago, Anonim69 said:

in Consola nu mai apare nmk

Ai butonul edit nu trebuia sa faci dublu post,

function LoadPlayerCar()
{
	new row_count;
	if(!cache_get_row_count(row_count))
	{
		new veh = 0;
		for(new i = 0; i < row_count; i++)
		{
			veh++;
			cache_get_value_name_int(i, "ID", CarInfo[veh][cID]);
			cache_get_value_name_int(i, "Model", CarInfo[veh][cModel]);
			cache_get_value_name(i, "Owner", CarInfo[veh][cOwner]);
			cache_get_value_name_int(i, "Type", CarInfo[veh][cType]);
			cache_get_value_name_float(i, "PosX", CarInfo[veh][cPosX]);
			cache_get_value_name_float(i, "PosY", CarInfo[veh][cPosY]);
			cache_get_value_name_float(i, "PosZ", CarInfo[veh][cPosZ]);
			cache_get_value_name_float(i, "PosR", CarInfo[veh][cPosR]);
			cache_get_value_name_float(i, "Km", CarInfo[veh][cKm]);
			cache_get_value_name_int(i, "Lock", CarInfo[veh][cLock]);
			cache_get_value_name_int(i, "Price", CarInfo[veh][cPrice]);
			cache_get_value_name_int(i, "Insurance", CarInfo[veh][cInsurance]);
			cache_get_value_name_int(i, "ColorOne", CarInfo[veh][cColorOne]);
			cache_get_value_name_int(i, "ColorTwo", CarInfo[veh][cColorTwo]);
			cache_get_value_name_int(i, "Spawuned", CarInfo[veh][cSpawuned]);
			Total_Veh_Created = CarInfo[veh][cID];
printf("%d -   %s",CarInfo[veh][cID],CarInfo[veh][cOwner]);
		}
	}
	for(new i = 1; i < MAX_VEHICLES; i++) OwnedVeh(i) = 0;
	printf("Vehicles: %d", row_count);
	return 1;
}

Verifici daca in baza idul acela are acel nume 

 

    __  ____      __           
   /  |/  (_)____/ /____  _____
  / /|_/ / / ___/ __/ _ \/ ___/
 / /  / / (__  ) /_/  __/ /    
/_/  /_/_/____/\__/\___/_/     
SERVICII SCRIPTING DE CALITATE
Pagina     Scripting     pawn
Link to comment
Share on other sites

  • 0
Acum 7 minute, Mister a spus:

Ai butonul edit nu trebuia sa faci dublu post,


function LoadPlayerCar()
{
	new row_count;
	if(!cache_get_row_count(row_count))
	{
		new veh = 0;
		for(new i = 0; i < row_count; i++)
		{
			veh++;
			cache_get_value_name_int(i, "ID", CarInfo[veh][cID]);
			cache_get_value_name_int(i, "Model", CarInfo[veh][cModel]);
			cache_get_value_name(i, "Owner", CarInfo[veh][cOwner]);
			cache_get_value_name_int(i, "Type", CarInfo[veh][cType]);
			cache_get_value_name_float(i, "PosX", CarInfo[veh][cPosX]);
			cache_get_value_name_float(i, "PosY", CarInfo[veh][cPosY]);
			cache_get_value_name_float(i, "PosZ", CarInfo[veh][cPosZ]);
			cache_get_value_name_float(i, "PosR", CarInfo[veh][cPosR]);
			cache_get_value_name_float(i, "Km", CarInfo[veh][cKm]);
			cache_get_value_name_int(i, "Lock", CarInfo[veh][cLock]);
			cache_get_value_name_int(i, "Price", CarInfo[veh][cPrice]);
			cache_get_value_name_int(i, "Insurance", CarInfo[veh][cInsurance]);
			cache_get_value_name_int(i, "ColorOne", CarInfo[veh][cColorOne]);
			cache_get_value_name_int(i, "ColorTwo", CarInfo[veh][cColorTwo]);
			cache_get_value_name_int(i, "Spawuned", CarInfo[veh][cSpawuned]);
			Total_Veh_Created = CarInfo[veh][cID];
printf("%d -   %s",CarInfo[veh][cID],CarInfo[veh][cOwner]);
		}
	}
	for(new i = 1; i < MAX_VEHICLES; i++) OwnedVeh(i) = 0;
	printf("Vehicles: %d", row_count);
	return 1;
}

Verifici daca in baza idul acela are acel nume 

daca o pun sub prinft("Vehicles... apare 0 -, dar daca o pun sub Total_Veh_Created nu apare

Link to comment
Share on other sites

  • 0

Cum sa apara 0, este doar un mesaj in consola nu afecteaza cu nimic scriptul si trebuie sa apara doua lucruri in mesaj un nume si un nr. Arata server log partea cand se incarca

 

    __  ____      __           
   /  |/  (_)____/ /____  _____
  / /|_/ / / ___/ __/ _ \/ ___/
 / /  / / (__  ) /_/  __/ /    
/_/  /_/_/____/\__/\___/_/     
SERVICII SCRIPTING DE CALITATE
Pagina     Scripting     pawn
Link to comment
Share on other sites

  • 0
Acum 3 minute, Mister a spus:

Cum sa apara 0, este doar un mesaj in consola nu afecteaza cu nimic scriptul si trebuie sa apara doua lucruri in mesaj un nume si un nr. Arata server log partea cand se incarca


[23:09:55] Number of vehicle models: 0
[23:09:55] 0 -   
[23:09:55] Vehicles: 2
[23:10:46] [connection] 127.0.0.1:60840 requests connection cookie.
[23:10:47] [connection] incoming connection: 127.0.0.1:60840 id: 0
[23:10:48] [join] Mariusik has joined the server (0:127.0.0.1)

Link to comment
Share on other sites

  • 0

Dupa cum vezi incarcarea nu se face bine, daca gmul tau este pe mysql r-40 sau 41 din ce vad ca ai zis modifica cum iti dau eu sa vezi daca merge


    mysql_pquery(handle, "SELECT * FROM  `cars` ORDER BY `ID` ASC", "LoadPlayerCar");// la ongamemodeinit dai replace la acele doua randuri

// mysql_format(handle, gQuery, sizeof(gQuery), "SELECT * FROM `cars`");
//    mysql_tquery(handle, gQuery, "LoadPlayerCar", "");

 

iar la public unde ai

new row_count;

modifica in 

new row_count = cache_num_rows();

 

    __  ____      __           
   /  |/  (_)____/ /____  _____
  / /|_/ / / ___/ __/ _ \/ ___/
 / /  / / (__  ) /_/  __/ /    
/_/  /_/_/____/\__/\___/_/     
SERVICII SCRIPTING DE CALITATE
Pagina     Scripting     pawn
Link to comment
Share on other sites

  • 0
Acum 10 minute, Mister a spus:

Dupa cum vezi incarcarea nu se face bine, daca gmul tau este pe mysql r-40 sau 41 din ce vad ca ai zis modifica cum iti dau eu sa vezi daca merge


    mysql_pquery(handle, "SELECT * FROM  `cars` ORDER BY `ID` ASC", "LoadPlayerCar");// la ongamemodeinit dai replace la acele doua randuri

// mysql_format(handle, gQuery, sizeof(gQuery), "SELECT * FROM `cars`");
//    mysql_tquery(handle, gQuery, "LoadPlayerCar", "");

 

iar la public unde ai

new row_count;

modifica in 

new row_count = cache_num_rows();

la fel

sa fie din comanda:

 

CMD:v(playerid, params[])
{
	new string[60],string1[512],string2[700];
	if(GetVehNumber(playerid) == 0) 
	{
		return SendClientMessage( playerid, COLOR_ERROR, "Tu nu ai vehicule personale!" );
	}
	else
	{
		format(string,sizeof(string), "Garajul lui %s (%d/%d Sloturi)", GetName(playerid), GetVehNumber(playerid), PlayerData[playerid][pCar]);
		new header[64] = "Slot\tNume\tStatus";
		for(new i = 1; i <= Total_Veh_Created; i++)
		{
			if(strmatch(CarInfo[i][cOwner], GetName(playerid)))
			{
				if(IsVehSpawned(i) == 1) format(string1,sizeof(string1), "%s\tAscuns\n",VehicleNames[CarInfo[i][cModel] -400]);
				else format(string1,sizeof(string1), "%d\t%s\tAscuns\n",VehicleNames[CarInfo[i][cModel] -400]);
				strcat(string2,string1);
			}
		}
		strins(string2, header, 0);
		ShowPlayerDialog(playerid,DIALOG_GARAGE,DIALOG_STYLE_TABLIST_HEADERS, string, string2, "Alege","Iesi");
	}
	return 1;
}

 

Edited by Anonim69
SA NU FIE DE LA BAZA DE DATE, ITI DAU TEBEL?
Link to comment
Share on other sites

  • 0

public GetVehNumber(playerid)
{
    new nr = 0;
    for(new i = 1; i <= CarInfo[cID]; i++)

{

if(strmatch(CarInfo[cOwner], GetName(playerid))) nr ++;
    return nr;

}
}

Daca modifici asa adica scoti && !CarInfo[cType] iti arata in /v? poate acea variabila este problema incearca sa o scoti. altceva chiar nu inteleg din ce se vede care ar fi problema

 

    __  ____      __           
   /  |/  (_)____/ /____  _____
  / /|_/ / / ___/ __/ _ \/ ___/
 / /  / / (__  ) /_/  __/ /    
/_/  /_/_/____/\__/\___/_/     
SERVICII SCRIPTING DE CALITATE
Pagina     Scripting     pawn
Link to comment
Share on other sites

  • 0
Acum 3 minute, Mister a spus:

public GetVehNumber(playerid)
{
    new nr = 0;
    for(new i = 1; i <= CarInfo[cID]; i++)

{

if(strmatch(CarInfo[cOwner], GetName(playerid))) nr ++;
    return nr;

}
}

Daca modifici asa adica scoti && !CarInfo[cType] iti arata in /v? poate acea variabila este problema incearca sa o scoti. altceva chiar nu inteleg din ce se vede care ar fi problema

daca o scot il arata gol, fara nici o masina, am incercat la LoadPlayerCar sa fac sa le creeze, nu le creeaza pe server, deci este ceva din tabel sau LoadPlayerCar

Link to comment
Share on other sites

  • 0

multe persoane si pe alte comunitati sau plans de problema asta.

pot sa zic ca este o problema destul de grava sa zicem asa

trecand de la o versiune mai noua de mysql r - 40 chear daca gamemod-ul suporta  salvarea sa insa unele comenzi nu le suporta chear daca sunt bune puse la punct sau nu, parerea mea este sa testezi o versiune de mysql mai veche.

  • Like 1

FiveGame  Lands

Pawno Developer, Mapping , Scripter

Since 2016

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.