Abend, undzwar habe ich folgende Probleme mit 2 Befehlen, undzwar möchte ich Fraktionsfahrzeuge vom Skript aus Erstellen lassen, soweit klappen die Befehle, aber ich habe da ein paar Fehler.
Befehle:
ocmd:fcerstellen(playerid,params[])
{
if(GetVehicleModel(MAX_VEHICLES-1) != 0) return SendClientMessage(playerid,0xFF0000FF,"{DB4447}Info: {F2F2F2}Das Limit der Fahrzeuge wurde erreicht, es können keine weiteren Fahrzeuge erstellt werden!");
new model, fID, color1 = -1, color2 = -1;
if(sscanf(params,"dddd",model,fID,color1,color2)) return SendClientMessage(playerid,0x00D2D2FF,"{DB4447}Info: {F2F2F2}/fcerstellen [Model] [FraktionsID] [Farbe1] [Farbe2]");
if(model < 400 || model > 611) return SendClientMessage(playerid, 0xFF0000FF, "{E83A3D}Error: {F2F2F2}Model ID existiert nicht.");
for (new i=0; i<MAX_FRAC_VEHICLES; i++)
{
if(FrakVeh[i][fc_vID] == 0)
{
new Float:x, Float:y, Float:z, Float:r;
GetPlayerPos(playerid,x,y,z);
GetPlayerFacingAngle(playerid,r);
if(FrakVeh[i][fc_Erstellt] == true) continue;
FrakVeh[i][fc_modelID] = model;
FrakVeh[i][fc_Erstellt] = true;
FrakVeh[i][fc_x] = x;
FrakVeh[i][fc_y] = y;
FrakVeh[i][fc_z] = z;
FrakVeh[i][fc_r] = r;
FrakVeh[i][fc_color1] = color1;
FrakVeh[i][fc_color2] = color2;
FrakVeh[i][fc_frakID] = fID;
new query[256];
format(query, sizeof(query), "INSERT INTO `Frakcars` (fcID, ModelID, PosX, PosY, PosZ, PosR, Color1, Color2, FrakID) VALUES ('%d', '%d', '%f', '%f', '%f', '%f', '%d', '%d', '%d')",
i, FrakVeh[i][fc_modelID], FrakVeh[i][fc_x], FrakVeh[i][fc_y], FrakVeh[i][fc_z], FrakVeh[i][fc_r], FrakVeh[i][fc_color1], FrakVeh[i][fc_color2], FrakVeh[i][fc_frakID]);
mysql_tquery(DBHandle, query);
FrakVeh[i][fc_vID] = CreateVehicle(FrakVeh[i][fc_modelID], FrakVeh[i][fc_x], FrakVeh[i][fc_y], FrakVeh[i][fc_z], FrakVeh[i][fc_r], FrakVeh[i][fc_color1], FrakVeh[i][fc_color2], -1);
PutPlayerInVehicle(playerid, FrakVeh[i][fc_vID], 0);
format(query,sizeof(query),"{DB4447}Info: {F2F2F2}Das neue Fahrzeug: %s wurde erfolgreich für die Fraktion %s in die Datenbank gespeichert!",VehicleName[model-400],Spieler[playerid][pFraktion]);
return 1;
}
}
return SendClientMessage(playerid, 0xFF0000FF, "{E83A3D}Error: {F2F2F2}Das Limit für die maximale Anzahl der für die Fraktion erstellten Fahrzeuge ist erreicht.");
}
ocmd:fcloeschen(playerid,params[])
{
#pragma unused params
new vID; vID = GetPlayerVehicleID(playerid);
if(sscanf(params,"d",vID)) return SendClientMessage(playerid, 0xFF0000FF, "{DB4447}Info: {F2F2F2}Um ein Fahrzeug zu löschen, setze dich in dieses, oder gebe die Fahrzeug ID ein");
if(!IsPlayerAnAdmin(playerid,3)) return SendClientMessage(playerid,0x00D2D2FF,"{E83A3D}AdmCmd: {F2F2F2}Sie besitzen nicht die nötigen Rechte um diesen Befehl zu nutzen!");
if(GetPlayerVehicleSeat(playerid) != 0) return SendClientMessage(playerid,0x00D2D2FF,"{DB4447}Info: {F2F2F2}Du bist nicht der Fahrer des Fahrzeugs.");
if(!IsAFraktionsVeh(vID)) return SendClientMessage(playerid, 0xFF0000FF, "{E83A3D}Error: {F2F2F2}Du sitzt in keinem [Fraktions] - Fahrzeug.");
for(new i=0; i<MAX_FRAC_VEHICLES; i++)
{
if(FrakVeh[i][fc_vID] == vID)
{
FrakVeh[i][fc_modelID] = 0;
FrakVeh[i][fc_x] = 0.0;
FrakVeh[i][fc_y] = 0.0;
FrakVeh[i][fc_z] = 0.0;
FrakVeh[i][fc_r] = 0.0;
FrakVeh[i][fc_color1] = 0;
FrakVeh[i][fc_color2] = 0;
FrakVeh[i][fc_frakID] = -1;
new query[128];
format(query, sizeof(query), "DELETE FROM `Frakcars` WHERE fcID = '%d'", i);
mysql_tquery(DBHandle, query);
DestroyVehicle(FrakVeh[i][fc_vID]);
FrakVeh[i][fc_vID] = 0;
return SendClientMessage(playerid, 0x00FF00FF, "{DB4447}Info: {F2F2F2}Das Fahrzeug wurde erfolgreich aus der Datenbank gelöscht.");
}
}
return SendClientMessage(playerid, 0xFF0000FF, "{E83A3D}Error: {F2F2F2}Vehicle-ID ist kein Fraktions-Fahrzeug.");
}
Probleme:
- Ich möchte es so haben, das ich Maximal pro Fraktion erstmal 5 Fahrzeuge erstellen kann, dafür habe ich oben dies Definiert #define MAX_FRAC_VEHICLES 10#define MAX_FRAC_VEHICLES_ALLOWED 5. Das Problem nun ist, das ich Maximal nur 5 Fahrzeuge für alle Fraktionen zusammen erstellen kann.
- Um ein Fahrzeug zu löschen, muss ich die Fahrzeug ID eingeben, aber ich möchte, das ich in dem Fahrzeug "sitzen" muss, damit dies wo ich drinne Sitze gelöscht wird.
wäre Nett, wenn mir das jemand erklären könnte!