sms mit nummer ?

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
  • ich möchte ein sms system schreiben wo man die numemr statt der id nutzt


    aber wie kann ich den spieler zu der eingegeben nummer abschreiben ?


    wäre nett wenn ihr ein kleines beispiel hier einbringen könntet


    un dann möchte ich auch noch den namen abrufen des spielers dem die nummer gehört


    ich gebe hier mal meinen code rein der aber mit sicherheit falsch sein wird



    ocmd:sms(playerid,params[])
    {
    new Account[64];
    format(Account, sizeof(Account), "/Accounts/%s", SpielerName(playerid));
    if (getInt:Account("Handy") == 1)
    {
    new nummer,text[128];
    if (sscanf(params, "ds",nummer,text))
    {
    return SendClientMessage(playerid, ROT, "USAGE: /sms [NUMMER] [NACHRICHT]");
    }
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(GetPVarInt(i,"Handynummer") != nummer)continue;
    {
    new targetname[MAX_PLAYER_NAME];
    new pID = GetPlayerName(i,targetname,sizeof(targetname));
    if (GetPVarInt(playerid,"Handyan") == 0)
    {
    return SendClientMessage(playerid, ROT, "Der Spieler hat sein Handy aus.");
    }
    new pmsg[128];
    new tmsg[128];
    new pname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,pname,sizeof(pname));
    format(pmsg,sizeof(pmsg), "SMS an %s: %s",targetname,text);
    format(tmsg,sizeof(tmsg), "SMS von %s: %s",pname,text);
    SendClientMessage(playerid,GELB,pmsg);
    SendClientMessage(playerid,GELB,"Die SMS hat dich 1$ gekostet.");
    SendClientMessage(pID,GELB,tmsg);
    GivePlayerMoney(playerid,-1);
    }
    }
    }
    else
    {

    }
    return 1;
    }

  • mach eine for schleife


    dann fragst du ab ob der input zu einen der Spieler passt wenn nein dann fehler
    wenn ja dann message senden lassen

  • hier nur nen muster


    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;
    }

  • ok da msus ich das noch auf meine script umdenken bzw. umschreiben^^


    Jop, Aber mach es doch so.

    if(sscanf(params, "is",phonenumb,nachricht))

    zu

    if(sscanf(params, "ds",phonenumb,nachricht))


    Da ja, %d eine Zahl ist.
    Und von enum zu PVar's ist ja nicht wirklich eine Kunst oder?!

  • naja ich hab doch selber doch nie direkt gemacht drum fällt mir das grad hier etwas schwer also wenn mir das eine mit meinem script tei lrichtgi stellen könnte pls.


    dann kann ich es besser nach vollziehen :)

  • Ich hab dir da ein Muster hingegeben


    mit versuchen wirst du es schaffen
    übung macht den Meister nicht copy und paste

  • wie man mit PVar arbeitet weiß ich ja :D


    aber ich weiß nich wie ich sein muster beispiel auf mich umdenken soll^^



    if(SpielerInfo[i][pNummer] == phonenumb && phonenumb != 0)



    was muss ich denn hier statt spielerinfo un pNummer nehmen ?

  • So

    if(GetPVarInt(i,pNummer) == phonenumb && phonenumb != 0)

    Müsste so sein...

  • Können wir dir nicht sagen! Da wir ja dein Script nicht haben/kennen.

  • Du fragst du nur ob er eine Nummer hat. Und das ist nur ein Befehl kein Script ;) Muss leider Offline. Essen und so.. Andere helfen dir bestimtm weiter!!

  • soooo


    if(GetPVarInt(i,"Handynummer") == phonenumb && phonenumb != 0)


  • ocmd:sms(playerid,params[])
    {
    new Account[64];
    format(Account, sizeof(Account), "/Accounts/%s", SpielerName(playerid));
    if (getInt:Account("Handy") == 1)
    {
    if (GetPVarInt(playerid,"Handyan") == 1)
    {
    new nummer,text[128];
    if (sscanf(params, "ds",nummer,text))
    {
    return SendClientMessage(playerid, ROT, "USAGE: /sms [NUMMER] [NACHRICHT]");
    }
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(GetPVarInt(i,"Handynummer") == nummer && nummer !=0)
    {
    new tname[MAX_PLAYER_NAME];
    new targetAcc[128];
    format(targetAcc,sizeof(targetAcc), "/Accounts/%s",tname);
    new tID = GetPlayerName(i,tname,sizeof(tname));
    format(targetAcc,sizeof(targetAcc), "/Accounts/%s",tname);
    if (getInt:targetAcc("Handy") ==0)
    {
    return SendClientMessage(playerid, ROT, "Der Spieler hat kein Handy.");
    }
    if (GetPVarInt(tID,"Handyan") == 0)
    {
    return SendClientMessage(playerid, ROT, "Der Spieler hat sein Handy aus.");
    }
    new pmsg[128];
    new tmsg[128];
    new pname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,pname,sizeof(pname));
    format(pmsg,sizeof(pmsg), "SMS an %s: %s",tname,text);
    format(tmsg,sizeof(tmsg), "SMS von %s: %s",pname,text);
    SendClientMessage(playerid,GELB,pmsg);
    SendClientMessage(playerid,GELB,"Die SMS hat dich 1$ gekostet.");
    SendClientMessage(i,GELB,tmsg);
    GivePlayerMoney(playerid,-1);
    }
    else
    {
    return SendClientMessage(playerid, ROT, "Ungültige Nummer oder Der Spieler ist nicht Online.");
    }
    }
    }
    else
    {
    return SendClientMessage(playerid, ROT, "Dein Handy ist aus.");
    }
    }
    else
    {
    return SendClientMessage(playerid, ROT, "Du hast kein Handy.");
    }
    return 1;
    }


    so hab nun bin ich so weit das er die numemr abruft aber immernoch sagt das das handy des empfängers aus ist obwohl ich es an habe (will mir erstmal als test selber eine sms schreiben)

    Einmal editiert, zuletzt von rocco95 () aus folgendem Grund: bin etwas weiter :)

  • if (GetPVarInt(playerid,"Handyan") == 1)
    Der Fehler muss da liegen, lass dir mit der print Methode ausgeben welchen Wert die Variable hat, also so quasi:
    printf("Handyan: %d",GetPVarInt(playerid,"Handyan"));
    und falls dieser wirklich 0 sein sollte, überarbeite deinen Code, mit dem du dein Handy an und aus schaltest ;)


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • daran kann es eig nich liegen weil ich ja mit der selben methode überprüfe ob das handy des senders an ist un da geht es ja^^


    bloß das handy des empfängers (also ich selber) soll dann angeblich aus sein :D

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen