Mal wird das Fahrzeug gelöscht und mal nicht

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
  • Hallo, wie oben schon gesagt, werden manche Fahrzeuge mal gelöscht und manche wieder nicht, einige Fahrzeuge buggen nicht, sie lassen sich problemlos löschen und auch abschliessen. Wenn man dann jedoch ein Fahrzeug hatt das Bugt dann lässt es sich nciht löschen, nach der 1. Eingabe des /Dveh Befehls steht beim buggenden car zwar das es gelöscht wurde das Fahrzeug bleibt aber stehen, abschliessen kann dieses auch nicht.
    ocmd:Dveh(playerid,params[])
    {
    if(!isPlayerAnAdmin(playerid,2))return SendClientMessage(playerid,ROT,"Du bist kein Moderator!");
    new str[20],entfernen[20];
    new carid = GetCarInRangeOfAdmin(playerid,3.0);
    if(carid == -1) return 1;
    format(str, sizeof(str), "%d.car",entfernen);
    {
    DestroyVehicle(carid);
    dini_Remove(entfernen);
    new string[126];
    format(string,sizeof(string),"Du hast ein Fahrzeug von %s gelöscht", CarInfo[carid][abesitzer]);
    SendClientMessage(playerid,ORANGE,string);
    new string1[126];
    format(string1,sizeof(string1),"%s hat sich ein Fahrzeug von %s gelöscht",NAMEN(playerid), CarInfo[carid][abesitzer]);
    print(string1);
    }
    return 1;
    }
    ocmd:carlock(playerid,params[])
    {
    new carid = GetCarInRangeOfPlayer(playerid,3.0);
    if(carid == -1) return 1;
    if(!strcmp(CarInfo[carid][abesitzer],NAMEN(playerid),false))
    {
    if(CarInfo[carid][alocked] == 0)
    {
    CarInfo[carid][alocked] = 1;
    PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0);
    GetVehicleParamsEx(carid,engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(carid,engine,lights,alarm,1,bonnet,boot,objective);
    SendClientMessage(playerid,GRUEN,"Auto erfolgreich verschlossen");
    new string1[126];
    format(string1,sizeof(string1),"%s verschliesst sein Fahrzeug.",NAMEN(playerid));
    print(string1);
    return 1;
    }
    else
    {
    CarInfo[carid][alocked] = 0;
    PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0);
    GetVehicleParamsEx(carid,engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(carid,engine,lights,alarm,0,bonnet,boot,objective);
    SendClientMessage(playerid,GRUEN,"Auto erfolgreich aufgeschlossen");
    new string1[126];
    format(string1,sizeof(string1),"%s schliest sein Fahrzeug auf.",NAMEN(playerid));
    print(string1);
    return 1;
    }
    }
    return 1;
    }
    ocmd:parkcar(playerid,params[])
    {
    new Float:x, Float:y, Float:z, Float:angle;
    if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,ROT,"Du bist in keinem Auto!");
    if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SendClientMessage(playerid,ROT,"Du bist nicht der Fahrer!");
    GetPlayerPos(playerid,x,y,z);
    GetPlayerFacingAngle(playerid, angle);
    for(new i=0;i<MAX_VEHICLES;i++)
    {
    if(strcmp(CarInfo[i][abesitzer],NAMEN(playerid),false) == 0)
    {
    CarInfo[i][aX] = x;
    CarInfo[i][aY] = y;
    CarInfo[i][aZ] = z;
    CarInfo[i][aAngle] = angle;
    SpeicherFahrzeug(i);
    SendClientMessage(playerid,GRUEN,"Du hast dein Fahrzeug geparkt.");
    }
    else
    {
    SendClientMessage(playerid,ROT,"Das ist nicht dein Fahrzeug!");
    }
    break;
    }
    return 1;
    }
    stock GetCarInRangeOfPlayer(playerid,Float:range)
    {
    for(new i=0;i<MAX_VEHICLES;i++)
    {
    if(IsPlayerInRangeOfPoint(playerid,range,CarInfo[i][aX],CarInfo[i][aY],CarInfo[i][aZ]))
    {
    if(!strcmp(NAMEN(playerid),CarInfo[i][abesitzer],false))
    {
    return i;
    }
    }
    }
    return -1;
    }
    stock GetCarInRangeOfAdmin(playerid,Float:range)
    {
    for(new i=0;i<MAX_VEHICLES;i++)
    {
    if(IsPlayerInRangeOfPoint(playerid,range,CarInfo[i][aX],CarInfo[i][aY],CarInfo[i][aZ]))
    {
    return i;
    }
    }
    return -1;
    }

  • Hast du ein GF wenn ja, dann kopier dir einfach den Befehl von wo anders und fueg ihn ein.
    Falls du wirklich selbst wissen und ausprobieren willst dann helfe ich dir sehr gerne.


    MfG BHF


    Ps: Falls du Hilfe brauchst meld dich und ein Tipp, nenn den Befehl /dct

  • Mhhh, immernoch der selbe mist jedoch hier:
    ocmd:Dveh(playerid,params[])
    {
    if(!isPlayerAnAdmin(playerid,2))return SendClientMessage(playerid,ROT,"Du bist kein Moderator!");
    new str[20],entfernen[20];
    new carid = GetCarInRangeOfAdmin(playerid,3.0);
    if(carid == -1) return 1;
    format(str, sizeof(str), "%d.car",entfernen);
    {
    DestroyVehicle(carid);
    dini_Remove(entfernen);
    print(entfernen);
    new string[126];
    format(string,sizeof(string),"Du hast ein Fahrzeug von %s gelöscht", CarInfo[carid][abesitzer]);
    SendClientMessage(playerid,ORANGE,string);
    new string1[126];
    format(string1,sizeof(string1),"%s hat sich ein Fahrzeug von %s gelöscht",NAMEN(playerid), CarInfo[carid][abesitzer]);
    print(string1);
    }
    return 1;
    }
    stock GetCarInRangeOfPlayer(playerid,Float:range)
    {
    for(new i=0;i<MAX_VEHICLES;i++)
    {
    if(IsPlayerInRangeOfPoint(playerid,range,CarInfo[i][aX],CarInfo[i][aY],CarInfo[i][aZ]))
    {
    if(!strcmp(NAMEN(playerid),CarInfo[i][abesitzer],false))
    {
    return i;
    }
    }
    }
    return -1;
    }
    [14:40:53] (null)
    [14:40:53] Jack_O_Neill hat sich ein Fahrzeug von Jack_O_Neill gelöscht
    [14:40:55] (null)
    [14:40:55] Jack_O_Neill hat sich ein Fahrzeug von Jack_O_Neill gelöscht
    [14:40:57] (null)
    [14:40:57] Jack_O_Neill hat sich ein Fahrzeug von Jack_O_Neill gelöscht
    [14:40:57] (null)
    [14:40:57] Jack_O_Neill hat sich ein Fahrzeug von Jack_O_Neill gelöscht
    [14:41:04] (null)
    [14:41:04] Jack_O_Neill hat sich ein Fahrzeug von Jack_O_Neill gelöscht
    [14:41:07] (null)
    [14:41:07] Jack_O_Neill hat sich ein Fahrzeug von Jack_O_Neill gelöscht

  • Also so weit ich den Befehl hier sehe sollte er so passen.


    MfG BHF

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen

  • ocmd:Dveh(playerid,params[])
    {
    if(!isPlayerAnAdmin(playerid,2))return SendClientMessage(playerid,ROT,"Du bist kein Moderator!");
    new entfernen[20];
    new carid = GetCarInRangeOfAdmin(playerid,3.0);
    if(carid == -1) return 1;
    format(entfernen, sizeof(entfernen), "%d.car",CarInfo[carid][ID]); // Hast du so eine ID?
    dini_Remove(entfernen);
    new string[128];
    format(string,sizeof(string),"Du hast ein Fahrzeug von %s gelöscht", CarInfo[carid][abesitzer]);
    SendClientMessage(playerid,ORANGE,string);
    format(string,sizeof(string),"%s hat sich ein Fahrzeug von %s gelöscht",NAMEN(playerid), CarInfo[carid][abesitzer]);
    print(string);
    DestroyVehicle(carid);
    return 1;
    }


    Also:
    1. Nicht willkürlich irgendwelche Klammern machen.
    2. Gucken welche Variable benutze ich wie?
    3. Das Fahrzeug am Ende zerstören, und nicht vergessen die CarInfo des zerstörten Cars zu resetten ;)
    4. Eigentlich kann das gar nicht hinhauen... Ich habs mal bei format verbessert. Guck mal ob du bei CarInfo sowas hast.


    Probier mal so, habs etwas verbessert


    MfG ニコ先生

  • @ニコ先生
    Die ID wird beim erstellen des fahrzeuges erstellt, in dem falle mit dem /veh befehl und wird dann in der datei gespeichert
    ocmd:Veh(playerid,params[])
    {
    if(!isPlayerAnAdmin(playerid,2))return SendClientMessage(playerid,ROT,"Du bist kein Moderator!");
    new Float:x, Float:y, Float:z, Float:angle,color1,color2,carid;
    if(sscanf(params, "ddd",carid,color1,color2)) return SendClientMessage(playerid,ROT, "Tipp:/Veh [FAHRZEUGID] [COLOR-1] [COLOR-2]");
    if(carid < 0 || carid > 611) return SendClientMessage(playerid,ROT, "Es muss eine Fahrzeug ID zwischen 0 und 611 sein!");
    if(color1 < 0 || color1 > 255 || color2 < 0 || color2 > 255) return SendClientMessage(playerid,ROT, "Die Farb-IDs müssen zwischen 0 und 255 sein!");
    {
    GetPlayerPos(playerid, x,y,z);
    GetPlayerFacingAngle(playerid, angle);
    new id = CreateVehicle(carid, x,y,z,angle,color1,color2,-1);
    CarInfo[id][abesitzer]= NAMEN(playerid);
    CarInfo[id][aID] = id;
    CarInfo[id][aX] = x;
    CarInfo[id][aY] = y;
    CarInfo[id][aZ] = z;
    CarInfo[id][aAngle] = angle;
    CarInfo[id][aModel] = carid;
    CarInfo[id][afarbe1] = color1;
    CarInfo[id][afarbe2] = color2;
    CarInfo[id][alocked] = 1;
    SpeicherFahrzeug(id);
    SetVehicleNumberPlate(id,NAMEN(playerid));
    PutPlayerInVehicle(playerid, id, 0);
    GetVehicleParamsEx(carid,engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(carid,engine,lights,alarm,1,bonnet,boot,objective);
    SendClientMessage(playerid,ROT, "Car gespawnt!");
    new string1[126];
    format(string1,sizeof(string1),"%s hat sich ein Fahrzeug mit der ID:%i erstellt.",NAMEN(playerid),carid);
    print(string1);
    }
    return 1;
    }
    enum Car_System
    {
    abesitzer[MAX_PLAYER_NAME],
    aID,
    aModel,
    Float:aX,
    Float:aY,
    Float:aZ,
    Float:aAngle,
    afarbe1,
    afarbe2,
    alocked,
    }
    new CarInfo[MAX_VEHICLES][Car_System];

  • Habs hinbekommen, ich kann keine Bugs mehr entdecken es geht alles......ich werde morgen früh mal einige Leute einladen und lasse die mal so richtig mit meinem carsystem spass haben, bin mal gespannt obs dann noch buggt xD


    //Edit //Edit Habs hoffentlich endlich hinbekommen!