Hey,
nach dem ich Fraktionssfahrzeuge erstelle , spawnen sie ganz normal mit 500/75 wie auch im Script gemacht.
Nach dem ich den Server restarte , hat es 0/75 ( die erstellten ).
Ich habe ein paar ältere Fraktionssfahrzeuge ( SAPD etc. ) bei denen der Tank normal ist und auch nicht leer gehtr nach einem Serverrestart.
Jedoch wenn ich ein paar erstelle sind sie nach Restart leer.
Der Befehl zum erstellen :
Code
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-400];
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, 0);
SendClientMessage(playerid,GELB,str);
vTank[ccc] = 500;
return 1;
}
Alles anzeigen
Fraktionsautos laden :
Code
print("============= FRAKTIONS AUTOS =============");
//Frakfahrzeuge laden
for(new i=0; i<MAX_VEHICLES; i++)
{
if(FrakCarExists(i)==0)continue;
new ccc=CreateVehicle(mysql_GetInt_ID("frakcars", "modelid", "db_id",i), mysql_GetFloat_ID("frakcars", "parkx", "db_id",i), mysql_GetFloat_ID("frakcars", "parky", "db_id",i),
mysql_GetFloat_ID("frakcars", "parkz", "db_id",i), mysql_GetFloat_ID("frakcars", "parkr", "db_id",i), mysql_GetInt_ID("frakcars", "color1", "db_id",i),
mysql_GetInt_ID("frakcars", "color2", "db_id",i), -1);
FrakCars[ccc][parkx]=mysql_GetFloat_ID("frakcars", "parkx", "db_id",i);
FrakCars[ccc][parky]=mysql_GetFloat_ID("frakcars", "parky", "db_id",i);
FrakCars[ccc][parkz]=mysql_GetFloat_ID("frakcars", "parkz", "db_id",i);
FrakCars[ccc][parkr]=mysql_GetFloat_ID("frakcars", "parkr", "db_id",i);
FrakCars[ccc][db_id]=i;
FrakCars[ccc][frakid]=mysql_GetInt_ID("frakcars", "frakid", "db_id",i);
vTank[ccc]=mysql_GetInt_ID("frakcars", "tank", "db_id",i);
IsFrakCar[ccc]=mysql_GetInt_ID("frakcars", "frakid", "db_id",i);
printf("%s | %s | %d",CarName[GetVehicleModel(ccc)-400],FrakInfo[FrakCars[ccc][frakid]][frakname], ccc);
}
print("======================================");
Alles anzeigen
Script ist nicht meins
Nützliches :
Code
forward VehicleTankUpdate(vehicleid);
public VehicleTankUpdate(vehicleid)
{
if(vehicleid==INVALID_VEHICLE_ID)return 1;
new tmp_engine,tmp_lights,tmp_alarm,tmp_doors,tmp_bonnet,tmp_boot,tmp_objective;
GetVehicleParamsEx(vehicleid , tmp_engine,tmp_lights,tmp_alarm,tmp_doors,tmp_bonnet,tmp_boot,tmp_objective);
if(tmp_engine==1)
{
if(vTank[vehicleid]!=0)
{
if(vTank[vehicleid]==5000)return 1;
vTank[vehicleid]=vTank[vehicleid]-1;
}
else
{
tmp_engine=0;
KillTimer(TankTimer[vehicleid]);
SetVehicleParamsEx(vehicleid , tmp_engine,tmp_lights,tmp_alarm,tmp_doors,tmp_bonnet,tmp_boot,tmp_objective);
for(new i=0; i<GetMaxPlayers(); i++)
{
if(GetVehicleDriver(vehicleid)==i)
{
SendClientMessage(i,0x8080FFFF,"Der Tank ist leer. Eine Tankstelle ist auf der Karte mit einem T markiert.");
}
}
}
}
return 1;
}
Alles anzeigen