Beiträge von Kaliber

    Du hast ja auch die Variable money noch nicht becshrieben :D


    Schreibe es so:


    if(dialogid == DIALOG_EINZAHLEN)
    {
    if(response == 0) return 1;
    if(response == 1)
    {
    new money, string[128];
    money = strval(inputtext);
    if(GetPlayerMoney(playerid) < money)return SCM(playerid,msg,"Du hast nicht genug Geld.");
    if(money<1||money>5000000)return SCM(playerid,ROT,"Falscher Wert (min. 1$ | max. 5000000$)");
    GivePlayerMoney(playerid,-money);
    SetPVarInt(playerid,"Konto",GetPVarInt(playerid,"Konto")+money);
    format(string,sizeof(string),"Du hast erfolgreich %i$ auf dein Konto gezahlt.",money);
    SendClientMessage(playerid,grün,string);
    }
    }


    mfg. :thumbup:

    Der Warning unreachable code erscheint dann, wenn eine if-Abfrage durch ein return unterbrochen wird ! ;)
    lösche einfach das return und das was du damit verbunden hast oder korrigiere deine if-Abfrage ;)


    mfg. :thumbup:

    Es ist schneller als DCMD und ZCMD keine Ahnung.


    Jedoch ist es NICHT das langsamste und OCMD ist auch sehr übersichtlich


    Du weißt aber, dass kleinerOpa (der schreiber von OCMD) so ziemlich viel bei ZCMD abgeschaut hat und nur das "COMMAND" zu "ocmd" geändert hat :D
    und ich finde ZCMD besser, da es zwei nützliche Callbacks anstelle von OnPlayerCommandText hat und man so nicht auf Gross-/Kleinschreibung achten muss !


    mfg. :thumbup:

    strcmp ist eine Standart Funktion die erstmal garnichts mit Befehlen zu tun hat, sie vergleicht nur 2 Strings miteinander und prüft ob diese gleich sind.
    Aber was ocmd, zcmd, dcmd angeht, dann muss ich dir recht geben das das definitiv zu viele xcmds sind ^^


    Dennoch hat jedes seine Vorteile, bis auf ocmd, was definitiv das langsamste ist :D
    dcmd = Ressourcen sparend
    zcmd = schnell
    und die anderen cmd Arten haben auch ihre Vorteile ;)


    mfg. :thumbup:

    Warum sollte das bei so einer Abfrage von Nöten sein?


    Naja, ganz einfach, weil es eine for-Schleife ist, und diese fängt bei 0 an und endet bei MAX_PLAYERS und wenn ein Spieler nicht "connected" ist, springt er direkt auf den nächsten Spieler ;)


    Das ist ressourcen freundlicher ;)


    mfg. :thumbup:

    So sollte es eigentlich funktionieren, "FARBE" durch deine Farbe ersetzen und gut ist.


    Nein, das ist falsch !


    Mache es so:


    ocmd:a(playerid,params[])
    {
    new inhalt[140];
    if(sscanf(params,"s",inhalt)) return SCM(playerid,FARBE,"Nutze: /a [TEXT]");
    format(inhalt,140,"[%s %s: %s]",AdminRankName(playerid),SpielerName(playerid),inhalt);
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i)) continue;
    if(!IstSpielerAdmin(i,1))return SCM(i,FARBE,"Du bist kein Admin.");
    SendClientMessage(i,FARBE,inhalt);
    }
    return 1;
    }


    mfg. :thumbup:

    @Rocky


    wenn man mit zcmd oder dcmd oder ocmd arbeitet...verwendet man kein strtok sondern sscanf ;)


    mfg. :thumbup:


    //Edit: Das muss so aussehen:


    COMMAND:v(playerid, params[])
    {


    new String[200], vehicle;
    new Float:x, Float:y, Float:z;
    if(sscanf(params,"d",vehicle)) return SendClientMessage(playerid, l_red, "Benutze: /v [Fahrzeug Name]");
    if(vehicle < 400 || vehicle > 611) return SendClientMessage(playerid, l_red, "Dieser Fahrzeug Name wurde nicht gefunden.");
    new Float:a;
    GetPlayerFacingAngle(playerid, a);
    GetPlayerPos(playerid, x, y, z);
    if(IsPlayerInAnyVehicle(playerid) == 1)
    {
    GetXYInFrontOfPlayer(playerid, x, y, 8);
    }
    else
    {
    GetXYInFrontOfPlayer(playerid, x, y, 5);
    }


    new PlayersVehicle = CreateVehicle(vehicle, x, y, z, a+90, -1, -1, -1);
    LinkVehicleToInterior(PlayersVehicle, GetPlayerInterior(playerid));


    format(String, sizeof(String), "Du hast dir ein %s gespawnt!", aVehicleNames[vehicle - 400]);
    SendClientMessage(playerid, l_green, String);
    return 1;
    }


    Der Inhalt, also was in diesem Command steht ist ziemlicher Schwachsinn teilweise, aber so müsste das aussehen ;)