Jump to content
  • 0

Problema sistem de masini personal (creatie proprie)


Alexander.

Question

Problema intalnita (descriere): 

Deci am facut un sistem de masini personale pe mysql. La OnPlayerConnect am apelul pentru functia de load. Problema este ca nu mi se seteaza numarul de inmatriculare. Setarea numarului de inmatriculare o am la OnGameModeInit.

P.S.: Toate masinile dinaintea celor de la factiuni/civili au numar de inmatriculare bun (non-mysql, definire cu string direct din gm la ongamemodeinit).


Ero(area / rile) / warning-(ul / urile): -
Liniile de cod / sursa / script-ul(obligatoriu):

Load (OnPlayerConnect):

cache_get_field_content(0, "Plate", temp), format(CarInfo[h][cPlate], 128, temp);

Setare (OnGameModeInit):

for(new veh=0; veh < MAX_VEHICLES; veh++)
{
	...........................
	else if(veh > corleonecars[10])
	{
		format(string, 128, "%s", CarInfo[veh][cPlate]);
		SetVehicleNumberPlate(veh, string);
	}
}
definire cPlate[128];
baza de date Plate varchar(128)

Imagini / Video (optional): -
Ati incercat sa rezolvati singur?: Da, sa fac un public la ongamemodeinit care se apeleze incarcarea masinilor din baza de date dar m-am inpotmolit pe unde :-??

Edited by Alexander.

Caut un om serios cu gamemode acceptabil, cu capabilitatea de a tine un host, serviciile oferite de mine sunt de scripter (experienta de 5 ani in C/C++ limbajul folosit de SA:MP). Nu am pretentii la bani, doar un server si un parteneriat frumos. Pentru mai multe detalii accept pm-uri.

 

Universitatea de Vest din Timisoara,

Facultatea de Matematica si Informatica

Informatica aplicata, Anul I

Link to comment
Share on other sites

11 answers to this question

Recommended Posts

  • 0

Am inteles.

Fii atent.

La sistemul de autentificare este diferit fata de asta, de ce?

Pentru ca acolo selectezi randul 0, mereu pentru ca randul 0 inseamna ca ai gasit un utilizator in baza de date, incepe ca la vectori, de la 0.

Resultatul interoatrii pentru sistemul de autentificare (randul 0 inseamna ca m-a gasit pe mine, am ID-ul 1, Numele WopsS, etc.):

IDNumeParolaEmail
1WopsS1234[email protected]

Aici, este diferit, tu vrei sa selectezi toate masinile din baza de date.

Uite cum o sa arate resultatul interogarii

IDModelIDColor1Color2Plate
140000ASD
240111TEST
etc.etc.etc.etc.

etc.

De aici tu trebuie sa mergi prin fiecare ID, tu mergi doar pe primul ID, adica randul 0.

Asa ca daca vrei sa mergi prin toate, trebuie sa preiei informatiile despre coloana curenta, adica h in cazul tau.

Cum faci asta?

Simplu, inlocuiesti

cache_get_field_content(0,

cu

cache_get_field_content(h,

si o sa parcurgi toate randurile care le preiei cu interogarea.

 

Daca nu intelegi ceva intreaba-ma aici.

  • Upvote 1
Link to comment
Share on other sites

  • 0

Masinile incarcate la OnPlayerConnect (se executa cand un jucator se conecteaza) nu o sa aiba legatura cu OnGameModeInit (se executa atunci cand gamemode-ul este incarcat de server). Daca vrei sa le setezi numarul de inmatriculare muta instructiunea de la OnGameModeInit la OnPlayerConnect sau foloseste pur si simplu la OnPlayerConnect dupa

cache_get_field_content(0, "Plate", temp), format(CarInfo[h][cPlate], 128, temp);

pune

SetVehicleNumberPlate(ID_Vehicul, temp);

 

Link to comment
Share on other sites

  • 0

Greseala mea, am incurcat ceva

La OnPlayerConnect am asta:

mysql_format(handle, query, sizeof(query), "SELECT * FROM `pcars`");
mysql_tquery(handle, query, "LoadCars", "i", playerid);

iar la functia LoadCars() am asta:

cache_get_field_content(0, "Plate", temp), format(CarInfo[h][cPlate], 128, temp);

P.S.: Am incercat sa pun ce mi-ai zis tu de mai de mult (doar ca la loadcars) si n-a mers.

Pararea mea este ca masinile personale sunt create dupa ce se face setare numarului de inmatriculare, doar ca nu stiu ce sa fac...

//EDIT: Am pus un printf cu numarul de inmatriculare cand citeste masinile si il scrie bine.

//EDIT2: Am facut o comanda cu /mycars si nu-mi arata bine variabilele, ca si cum nu s-ar seta.

if(strcmp(cmd, "/mycars", true) == 0)
	{
		if(IsPlayerConnected(playerid))
		{
		    if(gLogged[playerid] == 1)
		    {
				if(PlayerInfo[playerid][pCarKey] != MAX_VEHICLES)
				{
					new veh = PlayerInfo[playerid][pCarKey];
					format(string,sizeof(string), "[Name]: %s, [Price]:%s, [Lock]:%d, [Plate]:%s [Color1]:%d, [Color2]:%d",CarInfo[veh][cModelName], FormatNumber(CarInfo[veh][cPrice]), CarInfo[veh][cLock], CarInfo[veh][cPlate], CarInfo[veh][cColor1], CarInfo[veh][cColor2] );
					SendClientMessage(playerid, COLOR_SYN, string);
				}
				else return SendClientMessage(playerid, COLOR_ERROR, "Error: Nu detii nici o masina personala!");
			}
			else
			{
			    SendClientMessage(playerid, COLOR_ERROR, "Trebuie sa fi logat pentru a utiliza aceasta comanda!");
			}
  		}
		return 1;
	}

//EDIT3: Am rezolvat comanda /mycars, nu citea bine id-ul masinii (fiind doar 1 in baza de date deocamdata dadea null peste tot).

Edited by Alexander.

Caut un om serios cu gamemode acceptabil, cu capabilitatea de a tine un host, serviciile oferite de mine sunt de scripter (experienta de 5 ani in C/C++ limbajul folosit de SA:MP). Nu am pretentii la bani, doar un server si un parteneriat frumos. Pentru mai multe detalii accept pm-uri.

 

Universitatea de Vest din Timisoara,

Facultatea de Matematica si Informatica

Informatica aplicata, Anul I

Link to comment
Share on other sites

  • 0
  • 0

Am uitat sa dau edit, scuzati-ma, am scris mai jos

Edited by Alexander.

Caut un om serios cu gamemode acceptabil, cu capabilitatea de a tine un host, serviciile oferite de mine sunt de scripter (experienta de 5 ani in C/C++ limbajul folosit de SA:MP). Nu am pretentii la bani, doar un server si un parteneriat frumos. Pentru mai multe detalii accept pm-uri.

 

Universitatea de Vest din Timisoara,

Facultatea de Matematica si Informatica

Informatica aplicata, Anul I

Link to comment
Share on other sites

  • 0

Deocamdata am rezolvat era o problema cu update-urile, acum introducere se face bine cand creez o masina, citirea se face binde doar ca imi da masinile in aceeasi pozitie chiar daca au coordonate diferint un baza de date si modelul masini il face la toate ca la prima masina, culorile la fel .... CHIAR DACA SUNT DIFERITE IN BAZA DE DATE.

Sistemul e exact la fel cu cel de case, si la case la fel face.

@WopsS Sistemele sunt inspirate din sistemul tau de login, ma gandesc ca la for-ul de la citire e ceva gresit.

Citirea:

public LoadCars()
{
	new string[512];
	cache_get_data(rows, fields, handle);
	if(rows != 0)
	{
		for(new h= 0; h<rows; h++)
		{
			cache_get_field_content(0, "CarID", temp), CarInfo[h][cCarID] = strval(temp);
			cache_get_field_content(0, "Model", temp), CarInfo[h][cModel] = strval(temp);
			cache_get_field_content(0, "LocationX", temp), CarInfo[h][cLocationX] = strval(temp);
			cache_get_field_content(0, "LocationY", temp), CarInfo[h][cLocationY] = strval(temp);
			cache_get_field_content(0, "LocationZ", temp), CarInfo[h][cLocationZ] = strval(temp);
			cache_get_field_content(0, "Angle", temp), CarInfo[h][cAngle] = strval(temp);
			cache_get_field_content(0, "Color1", temp), CarInfo[h][cColor1] = strval(temp);
			cache_get_field_content(0, "Color2", temp), CarInfo[h][cColor2] = strval(temp);
			cache_get_field_content(0, "Owner", temp), format(CarInfo[h][cOwner], 128, temp);
			cache_get_field_content(0, "ModelName", temp), format(CarInfo[h][cModelName], 128, temp);
			cache_get_field_content(0, "Price", temp), CarInfo[h][cPrice] = strval(temp);
			cache_get_field_content(0, "Owned", temp), CarInfo[h][cOwned] = strval(temp);
			cache_get_field_content(0, "Lock", temp), CarInfo[h][cLock] = strval(temp);
			cache_get_field_content(0, "Mod1", temp), CarInfo[h][cMod1] = strval(temp);
			cache_get_field_content(0, "Mod2", temp), CarInfo[h][cMod2] = strval(temp);
			cache_get_field_content(0, "Mod3", temp), CarInfo[h][cMod3] = strval(temp);
			cache_get_field_content(0, "Mod4", temp), CarInfo[h][cMod4] = strval(temp);
			cache_get_field_content(0, "Mod5", temp), CarInfo[h][cMod5] = strval(temp);
			cache_get_field_content(0, "Mod6", temp), CarInfo[h][cMod6] = strval(temp);
			cache_get_field_content(0, "Mod7", temp), CarInfo[h][cMod7] = strval(temp);
			cache_get_field_content(0, "Mod8", temp), CarInfo[h][cMod8] = strval(temp);
			cache_get_field_content(0, "Mod9", temp), CarInfo[h][cMod9] = strval(temp);
			cache_get_field_content(0, "Mod10", temp), CarInfo[h][cMod10] = strval(temp);
			cache_get_field_content(0, "Mod11", temp), CarInfo[h][cMod11] = strval(temp);
			cache_get_field_content(0, "Mod12", temp), CarInfo[h][cMod12] = strval(temp);
			cache_get_field_content(0, "Mod13", temp), CarInfo[h][cMod13] = strval(temp);
			cache_get_field_content(0, "Mod14", temp), CarInfo[h][cMod14] = strval(temp);
			cache_get_field_content(0, "Mod15", temp), CarInfo[h][cMod15] = strval(temp);
			cache_get_field_content(0, "Mod16", temp), CarInfo[h][cMod16] = strval(temp);
			cache_get_field_content(0, "Mod17", temp), CarInfo[h][cMod17] = strval(temp);
			cache_get_field_content(0, "Mod18", temp), CarInfo[h][cMod18] = strval(temp);
			cache_get_field_content(0, "Fuel", temp), CarInfo[h][cFuel] = strval(temp);
			cache_get_field_content(0, "Plate", temp), format(CarInfo[h][cPlate], 128, temp);
			pcars[h] = CreateVehicle(CarInfo[h][cModel],CarInfo[h][cLocationX],CarInfo[h][cLocationY],CarInfo[h][cLocationZ],CarInfo[h][cAngle],CarInfo[h][cColor1],CarInfo[h][cColor2],-1,0);
			SetVehicleNumberPlate(CarInfo[h][cCarID], CarInfo[h][cPlate]);

 

Edited by Alexander.

Caut un om serios cu gamemode acceptabil, cu capabilitatea de a tine un host, serviciile oferite de mine sunt de scripter (experienta de 5 ani in C/C++ limbajul folosit de SA:MP). Nu am pretentii la bani, doar un server si un parteneriat frumos. Pentru mai multe detalii accept pm-uri.

 

Universitatea de Vest din Timisoara,

Facultatea de Matematica si Informatica

Informatica aplicata, Anul I

Link to comment
Share on other sites

  • 0

Am rezolvat datorita ție @WopsS. Multumesc mult!

P.S.: Nu cunosteam funcția, nu stiam exact ce parametrii are.

P.S.S: Cand ies din interiorul groove 

Cj's house32496.049804,-1695.238159,1014.742187

 

imi arunca masinile in sus, face aiurea rau.

Edited by Alexander.

Caut un om serios cu gamemode acceptabil, cu capabilitatea de a tine un host, serviciile oferite de mine sunt de scripter (experienta de 5 ani in C/C++ limbajul folosit de SA:MP). Nu am pretentii la bani, doar un server si un parteneriat frumos. Pentru mai multe detalii accept pm-uri.

 

Universitatea de Vest din Timisoara,

Facultatea de Matematica si Informatica

Informatica aplicata, Anul I

Link to comment
Share on other sites

  • 0

Daca fac asa ar trebui sa pun toate masinile si playerilor sa le dau la register/login acel vw?

P.S: Am facut o comanda de parcat masina, se salveaza tot-tot, doar ca nu stiu cum sa fac sa o respawneze in locatia aia, ca asa sunt nevoit sa dau restart la server ca sa se spawneze in locatia noua. Am incercat cu destroy si createvehicle / addstaticvehicle.

Edited by Alexander.

Caut un om serios cu gamemode acceptabil, cu capabilitatea de a tine un host, serviciile oferite de mine sunt de scripter (experienta de 5 ani in C/C++ limbajul folosit de SA:MP). Nu am pretentii la bani, doar un server si un parteneriat frumos. Pentru mai multe detalii accept pm-uri.

 

Universitatea de Vest din Timisoara,

Facultatea de Matematica si Informatica

Informatica aplicata, Anul I

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • 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.