Problem bei Dialog

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 möchte gern Scripten, dass man über einen
    Inputdialog eine SpeilerID wählen muss, jedoch, wird immer die Spieler ID: 0 gewhält,
    wenn man irgend eine Falsche ID eingibt.



    • if(dialogid == DIALOG_LMS1)
      {
      if(response == 1)
      {
      if(!strlen(inputtext))
      {
      SendClientMessage(playerid,RED,"Du hast nichts eingegeben!");
      new string[128],name[MAX_PLAYER_NAME];
      for(new i=0;i<MAX_PLAYERS;i++)
      {
      if(IsPlayerConnected(i) && mitlms[i] == 1 && !IsPlayerNPC(i))
      {
      GetPlayerName(i,name,sizeof(name));
      format(string, sizeof(string), "%s\nSpieler %s ID: %d",string,name, i);
      ShowPlayerDialog(playerid,DIALOG_LMS1,DIALOG_STYLE_INPUT,"{FF8700}Bitte gebe die ID des Pilot ein:",string,"Aussuchen","Abbrechen");
      }
      }
      }
      else if(mitlms[strval(inputtext)] == 0) /// Abfrage ob der Spieler mit der ID nicht dabei ist
      {
      new string[128],name[MAX_PLAYER_NAME];
      for(new i=0;i<MAX_PLAYERS;i++)
      {
      if(IsPlayerConnected(i) && mitlms[i] == 1 && !IsPlayerNPC(i))
      {
      SendClientMessage(playerid, RED, "Der Spieler ist nicht beim Last Man Standing dabei!");
      GetPlayerName(i,name,sizeof(name));
      format(string, sizeof(string), "%s\nSpieler %s ID: %d",string,name, i);
      ShowPlayerDialog(playerid,DIALOG_LMS1,DIALOG_STYLE_INPUT,"{FF8700}Bitte gebe die ID des Pilot ein:",string,"Aussuchen","Abbrechen");
      }
      }
      }
      else
      {
      new streich[128];
      format(streich, sizeof(streich), "Der Spieler mit der ID: %d ist jetzt Pilot.",strval(inputtext));
      SendClientMessage(playerid, GREEN, streich);
      gewaehlt = 1;
      }
      }


    MfG


    /e 1: Code

  • Das wird wohl daran liegen, dass strval(inputtext) 0 zurückgibt, wenn es keinen korrekten Zahlenwert in dem String findet.
    Abhilfe: vorher mit IsNumeric() prüfen, ob der eingegebene Text einer Zahl entspricht. Wenn nicht, ist die Eingabe fehlerhaft.

    Professioneller Webentwickler.