Admincar nach disconnect löschen

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • klick


    im anhang findet ihr das problem aber ich schreibe es nochmal


    ich muss damit dass nicht passiert das entsprechende admincar beim disconnect löschen weiss aber nicht wie?


    schreibt mal welchen code ihr braucht :D

  • 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? :)

    Man soll weder annehmen noch besitzen, was man nicht wirklich zum Leben braucht.



  • 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?

  • 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;
    }

  • 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ären



    edit danke hab keine errors und warnings mehr den rest werde ich ausprobieren




    es funktioniert nach wievor nicht

    Einmal editiert, zuletzt von Jane ()

  • 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;
    }