Beitrag von N1co ()
Dieser Beitrag wurde vom Autor aus folgendem Grund gelöscht: fail ().
ocmd:createfcar(playerid,params[])
{
if(!IsAdmin(playerid,3))return noaccess
new mdid, cc1, cc2, fid;
if(sscanf(params,"dddd",mdid,cc1,cc2,fid))return SendClientMessage(playerid,GRAU,"Verwendung: /createfcar (ModelID) (Color1) (Color2) (FraktionsID)");
if(mdid>599 || mdid<400)return SendClientMessage(playerid,GRAU,"Fehler: Inakzeptable Modell ID.");
new query[256],Name[MAX_PLAYER_NAME];
GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
format(query, sizeof(query), "INSERT INTO `frakcars` (`modelid`, `color1`, `color2`, `frakid`) VALUES ('%d', '%d', '%d', '%d')", mdid, cc1, cc2, fid);
mysql_query(query);
new basic_floats,Float:posr;
GetPlayerPos(playerid, x,y,z);
GetPlayerFacingAngle(playerid,posr);
new ccc=CreateVehicle(mdid, x,y,z, posr, cc1, cc2, -1);
vTank[ccc]=CarTanks[mdid];
FrakCars[ccc][frakid]=fid;
FrakCars[ccc][parkx]=x;
FrakCars[ccc][parky]=y;
FrakCars[ccc][parkz]=z;
FrakCars[ccc][parkr]=posr;
mysql_query("SELECT MAX(db_id) FROM frakcars");
mysql_store_result();
FrakCars[ccc][db_id] = mysql_fetch_int();
mysql_free_result();
IsFrakCar[ccc]=fid;
new dbid=FrakCars[ccc][db_id];
mysql_SetFloat_ID("frakcars", "parkx", x, "db_id",dbid);
mysql_SetFloat_ID("frakcars", "parky", y, "db_id",dbid);
mysql_SetFloat_ID("frakcars", "parkz", z, "db_id",dbid);
mysql_SetFloat_ID("frakcars", "parkr", posr, "db_id",dbid);
new str[128];
format(str,sizeof(str),"Fahrzeug %d für die Fraktion %s erstellt. DB-ID: %d",ccc,FrakInfo[fid][frakname], FrakCars[ccc][db_id]);
PutPlayerInVehicle(playerid, ccc);
SendClientMessage(playerid,GELB,str);
return 1;
}
Alles anzeigen
So ist richtig, hoffe ich
Hab das übersehen
Wenn nicht mal das erstmal testweise so:
ocmd:createfcar(playerid,params[])
{
if(!IsAdmin(playerid,3))return noaccess
new mdid, cc1, cc2, fid;
if(sscanf(params,"dddd",mdid,cc1,cc2,fid))return SendClientMessage(playerid,GRAU,"Verwendung: /createfcar (ModelID) (Color1) (Color2) (FraktionsID)");
if(mdid>599 || mdid<400)return SendClientMessage(playerid,GRAU,"Fehler: Inakzeptable Modell ID.");
new query[256],Name[MAX_PLAYER_NAME];
GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
format(query, sizeof(query), "INSERT INTO `frakcars` (`modelid`, `color1`, `color2`, `frakid`) VALUES ('%d', '%d', '%d', '%d')", mdid, cc1, cc2, fid);
mysql_query(query);
new basic_floats,Float:posr;
GetPlayerPos(playerid, x,y,z);
GetPlayerFacingAngle(playerid,posr);
new ccc=CreateVehicle(mdid, x,y,z, posr, cc1, cc2, -1);
vTank[ccc] = 500;
FrakCars[ccc][frakid]=fid;
FrakCars[ccc][parkx]=x;
FrakCars[ccc][parky]=y;
FrakCars[ccc][parkz]=z;
FrakCars[ccc][parkr]=posr;
mysql_query("SELECT MAX(db_id) FROM frakcars");
mysql_store_result();
FrakCars[ccc][db_id] = mysql_fetch_int();
mysql_free_result();
IsFrakCar[ccc]=fid;
new dbid=FrakCars[ccc][db_id];
mysql_SetFloat_ID("frakcars", "parkx", x, "db_id",dbid);
mysql_SetFloat_ID("frakcars", "parky", y, "db_id",dbid);
mysql_SetFloat_ID("frakcars", "parkz", z, "db_id",dbid);
mysql_SetFloat_ID("frakcars", "parkr", posr, "db_id",dbid);
new str[128];
format(str,sizeof(str),"Fahrzeug %d für die Fraktion %s erstellt. DB-ID: %d",ccc,FrakInfo[fid][frakname], FrakCars[ccc][db_id]);
PutPlayerInVehicle(playerid, ccc);
SendClientMessage(playerid,GELB,str);
return 1;
}
Alles anzeigen
So hab einen Restart vom Server gemacht und zack war der Tank leer.
So hab einen Restart vom Server gemacht und zack war der Tank leer.
Send mal die Public, wo die Autos gespeichert werden.
Hey,
hab hier noch was :
new did;
for(new i=0; i<MAX_VEHICLES; i++)
{
if(IsFrakCar[i]!=0)
{
did=FrakCars[i][db_id];
mysql_SetInt_ID("frakcars", "tank", vTank[i], "db_id", did);
mysql_SetFloat_ID("frakcars", "parkx", FrakCars[i][parkx], "db_id", did);
mysql_SetFloat_ID("frakcars", "parky", FrakCars[i][parky], "db_id", did);
mysql_SetFloat_ID("frakcars", "parkz", FrakCars[i][parkz], "db_id", did);
mysql_SetFloat_ID("frakcars", "parkr", FrakCars[i][parkr], "db_id", did);
printf("[SAVE] Fraktionsfahrzeug %d wurde gespeichert.",i);
}
}
Alles anzeigen
Genau
Kannst du das mal Printen lassen das Speichern bzw den Mysql Log aktivieren ?
Speichern scheint zu sehen. Send mal die Public, wo die Autos spawnen.
public OnVehicleSpawn(vehicleid)
{
new playerid=INVALID_PLAYER_ID;
for(new i=0; i<GetMaxPlayers(); i++)
{
if(!PlayerOnline(i))continue;
playerid=i;
if(vehicleid==PlayerCar1 || vehicleid==PlayerCar2 || vehicleid==PlayerCar3)
{
SetVehiclePos(vehicleid,PlayerCarInfo[vehicleid][parkx],PlayerCarInfo[vehicleid][parky],PlayerCarInfo[vehicleid][parkz]);
SetVehicleZAngle(vehicleid,PlayerCarInfo[vehicleid][parkr]);
SetTimerEx("SetVehicleZAngleFIX", 1500, false, "if", vehicleid, PlayerCarInfo[vehicleid][parkr]);
for(new ic=0; ic<14; ic++)
{
AddVehicleComponent(vehicleid, tunings[vehicleid][ic]);
}
ChangeVehicleColor(vehicleid, PlayerCarInfo[vehicleid][car_color1], PlayerCarInfo[vehicleid][car_color2]);
ChangeVehiclePaintjob(vehicleid, PlayerCarInfo[vehicleid][paintjob]);
}
if(IsFrakCar[vehicleid]!=0)
{
SetVehiclePos(vehicleid,FrakCars[vehicleid][parkx], FrakCars[vehicleid][parky], FrakCars[vehicleid][parkz]);
SetTimerEx("SetVehicleZAngleFIX", 1500, false, "if", vehicleid, FrakCars[vehicleid][parkr]);
}
if(vehicleid==JobCar[i])
{
JobCar[i]=INVALID_VEHICLE_ID;
for(new ii=0; ii<sizeof(BusCar); ii++)
{
if(vehicleid!=BusCar[ii])continue;
Delete3DTextLabel(vehicle3Dtext[vehicleid]);
vehicle3Dtext[vehicleid]=Create3DTextLabel("Leerfahrt",0x00CADBFF,0.0,0.0,0.0,19.2,0,0);
Attach3DTextLabelToVehicle(vehicle3Dtext[vehicleid],vehicleid,0.0, 0.0, 2.0);
break;
}
for(new ii=0; ii<sizeof(PostCar); ii++)
{
if(vehicleid!=PostCar[ii])continue;
PostLoad[vehicleid]=0;
break;
}
}
}
if(GetVehicleModel(vehicleid)==584 || GetVehicleModel(vehicleid)==591 || GetVehicleModel(vehicleid)==428)
{
TrailerLadung[vehicleid]=0;
}
return 1;
}
Alles anzeigen
Du setzt beim Spawnen garkein Tank
Weiß leider nicht wie ich das genau setze, bzw wieder aufrufe den gleichen Tank, also keinen vollen.
Vielleicht kann einer den Code von den oben genannten Beiträgen entnehmen und mir helfen.
Zeig mal deine Ladefunktion
Irgendwo muss es doch noch ne andere Public geben, wo die Autos geladen werden.
Send und die andere mal.