/carkey überarbeiten

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 liebe Community,


    Ich bin noch ein Script Kiddie da ich was dazulernen will wollte ich etwas schwierigeres machen.
    Nämlich den /carkey by DownSave"> befehl der Godfather bearbeiten damit es entweder die Funktion /carkey [ID 1-15] oder nen einfach /carkey
    wo dann eine List Funktion erscheint in welcher man dann das Auto auswählen kann.


    Hier der Code:


    [pwn=1] if (strcmp("/carkey", cmdtext, true, 10) == 0) { new mv = MaxVeh; if(mv > 1) { Dtc_PlayerKey[playerid] += 1; if(Dtc_PlayerKey[playerid] == MaxVeh) { Dtc_PlayerKey[playerid] = 0; } if(Dtc_PlayerHaveCar[playerid][Dtc_PlayerKey[playerid]]) { format(string, sizeof(string), "Du nimmst deinen %dten Auto-Schlüssel, für deinen %s!",Dtc_PlayerKey[playerid]+1,CarName[PlayerCar[playerid][Dtc_PlayerKey[playerid]][CarModel]-400]); } else { format(string, sizeof(string), "Du nimmst deinen %dten Auto-Schlüssel, doch hast für diesen Schlüssel noch kein Auto!",Dtc_PlayerKey[playerid]+1); } SendClientMessage(playerid,COLOR_YELLOW,string); } return 1; }[/pwn]



    Ich hoffe Ihr könnt mir helfen und eventuell auch eine Erklärung dazu damit ich es verstehe :)


    Mfg,
    ScriptPanda

  • Oh, sorry, war der falsche Link. Der hier war gemeint: Der Pawn BB Code - Die richtige Anwendung
    Egal, ich habe deinen Code auseinandergebaut.


    Also, du definierst den Dialog unter den Includes:
    #define CARKEY_DIALOG 1403


    Den Befehl schreibst du so:
    if(!strcmp("/carkey", cmdtext, true))
    {
    new string[1024];
    for(new i=0; i<MaxVeh; i++)
    {
    if(Dtc_PlayerHaveCar[playerid][i]) format(string, sizeof(string), "%s%s\n", string, CarName[PlayerCar[playerid][i][CarModel]-400]);
    else format(string, sizeof(string), "%s-Leer-\n", string);
    }
    return ShowPlayerDialog(playerid, CARKEY_DIALOG, DIALOG_STYLE_LIST, "Carkeys", string, "Ok", "Abbrechen");
    }


    Und unter OnDialogResponse schreibst du:
    if(dialogid == CARKEY_DIALOG)
    {
    if(!response) return 1;
    new string[145];
    Dtc_PlayerKey[playerid] = listitem;
    if(Dtc_PlayerHaveCar[playerid][listitem]) format(string, sizeof(string), "Du nimmst deinen %dten Auto-Schlüssel, für deinen %s!",listitem+1,CarName[PlayerCar[playerid][listitem][CarModel]-400]);else format(string, sizeof(string), "Du nimmst deinen %dten Auto-Schlüssel, doch hast für diesen Schlüssel noch kein Auto!",listitem+1);
    return SendClientMessage(playerid,COLOR_YELLOW,string);
    }


    Brauchst du da eine Erklärung dafür, oder spricht der Code für sich?
    An sich wird die Liste aufgebaut, und je nach dem welches listitem du auswählst, den Key bekommst du.