Wert auslesen..

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
  • Hallo,
    Irgendwie habe ich ein kleines Problemchen! :D


    Also es geht um:
    ts_setusertochannelgroup("%s", "Leader", "LSPD",Spieler[playerid][pTsIdent]));


    Bin nun etwas verwirrt Frage mich wie ich (TsIdent) Auslesen lassen kann..
    Jemand ne Idee?



    Mit freundlichen Grüßen
    Kevin.


  • Ich verstehe deine Frage nicht ganz. Versuch die mal zu umschreiben.
    Dein Code ist doch bereits oben erschienen. Funktioniert er nicht oder was verlangst du?


    Sorry, Also so wie ich es oben geschrieben habe funktioniert die Funktion nicht, bekomme immer:
    : error 001: expected token: ";", but found ")"
    : error 029: invalid expression, assumed zero
    : warning 215: expression has no effect

  • ts_setusertochannelgroup(Spieler[playerid][pTsIdent], "Leader", "LSPD");
    Der Platzhalter an erster Stelle war da fehl am Platz, und du hattest es Klammer zu viel.


    Danke, habe nun ein neues Problem bei der Eindeutigen ID wird immer hppbBdqXidRvXVe3tOCxH5r1RRAc in der Datenbank gespeichert, Aber sobald ich meine Test Funktion ausführe streicht er das = weg.


    COMMAND:kevin(playerid,params[])
    {
    SendClientMessage(playerid,GRAU,"Befehl wurde ausgeführt");
    ts_setusertochannelgroup(Spieler[playerid][pTsIdent], "Leader", "LSPD");
    return 1;


    }


    Jemand ne Ahnung warum? :/

  • Falls du es noch nicht machst, nutze mysql_escape_string, da du keine '=' direkt speichern kannst, so könnte sich jemand in die Datenbank "hacken" (SQL Inject).


    Ansonsten poste mal den Code.


    Ich habe vorher immer mit Dini gearbeitet und nun mit Mysql deshalb kenne ich mich noch nicht so Gut aus, kannst du villeicht ein beispiel machen?


  • ocmd:kevin(playerid,params[])
    {
    new eingabe[128],auswertung[128],query[128];
    if(sscanf(params,"s",eingabe))return 1;
    mysql_real_escape_string(eingabe,auswertung,dbhandle);
    format(query,sizeof(query),"UPDATE Accounts SET tsID='%s' WHERE playerid='%i'",auswertung,deine|spieler|id);
    Spieler[playerid][pTsIdent] = auswertung;
    mysql_query(query);//oder mysql_function_query(dbhandle,query,false,"","");
    return 1;
    }

    Natürlich kann man das ganze sinnvoller schreiben, allerdings wird dir hier durch die Verwendung von mysql_real_escape_string bekannt.
    Definition: Klick mich

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Der Befehl /Kevin war dafür da um zu testen ob er die Gruppe setzt, die TsIdent wird mit einem Dialog ( /teamspeak ) gesetzt

    if(!strlen(inputtext) || strlen(inputtext) > 32)
    {
    SendClientMessage(playerid,GRAU,"Du musst schon eine Teamspeak Identität angeben./Die Teamspeak Identität darf nciht länger als 32 Zeichen sein.");
    if(strcmp(Spieler[playerid][pTsIdent],"Niemand",false) == 0)return ShowPlayerDialog(playerid,DIALOG_RECHTE,DIALOG_STYLE_LIST,""#SERVERFARBE""#SERVERNAME"{FFFFFF}: Rechte","Teamspeak Identität","Auswählen","Abbrechen");
    return ShowPlayerDialog(playerid,DIALOG_RECHTE,DIALOG_STYLE_LIST,""#SERVERFARBE""#SERVERNAME"{FFFFFF}: Rechte","Teamspeak Identität\nTeamspeak Identität Update\nTeamspeak Identität löschen","Auswählen","Abbrechen");
    }
    format(string,sizeof(string),"Du hast deine Teamspeak Identität (%s) geändert.",inputtext);
    SendClientMessage(playerid,GRUEN,string);
    strmid(Spieler[playerid][pTsIdent],inputtext,0,strlen(inputtext),strlen(inputtext));
    if(strcmp(Spieler[playerid][pTsIdent],"Niemand",false) == 0)return ShowPlayerDialog(playerid,DIALOG_RECHTE,DIALOG_STYLE_LIST,""#SERVERFARBE""#SERVERNAME"{FFFFFF}: Rechte","Teamspeak Identität","Auswählen","Abbrechen");
    return ShowPlayerDialog(playerid,DIALOG_RECHTE,DIALOG_STYLE_LIST,""#SERVERFARBE""#SERVERNAME"{FFFFFF}: Rechte","Teamspeak Identität\nTeamspeak Identität Update\nTeamspeak Identität löschen","Auswählen","Abbrechen");



    Wie mach ich das nun hier? :/

  • Was gibst du dort ein?
    Wo verschwindet das "="?


    Den entsprechenden Code dazuposten, bitte.


    Das = wird bei der Funktion /Rechte erst garnicht mit in der db eingetragen.


    case DIALOG_RECHTE:
    {
    if(response == 0)return 1;
    else
    {
    switch(listitem)
    {
    case 0: ShowPlayerDialog(playerid,DIALOG_RECHTE_TSIDENT,DIALOG_STYLE_INPUT,""#SERVERFARBE""#SERVERNAME"{FFFFFF}: Rechte - Teamspeak Identität","Gebe nun deine Teamspeak Identität hier ein:","Absenden","Zurück");
    case 1: ShowPlayerDialog(playerid,DIALOG_RECHTE_TSUPDATE,DIALOG_STYLE_MSGBOX,""#SERVERFARBE""#SERVERNAME"{FFFFFF}: Rechte - Teamspeak Identität Update","Hier kannst deinen Teamspeak Rechte Updaten lassen.","Absenden","Zurück");
    case 2: ShowPlayerDialog(playerid,DIALOG_RECHTE_TSDELETE,DIALOG_STYLE_MSGBOX,""#SERVERFARBE""#SERVERNAME"{FFFFFF}: Rechte - Teamspeak Identität löschen","Hier kannst du deine Teamspeak Identität löschen lassen.","Absenden","Zurück");
    }
    }
    return 1;
    }


    case DIALOG_RECHTE_TSIDENT:
    {
    new string[128];
    if(response == 0)
    {
    if(strcmp(Spieler[playerid][pTsIdent],"Niemand",false) == 0)return ShowPlayerDialog(playerid,DIALOG_RECHTE,DIALOG_STYLE_LIST,""#SERVERFARBE""#SERVERNAME"{FFFFFF}: Rechte","Teamspeak Identität","Auswählen","Abbrechen");
    return ShowPlayerDialog(playerid,DIALOG_RECHTE,DIALOG_STYLE_LIST,""#SERVERFARBE""#SERVERNAME"{FFFFFF}: Rechte","Teamspeak Identität\nTeamspeak Identität Update\nTeamspeak Identität löschen","Auswählen","Abbrechen");
    }
    else
    {
    if(!strlen(inputtext) || strlen(inputtext) > 32)
    {
    SendClientMessage(playerid,GRAU,"Du musst schon eine Teamspeak Identität angeben./Die Teamspeak Identität darf nciht länger als 32 Zeichen sein.");
    if(strcmp(Spieler[playerid][pTsIdent],"Niemand",false) == 0)return ShowPlayerDialog(playerid,DIALOG_RECHTE,DIALOG_STYLE_LIST,""#SERVERFARBE""#SERVERNAME"{FFFFFF}: Rechte","Teamspeak Identität","Auswählen","Abbrechen");
    return ShowPlayerDialog(playerid,DIALOG_RECHTE,DIALOG_STYLE_LIST,""#SERVERFARBE""#SERVERNAME"{FFFFFF}: Rechte","Teamspeak Identität\nTeamspeak Identität Update\nTeamspeak Identität löschen","Auswählen","Abbrechen");
    }
    format(string,sizeof(string),"Du hast deine Teamspeak Identität (%s) geändert.",inputtext);
    SendClientMessage(playerid,GRUEN,string);
    strmid(Spieler[playerid][pTsIdent],inputtext,0,strlen(inputtext),strlen(inputtext));
    if(strcmp(Spieler[playerid][pTsIdent],"Niemand",false) == 0)return ShowPlayerDialog(playerid,DIALOG_RECHTE,DIALOG_STYLE_LIST,""#SERVERFARBE""#SERVERNAME"{FFFFFF}: Rechte","Teamspeak Identität","Auswählen","Abbrechen");
    return ShowPlayerDialog(playerid,DIALOG_RECHTE,DIALOG_STYLE_LIST,""#SERVERFARBE""#SERVERNAME"{FFFFFF}: Rechte","Teamspeak Identität\nTeamspeak Identität Update\nTeamspeak Identität löschen","Auswählen","Abbrechen");
    }
    }

  • Füge mal nach
    strmid(Spieler[playerid][pTsIdent],inputtext,0,strlen(inputtext),strlen(inputtext));


    das ein:
    printf("1: %s /// 2: %s",Spieler[playerid][pTsIdent],inputtext);


    Was wird geprintet wenn du die Rechte vergibst?


    [17:56:27] 1: hppbBdqXidRvXVe3tOCxH5r1RRA /// 2: hppbBdqXidRvXVe3tOCxH5r1RRA=

  • Dann liegt es hieran:
    strmid(Spieler[playerid][pTsIdent],inputtext,0,strlen(inputtext),strlen(inputtext));


    zu:


    format(Spieler[playerid][pTsIdent], 64 ,inputtext);
    (Oder eben die 64 zu dem was du bei pTsIdent stehen hast.



    Oder: (Wobei ich kein Freund von strmid bin)
    strmid(Spieler[playerid][pTsIdent],inputtext,0,strlen(inputtext)+1,strlen(inputtext));

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