Jump to content

Question

Posted (edited)

Salutare, doresc cand un player se conecteaza pe server, masinile personale sa i se spawneze. 

Eu am ceva de genul cand se conecteaza:

if(playerVariables[playerid][pCarKey1] != 0) SpawnPlayerCar(playerVariables[playerid][pCarKey1]);

iar functia SpawnPlayerCar este asta:

stock SpawnPlayerCar(dbid) 
{
	if(dbid != 0)
	{
		new car = CreateVehicle(carVariables[dbid][cModel], carVariables[dbid][cPos][0], carVariables[dbid][cPos][1], carVariables[dbid][cPos][2], carVariables[dbid][cRotate], carVariables[dbid][cColour][0], carVariables[dbid][cColour][1], -1);		    	
		vPersonal[car] = dbid;	
	}	
	return 1;
}

Asta e ce am facut eu.. Problema este ca imi recunoaste masina, cand intru in ea zice ca este a mea.. doar ca o spawneaza undeva in camp, culorile nu sunt cele din baza de date. Aveti idee ce are? 

Edited by LeetRomania

19 answers to this question

Recommended Posts

  • 0
Posted

Serverul nu incarca informatiile din baza de date asupra vehiculelor personale.

242086.png

  • 0
Posted
1 minute ago, KnowN said:

Serverul nu incarca informatiile din baza de date asupra vehiculelor personale.

Incarca.. Crezi ca poti sa ma ajuti? 

  • 0
  • Administrator
Posted

Fai un debug pentru carVariables[dbid][cPos][0], carVariables[dbid][cPos][1], carVariables[dbid][cPos][2], carVariables[dbid][cRotate] (adica sa afisezi ce valori au).

  • 0
Posted
14 minutes ago, WopsS said:

Fai un debug pentru carVariables[dbid][cPos][0], carVariables[dbid][cPos][1], carVariables[dbid][cPos][2], carVariables[dbid][cRotate] (adica sa afisezi ce valori au).

Sper ca am facut bine. Nu stiu exact daca asa se face un debug.

printf("%f\n%f\n%f\n%f\n", carVariables[dbid][cPos][0], carVariables[dbid][cPos][1], carVariables[dbid][cPos][2], carVariables[dbid][cRotate]);

Cand m-am conectat pe sv, in consola apare asa

1076.642456
1076.642456
1076.642456
0.313924

  • 0
Posted
2 minutes ago, LeetRomania said:

Sper ca am facut bine. Nu stiu exact daca asa se face un debug.

printf("%f\n%f\n%f\n%f\n", carVariables[dbid][cPos][0], carVariables[dbid][cPos][1], carVariables[dbid][cPos][2], carVariables[dbid][cRotate]);

Cand m-am conectat pe sv, in consola apare asa

1076.642456
1076.642456
1076.642456
0.313924

Coordonatele de pe camp :))

 

242086.png

  • 0
Posted
Just now, KnowN said:

Coordonatele de pe camp :))

 

Da. E ciudat totusi. Ii dau /park sa zicem in fata la dealership, se salveaza corect in baza de date iar cand ma conectez pe sv masina se duce in camp. 

  • 0
Posted
12 minutes ago, WopsS said:

Arata-ne codul care incarca vehiculele cand te conectezi pe server.

if(playerVariables[playerid][pCarKey1] != 0) SpawnPlayerCar(playerVariables[playerid][pCarKey1]);

asta il folosesc ca sa spawneze masina.. 

  • 0
  • Administrator
Posted

Eu ma refer cum incarci vehiculul din baza de date, nu cum il spawnezi in joc.

  • 0
Posted
Just now, WopsS said:

Eu ma refer cum incarci vehiculul din baza de date, nu cum il spawnezi in joc.

public IniVehicule()
{
	new Cache: result15 = mysql_query (handle, "SELECT * FROM `vehicule` ORDER BY `vehicule`.`vID` ASC");
	
 	for (new i, j = cache_get_row_count ( ); i != j; ++i )
	{
		new x;

		cache_get_field_content(i, "vID", result); x = strval(result);
		cache_get_field_content(i, "vModel", result); carVariables[x][cModel] = strval(result);
		cache_get_field_content(i, "vOwnerID", result); carVariables[x][cOwnerID] = strval(result);
		cache_get_field_content(i, "vKM", result); carVariables[x][cKM] = strval(result);
		cache_get_field_content(i, "vDays", result); carVariables[x][cDays] = strval(result);
		cache_get_field_content(i, "vLock", result); carVariables[x][cLock] = strval(result);
		cache_get_field_content(i, "vText", result); format(carVariables[x][cText], 64, result);
		cache_get_field_content(i, "vPosX", result); carVariables[x][cPos][0] = floatstr(result);
		cache_get_field_content(i, "vPosY", result); carVariables[x][cPos][1] = floatstr(result);
		cache_get_field_content(i, "vPosZ", result); carVariables[x][cPos][2] = floatstr(result);
		cache_get_field_content(i, "vPosAngle", result); carVariables[x][cRotate] = floatstr(result);
		cache_get_field_content(i, "vOwnerName", result); format(carVariables[x][cOwner], MAX_PLAYER_NAME, result);
		cache_get_field_content(i, "vPlate", result); format(carVariables[x][cPlate], 10, result);
		cache_get_field_content(i, "vColour1", result); carVariables[x][cColour][0] = strval(result);
		cache_get_field_content(i, "vColour2", result); carVariables[x][cColour][1] = strval(result);
		cache_get_field_content(i, "vVIP", result); carVariables[x][cVIP] = strval(result);

		masini = x;

		systemVariables[PersonalCars]++;
	}
	printf("[script] %d personal cars loaded.", systemVariables[PersonalCars]);
	cache_delete(result15);
	return 1;
}

 

  • 0
  • Administrator
Posted

In loc de

cache_get_field_content(i, "vPosX", result); carVariables[x][cPos][0] = floatstr(result);

poti sa folosesti cache_get_field_content_float. Pune o conditie sa afisezi coordonatele cand variabila x este egala cu ID-ul masinii tale.

  • 0
Posted
2 minutes ago, WopsS said:

In loc de


cache_get_field_content(i, "vPosX", result); carVariables[x][cPos][0] = floatstr(result);

poti sa folosesti cache_get_field_content_float. Pune o conditie sa afisezi coordonatele cand variabila x este egala cu ID-ul masinii tale.

Am inlocuit la toate care aveau float

cache_get_field_content_float(i, "vPosX", result); carVariables[x][cPos][0] = floatstr(result);
		cache_get_field_content_float(i, "vPosY", result); carVariables[x][cPos][1] = floatstr(result);
		cache_get_field_content_float(i, "vPosZ", result); carVariables[x][cPos][2] = floatstr(result);
		cache_get_field_content_float(i, "vPosAngle", result); carVariables[x][cRotate] = floatstr(result);

unde ar trebui sa pun conditia aia? 

  • 0
  • Administrator
Posted

Nu iti mai trebuie

carVariables[x][cPos][0] = floatstr(result);

Trebuie sa o pui dupa

masini = x;

 

  • 0
Posted (edited)
3 minutes ago, WopsS said:

Nu iti mai trebuie


carVariables[x][cPos][0] = floatstr(result);

Trebuie sa o pui dupa


masini = x;

 

Am facut asa:

		cache_get_field_content(i, "vID", result); x = strval(result);
		masini = x;
		cache_get_field_content(i, "vModel", result); carVariables[x][cModel] = strval(result);
		cache_get_field_content(i, "vOwnerID", result); carVariables[x][cOwnerID] = strval(result);
		cache_get_field_content(i, "vKM", result); carVariables[x][cKM] = strval(result);
		cache_get_field_content(i, "vDays", result); carVariables[x][cDays] = strval(result);
		cache_get_field_content(i, "vLock", result); carVariables[x][cLock] = strval(result);
		cache_get_field_content(i, "vText", result); format(carVariables[x][cText], 64, result);
		cache_get_field_content(i, "vPosX", result); carVariables[x][cPos][0] = floatstr(result);
		cache_get_field_content(i, "vPosY", result); carVariables[x][cPos][1] = floatstr(result);
		cache_get_field_content(i, "vPosZ", result); carVariables[x][cPos][2] = floatstr(result);
		cache_get_field_content(i, "vPosAngle", result); carVariables[x][cRotate] = floatstr(result);
		cache_get_field_content(i, "vOwnerName", result); format(carVariables[x][cOwner], MAX_PLAYER_NAME, result);
		cache_get_field_content(i, "vPlate", result); format(carVariables[x][cPlate], 10, result);
		cache_get_field_content(i, "vColour1", result); carVariables[x][cColour][0] = strval(result);
		cache_get_field_content(i, "vColour2", result); carVariables[x][cColour][1] = strval(result);
		cache_get_field_content(i, "vVIP", result); carVariables[x][cVIP] = strval(result);

Am dat rr sa testez.. si este la fel.. tot in camp.

Edited by LeetRomania
  • 0
  • Administrator
Posted

Eu zic sa afisezi positia masinii nu sa schimbi ordinea codului. Adica sa verifici daca x este egal cu ID-ul masinii personale din baza de date, dupa sa afisezi pozitia incarcata si sa ne arati ce valoare au.

  • 0
Posted
10 minutes ago, WopsS said:

Eu zic sa afisezi positia masinii nu sa schimbi ordinea codului. Adica sa verifici daca x este egal cu ID-ul masinii personale din baza de date, dupa sa afisezi pozitia incarcata si sa ne arati ce valoare au.

Poti sa imi explici mai clar.. Scuze, dar chiar nu inteleg ce trebuie sa fac.. :( 
 

  • 0
  • Administrator
Posted

Ti-am spus mai sus.

Adica sa verifici daca x este egal cu ID-ul masinii personale din baza de date, daca este egal sa afisezi pozitia vehiculului si sa ne arati ce valoare au.

  • 0
Posted

Uite un exemplu, sa zicem ca masina la care vrei sa verifici are id in db= 7 => x=7

If (x==7) printf (coordonate); verifici daca ce e in db + ce apare de la ambele printf-uri in consola sunt acelasi. 

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.