Hier habt ihr das ganze Dann muss ich nicht immer was hinzufügen
#define FILTERSCRIPT
#include <a_samp>
#include <dini>
forward AutoKaufen(playerid,autoid);
#if defined FILTERSCRIPT
#define Dialog_Buycar 5000 // muss angepasst werden, falls die id schon vergeben ist.
enum AHInfo //Autohausinfo
{
Name[35],Testautohaus
Float:posx,2131.5100
Float:posz,-1150.8503
Float:posy,24.1086
Float:spawnx,2146.5781
Float:spawny,-1153.2198
Float:spawnz,23.8701
Float:spawna,269.2130
Kasse,
Besitzer[MAX_PLAYERS]
}
enum AKInfo // Autokaufinfo
{
modelid,451
Name[35],Turismo
Autohausname[35],Testautohaus // sollte den selben string haben wie oben.
Preis,1
Float:posx,2118.9634
Float:posy,-1122.0996
Float:posz,25.0976
Float:225.0402 // die angle ist auch sehr wichtig bei einem Fahrzeug!
}
enum Ainfo //Autoinfo
{
Name[35],Turismo
modelid,451
Float:HP,1000,00
Nummernschild[20],Testfahrzeug
Float:posx,
Float:posy,
Float:posz,
Float:posa,
Farbe1,
Farbe2,
Paintjob,
Spoiler,
Hood,
Roof,
Sideskirt,
Lamps,
Nitro,
Exhaust,
Wheels,
Stereo,
Hydraulics,
FrontBumper,
RearBumper,
VentRight,
VentLeft
}
new Testautohaus[1][AHInfo] = {//die [1] steht für die Anzahl der Autohäuser. [AHinfo] steht für die enum.
{"Testautohaus", 500.0, -250.0, 15.25, -3.0, -50.5, 15.2, 270.5, 0, "Staat"}
};
new Buycars[3][AKInfo] = {
{402, "Buffalo", "Testautohaus", 100000, 0.5, -2.5, 10.0, 270.5},
{496, "Blista Compact", "Testautohaus", 20000, 20.0, -5.5, 10.3, 250.0},
{422, "Bobcat", "Testautohaus", 25000, 25.5, -1.0, 9.5, 0.45}
};
const MAX_PLAYER_CARS = 2; // wir müssen definieren, wieviele Fahrzeuge man maximal haben darf. ich habe mal 2 genommen.
new Autos[MAX_PLAYERS][MAX_PLAYER_CARS][Ainfo]; // //die variable wird fürs auslesen und speichern in die datei benötigt
new Spielercar[MAX_PLAYERS][MAX_PLAYER_CARS]; //diese variable reflektiert das createte Fahrzeug.
new kaufauto[3];
public OnFilterScriptInit()
{
print("\n--------------------------------------");
print(" Autokauf System by Simon");
print("--------------------------------------\n");
for(new i = 0; i < sizeof Autohaus; i++) //schleife die alle autohäuser durchgeht.
{
new datei[50];
format(datei,sizeof(datei),"/Autohaeuser/%s.ini",Autohaus[i][Name]);
if(!dini_Exists(datei)) // falls es die datei nicht gibt.
{
dini_Create(datei); //datei wird createt
dini_Set(datei,"Besitzer","Staat"); // Besitzer=Staat wird in die datei geschrieben
dini_IntSet(datei,"Kasse",Autohaus[i][Kasse]); // Kasse=0 (oben festgelegt) wird in die datei geschrieben
}
//nur wird die datei ausgelesen und in die variablen geschrieben:
Autohaus[i][Kasse] = dini_Int(datei,"Kasse");
format(Autohaus[i][Besitzer],MAX_PLAYER_NAME,dini_Get(datei,"Besitzer"));
CreatePickup(1239,1,Autohaus[i][posx],Autohaus[i][posy],Autohaus[i][posz],-1);
kaufauto[i] = CreateVehicle(Buycars[i][modelid],Buycars[i][posx],Buycars[i][posy],Buycars[i][posz],Buycars[i][posa],-1,-1,-1);
}
return 1;
}
public OnFilterScriptExit()
{
for(new i = 0; i < sizeof Autohaus; i++) //schleife die alle autohäuser durchgeht.
{
new datei[75];
format(datei,sizeof(datei),"/Autohaeuser/%s.ini",Autohaus[i][Name]);
dini_Set(datei,"Besitzer",Autohaus[i][Besitzer]);
dini_IntSet(datei,"Kasse",Autohaus[i][Kasse]);
}
return 1;
}
#endif
public OnPlayerRequestClass(playerid, classid)
{
return 1;
}
public OnPlayerConnect(playerid)
{
for(new i = 0; i < 3; i++)
{
new Autodatei[100],name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(Autodatei,sizeof(Autodatei),"/Autos/%s_Auto_%d.ini",name,i);
if(dini_Exists(Autodatei))
{
Autos[playerid][i][modelid] = dini_Int(Autodatei,"modelid");
Autos[playerid][i][HP] = dini_Int(Autodatei,"HP");
Autos[playerid][i][Farbe1] = dini_Int(Autodatei,"Farbe1");
Autos[playerid][i][Farbe2] = dini_Int(Autodatei,"Farbe2");
Autos[playerid][i][Paintjob] = dini_Int(Autodatei,"Paintjob");
format(Autos[playerid][i][Nummernschild],20,dini_Get(Autodatei,"Nummernschild"));
Autos[playerid][i][posx] = dini_Int(Autodatei,"posx");
Autos[playerid][i][posy] = dini_Int(Autodatei,"posy");
Autos[playerid][i][posz] = dini_Int(Autodatei,"posz");
Autos[playerid][i][posa] = dini_Int(Autodatei,"posa");
Autos[playerid][i][Spoiler] = dini_Int(Autodatei,"Spoiler");
Autos[playerid][i][Wheels] = dini_Int(Autodatei,"Wheels");
Autos[playerid][i][Nitro] = dini_Int(Autodatei,"Nitro");
Autos[playerid][i][Roof] = dini_Int(Autodatei,"Roof");
Autos[playerid][i][Hood] = dini_Int(Autodatei,"Hood");
Autos[playerid][i][Sideskirt] = dini_Int(Autodatei,"Sideskirt");
Autos[playerid][i][Lamps] = dini_Int(Autodatei,"Lamps");
Autos[playerid][i][Exhaust] = dini_Int(Autodatei,"Exhaust");
Autos[playerid][i][Stereo] = dini_Int(Autodatei,"Stereo");
Autos[playerid][i][Hydraulics] = dini_Int(Autodatei,"Hydraulics");
Autos[playerid][i][VentRight] = dini_Int(Autodatei,"VentRight");
Autos[playerid][i][VentLeft] = dini_Int(Autodatei,"VentLeft");
Autos[playerid][i][FrontBumper] = dini_Int(Autodatei,"FrontBumper");
Autos[playerid][i][RearBumper] = dini_Int(Autodatei,"RearBumper");
Spielercar[playerid][i] = CreateVehicle(Autos[playerid][i][modelid],Autos[playerid][i][posx],Autos[playerid][i][posy],Autos[playerid][i][posz]+1.5,Autos[playerid][i][posa],-1,-1,-1);
SetVehicleNumberPlate(Spielercar[playerid][i],dini_Get(Autodatei,"Nummernschild"));
SetVehicleParamsForPlayer(Spielercar[playerid][i],playerid,0,0);
if(Autos[playerid][i][HP] > 250)
{
SetVehicleHealth(Spielercar[playerid][i],Autos[playerid][i][HP]);
}
else SetVehicleHealth(Spielercar[playerid][i],255.0);
if(Autos[playerid][i][Paintjob] >= 0)
{
ChangeVehiclePaintjob(Spielercar[playerid][i],Autos[playerid][i][Paintjob]);
}
if(Autos[playerid][i][Farbe1] >= 0 || Autos[playerid][i][Farbe2] >= 0)
{
ChangeVehicleColor(Spielercar[playerid][i],Autos[playerid][i][Farbe1],Autos[playerid][i][Farbe2]);
}
if(Autos[playerid][i][Spoiler] >= 1000) { AddVehicleComponent(Spielercar[playerid][i],Autos[playerid][i][Spoiler]); }
if(Autos[playerid][i][Hood] >= 1000) { AddVehicleComponent(Spielercar[playerid][i],Autos[playerid][i][Hood]); }
if(Autos[playerid][i][Roof] >= 1000) { AddVehicleComponent(Spielercar[playerid][i],Autos[playerid][i][Roof]); }
if(Autos[playerid][i][Sideskirt] >= 1000) { AddVehicleComponent(Spielercar[playerid][i],Autos[playerid][i][Sideskirt]); }
if(Autos[playerid][i][Lamps] >= 1000) { AddVehicleComponent(Spielercar[playerid][i],Autos[playerid][i][Lamps]); }
if(Autos[playerid][i][Nitro] >= 1000) { AddVehicleComponent(Spielercar[playerid][i],Autos[playerid][i][Nitro]); }
if(Autos[playerid][i][Exhaust] >= 1000) { AddVehicleComponent(Spielercar[playerid][i],Autos[playerid][i][Exhaust]); }
if(Autos[playerid][i][Wheels] >= 1000) { AddVehicleComponent(Spielercar[playerid][i],Autos[playerid][i][Wheels]); }
if(Autos[playerid][i][Stereo] >= 1000) { AddVehicleComponent(Spielercar[playerid][i],Autos[playerid][i][Stereo]); }
if(Autos[playerid][i][Hydraulics] >= 1000) { AddVehicleComponent(Spielercar[playerid][i],Autos[playerid][i][Hydraulics]); }
if(Autos[playerid][i][FrontBumper] >= 1000) { AddVehicleComponent(Spielercar[playerid][i],Autos[playerid][i][FrontBumper]); }
if(Autos[playerid][i][RearBumper] >= 1000) { AddVehicleComponent(Spielercar[playerid][i],Autos[playerid][i][RearBumper]); }
if(Autos[playerid][i][VentRight] >= 1000) { AddVehicleComponent(Spielercar[playerid][i],Autos[playerid][i][VentRight]); }
if(Autos[playerid][i][VentLeft] >= 1000) { AddVehicleComponent(Spielercar[playerid][i],Autos[playerid][i][VentLeft]); }
}
else continue;
}
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
for(new i = 0; i < 3; i++)
new Autodatei[100],name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(Autodatei,sizeof(Autodatei),"/Autos/%s_Auto_%d.ini",name,i);
if(dini_Exists(Autodatei))
{
new Float:vhp;
GetVehicleHealth(Spielercar[playerid][i],vhp);
dini_IntSet(Autodatei,"Farbe1",Autos[playerid][i][Farbe1]);
dini_IntSet(Autodatei,"Farbe2",Autos[playerid][i][Farbe2]);
dini_IntSet(Autodatei,"Paintjob",Autos[playerid][i][Paintjob]);
dini_FloatSet(Autodatei,"posx",Autos[playerid][i][posx]);
dini_FloatSet(Autodatei,"posy",Autos[playerid][i][posy]);
dini_FloatSet(Autodatei,"posz",Autos[playerid][i][posz]);
dini_FloatSet(Autodatei,"posa",Autos[playerid][i][posa]);
dini_FloatSet(Autodatei,"HP",vhp);
dini_Set(Autodatei,"Nummernschild",Autos[playerid][i][Nummernschild]);
dini_IntSet(Autodatei,"Spoiler",GetVehicleComponentInSlot(Spielercar[playerid][i],0));
dini_IntSet(Autodatei,"Hood",GetVehicleComponentInSlot(Spielercar[playerid][i],1));
dini_IntSet(Autodatei,"Roof",GetVehicleComponentInSlot(Spielercar[playerid][i],2));
dini_IntSet(Autodatei,"Sideskirt",GetVehicleComponentInSlot(Spielercar[playerid][i],3));
dini_IntSet(Autodatei,"Lamps",GetVehicleComponentInSlot(Spielercar[playerid][i],4));
dini_IntSet(Autodatei,"Nitro",GetVehicleComponentInSlot(Spielercar[playerid][i],5));
dini_IntSet(Autodatei,"Exhaust",GetVehicleComponentInSlot(Spielercar[playerid][i],6));
dini_IntSet(Autodatei,"Wheels",GetVehicleComponentInSlot(Spielercar[playerid][i],7));
dini_IntSet(Autodatei,"Stereo",GetVehicleComponentInSlot(Spielercar[playerid][i],8));
dini_IntSet(Autodatei,"Hydraulics",GetVehicleComponentInSlot(Spielercar[playerid][i],9));
dini_IntSet(Autodatei,"FrontBumper",GetVehicleComponentInSlot(Spielercar[playerid][i],10));
dini_IntSet(Autodatei,"RearBumper",GetVehicleComponentInSlot(Spielercar[playerid][i],11));
dini_IntSet(Autodatei,"VentRight",GetVehicleComponentInSlot(Spielercar[playerid][i],12));
dini_IntSet(Autodatei,"VentLeft",GetVehicleComponentInSlot(Spielercar[playerid][i],13));
}
}
return 1;
}
public OnPlayerSpawn(playerid)
{
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
return 1;
}
public OnVehicleSpawn(vehicleid)
{
return 1;
}
public OnVehicleDeath(vehicleid, killerid)
{
return 1;
}
public OnPlayerText(playerid, text[])
{
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
return 0;
}
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
return 1;
}
public OnPlayerExitVehicle(playerid, vehicleid)
{
return 1;
}
public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(newstate == PLAYER_STATE_DRIVER)
{
new vehicleid = GetPlayerVehicleID(playerid);
for(new i = 0; i < sizeof Buycars; i++)
{
if(vehicleid == kaufauto[i])
{
new str[150];
format(str,sizeof(str),"Möchten Sie dieses Fahrzeug kaufen?\n\nName: %s\nPreis: %d", Buycars[i][Name], Buycars[i][Preis]);
TogglePlayerControllable(playerid,0);
return ShowPlayerDialog(playerid,Dialog_Buycar,DIALOG_STYLE_MSGBOX,"Autokauf",str,"Kaufen","Abbrechen");
}
else continue;
}
}
return 1;
}
public OnPlayerEnterCheckpoint(playerid)
{
return 1;
}
public OnPlayerLeaveCheckpoint(playerid)
{
return 1;
}
public OnPlayerEnterRaceCheckpoint(playerid)
{
return 1;
}
public OnPlayerLeaveRaceCheckpoint(playerid)
{
return 1;
}
public OnRconCommand(cmd[])
{
return 1;
}
public OnPlayerRequestSpawn(playerid)
{
return 1;
}
public OnObjectMoved(objectid)
{
return 1;
}
public OnPlayerObjectMoved(playerid, objectid)
{
return 1;
}
public OnPlayerPickUpPickup(playerid, pickupid)
{
return 1;
}
public OnVehicleMod(playerid, vehicleid, componentid)
{
return 1;
}
public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
{
return 1;
}
public OnVehicleRespray(playerid, vehicleid, color1, color2)
{
return 1;
}
public OnPlayerSelectedMenuRow(playerid, row)
{
return 1;
}
public OnPlayerExitedMenu(playerid)
{
return 1;
}
public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
{
return 1;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
return 1;
}
public OnRconLoginAttempt(ip[], password[], success)
{
return 1;
}
public OnPlayerUpdate(playerid)
{
return 1;
}
public OnPlayerStreamIn(playerid, forplayerid)
{
return 1;
}
public OnPlayerStreamOut(playerid, forplayerid)
{
return 1;
}
public OnVehicleStreamIn(vehicleid, forplayerid)
{
return 1;
}
public OnVehicleStreamOut(vehicleid, forplayerid)
{
return 1;
}
public OnDialogResponse(playerid,dialogid,response,listitem,inputtext[])
{
if(dialogid == Dialog_Buycar)
{
if(response)
{
//Geld abfrage bearbeiten!!!
new vehicleid = GetPlayerVehicleID(playerid);
for(new i = 0; i < sizeof Buycars; i++)
{
if(vehicleid == kaufauto[i])
{
new geld = GetPlayerMoney(playerid); //anpassen!!
if(geld >= Buycars[i][Preis]) //geld abfrage anpassen!"
{
new datei[100],name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(datei,sizeof(datei),"/Autos/%s_Auto_1.ini",name); // verzeichnis: /scriptfiles/ordner/name_auto_id.ini
if(dini_Exists(datei))
{
new datei2[100];
format(datei2,sizeof(datei2),"/Autos/%s_Auto_2.ini",name);
if(dini_Exists(datei2))
{
SendClientMessage(playerid,0xDD0000FF,"Fehler: Sie besitzen bereits 2 Fahrzeuge!!");
TogglePlayerControllable(playerid,1);
RemovePlayerFromVehicle(playerid);
}
else AutoKaufen(playerid,2); //eigenes public
}
else AutoKaufen(playerid,1); //eigenes public
}
else
{
SendClientMessage(playerid,0xDD0000FF,"Fehler: Sie haben nicht genügend Geld!");
TogglePlayerControllable(playerid,1);
RemovePlayerFromVehicle(playerid);
}
}
}
}
else
{
TogglePlayerControllable(playerid,1);
RemovePlayerFromVehicle(playerid);
}
}
return 1;
}
public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
return 1;
}
public AutoKaufen(playerid,autoid)
{
for(new i = 0; i < sizeof Buycars; i++)
{
if(GetPlayerVehicleID(playerid) == kaufauto[i])
{
for(new j = 0; j < sizeof Autohaus; j++)
{
if(!strcmp(Autohaus[j][Name],Buycars[i][Autohausname],true))
{
new Autodatei[100],name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(Autodatei,sizeof(Autodatei),"/Autos/%s_Auto_%d.ini",name,autoid);
dini_Create(Autodatei);
dini_Set(Autodatei,"Name",Buycars[i][Name]);
dini_IntSet(Autodatei,"modelid",Buycars[i][modelid]);
dini_FloatSet(Autodatei,"HP",1000.00);
dini_FloatSet(Autodatei,"posx",Autohaus[j][spawnx]);
dini_FloatSet(Autodatei,"posy",Autohaus[j][spawny]);
dini_FloatSet(Autodatei,"posz",Autohaus[j][spawnz]);
dini_FloatSet(Autodatei,"posa",Autohaus[j][spawna]);
dini_IntSet(Autodatei,"Farbe1",-1);
dini_IntSet(Autodatei,"Farbe2",-1);
dini_IntSet(Autodatei,"Paintjob",-1);
dini_Set(Autodatei,"Nummernschild",Buycars[i][Name]);
Spielercar[playerid][autoid] = CreateVehicle(Buycars[i][modelid],Autohaus[j][spawnx],Autohaus[j][spawny],Autohaus[j][spawnz],Autohaus[j][spawna],-1,-1,-1);
SetVehicleNumberPlate(Spielercar[playerid][autoid],dini_Get(Autodatei,"Nummernschild"));
dini_IntSet(Autodatei,"Spoiler",GetVehicleComponentInSlot(Spielercar[playerid][autoid],0));
dini_IntSet(Autodatei,"Hood",GetVehicleComponentInSlot(Spielercar[playerid][autoid],1));
dini_IntSet(Autodatei,"Roof",GetVehicleComponentInSlot(Spielercar[playerid][autoid],2));
dini_IntSet(Autodatei,"Sideskirt",GetVehicleComponentInSlot(Spielercar[playerid][autoid],3));
dini_IntSet(Autodatei,"Lamps",GetVehicleComponentInSlot(Spielercar[playerid][autoid],4));
dini_IntSet(Autodatei,"Nitro",GetVehicleComponentInSlot(Spielercar[playerid][autoid],5));
dini_IntSet(Autodatei,"Exhaust",GetVehicleComponentInSlot(Spielercar[playerid][autoid],6));
dini_IntSet(Autodatei,"Wheels",GetVehicleComponentInSlot(Spielercar[playerid][autoid],7));
dini_IntSet(Autodatei,"Stereo",GetVehicleComponentInSlot(Spielercar[playerid][autoid],8));
dini_IntSet(Autodatei,"Hydraulics",GetVehicleComponentInSlot(Spielercar[playerid][autoid],9));
dini_IntSet(Autodatei,"FrontBumper",GetVehicleComponentInSlot(Spielercar[playerid][autoid],10));
dini_IntSet(Autodatei,"RearBumper",GetVehicleComponentInSlot(Spielercar[playerid][autoid],11));
dini_IntSet(Autodatei,"VentRight",GetVehicleComponentInSlot(Spielercar[playerid][autoid],12));
dini_IntSet(Autodatei,"VentLeft",GetVehicleComponentInSlot(Spielercar[playerid][autoid],13));
RemovePlayerFromVehicle(playerid);
TogglePlayerControllable(playerid,1);
//geld-=Buycars[i][Preis]; //geld system anpassen
Autohaus[j][Kasse]+=Buycars[i][Preis];
Autos[playerid][autoid][modelid] = dini_Int(Autodatei,"modelid");
Autos[playerid][autoid][HP] = dini_Int(Autodatei,"HP");
Autos[playerid][autoid][Farbe1] = dini_Int(Autodatei,"Farbe1");
Autos[playerid][autoid][Farbe2] = dini_Int(Autodatei,"Farbe2");
Autos[playerid][autoid][Paintjob] = dini_Int(Autodatei,"Paintjob");
Autos[playerid][autoid][Nummernschild] = dini_Int(Autodatei,"Nummernschild");
Autos[playerid][autoid][posx] = dini_Int(Autodatei,"posx");
Autos[playerid][autoid][posy] = dini_Int(Autodatei,"posy");
Autos[playerid][autoid][posz] = dini_Int(Autodatei,"posz");
Autos[playerid][autoid][posa] = dini_Int(Autodatei,"posa");
Autos[playerid][autoid][Spoiler] = dini_Int(Autodatei,"Spoiler");
Autos[playerid][autoid][Wheels] = dini_Int(Autodatei,"Wheels");
Autos[playerid][autoid][Nitro] = dini_Int(Autodatei,"Nitro");
Autos[playerid][autoid][Roof] = dini_Int(Autodatei,"Roof");
Autos[playerid][autoid][Hood] = dini_Int(Autodatei,"Hood");
Autos[playerid][autoid][Sideskirt] = dini_Int(Autodatei,"Sideskirt");
Autos[playerid][autoid][Lamps] = dini_Int(Autodatei,"Lamps");
Autos[playerid][autoid][Exhaust] = dini_Int(Autodatei,"Exhaust");
Autos[playerid][autoid][Stereo] = dini_Int(Autodatei,"Stereo");
Autos[playerid][autoid][Hydraulics] = dini_Int(Autodatei,"Hydraulics");
Autos[playerid][autoid][VentRight] = dini_Int(Autodatei,"VentRight");
Autos[playerid][autoid][VentLeft] = dini_Int(Autodatei,"VentLeft");
Autos[playerid][autoid][FrontBumper] = dini_Int(Autodatei,"FrontBumper");
Autos[playerid][autoid][RearBumper] = dini_Int(Autodatei,"RearBumper");
}
}
}
}
return 1;
}