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


    ich bin gerade dabei ein simples Handysystem zu machen aber irgentwie bekomm ich es nicht hin.


    Man kann zurzeit (wird später noch anders gemacht) mit /test ne nummer beantragen. Es wird eine 4 stellige zufällig ausgewählt und dann soll die gecheckt werden.


    (hab einen stock kopiert und angepasst (der hat geprüft ob der name schon existiert), obwohl ich mir da nicht sicher bin ob der richtig funktioniert.)


    So nun hab ich es so:


    ocmd:sms(playerid,params[])
    {
    new nummer,text[256],sender[256],empfaenger[256],player[128];
    if(SpielerInfo[playerid][pHandy]==0) return SendClientMessage(playerid,rot,"[Fehler]: Du hast kein Handy!");
    if(mysql_CheckNumber(playerid) != nummer) return SendClientMessage(playerid,rot,"[Fehler]: Die eingegebene Nummmer ist nicht vergeben!");
    if(sscanf(params,"us",nummer,text)) return SendClientMessage(playerid,rot,"Benutze: /sms [Nummer] [Text]");
    player = mysql_GetString("accounts","Name","Nummer",nummer);
    format(empfaenger,sizeof(empfaenger),"SMS von %s: %s",SpielerName(playerid),text);
    format(sender,sizeof(sender),"==> gesendet an %s: %s",player,text);
    SendClientMessage(playerid,grau,sender);
    SendClientMessage(,gelb,empfaenger);
    return 1;
    }


    Ich weiß grad nicht wirklich wie ich durch die Sendernummer den namen abfrage. Außerdem muss ich dem empfaenger ja eine ID geben weil er ja die nachricht bekommen muss, wo gerade noch nichts steht (letztes SendClientmessage)


    Ich hab das Gefühl ich machs mir schwerer als es ist :S


    - Tomsen :thumbup:


    PS: Hier der vorgang vom Handynummer vergeben.


    Spoiler anzeigen
    stock nummerok(playerid)
    {
    new msg[256];
    format(msg,sizeof(msg),"Du hast nun ein Handy. Deine Nummer: %d",GetPVarInt(playerid,"neueNummer"));
    SendClientMessage(playerid,gruen,msg);
    mysql_SetInt("accounts","Nummer",GetPVarInt(playerid,"neueNummer"),"Name",SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pNummer] = GetPVarInt(playerid,"neueNummer");
    return 1;
    }

    Spoiler anzeigen
    ocmd:sms(playerid,params[])
    {
    new nummer,text[256],sender[256],empfaenger[256],player[128];
    if(SpielerInfo[playerid][pHandy]==0) return SendClientMessage(playerid,rot,"[Fehler]: Du hast kein Handy!");
    if(mysql_CheckNumber(playerid) != nummer) return SendClientMessage(playerid,rot,"[Fehler]: Die eingegebene Nummmer ist nicht vergeben!");
    if(sscanf(params,"us",nummer,text)) return SendClientMessage(playerid,rot,"Benutze: /sms [Nummer] [Text]");
    player = mysql_GetString("accounts","Name","Nummer",nummer);
    format(empfaenger,sizeof(empfaenger),"SMS von %s: %s",SpielerName(playerid),text);
    format(sender,sizeof(sender),"==> gesendet an %s: %s",player,text);
    SendClientMessage(playerid,grau,sender);
    SendClientMessage(,gelb,empfaenger);
    return 1;
    }

    Spoiler anzeigen
    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if(strcmp(cmdtext, "/test", true) == 0)
    {
    if(SpielerInfo[playerid][pHandy]==1) return SendClientMessage(playerid,orange,"[Fehler]: Du hast bereits ein Handy.");
    SendClientMessage(playerid,gruen,"Handynummer wird generiert/geprüft... Bitte warten... ");
    nummergenerieren(playerid);
    return 1;
    }

  • Oh tut mir Leid, der war ja nicht dabei. :sleeping:


    stock mysql_CheckNumber(playerid)
    {
    new Query[128],count;
    format(Query, sizeof(Query), "SELECT * FROM `accounts` WHERE `Nummer` = '%d'", SpielerInfo[playerid][pNummer]);
    mysql_query(Query);
    mysql_store_result();
    count = mysql_num_rows();
    mysql_free_result();
    return count;
    }


    - Tomsen



    2 Mal editiert, zuletzt von Tomsen ()

  • Wie les ich aus der MySQL Datenbank den Name aus, indem ich nur die Nummer weiß ?


    Also wie kann ich durch die eingegebene Nummer pID bestimmen an den die SMS letzten Endes geschickt wird?


    - Tomsen :thumbup:


    //edit: Hab so versucht den Namen zu zuweißen:
    if(sscanf(params,"is",nummer,text)) return SendClientMessage(playerid,rot,"Benutze: /sms [Nummer] [Text]");
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    new secp,nummer; //definition secp (secondplayer bzw. empfaenger) und nummer die eingegeben wird/wurde
    secp = mysql_GetInt("accounts","Name","Nummer",nummer); //aus der datenbank soll in Tabelle Accounts der Name rausgesucht werden. Werte um den Namen zu ermitteln, in Spalte Nummer nach der eingegenen nummer suchen
    GetPlayerID(secp); //Jetzt dem gerade definiertem Player secp die ID geben damit ich das unten drunter benutzen kann
    if(SpielerInfo[secp][pNummer ... etc.
    return 1;
    }


    Kann ich das so abfragen, funktioniert das?



    Einmal editiert, zuletzt von Tomsen ()