System spinnt rum & Eine Frage

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,


    ich habe vor ein Dynamisches Geldverwaltungs-System zu basteln.
    Man kann Ingame per Befehl alle Geldvergaben usw. individuell einstellen.


    Bislang war alles in Ordnung, habe ein Enum erstellt und ein Befehl mit "DIALOG_STYLE_TABLIST_HEADERS".


    Nun habe ich folgendes Problem:


    Wenn ich das erste Listitem ändern will, ändert er es auch, zeigt mir aber 2x SendClientMessage an.
    Wenn ich aber das zweite Listitem ändern will, ändert er nur das erste listitem, nicht das 2. so wie es eigentlich sein sollte. Wieder kommen 2 SendClientMessages an.


    Hier mal den Kompletten Code:



    #define dialog_geldverwaltung 1


    //enum
    enum Geldverwaltung
    {
    Jailcashcop,
    Jailcashrobber
    }
    new Geld[Geldverwaltung];


    //Der befehl
    ocmd:geldverwaltung(playerid,params[])
    {
    if(Spieler[playerid][Adminlevel] != 5)return SendClientMessage(playerid,COLOR_WHITE,"* Du bist kein Projektleiter!");
    new string[2000];
    format(string,sizeof(string),"Fall\tWert\nGeld für Cop, wenn Spielet tötet mit Wanteds (pro Wanted)\t$%d\nDas verlorene Geld für Robber mit Wanteds, wenn von Cop getötet (pro Wanted)\t$%d",Geld[Jailcashcop],Geld[Jailcashrobber]);
    ShowPlayerDialog(playerid,dialog_geldverwaltung,5,"Die Geldverwaltung auf dem Server",string,"Ändern","Abbrechen");
    return 1;
    }


    //Und zu guter letzt die dialoge
    if(dialogid==dialog_geldverwaltung)
    {
    if(response)
    {
    if(listitem==0)//Jailcash für Cops
    {
    ShowPlayerDialog(playerid,dialog_jailcashfuercops,DIALOG_STYLE_INPUT,"Gelvergabe-Ändern","In welchen Wert willst du diese Geldvergabe ändern?","Ändern","Abbrechen");
    }
    else if(listitem==1)//Jailcash- für Robber
    {
    ShowPlayerDialog(playerid,dialog_jailcashrobber,DIALOG_STYLE_INPUT,"Gelvergabe-Ändern","In welchen Wert willst du diese Geldvergabe ändern?","Ändern","Abbrechen");
    }
    }
    else { return 1; }
    }
    if(dialogid==dialog_jailcashfuercops)
    {
    if(response)
    {
    if(IsNumeric(inputtext))
    {
    Geld[Jailcashcop] = strval(inputtext);
    format(string,sizeof(string),"* Du hast diese Geldvergabe erfolgreich in $%d geändert.",strval(inputtext));
    SendClientMessage(playerid,COLOR_GREEN,string);
    }
    else
    {
    SendClientMessage(playerid,COLOR_GRAD2,"** Dieser Wert darf keine Buchstaben enthalten!");
    }
    }
    else { return 1; }
    }
    if(dialogid==dialog_jailcashrobber)
    {
    if(response)
    {
    if(IsNumeric(inputtext))
    {
    Geld[Jailcashrobber] = strval(inputtext);
    format(string,sizeof(string),"* Du hast diese Geldvergabe erfolgreich in $%d geändert.",strval(inputtext));
    SendClientMessage(playerid,COLOR_GREEN,string);
    }
    else
    {
    SendClientMessage(playerid,COLOR_GRAD2,"** Dieser Wert darf keine Buchstaben enthalten!");
    }
    }
    else { return 1; }
    }


    Jemand eine Idee dazu?


    Zu meiner Frage:


    Ich habe ein sehr langen /motor Befehl und möchte ihn auf die Taste "N" setzen zb.


    Gibt es einen Code, der den befehl einfach ausführt?




    Danke im Voraus


    Mit freundlichen Grüßen
    Keslo

    Mit freundlichen Grüßen,


    Keslo

  • Wie sind dialog_geldverwaltung, dialog_jailcashfuercops und dialogid==dialog_jailcashrobber definiert?
    Versuche es eventuell mal so:
    //Und zu guter letzt die dialoge
    if(dialogid==dialog_geldverwaltung)
    {
    if(!response) return 1;
    if(listitem==0)//Jailcash für Cops
    {
    ShowPlayerDialog(playerid,dialog_jailcashfuercops,DIALOG_STYLE_INPUT,"Gelvergabe-Ändern","In welchen Wert willst du diese Geldvergabe ändern?","Ändern","Abbrechen");
    }
    else if(listitem==1)//Jailcash- für Robber
    {
    ShowPlayerDialog(playerid,dialog_jailcashrobber,DIALOG_STYLE_INPUT,"Gelvergabe-Ändern","In welchen Wert willst du diese Geldvergabe ändern?","Ändern","Abbrechen");
    }
    return 1;
    }
    if(dialogid==dialog_jailcashfuercops)
    {
    if(!response) return 1;
    if(!IsNumeric(inputtext)) return SendClientMessage(playerid,COLOR_GRAD2,"** Dieser Wert darf keine Buchstaben enthalten!");
    Geld[Jailcashcop] = strval(inputtext);
    format(string,sizeof(string),"* Du hast diese Geldvergabe erfolgreich in $%d geändert.",strval(inputtext));
    SendClientMessage(playerid,COLOR_GREEN,string);
    return 1;
    }
    if(dialogid==dialog_jailcashrobber)
    {
    if(!response) return 1;
    if(!IsNumeric(inputtext)) return SendClientMessage(playerid,COLOR_GRAD2,"** Dieser Wert darf keine Buchstaben enthalten!");
    Geld[Jailcashrobber] = strval(inputtext);
    format(string,sizeof(string),"* Du hast diese Geldvergabe erfolgreich in $%d geändert.",strval(inputtext));
    SendClientMessage(playerid,COLOR_GREEN,string);
    return 1;
    }


    Ich habe ein sehr langen /motor Befehl und möchte ihn auf die Taste "N" setzen zb.

    Wie sieht denn der Befehl aus?



  • #define dialog_jailcashfuercops 9
    #define dialog_jailcashrobber 9


    Habe es mit deinem Code gemacht, leider selber Fehler.




    Wie sieht denn der Befehl aus?



    ocmd:motor(playerid, params[])
    {
    if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return 1;
    new vehicleid = GetPlayerVehicleID(playerid);
    new motoran[128],motoraus[128];


    format(motoran,sizeof(motoran),"%s startet den Motor.",SpielerName(playerid));
    format(motoraus,sizeof(motoran),"%s stellt den Motor ab.",SpielerName(playerid));


    if(Spieler[playerid][Fraktion] == 1)//LSPD - SAPD
    {
    for(new i=0;i<sizeof(lspdcar);i++)
    {
    if(vehicleid == lspdcar[i])
    {
    if(motor[vehicleid] == 1)
    {
    SetPlayerChatBubble(playerid,motoraus,COLOR_PURPLE,20,3000);
    SetVehicleParamsEx(vehicleid,VEHICLE_PARAMS_OFF,VEHICLE_PARAMS_OFF,alarm,doors,bonnet,boot,objective);
    motor[vehicleid] = 0;
    licht[vehicleid] = 0;
    }
    else if(motor[vehicleid] == 0)
    {
    SetPlayerChatBubble(playerid,motoran,COLOR_PURPLE,20,3000);
    SetVehicleParamsEx(vehicleid,VEHICLE_PARAMS_ON,VEHICLE_PARAMS_ON,alarm,doors,bonnet,boot,objective);
    motor[vehicleid] = 1;
    licht[vehicleid] = 1;
    }
    }
    }
    }
    else if(Spieler[playerid][Fraktion] == 2)//Ballas
    {
    for(new i=0; i<sizeof(ballascars);i++)
    {
    if(vehicleid == ballascars[i])
    {
    if(motor[vehicleid] == 1)
    {
    SetPlayerChatBubble(playerid,motoraus,COLOR_PURPLE,20,3000);
    SetVehicleParamsEx(vehicleid,VEHICLE_PARAMS_OFF,VEHICLE_PARAMS_OFF,alarm,doors,bonnet,boot,objective);
    motor[vehicleid] = 0;
    licht[vehicleid] = 0;
    }
    else if(motor[vehicleid] == 0)
    {
    SetPlayerChatBubble(playerid,motoran,COLOR_PURPLE,20,3000);
    SetVehicleParamsEx(vehicleid,VEHICLE_PARAMS_ON,VEHICLE_PARAMS_ON,alarm,doors,bonnet,boot,objective);
    motor[vehicleid] = 1;
    licht[vehicleid] = 1;
    }
    }
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_GRAD2,"* Du besitzt keine Schlüssel für dieses Fahrzeug.");
    }
    return 1;
    }



    //Edit, sehe grade dass ich die selben zahlen benutzt habe. die frage hätte sich geklärt, tut mir leid für die umstände.
    noch eine idee zu dem motor?

    Mit freundlichen Grüßen,


    Keslo