Handysystem -> sms schreiben

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 Tag Community,


    ich bin gerade dabei ein Handysystem zu scripten und brauche eure hilfe da ich nicht weiterweis.



    ocmd:sms(playerid, params[])
    {
    if(GetPVarInt(playerid, "Mobiltelefon") == 1)
    {
    if(GetPVarInt(playerid, "PhoneOnline") == 1)
    {
    new pID, nummer, string[258], string1[258], text[258];
    if(sscanf(params,"is", nummer, text))return SendClientMessage(playerid, Rot, "[Benutze]: /sms [Nummer] [Text]");
    if(GetPVarInt(pID,"Telefonnummer") == nummer)
    {
    format(string, sizeof(string), "SMS: %s, von %s (Nummer: %d)", text, SpielerName(playerid), GetPVarInt(playerid, "Telefonnummer"));
    format(string1, sizeof(string1), "SMS: %s, gesendet an %s (Nummer: %d)", text, SpielerName(pID), GetPVarInt(pID,"Telefonnummer"));
    SendClientMessage(pID, Gelb, string);
    SendClientMessage(playerid, Gelb, string1);
    return 1;
    }
    return SendClientMessage(playerid, Rot, "Kein Anschluss unter dieser Nummer...");
    }
    return SendClientMessage(playerid, Rot, "Um eine SMS zu schreiben musst du dein Handy anschalten.");
    }
    return SendClientMessage(playerid, Rot, "Um eine SMS zu schreiben brauchst du ein Mobiltelefon, du bekommst es im 24/7 ");
    }


    wieso wird mir immer Kein Anschluss unter dieser Nummer... angezeigt ?


    Bitte um eure Hilfe

  • if(GetPVarInt(pID,"Telefonnummer") == nummer)


    du musst ne forschleife machen da du alle abfragst nach der nummer
    pID ist da sinnlos

  • @RedJoker:



    ocmd:sms(playerid, params[])
    {
    if(GetPVarInt(playerid, "Mobiltelefon") == 1)
    {
    if(GetPVarInt(playerid, "PhoneOnline") == 1)
    {
    new nummer, string[258], string1[258], text[258];
    if(sscanf(params,"is", nummer, text))return SendClientMessage(playerid, Rot, "[Benutze]: /sms [Nummer] [Text]");
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(GetPVarInt(i,"Telefonnummer") == nummer)
    {
    format(string, sizeof(string), "SMS: %s, von %s (Nummer: %d)", text, SpielerName(playerid), GetPVarInt(playerid, "Telefonnummer"));
    format(string1, sizeof(string1), "SMS: %s, gesendet an %s (Nummer: %d)", text, SpielerName(i), GetPVarInt(i,"Telefonnummer"));
    SendClientMessage(i, Gelb, string);
    SendClientMessage(playerid, Gelb, string1);
    return 1;
    }
    return SendClientMessage(playerid, Rot, "Kein Anschluss unter dieser Nummer...");
    }
    }
    return SendClientMessage(playerid, Rot, "Um eine SMS zu schreiben musst du dein Handy anschalten.");
    }
    return SendClientMessage(playerid, Rot, "Um eine SMS zu schreiben brauchst du ein Mobiltelefon, du bekommst es im 24/7 ");
    }


    meinst du das so ?

  • ja
    genau das du musst nur alle spieler prüfen
    hat er die führt er die aktion aus hat er sie nicht dann is es aus

  • ja das soll er ja da du nur eine Nummer eingibst die kannst du nicht mit pOD vergleichen
    das ist ja der sinn daran


    Teste es mal du wirst es merken

  • Habe das jetz so:



    ocmd:sms(playerid, params[])
    {
    if(GetPVarInt(playerid, "Mobiltelefon") == 1)
    {
    if(GetPVarInt(playerid, "PhoneOnline") == 1)
    {
    new nummer, string[258], string1[258], text[258];
    if(sscanf(params,"is", nummer, text))return SendClientMessage(playerid, Rot, "[Benutze]: /sms [Nummer] [Text]");
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(GetPVarInt(i,"Telefonnummer") == nummer)
    {
    format(string, sizeof(string), "SMS: %s, von %s (Nummer: %d)", text, SpielerName(playerid), GetPVarInt(playerid, "Telefonnummer"));
    format(string1, sizeof(string1), "SMS: %s, gesendet an %s (Nummer: %d)", text, SpielerName(i), GetPVarInt(i,"Telefonnummer"));
    SendClientMessage(i, Gelb, string);
    SendClientMessage(playerid, Gelb, string1);
    return 1;
    }
    return SendClientMessage(playerid, Rot, "Kein Anschluss unter dieser Nummer...");
    }
    }
    return SendClientMessage(playerid, Rot, "Um eine SMS zu schreiben musst du dein Handy anschalten.");
    }
    return SendClientMessage(playerid, Rot, "Um eine SMS zu schreiben brauchst du ein Mobiltelefon, du bekommst es im 24/7 ");
    }


    aber es kommt immer noch

    Code
    "Kein Anschluss unter dieser Nummer..."
  • gibst du da nur deine Nummer ein oder wie?
    wenn nicht mach statt return nen else

  • gib ma deine nummer ein nicht eine die es nicht gibt.....
    /sms 2502 Juhu es geht


  • if(GetPVarInt(i,"Telefonnummer") == nummer)

    dreh das mal um
    if(nummer==....

  • bei mir schaut es so aus:
    bcmd:sms(playerid,params[])
    {
    new phonenumb = strval(params),WPlayer[MAX_PLAYER_NAME],Playerx[MAX_PLAYER_NAME],nachricht[64],string[128],string1[128];


    if(sscanf(params, "is",phonenumb,nachricht))
    {
    return SendClientMessage(playerid,cRed,"/sms [Nummer] [Text]");
    }
    if(SpielerInfo[playerid][pHandy] == 0)
    {
    return SendClientMessage(playerid,cRed,"Du hast kein Handy!");
    }


    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(SpielerInfo[i][pNummer] == phonenumb && phonenumb != 0)
    {
    GetPlayerName(playerid,Playerx,sizeof(Playerx));
    GetPlayerName(i,WPlayer,sizeof(WPlayer));
    format(string,sizeof(string),"Neue SMS Nachricht von %s",Playerx);
    SendClientMessage(i,cYellow,string);
    format(string,sizeof(string),"%s schrieb: %s.",SpielerInfo[playerid][pNummer],nachricht);
    SendClientMessage(i,cYellow,string);
    format(string1,sizeof(string1),"Deine SMS wurde erfolgreich verschickt!");
    SendClientMessage(playerid,cYellow,string1);
    }
    else
    {
    SendClientMessage(playerid,cRed,"Angegebene Telefonnummer ist nicht Aktiv!");
    }
    }
    }
    return 1;
    }