Benötige hilfe bei /veh und /deleh

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
  • Guten Abend


    Und zwar benötige ich Hilfe bei denn /veh und /delveh befehlen, ich möchte das alle von Admins erstellen Fahrzeuge gelöscht werden, ich habe dafür eine Variable angelegt mit 32 slots (wenn man das so nenen kann)


    Jetzt frage ich mich nur wie ich das am schlausten anstellen kann die Fahrzeuge in diese Variable einzutragen und beim Aufruf des del befehles diese zu löschen.


    Hier meine Test befehle


    Würde mich über jede Hilfe freuen.

  • bin kein Profi aber



    Code
    public OnPlayerCommandText(playerid, cmdtext[])
    {
         if(strcmp(cmdtext, "/delveh", true) == 0)
         {
              new vehicleid = GetPlayerVehicleID(playerid);
              DestroyVehicle(vehicleid);
              return 1;
         }
         return 0;
    }

    Musst aber im Fahrzeug drin sein


  • [list=1][*]dcmd_delveh(playerid,params[])
    [*]{
    [*] for(new i = 0; i <=32;i++)
    [*] {
    [*] DestroyVehicle(vehCars[i]);
    [*] }
    [*] return 1;
    [*]}
    [/list]
    In dem Befehl benutzt du keine Parameter und benutzt oben "params[])"
    Versuch es mal so aber keine 100% garantie



    new count = 0;
    for(new a=0;a<MAX_AVEHS;a++)
    {
    if(VehCars[a] != INVALID_VEHICLE_ID)
    {
    DestroyVehicle(VehCars[a]);
    VehCars[a] = INVALID_VEHICLE_ID;
    count++;
    }
    }

  • @JayWayy das ist absolut nicht das was er sucht.


    @BlackFire95


    Erstmal:

    • Bitte verwende sprechende Variablennamen. Bei diesem xs weiß keiner direkt wozu das überhaupt da ist und was es macht.
    • Zeile 27 kannst Du kürzer schreiben: xs++;

    Zu dem Problem: Ich würde erstmal in /veh durch vehCars durch iterieren und sobald du eine 0 gefunden hast, schreibst Du in den aktuellen Index die Fahrzeug ID rein. Wenn keine 0 gefunden wurde, dann ist vehCars voll mit Vehicle ID's. In /delveh kannst Du dann wieder durch vehCars iterieren und nach dem Index suchen, der den Wert Deiner aktuellen Vehicle ID (also in dem Fahrzeug in dem Du sitzt) hat. Danach das Fahrzeug löschen und den Index auf 0 setzen um wieder Platz frei zu machen. Wenn die Vehicle ID nicht in vehCars existiert, gibst Du einfach eine Meldung aus, dass das Fahrzeug kein Adminfahrzeug ist.