Handy-System

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
  • Hey!


    Ich bräuchte Hilfe beim Anrufen & SMS System!


    Ich möchte , dass man über einen Dialog eine Nummer eingibt , und wenn ein Spieler mit der Nummer online ist , dieser angerufen wird.
    Ich kenne mich leider nicht mit strcmp aus , darum habe ich errors :P


    Bisjetzt sieht das ganze so aus:



    if(dialogid == Dialog_HandyAnrufen)
    {
    if(!isNumeric(inputtext))return SendClientMessage(playerid,Rot,"Die Nummer gibt es nicht!");
    {
    new Spieler[256];


    for(new i = 1; i < MAX_BIZ; i++)
    {
    format(Spieler,sizeof(Spieler),"/Spieler/&s.txt",i);
    if(strcmp(inputtext,dini_Int(Spieler,"Handynummer"),false) == 1)return SendClientMessage(playerid,Rot,"Die Nummer gibt es nicht!");
    {
    new string[256];
    format(string,sizeof(string),"%s wird angerufen",PlayerName(i));
    SendClientMessage(playerid,Gelb,string);
    }
    }
    }
    }


  • if(dialogid == Dialog_HandyAnrufen){
    if(!isNumeric(inputtext)){
    SendClientMessage(playerid, Rot, "Die Nummer gibt es nicht!");
    return 1;
    }else{
    if(!strlen(inputtext)){
    SendClientMessage(playerid, Rot, "Die Nummer gibt es nicht!");
    return 1;
    }else{
    for(new i=0;i<GetMaxPlayers();i++){
    if(Spieler[i][pHandyNummer] == inputtext){
    new string[128];
    format(string,sizeof(string),"%s wird angerufen",PlayerName(i));
    SendClientMessage(playerid,Gelb,string);
    return 1;
    }else{
    SendClientMessage(playerid, Rot, "Die Nummer gibt es nicht!");
    return 1;
    }
    }
    }
    }
    }


    Zudem gebe ich dir einen Tipp, wenn du eine Client-Message erstellst, erstelle nie Strings mit 256 Zeichen. Der Chat kann maximal nur 128 anzeigen! ...


  • Okay , danke soweit ^^


    Nur wie mache ich es , dass die beiden , also der Anrufer und der Annehmer reden können?


    Ich habs jetzt mit Booleans , und halt einer Abfrage bei OnPlayerText , aber wenn zB. 8 Leute telefonieren , kann doch jeder dass von 7 Leuten lesen oder?



    if(dialogid == Dialog_HandyAnrufen)
    {
    if(!isNumeric(inputtext))
    {
    SendClientMessage(playerid, Rot, "Die Nummer gibt es nicht!");
    return 1;
    }
    else
    {
    if(!strlen(inputtext))
    {
    SendClientMessage(playerid, Rot, "Die Nummer gibt es nicht!");
    return 1;
    }
    else
    {
    new Spieler[64];
    for(new i=0;i<GetMaxPlayers();i++)
    {
    format(Spieler,sizeof(Spieler),"Spieler/%s.txt",PlayerName(i));
    if(dini_Int(Spieler,"Handynummer") == strval(inputtext))
    {
    new string[128];
    format(string,sizeof(string),"%s wird angerufen",PlayerName(i));
    anrufer[playerid]=true;
    besetzt[playerid]=true;
    wirdangerufen[i]=true;
    besetzt[i]=true;
    SetTimerEx("handyklingeln",3500,1,"i",playerid);
    SetTimerEx("handyklingeln",3500,1,"i",i);
    SendClientMessage(playerid,Gelb,string);
    return 1;
    }
    else
    {
    SendClientMessage(playerid, Rot, "Die Nummer gibt es nicht!");
    return 1;
    }
    }
    }
    }
    }


    public handyklingeln(playerid)
    {
    if(wirdangerufen[playerid]==1)
    {
    SendClientMessage(playerid,Lila,"Tut... Tut...");
    new string[128];
    new handyname[64];
    switch(dini_Int(Spieler,"Handy"))
    {
    case 1:{handyname="Sammsung Galaxay S||";}
    case 2:{handyname="Apfel Eiphone 3GS";}
    case 3:{handyname="Apfel Eiphone 4S";}
    }
    format(string, sizeof(string), "%s's %s klingelt...", PlayerName(playerid),handyname);
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    new Float:x,Float:y,Float:z;
    GetPlayerPos(playerid, x, y, z);
    if(IsPlayerInRangeOfPoint(i, 60.0, x, y, z))
    {
    SendClientMessage(i, Lila, string);
    }
    }
    }
    else if(anrufer[playerid]==1)
    {
    SendClientMessage(playerid,Lila,"Tut... Tut...");
    }
    }


    public OnPlayerText(playerid, text[])
    {
    if(anrufer[playerid] || annehmer[playerid])
    {
    //Hier weiß ich nicht weiter ._.

    //NORMALER CHAT , IGNORIEREN!
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    new Float:x,Float:y,Float:z;
    GetPlayerPos(playerid, x, y, z);
    if(IsPlayerInRangeOfPoint(i, 100.0, x, y, z))
    {
    SendClientMessage(i, Weiss, string);
    return 0;
    }
    }
    }

  • Sende einfach die eingegebene Menge von playerid zu pID.


    lg :thumbup:

    RTL - Das N steht für Niveau!
    MfG,
    StreetS


    Jegliche Freundesanfragen, die für mich keinen Sinn ergeben, werden professionell Ignoriert. (Gleiche mit Skype!)
    Wer es nicht kapiert wird in Breadfish & Skype blockiert.


    - Stolzer PAWN Scripter der Klasse Beherrscht