Befehl Anrufen funktioniert nicht richtig ?

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
  • Schönen guten Abend liebe Community,


    ich bin grade dabei ein Handysystem zu schreiben. Der Befehl an sich funktioniert nur ich bekomme immer die Message
    das ich eine richtige Handynummer angeben soll. Obwohl diese richtig ist.



    new nummer = SpielerInfo[playerid][Handynr],string[128];
    new pID = HandyNummerRichtig(nummer);
    if(response==0)return 1;
    if(response==1)
    {
    if(strval(inputtext) != SpielerInfo[pID][Handynr])
    {
    format(string,sizeof(string),"{23FF00}%s{FEFEFE} - Anrufen",Handyid(playerid));
    ShowPlayerDialog(playerid,DIALOG_ANRUFEN,DIALOG_STYLE_INPUT,string,"{FF0037}Bitte gib eine korrekte Handynummer an!\n\n{FEFEFE}Wen möchtest du anrufen ?\nNutze /telefonbuch\nBedenke vorher die Kosten die das ganze\nmit sich trägt!","Anrufen","Abbrechen");
    }
    else
    {
    format(string,sizeof(string),"%s(%i) ruft dich an...",SpielerName(playerid),playerid);
    SendClientMessage(pID,Gelb,string);
    format(string,sizeof(string),"Du rufst %s(%i) an...",SpielerName(pID),pID);
    SendClientMessage(playerid,Weiss,string);
    }
    }
    }


    stock HandyNummerRichtig(Handynummer)
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i) && !IsPlayerNPC(i))
    {
    if(SpielerInfo[i][Handynr] == Handynummer && Handynummer != 0)
    return i;
    }
    }
    return -1;
    }


    Kann mir wer sagen wo der Fehler liegt ?

  • Wenn ich das richtig sehe versuchst du mit HandyNummerRichtig die dazugehörige Spieler-ID herauszufinden.

    new nummer = SpielerInfo[playerid][Handynr];
    new pID = HandyNummerRichtig(nummer);
    würde dir demnach die Spieler-ID des Anrufers ausgeben, da du seine Nummer überprüfst.

  • Wenn ich das richtig sehe versuchst du mit HandyNummerRichtig die dazugehörige Spieler-ID herauszufinden.

    new nummer = SpielerInfo[playerid][Handynr];
    new pID = HandyNummerRichtig(nummer);
    würde dir demnach die Spieler-ID des Anrufers ausgeben, da du seine Nummer überprüfst.


    also mit einer Schleife MaxPLayers ?



    for(new i=0; i<MAX_PLAYERS; i++)
    {
    new nummer = SpielerInfo[i][Handynr];
    new pID = HandyNummerRichtig(nummer);
    }

  • new pID = HandyNummerRichtig(strval(inputtext));
    if(pID != -1)
    {


    }
    damit würdest du die Spieler-ID der eingegebenen Nummer herausfinden.


    Also mit dem Code kann ich i.was eingeben ^^ & wenn ich eine richtige Nummer eingebe bekomme ich
    angezeigt das ich wieder eine richtige Nummer eingeben soll 8)


    new string[256];
    if(response==0)return 1;
    if(response==1)
    {
    new pID = HandyNummerRichtig(strval(inputtext));
    if(pID != -1)
    {
    format(string,sizeof(string),"{23FF00}%s{FEFEFE} - Anrufen",Handyid(playerid));
    ShowPlayerDialog(playerid,DIALOG_ANRUFEN,DIALOG_STYLE_INPUT,string,"{FF0037}Bitte gib eine korrekte Handynummer an!\n\n{FEFEFE}Wen möchtest du anrufen ?\nNutze /telefonbuch\nBedenke vorher die Kosten die das ganze\nmit sich trägt!","Anrufen","Abbrechen");
    }
    else
    {
    format(string,sizeof(string),"%s(%i) ruft dich an...",SpielerName(playerid),playerid);
    SendClientMessage(pID,Gelb,string);
    format(string,sizeof(string),"Du rufst %s(%i) an...",SpielerName(pID),pID);
    SendClientMessage(playerid,Weiss,string);
    }
    }

  • Wie sieht denn die Handynummer aus? Du kannst dir per printf die eingegebene Nummer und die dazugehörige Spieler-ID ausgeben lassen, dann siehst du vielleicht woran es liegt.


    Die Handynumer erstelle ich kurz vorher ^^


    new nr = random(19999) + 1000,string[64];
    SpielerInfo[playerid][Handynr] = nr;
    format(string,sizeof(string),"Deine Handynummer: %i",SpielerInfo[playerid][Handynr]);
    SendClientMessage(playerid,Weiss,string);

  • Habs mir nochmal genau angeschaut.

    if(pID == -1)
    {
    format(string,sizeof(string),"{23FF00}%s{FEFEFE} - Anrufen",Handyid(playerid));
    ShowPlayerDialog(playerid,DIALOG_ANRUFEN,DIALOG_STYLE_INPUT,string,"{FF0037}Bitte gib eine korrekte Handynummer an!\n\n{FEFEFE}Wen möchtest du anrufen ?\nNutze /telefonbuch\nBedenke vorher die Kosten die das ganze\nmit sich trägt!","Anrufen","Abbrechen");
    }
    deine Funktion HandyNummerRichtig gibt -1 zurück, falls kein Spieler diese Nummer besitzt.


  • Ich danke dir 8)