SMS-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, liebe Scripter!
    Da ich noch nie ein SMS-System gescriptet habe, habe ich nun mal eine Frage dazu.
    Beim kaufen eines Handys wird autom. eine Nummer zugeordnet.


    Ganz oben habe ich das hier
    new HandyNr;


    Beim kaufen passiert dann Folgendes.
    pInfo[playerid][Nummer] = HandyNr;
    HandyNr++;


    Der erste Käufer hat somit Nummer 0.
    Der nächste dann 1 usw.


    Beim Befehl soll nun abgefragt werden, ob die angegebene Nummer
    vergeben ist. Da bräuchte ich nun Hilfe.
    Die Suchfunktion habe ich benutzt, fand jedoch nichts Passendes dazu.


    COMMAND:sms(playerid,params[])
    {
    new pID, number = pInfo[pID][Nummer], text[128], string[128];
    if(sscanf(params, "ds",number,text)) return SendClientMessage(playerid,0xC8C8C8FF,"/sms [Nummer] [Text]");
    if(pInfo[playerid][Handy] == 0)return SendClientMessage(playerid,0xC8C8C8FF,"Du besitzt kein Handy!");
    if(pInfo[playerid][Guthaben] == 0)return SendClientMessage(playerid,0xC8C8C8FF,"Du hast kein Guthaben!");
    {
    format(string,sizeof(string),"[SMS] %s: %s, Nummer: %d ))",SpielerName[playerid],text,pInfo[playerid][Nummer]);
    SendClientMessage(playerid,0xFFFA00FF,string);
    SendClientMessage(pID,0xFFFA00FF,string);
    }
    return 1;
    }
    Hoffe, mir kann Jemand helfen..


    mfG
    Dixon

  • Mit einer Schleife alle Spieler durchgehen und prüfen, ob jemand die Nummer besitzt.

    Moderator der Bereiche: Coding, Vorstellungsrunde und Handelsecke. Über Verwarnungen, falls du zu den Wenigen gehörst, die eine Verwarnung von mir erhalten haben, kannst du jederzeit mit mir reden, sofern der Umgangston stimmt.


    expect us. / unkompetent. Das neue dynamisch. / easy-stripping.net - coming soon! / "9§. the entire website bestands out of english." / Vollprofi in allem, wo gibt und noch mehr; kann auch OOP.
    Kleine Coding-Frage? Schau doch in #dev im IRC vorbei, wir können dir sicher helfen.


    Ich bin für Aufträge im Bereich der Webentwicklung (z.B. User Control Panel) zu haben. Kontaktiere mich diesbezüglich einfach in einer privaten Nachricht mit deinen, möglichst konkreten, Vorstellungen.


    lesen.denken.posten. - [22:54:14] <Goldkiller2> früher gabs immer so coole user da stand in der signatur "lesen.denken.posten."


    Mafia 2 Multiplayer (m2mp.de) - Eine kostenlose Modifikation für Mafia 2, die es, ähnlich wie SAMP, erlaubt über das Internet oder LAN mit bis zu 1000 anderen Spielern zu spielen.

  • Habe es jetzt so, aber die Nachricht wird dann massiv gespammt..
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(pInfo[i][Nummer] == number)
    {
    format(string,sizeof(string),"[SMS] %s: %s, Nummer: %d ))",SpielerName[playerid],text,pInfo[playerid][Nummer]);
    SendClientMessage(playerid,0xFFFA00FF,string);
    SendClientMessage(pID,0xFFFA00FF,string);
    }
    }


    Sorry, wenns vielleicht n' total dämlicher Code ist, bin heute nicht der Aufmerksamste. :D


    */Edit:
    Habs jetzt so:
    COMMAND:sms(playerid,params[])
    {
    new pID, number = pInfo[pID][Nummer], text[128], string[128];
    if(sscanf(params, "ds",number,text)) return SendClientMessage(playerid,0xC8C8C8FF,"/sms [Nummer] [Text]");
    if(pInfo[playerid][Handy] == 0)return SendClientMessage(playerid,0xC8C8C8FF,"Du besitzt kein Handy!");
    if(pInfo[playerid][Guthaben] == 0)return SendClientMessage(playerid,0xC8C8C8FF,"Du hast kein Guthaben!");
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(pInfo[i][Nummer] != number)return SendClientMessage(playerid,0xC8C8C8FF,"Diese Nummer ist nicht registriert!");
    {
    format(string,sizeof(string),"[SMS] %s: %s, Nummer: %d ))",SpielerName[playerid],text,pInfo[playerid][Nummer]);
    SendClientMessage(playerid,0xFFFA00FF,string);
    SendClientMessage(i,0xFFFA00FF,string);
    }
    }
    return 1;
    }

    Aber "Diese Nummer ist nicht registriert!" erscheint auch wenn die Nummer vorhanden ist. ^^

  • Ein Break zum unterbrechen der Schleife, dann sollte es gehen.


    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(pInfo[i][Nummer] == number)
    {
    format(string,sizeof(string),"[SMS] %s: %s, Nummer: %d ))",SpielerName[playerid],text,pInfo[playerid][Nummer]);
    SendClientMessage(playerid,0xFFFA00FF,string);
    SendClientMessage(pID,0xFFFA00FF,string);
    break;
    }
    }

    Moderator der Bereiche: Coding, Vorstellungsrunde und Handelsecke. Über Verwarnungen, falls du zu den Wenigen gehörst, die eine Verwarnung von mir erhalten haben, kannst du jederzeit mit mir reden, sofern der Umgangston stimmt.


    expect us. / unkompetent. Das neue dynamisch. / easy-stripping.net - coming soon! / "9§. the entire website bestands out of english." / Vollprofi in allem, wo gibt und noch mehr; kann auch OOP.
    Kleine Coding-Frage? Schau doch in #dev im IRC vorbei, wir können dir sicher helfen.


    Ich bin für Aufträge im Bereich der Webentwicklung (z.B. User Control Panel) zu haben. Kontaktiere mich diesbezüglich einfach in einer privaten Nachricht mit deinen, möglichst konkreten, Vorstellungen.


    lesen.denken.posten. - [22:54:14] <Goldkiller2> früher gabs immer so coole user da stand in der signatur "lesen.denken.posten."


    Mafia 2 Multiplayer (m2mp.de) - Eine kostenlose Modifikation für Mafia 2, die es, ähnlich wie SAMP, erlaubt über das Internet oder LAN mit bis zu 1000 anderen Spielern zu spielen.

  • Du brichst die Schleife sofort ab wenn der 1. Spieler nicht die gesuchte Handynummer hat.


    COMMAND:sms(playerid,params[])
    {
    new pID, number = pInfo[pID][Nummer], text[128], string[128];
    if(sscanf(params, "ds",number,text)) return SendClientMessage(playerid,0xC8C8C8FF,"/sms [Nummer] [Text]");
    if(pInfo[playerid][Handy] == 0)return SendClientMessage(playerid,0xC8C8C8FF,"Du besitzt kein Handy!");
    if(pInfo[playerid][Guthaben] == 0)return SendClientMessage(playerid,0xC8C8C8FF,"Du hast kein Guthaben!");
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(pInfo[i][Nummer] != number)continue;
    format(string,sizeof(string),"[SMS] %s: %s, Nummer: %d ))",SpielerName[playerid],text,pInfo[playerid][Nummer]);
    SendClientMessage(playerid,0xFFFA00FF,string);
    SendClientMessage(i,0xFFFA00FF,string);
    return 1; //Funktion wird komplett abbgebrochen , die Handynummer wurde gefunden
    }
    //wenn die Funktion davor nicht abgebrochen wurde -> Handynummer nicht gefunden
    return SendClientMessage(playerid,0xC8C8C8FF,"Diese Nummer ist nicht registriert!");
    }