Guten Abend Breadfish
Derzeit versuche ich Tank/Schaden und Kennzeichen in die Datenbank zu speichern und zu laden.
Mein Code dafür sieht bis jetzt nur so aus:
Datenbankbild:
http://imgur.com/a/7Z8lH
Hier weiß ich nicht ob die Einstellung dafür passend ist oder nicht.
So an sich geht es ja nur leider fehlt mir das Tank/Schaden/Kennzeichen System damit Fahrzeuge die gekauft werden auch davon betroffen sind mit dem Tank/Schaden/Kennzeichen-System.
Nun zum Scriptcode:
Forward:
fahrzeugEnum:
Code
		
					
			enum fahrzeugEnum
{
	faid,
	besitzer[MAX_PLAYER_NAME],
	model,
	Float:c_x,
	Float:c_y,
	Float:c_z,
	Float:c_r,
	Schaden,
	kennzeichen,
	tank
}
new cInfo[50][fahrzeugEnum];Public mit eigene Funktion:
Code
		
					
			public spielerfahrzeug(carid)
{
	 cInfo[carid][faid]=cache_insert_id();
	 return 1;
}
 carinDB(playerid,carid)
 {
	new query[128];
	format(query,sizeof(query),"INSERT INTO spielerfahrzeuge(besitzer,model,x,y,z,r,Schaden,kennzeichen,tank) VALUES('%i','%i','%f','%f','%f','%f','%i' ,'%i' ,'%i')",PlayerInfo[playerid][p_id],cInfo[carid][model],cInfo[carid][c_x],cInfo[carid][c_y],cInfo[carid][c_z],cInfo[carid][c_r],cInfo[carid][Schaden],cInfo[carid][kennzeichen],cInfo[carid][tank]);
	mysql_pquery(handle,query, "spielerfahrzeug", "d", carid);
	return 1;
}
PlayerCar:
Code
		
					
			PlayerCar(playerid,modelid,Float:x,Float:y,Float:z,Float:r,vschaden,vkenn,vtank)
{
	for(new i=0; i<sizeof(cInfo); i++)
	{
		if(cInfo[i][faid]!=0)continue;
		GetPlayerName(playerid,cInfo[i][besitzer],MAX_PLAYER_NAME);
		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][faid] = CreateVehicle(modelid,x,y,z,r,-1,-1,-1);
		cInfo[i][Schaden] = vschaden;
		cInfo[i][kennzeichen] =vkenn;
		cInfo[i][tank] =vtank;
		new string[128];
		format(string,sizeof(string),"Das Fahrzeug cInfo[%i] wurde erstellt",i);
		SendClientMessageToAll(rot,string);
		carinDB(playerid,i);
		return 1;
	}
	return 1;
}
Befehl um Fahrzeuge zu erstellen:
Code
		
					
			ocmd:createcar(playerid,params[])
{
	if(!isAdmin(playerid,6))return SendClientMessage(playerid,rot,"Dein Admingrang ist zu niedrig.");
	new mID,pID;
	if(sscanf(params,"ui",pID,mID))return SendClientMessage(playerid,rot,"INFO: /createcar[playerid][model]");
	if(mID<400||mID>611)return SendClientMessage(playerid,rot,"Ungültiges Model");
	new Float:xc,Float:yc,Float:zc,Float:rc;
	GetPlayerPos(pID,xc,yc,zc);
	GetPlayerFacingAngle(pID,rc);
	PlayerCar(pID,mID,xc,yc,zc,rc,Schaden,kennzeichen,tank);
	return 1;
}So sieht der Code für den abschnitt mit dem Autohaus:
new und enum:
Code
		
					
			new autosOhneMotor[] = {
	481,
	509,
	510
};
enum autohausEnum{
Float:v_x,
Float:v_y,
Float:v_z,
Float:v_r,
v_s,
v_k,
v_t
}
enum autohauscarEnum{
	model,
	Float:ah_x,
	Float:ah_y,
	Float:ah_z,
	Float:ah_r,
	c_preis,
	ah_id,
	id_x
}
new ahCars[][autohauscarEnum] ={
{411,2516.8420,1698.8502,10.7281,89.2039,60000000,0},
{560,2516.0205,1694.6085,10.7244,89.9459,50000000,0},
{470,2516.0212,1687.2047,10.7218,90.9615,999999999,0},
{415,2507.2310,1688.0667,10.7222,358.2454,60000,0},
{429,2492.5933,1688.0917,10.7217,359.9845,50000,0},
{451,2485.9338,1679.5812,10.7278,0.4211,30000,0}
};
new ahInfo[][autohausEnum]={
{2481.2991,1671.2750,16.3001,95.0682}
};OnGameModeInit:
Code
		
			//autohausladen:
	for(new i=0; i<sizeof(ahCars); i++)
	{
		ahCars[i][id_x]=AddStaticVehicle(ahCars[i][model],ahCars[i][ah_x],ahCars[i][ah_y],ahCars[i][ah_z],ahCars[i][ah_r],-1,-1);
	}OnPlayerStateChange:
Code
		
					
			public OnPlayerStateChange(playerid, newstate, oldstate)
{
	if(newstate==PLAYER_STATE_DRIVER)
	{
		new vID=GetPlayerVehicleID(playerid);
		new vModel=GetVehicleModel(vID);
		for(new i=0; i<sizeof(autosOhneMotor); i++)
		{
			if(autosOhneMotor[i]!=vModel)continue;
			new motor,
			licht,
			alarm,
			tueren,
			bonnet,
			boot,
			objective;
			//Motor an/ausschalten:
			GetVehicleParamsEx(vID,motor,licht,alarm,tueren,bonnet,boot,objective);
			SetVehicleParamsEx(vID,1,licht,alarm,tueren,bonnet,boot,objective);
				}
		for(new i=0; i<sizeof(ahCars); i++)
		{
			if(ahCars[i][id_x] !=vID)continue;
			//Verkaufsprozess:
			SetPVarInt(playerid,"buyCarID",i);
			new string[500];
			format(string,sizeof(string),"Möchten sie das Fahrzeug für %i$ kaufen?",ahCars[i][c_preis]);
			ShowPlayerDialog(playerid,DIALOG_AUTOHAUS,DIALOG_STYLE_MSGBOX,"Autoverkauf",string,"Kaufen","Nicht kaufen");
			break;
		}
		return 1;
	}
	return 1;
}DIALOG_AUTOHAUS:
Code
		
					
			if(dialogid==DIALOG_AUTOHAUS)
	{
		if(response)
		{
			new id=GetPVarInt(playerid,"buyCarID");
			if(GetPlayerMoney(playerid)<ahCars[id][c_preis])
			{
				SendClientMessage(playerid,orange,"Du besitzt nicht das benötige Geld für das Fahrzeug!");
				RemovePlayerFromVehicle(playerid);
			}
			GivePlayerMoney(playerid,-ahCars[id][c_preis]);
			PlayerCar(playerid,ahCars[id][model],ahInfo[ahCars[id][ah_id]][v_x],ahInfo[ahCars[id][ah_id]][v_y],ahInfo[ahCars[id][ah_id]][v_z],ahInfo[ahCars[id][ah_id]][v_r],ahInfo[ahCars[id][ah_id]][v_s],ahInfo[ahCars[id][ah_id]][v_k],ahInfo[ahCars[id][ah_id]][v_t]);
			SendClientMessage(playerid,türkis,"Sie haben sich ein Autogekauft");
			RemovePlayerFromVehicle(playerid);
		}
		else
		{
			RemovePlayerFromVehicle(playerid);
			SendClientMessage(playerid,türkis,"Du hast den Kaufvorgang abgebrochen!");
		}
	} 
		 
		
		
	 
			
									
		

