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.de
Hat das Thema geschlossen.