Wie erstellst du die Privaten Fahrzeuge denn?
Frak car system
- reaL.
- Geschlossen
- Erledigt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
so
Jeffry:
createPlayerCar(playerid,modelid,Float:x,Float:y,Float:z,Float:r)
{
for(new i=0; i<sizeof(cInfo); i++)
{
if(cInfo[i][id_x]!=0)continue;
cInfo[i][besitzer]=sInfo[playerid][db_id];
cInfo[i][c_x]=x;
cInfo[i][c_y]=y;
cInfo[i][c_z]=z;
cInfo[i][c_r]=r;
cInfo[i][model]=modelid;
cInfo[i][id_x] = CreateVehicle(modelid,x,y,z,r,-1,-1,-1);
tank[cInfo[i][id_x]] = 100;
SetVehicleParamsEx(cInfo[i][id_x],0,0,0,1,0,0,0);
saveCarToDB(playerid,i);
new query[256];
format(query,sizeof(query),"UPDATE autos SET Kennzeichen='%s' WHERE id='%i'",cInfo[i][ckz],cInfo[i][db_id]);
mysql_function_query(dbhandle,query,false,"","");
return 1;
}
return 1;
} -
Dann ersetze MAX_PV_VEHICLES mit:
sizeof(cInfo) -
Beitrag von reaL. ()
Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar. -
wäre es nicht einfacher Mit MAX_VEHICLES zu Arbeiten eine Abfrage durch alle cars und abfragen ob es dort schon existiert und dann durch die Datenbank abzufragen ?
dann bekomme ich Errors
C:\Users\anette\Desktop\Selfmade\Reallife Script v1.3.5\gamemodes\Reallifescript.pwn(11741) : error 033: array must be indexed (variable "cInfo")
C:\Users\anette\Desktop\Selfmade\Reallife Script v1.3.5\gamemodes\Reallifescript.pwn(11743) : error 017: undefined symbol "pvVehicle"
C:\Users\anette\Desktop\Selfmade\Reallife Script v1.3.5\gamemodes\Reallifescript.pwn(11743) : warning 215: expression has no effect
C:\Users\anette\Desktop\Selfmade\Reallife Script v1.3.5\gamemodes\Reallifescript.pwn(11743) : error 001: expected token: ";", but found "]"
C:\Users\anette\Desktop\Selfmade\Reallife Script v1.3.5\gamemodes\Reallifescript.pwn(11743) : error 029: invalid expression, assumed zero
C:\Users\anette\Desktop\Selfmade\Reallife Script v1.3.5\gamemodes\Reallifescript.pwn(11743) : fatal error 107: too many error messages on one lineund wenn ich das hier mache dan spawnen nicht alle fcars
public LoadFracVehicles_Data()
{
new rows, id, createdVehs;
rows = cache_num_rows();
for(new i=0; i<rows; i++)
{
id = cache_get_field_content_int(i, "ID");
if(id < 0 || id >= MAX_FRAC_VEHICLES) continue;
fcars[id][fc_modelID] = cache_get_field_content_int(i, "ModelID");
fcars[id][fc_x] = cache_get_field_content_float(i, "PosX");
fcars[id][fc_y] = cache_get_field_content_float(i, "PosY");
fcars[id][fc_z] = cache_get_field_content_float(i, "PosZ");
fcars[id][fc_a] = cache_get_field_content_float(i, "PosA");
fcars[id][fc_color1] = cache_get_field_content_int(i, "Color1");
fcars[id][fc_color2] = cache_get_field_content_int(i, "Color2");
fcars[id][fc_fracID] = cache_get_field_content_int(i, "FracID");
if(fcars[id][fc_modelID] >= 400 && fcars[id][fc_modelID] <= 611)
{
fcars[id][fc_vID] = CreateVehicle(fcars[id][fc_modelID], fcars[id][fc_x], fcars[id][fc_y], fcars[id][fc_z], fcars[id][fc_a], fcars[id][fc_color1], fcars[id][fc_color2], -1);
/*new str[10],plate;
plate = GetFreeNumberPlate();
format(str, sizeof(str), "PRP-%d", plate);
cInfo[i][ckz] = SetVehicleNumberPlate(cInfo[i][id_x],str);*/
}
else
{
printf("[Error] Model-ID %d existiert nicht (ID: %d).", fcars[id][fc_modelID], id);
}
if(GetVehicleModel(MAX_VEHICLES-1) != 0) return print("Es können keine weiteren Fahrzeuge geladen werden, Limit (MAX_VEHICLES) erreicht.");
createdVehs++;
if(createdVehs == MAX_FRAC_VEHICLES) return print("Es können keine weiteren Fahrzeuge geladen werden, Limit (MAX_FRAC_VEHICLES) erreicht.");
}
return 1;
} -
Nein.
Der Error kommt, weil du die Variable nicht umbenannt hast.
stock GetFreeNumberPlate()
{
new rand = random(9000)+1000, security;
GFNP_AGAIN:
for(new i=0; i<MAX_FRAC_VEHICLES; i++)
{
if(fracVehicle[i][e_plate] == rand)
{
rand++;
if(rand > 9999)
{
if(security > 0) return -1;
rand = 1000;
security = 1;
}
goto GFNP_AGAIN;
}
}
for(new i=0; i<sizeof(cInfo); i++)
{
if(cInfo[i][e_plate] == rand)
{
rand++;
if(rand > 9999)
{
if(security > 0) return -1;
rand = 1000;
security = 1;
}
goto GFNP_AGAIN;
}
}
return rand;
}Außerdem musst du in dem enum zu cInfo auch e_plate eintragen.
-
ok hab das jetze aber es wird i-wie net gespeichert bei den Fcars
public SaveAllFracVehs()
{
new query[256];
for(new i=0; i<MAX_FRAC_VEHICLES; i++)
{
if(fcars[i][fc_modelID] >= 400 && fcars[i][fc_modelID] <= 611)
{
format(query, sizeof(query), "UPDATE FracVehicles SET ModelID = '%d', PosX = '%f', PosY = '%f', PosZ = '%f', PosA = '%f', Color1 = '%d', Color2 = '%d', FracID = '%d', Kennzeichen = '%d' WHERE ID = '%d'",
fcars[i][fc_modelID], fcars[i][fc_x], fcars[i][fc_y], fcars[i][fc_z], fcars[i][fc_a], fcars[i][fc_color1], fcars[i][fc_color2], fcars[i][fc_fracID],fcars[i][e_plate], i);
mysql_tquery(dbhandle, query);
}
}
return 1;
}LoadFrakVehicles()
{
mysql_tquery(dbhandle, "SELECT * FROM FracVehicles ORDER BY ID ASC", "LoadFracVehicles_Data");
return 1;
}public LoadFracVehicles_Data()
{
new rows, id, createdVehs;
rows = cache_num_rows();
for(new i=0; i<rows; i++)
{
id = cache_get_field_content_int(i, "ID");
if(id < 0 || id >= MAX_FRAC_VEHICLES) continue;
fcars[id][fc_modelID] = cache_get_field_content_int(i, "ModelID");
fcars[id][fc_x] = cache_get_field_content_float(i, "PosX");
fcars[id][fc_y] = cache_get_field_content_float(i, "PosY");
fcars[id][fc_z] = cache_get_field_content_float(i, "PosZ");
fcars[id][fc_a] = cache_get_field_content_float(i, "PosA");
fcars[id][fc_color1] = cache_get_field_content_int(i, "Color1");
fcars[id][fc_color2] = cache_get_field_content_int(i, "Color2");
fcars[id][fc_fracID] = cache_get_field_content_int(i, "FracID");
cache_get_field_content(i,"Kennzeichen",fcars[id][e_plate],dbhandle,10);
if(fcars[id][fc_modelID] >= 400 && fcars[id][fc_modelID] <= 611)
{
fcars[id][fc_vID] = CreateVehicle(fcars[id][fc_modelID], fcars[id][fc_x], fcars[id][fc_y], fcars[id][fc_z], fcars[id][fc_a], fcars[id][fc_color1], fcars[id][fc_color2], -1);
SetVehicleNumberPlate(fcars[i][fc_vID],fcars[i][e_plate]);
}
else
{
printf("[Error] Model-ID %d existiert nicht (ID: %d).", fcars[id][fc_modelID], id);
}
if(GetVehicleModel(MAX_VEHICLES-1) != 0) return print("Es können keine weiteren Fahrzeuge geladen werden, Limit (MAX_VEHICLES) erreicht.");
createdVehs++;
if(createdVehs == MAX_FRAC_VEHICLES) return print("Es können keine weiteren Fahrzeuge geladen werden, Limit (MAX_FRAC_VEHICLES) erreicht.");
}
return 1;
} -
cache_get_field_content(i,"Kennzeichen",fcars[id][e_plate],dbhandle,10);
zu:
fcars[id][e_plate] = cache_get_field_content_int(i, "Kennzeichen");SetVehicleNumberPlate(fcars[i][fc_vID],fcars[i][e_plate]);
zu:
new str[10];
format(str, sizeof(str), "ABC-%d", fcars[i][e_plate]);
SetVehicleNumberPlate(fcars[i][fc_vID],str); -
Ja ich will ja das Kennzeichen auslesen lassen und dann Setzen lassen aber jetze habe ich diesen Error
[18:09:01] [ERROR] cache_get_field_content_int - invalid datatype
-
Du musst die Spalte Kennzeichen in der Datenbank zu einem INT Feld ändern, da du ja nur die Nummer speicherst und nicht das ganze Schild, sprich den ganzen Text (da der ja immer gleich ist).
-
-
Beitrag von reaL. ()
Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar. -
Jeffry:
ich habe jetze das Problem mit mein VIP Cars und meinen Job cars wie muss ich das machen ?
Job enum
enum JobCars
{
Jobid,
model,
Float:c_x,
Float:c_y,
Float:c_z,
Float:c_r,
Color1,
Color2,
v_ID
}so wird erstellt
for(new c=0; c<sizeof(Jobc); c++)
{
Jobc[code=c][v_ID] = AddStaticVehicleEx(Jobc[code=c][model],Jobc[code=c][c_x],Jobc[code=c][c_y],Jobc[code=c][c_z],Jobc[code=c][c_r],Jobc[code=c][Color1],Jobc[code=c][Color2],-1);
if(Jobc[code=c][Jobid] == 2)
{
SetVehicleNumberPlate(Jobc[code=c][v_ID],"Müllmann");
} -
Auch die Nummern hinzufügen?
Dann musst du dort genau gleich vorgehen, und in die Funktion diese Fahrzeuge auch mit einer Schleife, wie die anderen beiden, eintragen.
Versuche dich einfach mal daran. -
breadfish.de
Hat das Thema geschlossen.