Guten Tag, liebes Breadfish.
Da ich mich in letzter Zeit wieder mehr mit dem Scripten beschäftigt habe, wollte ich mein Dynamisches FrakCarSystem schreiben.
Das Laden bekomme ich auch noch hin, aber ich möchte, dass NUR die Position von dem Fahrzeug, in dem man sitzt, aktualisiert wird.
(Natürlich auch wieder in die Tabelle schreiben). Hat jemand ne Ahnung, wie ich sowas schaffen könnte?
Besonders nützlich für die Copy & Paste Bobs
Ich weis nur nicht, wie ich das EINE Fahrzeug jetzt speichern lasse, ohne die anderen auch zu speichern.
BRAINFUCK!
//OnGameModeInit
for(new o=0; o<MAX_FRAK_CARS; o++)
{
FrakCarsLaden(o);
}
//Befehle
//Erstell-Befehl
ocmd:cfc(playerid,params[])
{
new model, Float:x, Float:y, Float:z, fc1, fc2, fid;
GetPlayerPos(playerid,x,y,z);
if(SpielerInfo[playerid][pAdminlevel] < 4)return SendClientMessage(playerid,weis,"Fehler: Du hast nicht das passende Adminlevel.");
if(sscanf(params,"iiii",model,fid,fc1,fc2))return SendClientMessage(playerid,weis,"Fehler: /cfc (Model) (Frakid) (FC1) (FC2)");
CreateFrakCar(x,y,z,fc1,fc2,fid,model);
return 1;
}
//speicher Befehl
ocmd:fparken(playerid,params[]){
return 1;
}
//stocks
stock FrakCarsSpeichern(cids)
{
new string[128];
format(string,128,"%i",cids);
GetVehiclePos(FCar[cids][fcCar],FCar[cids][fcX],FCar[cids][fcY],FCar[cids][fcZ]);
GetVehicleZAngle(FCar[cids][fcCar],FCar[cids][fcA]);
mysql_SetFloat("FAutos", "X", FCar[cids][fcX], "ID", string);
mysql_SetFloat("FAutos", "Y", FCar[cids][fcY], "ID", string);
mysql_SetFloat("FAutos", "Z", FCar[cids][fcZ], "ID", string);
mysql_SetFloat("FAutos", "A", FCar[cids][fcA], "ID", string);
return 1;
}
stock CreateFrakCar(Float:x, Float:y, Float:z, fc1, fc2,ff,model)
{
new Query[512];
format(Query,512,"INSERT INTO FAutos (X,Y,Z,FCC1,FCC2,FCID,Model) VALUES ('%f','%f','%f','%i','%i','%i','%i')",x,y,z,fc1,fc2,ff,model);
mysql_query(Query);
CreateVehicle(model,x,y,z,0.0,fc1,fc2,-1);
return 1;
}
stock FrakCarsLaden(cids)
{
new string[128];
format(string,128,"%i",cids);
FCar[cids][fcModel] = mysql_GetInt("FAutos", "Model", "ID", string);
FCar[cids][fcX] = mysql_GetFloat("FAutos", "X", "ID", string);
FCar[cids][fcY] = mysql_GetFloat("FAutos", "Y", "ID", string);
FCar[cids][fcZ] = mysql_GetFloat("FAutos", "Z", "ID", string);
FCar[cids][fcA] = mysql_GetFloat("FAutos", "A", "ID", string);
FCar[cids][fcC1] = mysql_GetInt("FAutos", "FCC1", "ID", string);
FCar[cids][fcC2] = mysql_GetInt("FAutos", "FCC2", "ID", string);
FCar[cids][fcID] = mysql_GetInt("FAutos", "FCID", "ID", string);
format(FCar[cids][fcSchild],128,"%s",mysql_GetString("FAutos", "FCSCHILD", "ID", string));
FCar[cids][fcCar] = CreateVehicle(FCar[cids][fcModel],FCar[cids][fcX],FCar[cids][fcY],FCar[cids][fcZ],FCar[cids][fcA],FCar[cids][fcC1],FCar[cids][fcC2],-1);
SetVehicleNumberPlate(FCar[cids][fcCar],FCar[cids][fcSchild]);
SetVehicleToRespawn(FCar[cids][fcCar]);
return 1;
}
//Enum
enum FrakAutos
{
fcID,
Float:fcX,
Float:fcY,
Float:fcA,
Float:fcZ,
fcC1,
fcC2,
fcSchild[128],
fcCar,
fcModel
}
new FCar[MAX_FRAK_CARS][FrakAutos];
#define MAX_FRAK_CARS 200