Admincar nach disconnect löschen
- Jane
- Geschlossen
- Erledigt
- 
			
- 
			Zeig mal bitte den Code, wo du das Car erstellst.. 
- 
			Mach bei OnPlayerDissconnect eine Abfrage ob sein Admincar existiert ggf. ob er Admin war. 
 Dann schreibst du einfach
 DestroyCar(adminveh);fertig ist. Wo liegt das Problem Google zu benutzen?  
- 
			ocmd:acar(playerid,params[]) 
 {
 new vID;
 new Float:X,Float:Y,Float:Z,Float:ROTA,FARB1,FARB2;
 static vehicle[MAX_PLAYERS];
 static acarexist[MAX_PLAYERS];
 new Text3D:VehicleAdminName[MAX_PLAYERS];
 if(sInfo[playerid][alevel] >= 2)
 if(sInfo[playerid][aduty]==0)return SendClientMessage(playerid,CL_KNALLROT,"ERROR: Du bist nicht Admin-OnDuty!");
 {
 if(acarexist[playerid] == 1)
 {
 SendClientMessage(playerid,CL_HGRÜN,"Admin-Car gelöscht");
 DestroyVehicle(vehicle[playerid]);
 Delete3DTextLabel(VehicleAdminName[playerid]);
 acarexist[playerid] = 0;
 return 1;
 }
 else if(acarexist[playerid]==0)
 {
 if(sscanf(params,"iii",vID,FARB1,FARB2))return SendClientMessage(playerid,CL_KNALLROT,"INFO: /acar Fahrzeug--->[ID] Farbe 1 Farbe 2"); //Hier wird das was der Spieler hinter dem Befehl eingegeben hat in Variablen getrennt. In unserem Fall in "vID"
 new str[128];
 new a_level;
 GetPlayerPos(playerid,X,Y,Z);
 GetPlayerFacingAngle(playerid,ROTA);
 vehicle[playerid] = CreateVehicle(vID,X,Y,Z,ROTA,FARB1,FARB2,0); //Farbe -1 bedeutet Random. Also zufällige Farbe.ok
 PutPlayerInVehicle(playerid,vehicle[playerid],0); //Die 0 steht für die Sitz ID. 0 = Fahrer :)ok//frage?
 a_level=sInfo[playerid][alevel];
 format(str,sizeof(str),"%s Car von %s",a_rang[a_level],SpielerName(playerid));
 VehicleAdminName[playerid] = Create3DTextLabel(str,CL_HGRÜN,X,Y,Z,MAX_STREAM_NAME_DISTANCE,GetPlayerVirtualWorld(playerid),1);
 Attach3DTextLabelToVehicle(VehicleAdminName[playerid],vehicle[playerid],0,-1.3,0.7);//30.0,40.0,50.0
 SetVehicleNumberPlate(vehicle[playerid],"MVS-ADMIN");//------>hier gehts nicht
 SetVehicleToRespawn(vehicle[playerid]);
 SendClientMessage(playerid,CL_HGRÜN,"Admin-Car erstellt ");
 PutPlayerInVehicle(playerid,vehicle[playerid],0);
 acarexist[playerid] = 1;
 return 1;
 }
 }
 SendClientMessage(playerid,CL_HROT,"Du darfst diesen Befehl nicht nutzen.");
 return 1;
 }der code wo das acar erstellt wird ps : Dieser Beitrag wurde bereits 34923085 mal editiert, zuletzt von »ErikSon« (18.08.1998, 18:15) wie das? 
- 
			OnPlayerDisconnect: 
 if(vehicle[playerid])DestroyVehicle(vehicle[playerid]);//Edit: Aber setze 'new vehicle[MAX_PLAYERS]' nach oben ins Script, damit die Variable Global ist.. 
- 
			2 warnings shadows a preceding level ocmd:cspawn(playerid,params[]) 
 {
 if(sInfo[playerid][alevel]>=7)
 {
 if(sInfo[playerid][aduty]==0)return SendClientMessage(playerid,CL_KNALLROT,"ERROR: Du bist nicht Admin-OnDuty!");
 {
 new vID;
 //Hier kannst du jetzt wie oben reinschreiben was passiert wenn man diesen Befehl aufruft.
 if(sscanf(params,"i",vID))return SendClientMessage(playerid,CL_WHITE,"Aussage: /cspawn Fahrzeug--->[ID]"); //Hier wird das was der Spieler hinter dem Befehl eingegeben hat in Variablen getrennt. In unserem Fall in "vID"
 new Float:X,Float:Y,Float:Z,Float:ROTA;
 GetPlayerPos(playerid,X,Y,Z);
 GetPlayerFacingAngle(playerid,ROTA);
 new vehicle;//----------->daa
 vehicle=CreateVehicle(vID,X,Y,Z,ROTA,-1,-1,0); //Farbe -1 bedeutet Random. Also zufällige Farbe.ok
 PutPlayerInVehicle(playerid,vehicle,0); //Die 0 steht für die Sitz ID. 0 = Fahrer :)ok//frage?
 return 1;
 }
 }
 SendClientMessage(playerid,CL_HROT,"Du darfst diesen Befehl nicht nutzen.");
 return 1;
 }
 ocmd:acar(playerid,params[])
 {
 new vID;
 new Float:X,Float:Y,Float:Z,Float:ROTA,FARB1,FARB2;
 static vehicle[MAX_PLAYERS];
 static acarexist[MAX_PLAYERS];//-------->da
 new Text3D:VehicleAdminName[MAX_PLAYERS];
 if(sInfo[playerid][alevel] >= 2)
 if(sInfo[playerid][aduty]==0)return SendClientMessage(playerid,CL_KNALLROT,"ERROR: Du bist nicht Admin-OnDuty!");
 {
 if(acarexist[playerid] == 1)
 {
 SendClientMessage(playerid,CL_HGRÜN,"Admin-Car gelöscht");
 DestroyVehicle(vehicle[playerid]);
 Delete3DTextLabel(VehicleAdminName[playerid]);
 acarexist[playerid] = 0;
 return 1;
 }
 else if(acarexist[playerid]==0)
 {
 if(sscanf(params,"iii",vID,FARB1,FARB2))return SendClientMessage(playerid,CL_KNALLROT,"INFO: /acar Fahrzeug--->[ID] Farbe 1 Farbe 2"); //Hier wird das was der Spieler hinter dem Befehl eingegeben hat in Variablen getrennt. In unserem Fall in "vID"
 new str[128];
 new a_level;
 GetPlayerPos(playerid,X,Y,Z);
 GetPlayerFacingAngle(playerid,ROTA);
 vehicle[playerid] = CreateVehicle(vID,X,Y,Z,ROTA,FARB1,FARB2,0); //Farbe -1 bedeutet Random. Also zufällige Farbe.ok
 PutPlayerInVehicle(playerid,vehicle[playerid],0); //Die 0 steht für die Sitz ID. 0 = Fahrer :)ok//frage?
 a_level=sInfo[playerid][alevel];
 format(str,sizeof(str),"%s Car von %s",a_rang[a_level],SpielerName(playerid));
 VehicleAdminName[playerid] = Create3DTextLabel(str,CL_HGRÜN,X,Y,Z,MAX_STREAM_NAME_DISTANCE,GetPlayerVirtualWorld(playerid),1);
 Attach3DTextLabelToVehicle(VehicleAdminName[playerid],vehicle[playerid],0,-1.3,0.7);//30.0,40.0,50.0
 SetVehicleNumberPlate(vehicle[playerid],"MVS-ADMIN");//------>hier gehts nicht
 SetVehicleToRespawn(vehicle[playerid]);
 SendClientMessage(playerid,CL_HGRÜN,"Admin-Car erstellt ");
 PutPlayerInVehicle(playerid,vehicle[playerid],0);
 acarexist[playerid] = 1;
 return 1;
 }
 }
 SendClientMessage(playerid,CL_HROT,"Du darfst diesen Befehl nicht nutzen.");
 return 1;
 }
- 
			ocmd:cspawn(playerid,params[]) 
 {
 if(sInfo[playerid][alevel]>=7)
 {
 if(sInfo[playerid][aduty]==0)return SendClientMessage(playerid,CL_KNALLROT,"ERROR: Du bist nicht Admin-OnDuty!");
 {
 new vID;
 //Hier kannst du jetzt wie oben reinschreiben was passiert wenn man diesen Befehl aufruft.
 if(sscanf(params,"i",vID))return SendClientMessage(playerid,CL_WHITE,"Aussage: /cspawn Fahrzeug--->[ID]"); //Hier wird das was der Spieler hinter dem Befehl eingegeben hat in Variablen getrennt. In unserem Fall in "vID"
 new Float:X,Float:Y,Float:Z,Float:ROTA;
 GetPlayerPos(playerid,X,Y,Z);
 GetPlayerFacingAngle(playerid,ROTA);
 new l_vehicle;//----------->daa
 l_vehicle=CreateVehicle(vID,X,Y,Z,ROTA,-1,-1,0); //Farbe -1 bedeutet Random. Also zufällige Farbe.ok
 PutPlayerInVehicle(playerid,l_vehicle,0); //Die 0 steht für die Sitz ID. 0 = Fahrer :)ok//frage?
 return 1;
 }
 }
 SendClientMessage(playerid,CL_HROT,"Du darfst diesen Befehl nicht nutzen.");
 return 1;
 }ocmd:acar(playerid,params[]) 
 {
 new vID;
 new Float:X,Float:Y,Float:Z,Float:ROTA,FARB1,FARB2;
 static p_vehicle[MAX_PLAYERS];
 static l_acarexist[MAX_PLAYERS];//-------->da
 new Text3D:VehicleAdminName[MAX_PLAYERS];
 if(sInfo[playerid][alevel] >= 2)
 if(sInfo[playerid][aduty]==0)return SendClientMessage(playerid,CL_KNALLROT,"ERROR: Du bist nicht Admin-OnDuty!");
 {
 if(l_acarexist[playerid] == 1)
 {
 SendClientMessage(playerid,CL_HGRÜN,"Admin-Car gelöscht");
 DestroyVehicle(p_vehicle[playerid]);
 Delete3DTextLabel(VehicleAdminName[playerid]);
 l_acarexist[playerid] = 0;
 return 1;
 }
 else if(l_acarexist[playerid]==0)
 {
 if(sscanf(params,"iii",vID,FARB1,FARB2))return SendClientMessage(playerid,CL_KNALLROT,"INFO: /acar Fahrzeug--->[ID] Farbe 1 Farbe 2"); //Hier wird das was der Spieler hinter dem Befehl eingegeben hat in Variablen getrennt. In unserem Fall in "vID"
 new str[128];
 new a_level;
 GetPlayerPos(playerid,X,Y,Z);
 GetPlayerFacingAngle(playerid,ROTA);
 a_level=sInfo[playerid][alevel];
 format(str,sizeof(str),"%s Car von %s",a_rang[a_level],SpielerName(playerid));
 SetVehicleNumberPlate((p_vehicle[playerid] = CreateVehicle(vID,X,Y,Z,ROTA,FARB1,FARB2,0)),"MVS-ADMIN");//------>hier gehts nicht
 VehicleAdminName[playerid] = Create3DTextLabel(str,CL_HGRÜN,X,Y,Z,MAX_STREAM_NAME_DISTANCE,GetPlayerVirtualWorld(playerid),1);
 Attach3DTextLabelToVehicle(VehicleAdminName[playerid],p_vehicle[playerid],0,-1.3,0.7);//30.0,40.0,50.0
 PutPlayerInVehicle(playerid,p_vehicle[playerid],0); //Die 0 steht für die Sitz ID. 0 = Fahrer :)ok//frage?SendClientMessage(playerid,CL_HGRÜN,"Admin-Car erstellt "); 
 PutPlayerInVehicle(playerid,p_vehicle[playerid],0);
 l_acarexist[playerid] = 1;
 return 1;
 }} 
 SendClientMessage(playerid,CL_HROT,"Du darfst diesen Befehl nicht nutzen.");
 return 1;
 }
- 
			damit auch der lerneffekt da ist wieso hast du wo was auf wie verändert? nur damit ich es auch lerne und nicht nur copy&paste 
- 
			Variable shadows a preceding Level: Variable existiert bereits. => Ich habe eine der beiden Variablen einfach umbenannt (l_ davor gesetzt), somit heißen sie unterschiedlich. Plate: 
 SetVehicleNumberPlate((p_vehicle[playerid] = CreateVehicle(vID,X,Y,Z,ROTA,FARB1,FARB2,0)),"MVS-ADMIN");
 Dazu geändert und den Respawn weg gemacht. So kannst du es direkt setzen.
- 
			danke dir ich werde es ausprobieren-->danke dass du dir 
 die zeit nimmst es auch zu erklärenedit danke hab keine errors und warnings mehr den rest werde ich ausprobieren es funktioniert nach wievor nicht 
- 
						
- 
			Was funktioniert nicht. Lerne dich bitte etwas klarer auszudrücken. In allen deinen Posts musste ich bis jetzt raten was du meinst. 
- 
			gleiches problem wie am anfang also = keine änderung durch den code den ihr geschrieben habt 
 sry ich schreibe gern kurz
- 
			So kann ich dir nicht helfen. Entweder du führst dein Problem genau aus, oder du wartest auf jemand anderen. 
- 
			
- 
			So, immerhin mal einen Satz. Aus deinen Kommentaren ging nur hervor, dass das Nummernschild nicht geht. static p_vehicle[MAX_PLAYERS]; 
 aus dem Befehl nehmen und unter die Includes so schreiben:
 new p_vehicle[MAX_PLAYERS] = {-1, ...};OnPlayerDisconnect: 
 if(p_vehicle[playerid] != -1)
 {
 DestroyVehicle(p_vehicle[playerid]);
 p_vehicle[playerid] = -1;
 }
- 
			new p_vehicle[MAX_PLAYERS] = {-1, ...}; das existiert beim acar befehl nicht was nun? bzw bei mir sah es so aus static p_vehicle[MAX_PLAYERS]; 
- 
			static p_vehicle[MAX_PLAYERS]; 
 Das löschen.Das andere dann unter den Includes einfügen. 
- 
			muss bei 
 new p_vehicle[MAX_PLAYERS] = {-1, ...};noch was eingetragen werden wenn ja was? 
- 
			Nein, einfach so übernehmen. 
 Das heißt, dass alle Indexe zu Beginn auf -1 gesetzt werden. Die drei Punkte gehören dort genau so hin.
- 
			ok das kannte ich noch nicht ->ich werde es bei gelegenheit testen 
- 
			  breadfish.deHat das Thema geschlossen.
 
		 
		
		
	

