Beiträge von Shelby

    Für den ersten Versuch ganz in Ordnung, aber mir fallen leider direkt einige Dinge auf, die wirklich unschön sind, vielleicht kannst Du da noch nachbessern.

    • die Charaktere auf der rechten Seite wirken sehr unscharf, rechts die sind viel besser.
    • der untere Schriftzug wirkt leider nur "hingeklatscht"
    • der Hintergrund passt auch nicht wirklich, vielleicht liegt's aber auch daran dass ich keine uni Farben mag ;)

    Ich denke wenn Du dich eine Zeit lang damit beschäftigt hast werden die immer besser ;)


    Edit: jetzt hast Du einen anderen Header reingesetzt oO

    Du musst schon die Definition von dcmd im Script einfügen, das besagt nämlich die erste Fehlermeldung. Und dcmd_kick darf sich N I C H T im OnPlayerCommandText befinden, sondern darunter. Ich vermute mal, dort könnte der Fehler liegen.

    Ungetestet, sollte aber funktionieren...



    #define Tuningmenu 5


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if(strcmp("/tuning", cmdtext, true) == 0)
    {
    if(!IsPlayerInAnyVehicle(playerid)){ return SendClientMessage(playerid,COLOR_RED,"Du brauchst ein Fahrzeug dafür!"); }
    ShowPlayerDialog(playerid, Tuningmenu, DIALOG_STYLE_LIST, "Porte dich zur ...", "TuningGarage SF Normal\nWheel Arch Angels SF\nTuningGarage LS Lowrider", "Teleportieren", "Doch nicht");
    return 1;
    }
    return 0;
    }


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid == Tuningmenu) // Name des Menüs, das wir als ID 1 definiert haben
    {
    if(response)
    {
    new carID;
    carID = GetPlayerVehicleID(playerid);
    switch(listitem)
    {
    case 0:
    {
    SetVehiclePos(carID,-1928.3599,229.9237,35.2461);
    SetVehicleZAngle(carID,24.7610);
    PutPlayerInVehicle(playerid,carID,0);
    }

    case 1:
    {
    SetVehiclePos(carID,-2703.4927,217.7343,3.7171);
    SetVehicleZAngle(carID,92.8262);
    PutPlayerInVehicle(playerid,carID,0);
    }


    case 2:
    {
    SetVehiclePos(carID,2644.8413,-2021.2192,13.1121);
    SetVehicleZAngle(carID,179.7866);
    PutPlayerInVehicle(playerid,carID,0);
    }
    }
    }
    else { return SendClientMessage(playerid,COLOR_RED,"Aktion abgebrochen. Du wurdest nicht teleportiert!"); }
    }
    return 1;
    }

    So hab ich es mit dcmd gelöst, jenachdem wer diesen Befehl benutzen soll, kann man noch eine Abfrage nach dem userLevel einbauen.


    Vorraussetzung ist natürlich, dass Du dcmd und sscanf in deinem Code definiert hast. Falls nicht, findest Du diese im SA-MP Wiki unter:


    http://wiki.sa-mp.com/wiki/Dcmd
    #define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2)


    http://wiki.sa-mp.com/wiki/Sscanf
    Den Code für sscanf habe ich nicht angefügt, da ich sonst wahrscheinlich die Text Zeile gesprengt hätte.


    Im public OnPlayerCommandText musst Du folgende Zeile einfügen:



    public OnPlayerCommandText(playerid)
    {
    dcmd(kick,4,cmdtext);
    return 0;
    }


    Darunter folgt der Code für den dcmd Befehl:



    dcmd_kick(playerid,params[])
    {
    new idx, str[256];
    if(sscanf(params,"i",idx)) { return SendClientMessage(playerid,COLOR_RED,"/kick <id>"); }
    if(IsPlayerConnected(idx))
    {
    format(str,sizeof(str),"%s hat %s vom Server gekickt!", GetPlayerName(playerid), GetPlayerName(idx));
    SendClientMessageToAll(COLOR_GREY,str);Kick(idx);
    }
    else { SendClientMessage(playerid,COLOR_RED,"Spieler ID ist nicht online!"); }
    return 1;
    }