Dynamisches Carerstellen System

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
  • Hi wollte mal fragen ob mir jemand dabei helfen kann,
    ein dynamisches System zu erstellen.
    und zwar habe ich einen /veh Befehl, den nur Admins benutzen können.


    Allerdings will ich nicht das überall alle Autos rumstehen und habe bereits ein Limit für
    jeden Admin gesetzt.
    Also jeder Admin kann für sich 10 Cars spawnen und muss dann /delcars eingeben damit sie wieder weg sind.
    Das funktioniert ja auch soweit.


    Aber ich will jetzt auch ein Dynamisches Dialogsystem einbauen, damit der Admin sich aussuchen kann,
    zu welchem Auto er sich teleportieren will oder welches Auto er löschen will.


    Habe da auch schon mit angefangen.


    Aber sobald ich 3 Cars spawne, das 2. lösche, ist bei dem 3. die Vehicleid immer -1.
    Kann mir jemand was dafür senden oder soll ich meinen Code senden?
    Würde aber etwas dauern, da ich ihn erstmal ausbauen müsste ^^



    Schonmal vielen Dank.
    Darkness321



    //Edit


    Hier mal mein Code:


    Der Command
    ocmd:acarlist(playerid, params[])
    {
    if(IsAAdmin(playerid, 6))
    {
    if(spawnedACars[playerid] > 0)
    {
    new msg[512], rows = 0;
    for(new i = 0; i<MAX_ADMINCARS; i++)
    {
    if(AdminCar[playerid][vID][i] != -1)
    {
    new Float:ax, Float:ay, Float:az, zone[MAX_ZONE_NAME];
    GetVehiclePos(AdminCar[playerid][vID][i], ax, ay, az);
    Get2DZone(ax, ay, zone, MAX_ZONE_NAME);
    if(rows == 0) format(msg, sizeof(msg), "%s in %s", GetVehicleName(GetVehicleModel(AdminCar[playerid][vID][i])), zone);
    else format(msg, sizeof(msg), "%s\n%s in %s", msg, GetVehicleName(GetVehicleModel(AdminCar[playerid][vID][i])), zone);
    AdminCar[playerid][DialogID][i] = rows;
    rows += 1;
    }
    }
    ShowPlayerDialog(playerid, CARLIST_DIAG2, DIALOG_STYLE_LIST, "Carlist", msg, "Auswählen", "");
    }
    else return SendClientMessage(playerid, COLOR_RED, "-Error- Du hast kein Auto gespawnt.");
    return 1;
    }
    return 0;
    }


    Bei OnDialogResponse
    if(response) // True Response
    {
    if(dialogid == CARLIST_DIAG)
    {
    AdminCar[playerid][UsedListitem] = listitem;
    ShowPlayerDialog(playerid, CARLIST_DIAG2, DIALOG_STYLE_LIST, "Carlist", "Zum Auto teleportieren\nAuto löschen", "Weiter", "Abbrechen");
    }
    else if(dialogid == CARLIST_DIAG2)
    {
    if(listitem == 0)
    {
    new i = GetAdminIDFromListitem(AdminCar[playerid][UsedListitem], playerid);
    new Float:vPos[3];
    GetVehiclePos(AdminCar[playerid][vID][i], vPos[0], vPos[1], vPos[2]);
    SetPlayerPos(playerid, vPos[0], vPos[1], vPos[2]);
    PutPlayerInVehicle(playerid, AdminCar[playerid][vID][i], 0);
    }
    else if(listitem == 1)
    {
    new i = GetAdminIDFromListitem(AdminCar[playerid][UsedListitem], playerid);
    DestroyVehicle(AdminCar[playerid][vID][i]);
    AdminCar[playerid][vID][i] = -1;
    }
    }
    }


    Die extra Funktion:
    stock GetAdminIDFromListitem(listitem, playerid)
    {
    for(new i = 0; i<MAX_ADMINCARS; i++)
    {
    if(AdminCar[playerid][DialogID][i] == listitem) return i;
    }
    return -1;
    }

    Einmal editiert, zuletzt von Darkness321 ()

  • Bei der Command Zeile 21:


    das muss heißen:


    ShowPlayerDialog(playerid, CARLIST_DIAG2, DIALOG_STYLE_LIST, "Carlist", msg, "Auswählen");



    du hattest hinten noch "" aber nichts drinen mach das mal weg und sag was noch kommt/fehlt


    MFG

  • Ich habe grad was gescriptet ein Filter Script als Car Spawner läuft alles im Dialog Style auf wunsch adde ich auch mehr fahrzeuge dazu und mach es dir für dein Admin System



    MFG

  • Ja is aber immernoch nich das was ich suche :D


    Ich suche nen Script, wo ich autos spawnen kann, die dann in ner Variable gespeichert werden
    und ich sie über ein dialog wieder löschen kann
    oder ich mich zu denen teleportieren kann.


    //Edit
    Also eigentlich um genauer zu sein ein dynamisches Dialogsystem.
    Habe sowas schonmal bei DT_Cars gesehen.

    Einmal editiert, zuletzt von Darkness321 ()

  • es gibt 2 wege, zum einen kann man symolieren, welches car dran ist, welches bei deiner methode recht einfach wäre, sollten 10 autos erstellt werden können und jeder kann erstellen bietet sich eine Speicherung an auf welchem listitem was liegt. ich empfehle dir ersteres, wofür du schon einige sachen erstellt hast, hier die richtige anwendung deines Stocks


    stock GetAdminIDFromListitem(listitem, playerid)
    {
    new idx=0;
    for(new i = 0; i<MAX_ADMINCARS; i++)
    {
    if(AdminCar[playerid][DialogID][i] !=-1)
    {
    if(idx==listitem){return i;}
    idx++;
    }
    }
    return -1;
    }
    So sollte es gehen.

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