Beiträge von PoTTii

    Moinsen.


    Kleine Frage...


    Wie kann ich einen String für einen Dialog beispielsweise sooft formatieren wie eine Bedingung ist?


    Beispiel:




    for(new var=0; var < MAX_RADIO_CHANNELS; var++)
    {
    format(pfad, sizeof pfad, "/RadioChannels/%d.ini", number);
    format(var1, sizeof var1, "%s", dini_Get(pfad, "Channelname"));
    }
    return ShowPlayerDialog(playerid, DIALOG_RADIO, DIALOG_STYLE_MSGBOX, "Radio: Wählen sie ihren Channel!", var1, "Anhoeren", "Verlassen");


    Geht aber nicht wirklich.


    Also ich will sooft wie Variable MAX_RADIO_CHANNELS gross ist die Schleife durchgehen, danach soll pro "erstellter datei" der channelname ausgelesen werden.


    der soll dann im string formatiert werden damit eben danach zb folgendes steht:


    Zitat

    Channel 1
    Channel 2


    Das ganz fürn Listdialog. Wieso aber öffnet sich kein Dialog?



    Kollege, gewähn dir mal was an...


    Wenn du schreibst
    if(pInfo[playerid][pAdminlevel] != 4) return SendClientMessage(playerid, COLOR_RED, "Du bist nicht befugt diesen Befehl zu benutzten.");


    Kann NUR Adminrang 4 es ausführen.


    Es müsste heissen:


    if(pInfo[playerid][pAdminlevel] < 4) return SendClientMessage(playerid, COLOR_RED, "Du bist nicht befugt diesen Befehl zu benutzten.");


    Selbiges beim Geld.


    Du hast:
    if(priceh != 1) return SendClientMessage(playerid, COLOR_GREY, "Das Haus kann nicht weniger als 1$ kosten.");


    So KANN das Haus nur 1$ kosten. Bei mehr oder weniger, gibts ne Fehlermeldung.

    Angenommen du hast Sscanf und OCMD.



    ocmd:createh(playerid, params[]) //wenn /createh geschrieben wird
    {
    if(pInfo[playerid][pAdminlevel] < 4)
    {
    SendClientMessage(playerid, COLOR_RED, "Du bist nicht befugt diesen Befehl zu benutzten.");
    return 1;
    }
    new priceh, inter;
    if(sscanf(params, "ii", priceh, inter)) // wird priceh oder inter nicht ausgefüllt (zb nur /createh 0 statt /createh 0 1
    return SendClientMessage(playerid, COLOR_RED, "Benutzung: /createh [Preis] [Interrior]");
    if(priceh < 1)
    return SendClientMessage(playerid, COLOR_GREY, "Das Haus kann nicht weniger als 1$ kosten.");
    if(inter < 0 || inter > 15)
    return SendClientMessage(playerid, COLOR_GREY, "Die Interior-ID kann nicht unter 0 und über 15 sein.");
    new Float:X,Float:Y,Float:Z;
    GetPlayerPos(playerid, X,Y,Z);
    format(string, sizeof(string), "Du hast ein Haus welches %d kostet mit dem Interrior: %d erstellt.",priceh,inter);
    SendClientMessage(playerid, COLOR_GREY, string);
    CreateHaus(X,Y,Z,priceh,"Keiner",inter);
    }

    Mal ganz ehrlich.
    Wie benutzt du nicht einfach sscanf? Es ist nicht sonderlich schwer, und es verkleinert deinen Befehl enorm wodurch du eine bessere Übersicht behälst.


    Zu deinem Problem kann ich dir aber leider nicht weiterhelfen.

    if(PlayerInfo[i][pAdmin] >= 1 && PlayerInfo[i][pAdmin] < 2000)
    {
    GetPlayerName(i, sendername, sizeof(sendername));
    format(string,sizeof(string)," %d* Admin: %s[%d] Nummer: %d",PlayerInfo[i][pAdmin],sendername,i,PlayerInfo[i][pPnumber]);
    SendClientMessage(playerid, COLOR_GRAD2, string);
    }

    Ich versteh sehr wohl was von Rap und hör auch selber welchen aber auf solche Chamela-Haftbefäääähl Kanacken Rapper kann ich verzichten.

    if(strcmp(cmdtext, "/event", true) == 0)
    {
    if(EventAktiv == 1)
    {
    new sendername[MAX_PLAYERS_NAME];
    new string[250];
    SetPlayerPos(playerid, EventPosX, EventPosY, EventPosZ);
    SendClientMessage(playerid, Grau, "Du hast dich zum Event telepotiert!");
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), "%s hat sich zum Event geportet!", sendername));
    SendAdminMessage(GELB, string);
    }
    else
    {
    SendClientMessage(playerid, ROT, "Es ist kein Event am Laufen!!");
    }
    return 1;
    }

    if(strcmp(cmd, "/frakrc", true) == 0 || strcmp(cmd, "/frc", true) == 0)
    {
    if(PlayerInfo[playerid][pLeader] == 2002)
    {
    for(new pv = 0; pv < sizeof(PolizeiVehs); pv++)
    {
    if(IsVehicleEmpty(pv))
    SetVehicleToRespawn(PolizeiVehs[pv]);

    }
    SendClientMessage(playerid, COLOR_GRAD1, "Du hast deine Fraktionsautos erfolgreich zurückgespawnt!");
    }
    return 1;

    }


    IsVehicleEmpty(carid)
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i)) continue;
    if(IsPlayerInVehicle(i, carid)) return 0;
    }
    return 1;
    }

    Kompaktere Version für gleiche Abfragen



    Bsps anstatt


    if(listitem == 1)
    if(listitem == 2)
    if(listitem == 3)



    switch(listitem)
    {
    case 1: { /*Was soll getan werden? */} // wenn listitem == 1 ist
    case 2: { /*Was soll getan werden? */} // wenn listitem == 2 ist
    }