Handynummer erkennen lassen

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
  • Guten Morgen


    ich sitze bestimmt seit 6 Stunden daran ein Handysystem zu erstellen das auch gut klappt
    nur jetzt brauch ich mal einen Rat ich lass den Spieler eine eigene nummer zuweisen z.B. 55555
    wie mache ich das jetzt, das ein anderer Spieler diese nummer anrufen kann?


    ich hoffe, das mir jemand ein Parr infos dazu geben kann


    MFG
    Merte

  • Einfach erstmal einen Befehl machen z.B. /call.
    Dann halt mit sscanf auf Interger und die Nummer abstimmen lassen.
    Dann fragst du ab ob der Interger eine Nummer ist von einem Spieler.
    Wenn ja, startest du einen "privaten" Chat zwischen den beiden die nur die sehen können.

  • ok das ist ja schonmal ein Anfang
    da ich ja Befehlfaul bin und alles über Dialoge mache muss ich nur diese abfrage hinbekommen
    wobei ich an diesen Punkt scheiter


    hast du nicht mal zufällig ein codeschnipsel?

  • So könnte der Chat zwischen den beiden aussehen wenn er erfolgreich angerufen wurde, musst halt nur anpassen:


    if(GetPVarInt(playerid, "Telefoniert") == 1 && GetPVarInt(playerid, "Ruftan") == 1)
    {
    new Hnachricht[128];
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(GetPVarInt(playerid, "AnruferID") == GetPVarInt(playerid, "Anrufer"))
    {
    format(Hnachricht,sizeof(Hnachricht),"%s (Handy) sagt : %s",SpielerName(i),text);
    SendClientMessage(i,Gruen,Hnachricht);
    format(Hnachricht,sizeof(Hnachricht),"%s (Handy) sagt : %s",SpielerName(playerid),text);
    SendClientMessage(playerid,WHITE,Hnachricht);
    return 0;
    }
    }
    }


    Das andere ist halt bisschen mehr, aber wenn man sich mit Mühe ransitzt schafft man auch dies.

  • Erstell dir einfach eine Funktion, die die PlayerID der Handynummer eines Spielers ausgibt. Wenn kein Spieler diese Handynummer hat, wird -1 zurückgegeben.


    stock GetNumPlayerId(num)
    {
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(nummer[i] == num) // anpassen
    {
    return i;
    }
    }
    return -1;
    }


    Verwendung:


    if(GetNumPlayerId(12345) == -1) SendClientMessage(playerid,farbe,"Nummer existiert nicht");
    else
    format(string,128,"SpielerID von Nummer 12345: %d",GetNumPlayerId(12345));
    SendClientMessage...

  • den chat hab ich ja schon nur das mit den anrufen scheitert


    ich hab das ja so vor befehl eingeben ~> dialog aufruf ~> auswählen sms/anrufen ~> dialog kommt ~> nummer eingeben ~> den anderen spieler anrufen/sms schreiben
    das mit den chat klappt ja ohne probleme da ich ja zurzeit nur die playerid angebe aber das soll so ja nicht sein sondern die Rufnummer 55555 soll das playerid ersetzen das krieg ich einfach nicht hin


  • Erstell dir einfach eine Funktion wie oben. Wie gesagt, einfach abfragen ob ein Spieler der online ist, eine bestimmte Nummer hat, wenn allerdings niemand diese Nummer hat, wird -1 zurückgegeben.


    Ein Beispiel habe ich übrigens auch gemacht.

  • if(GetNumPlayerId(12345) == -1) SendClientMessage(playerid,farbe,"Nummer existiert nicht"); else format(string,128,"SpielerID von Nummer 12345: %d",GetNumPlayerId(12345)); SendClientMessage...


    ich steig da gerade nicht wirklich durch
    den stock hab ich jetzt so:
    stock GetNumPlayerId(num)
    {
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(SpielerInfo[playerid][pNummer] == num)
    {
    return i;
    }
    }
    return -1;
    }