Beiträge von [KoSoVa]

    Habe jetzt alles erstetzt bloß:



    new query[128], pname[MAX_PLAYER_NAME];
    GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
    mysql_format(dbhandle, query, sizeof(query), "SELECT * FROM `user` WHERE `username` = '%e' LIMIT 1", pname);
    mysql_query(dbhandle, query, "OnPlayerDataLoaded", "d", playerid);//fehler:


    error 035: argument type mismatch (argument 3)

    Sieht sehr gut aus. Ja, jetzt können wir zu den Textdraws.


    Poste bitte den Code, bei wessen Ausführung diese Cache Warnungen kommen.


    Ich weiß es jetzt leider nicht genau da keine Zeile angegeben wurde , aber ich poste dir einfach mein ganzes Login/register system eben hin:



    new Text:Textdraw0;
    new Text:Textdraw1;
    new Text:Textdraw2;
    new Text:Textdraw3;
    new Text:Textdraw4;
    new Text:Textdraw5;
    new Text:Textdraw6;
    new PlayerText:Textdraw7[MAX_PLAYERS];//Skinanzeige, (Ignorieren!)


    //MySQL Verbindung(ongamemodeinit)
    dbhandle = mysql_connect(db_host,db_user,db_db,db_pass);


    //OnPlayerConnect
    new name[MAX_PLAYER_NAME],query[128];
    GetPlayerName(playerid,name,sizeof(name));
    format(query,sizeof(query),"SELECT id FROM user WHERE username='%s'",name);
    mysql_function_query(dbhandle,query,true,"OnUserCheck","i",playerid);


    //Die beiden Dialogs
    if(dialogid==DIALOG_LOGIN)
    {
    if(response)
    {
    new name[MAX_PLAYER_NAME],query[128],passwort[35];
    GetPlayerName(playerid,name,sizeof(name));
    if(strlen(inputtext)>0)
    {
    mysql_escape_string(inputtext,passwort,dbhandle);//Fragt ab ob das Passwort richtig ist
    format(query,sizeof(query),"SELECT * FROM user WHERE username='%s' AND passwort=MD5('%s')",name,passwort);
    mysql_function_query(dbhandle,query,true,"OnPasswordResponse","i",playerid);
    }
    else
    {
    //keine Eingabe
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Das Angegebene Passwort war Falsch.\nBitte log dich jetzt mit dem richtigen Passwort ein:","Login","Abbrechen");
    }
    }
    else
    {
    SendClientMessage(playerid,Rot,"Du hast auf Abrrechen gedrückt!");
    }
    return 1;
    }
    if(dialogid==DIALOG_REGISTER)
    {
    if(response)
    {
    new name[MAX_PLAYER_NAME],query[128],passwort[35];
    GetPlayerName(playerid,name,sizeof(name));
    if(strlen(inputtext)>=3)
    {
    //Registerfunktion
    mysql_escape_string(inputtext,passwort,dbhandle);
    format(query,sizeof(query),"INSERT INTO user (username,passwort) VALUES ('%s',MD5('%s')) ",name,passwort);
    mysql_function_query(dbhandle,query,false,"OnPlayerRegister","i",playerid);
    }
    else
    {
    //Kleiner als 4 Zeichen
    ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD,"Registrierung","Das angegebende Passwort war zu kurz! Bitte versuchs nochmal:","Register","Abbrechen");
    }


    }
    else
    {
    SendClientMessage(playerid,Rot,"Du hast auf Abrrechen gedrückt!");
    }
    return 1;
    }


    //und das halt die anklickbare Textdraw
    if(_:clickedid != INVALID_TEXT_DRAW) //Sagt das wenn der Player ein falsches TD anklickt nichts passieren soll.
    {
    if(clickedid == Textdraw2)
    {
    if(GetPVarInt(playerid,"eingeloggt") == 0) //Als erstes fragen wir ab ob der Spieler schon eingeloggt ist oder nicht, damit wir nicht bei jeder Skin auswahl uns neu Einloggen müssen.
    {
    if(OnUserCheck(playerid))//Wür überprüfen ob der Account Existiert, falls nicht Zeigen wir den Dialog zum Registrieren.
    {
    ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD,"Registrierung","Herzlichen Willkommen auf Incredible German Reallife!\nBitte gib nun dein Password ein, um auf dem Server Spielen zu können!","Register","Abbrechen");
    return 1;
    }
    else //Falls doch
    {
    SendClientMessage(playerid, Rot,"[FEHLER] {FFFFFF}Dieser Account ist bereits Regestriert!");
    return 1;
    }
    }
    }
    else if(clickedid == Textdraw3)
    {
    if(GetPVarInt(playerid,"eingeloggt") == 0)
    {
    if(OnUserCheck(playerid))
    {
    SendClientMessage(playerid, Rot,"[FEHLER] {FFFFFF}Dieser Account ist nicht Regestriert! Um hier spielen zu können, musst du dich Regestrieren!");
    return 1;
    }
    else//Falls doch
    {
    ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD,"Login Vorgang","Herzlichen Willkommen zurück auf Incredible German Reallife!\nBitte gib nun dein Password ein!","Login","Abbrechen");
    return 1;
    }
    }
    }


    //OnUserCheck & OnPlayerRegiter
    public OnPlayerRegister(playerid)
    {
    SpielerInfo[playerid][u_id] = cache_insert_id(dbhandle);
    return 1;
    }


    public OnUserCheck(playerid)
    {
    new num_rows,num_fields;
    cache_get_data(num_rows,num_fields,dbhandle);
    if(num_rows==0)
    {
    //Registrierung
    ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT,"Registrierung","Herzlichen Willkommen auf Incredible German Reallife!\nBitte gib nun dein Password ein, um auf dem Server Spielen zu können!","Register","Abbrechen");
    }
    else
    {
    //Login
    ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD,"Login Vorgang","Herzlichen Willkommen zurück auf Incredible German Reallife!\nBitte gib nun dein Password ein!","Login","Abbrechen");
    }
    return 1;
    }



    So das wars, falls was fehlt einfach zurück schreiben :)

    Der User muss weiterhin root sein, nicht samp.


    Wir beheben jetzt erstmal das Problem mit MySQL. Wenn das gescheit läuft gehen wir an die Textdraws ran, aber vielleicht klärt sich das von selbst wenn MySQL läuft.


    alles , also ist schon besser geworden! Also jetzt kommt ganz am anfang der Dialog... zum register.. aber es kommen noch MySQL warnings :O


    [21:00:12] [WARNING] cache_get_data - no active cache
    [21:00:14] [WARNING] cache_get_data - no active cache
    [21:00:17] [WARNING] cache_get_data - no active cache


    das kommt aber erst wenn ich auf Login oder Register drücke..



    Also eigentlich können wir jetzt zu den Textdraws rüber oder nicht?


    Nimm kein Passwort. root hat standardmäßig kein Passwort. Wenn du da nichts geändert hast, ist das auch noch so.


    Wenn es dann noch nicht klappt, aber die Fehler im Log weg sind, beschreibe dein Problem bitte nochmals genauer (was meinst du mit "der Dialog der nicht auftauchen sollte"?)


    1) Habe jetzt passwort rausgemacht , jedoch kommt dieser Error:
    [20:46:42] [ERROR] CMySQLConnection::Connect - (error #1044) Access denied for user '' localhost to database 'samp'
    [20:46:42] [ERROR] CMySQLConnection::Connect - (error #1044) Access denied for user '' localhost to database 'samp'

    #define db_host "127.0.0.1"
    #define db_user "samp"
    #define db_pass ""
    #define db_db "samp"




    2) Also ich habe einiege Textdraws erstellt(die schon anklickbar sind!) für den Login/Register System! Bloß wenn ich auf Login drücke öffnet sich ein Dialog, obwohl kein Dialog sich öffnen soll! Also da soll halt nur [Error] Account ist schon ...
    Und aber Register ist es ebenso.. halt nur andersrum!

    Ich denke mal du hast den DL Link von MrMonat genommen, sollte also bedeuten du hast r34


    mfg :thumbup:


    UserCheck steht oben , aber egal ist hast du es nochmal!



    forward OnUserCheck(playerid);


    public OnUserCheck(playerid)
    {
    new num_rows,num_fields;
    cache_get_data(num_rows,num_fields,dbhandle);
    if(num_rows==0)
    {
    //Registrierung
    ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT,"Registrierung","Herzlichen Willkommen auf Incredible German Reallife!\nBitte gib nun dein Password ein, um auf dem Server Spielen zu können!","Register","Abbrechen");
    }
    else
    {
    //Login
    ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD,"Login Vorgang","Herzlichen Willkommen zurück auf Incredible German Reallife!\nBitte gib nun dein Password ein!","Login","Abbrechen");
    }
    return 1;
    }



    //EDIT:


    Es kommt immer 2 Fehler: [19:48:30] [ERROR] CMySQLConnection::Connect - (error #1045) Access denied for user 'root' localhost (using password: YES)
    [19:48:30] [ERROR] CMySQLConnection::Connect - (error #1045) Access denied for user 'root' localhost (using password: YES)

    Hmm.. ich versuch einfach mal:



    //Textdraws:
    new Text:Textdraw0;
    new Text:Textdraw1;
    new Text:Textdraw2;
    new Text:Textdraw3;
    new Text:Textdraw4;
    new Text:Textdraw5;
    new Text:Textdraw6;
    new PlayerText:Textdraw7[MAX_PLAYERS]; //ist skinanzeige , braucht euch nicht drum kümmern :)


    &
    //unter einen Timer
    TextDrawShowForPlayer(playerid, Textdraw0);
    TextDrawShowForPlayer(playerid, Textdraw1);
    TextDrawShowForPlayer(playerid, Textdraw2);
    TextDrawShowForPlayer(playerid, Textdraw3);
    TextDrawShowForPlayer(playerid, Textdraw4);
    TextDrawShowForPlayer(playerid, Textdraw5);
    TextDrawShowForPlayer(playerid, Textdraw6);



    //unter onplayerclicktextdraw
    if(_:clickedid != INVALID_TEXT_DRAW) //Sagt das wenn der Player ein falsches TD anklickt nichts passieren soll.
    {
    if(clickedid == Textdraw2)
    {
    if(GetPVarInt(playerid,"eingeloggt") == 0) //Als erstes fragen wir ab ob der Spieler schon eingeloggt ist oder nicht, damit wir nicht bei jeder Skin auswahl uns neu Einloggen müssen.
    {
    if(OnUserCheck(playerid))//Wür überprüfen ob der Account Existiert, falls nicht Zeigen wir den Dialog zum Registrieren.
    {
    ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD,"Registrierung","Herzlichen Willkommen auf Incredible German Reallife!\nBitte gib nun dein Password ein, um auf dem Server Spielen zu können!","Register","Abbrechen");
    return 1;
    }
    else //Falls doch
    {
    SendClientMessage(playerid, Rot,"[FEHLER] {FFFFFF}Dieser Account ist bereits Regestriert!");
    return 1;
    }
    }
    }
    else if(clickedid == Textdraw3)
    {
    if(GetPVarInt(playerid,"eingeloggt") == 0)
    {
    if(OnUserCheck(playerid))
    {
    SendClientMessage(playerid, Rot,"[FEHLER] {FFFFFF}Dieser Account ist nicht Regestriert! Um hier spielen zu können, musst du dich Regestrieren!");
    return 1;
    }
    else//Falls doch
    {
    ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD,"Login Vorgang","Herzlichen Willkommen zurück auf Incredible German Reallife!\nBitte gib nun dein Password ein!","Login","Abbrechen");
    return 1;
    }
    }
    }
    //________________



    //hier die Diaolgs:
    if(dialogid==DIALOG_LOGIN)
    {
    if(response)
    {
    new name[MAX_PLAYER_NAME],query[128],passwort[35];
    GetPlayerName(playerid,name,sizeof(name));
    if(strlen(inputtext)>0)
    {
    mysql_escape_string(inputtext,passwort,dbhandle);//Fragt ab ob das Passwort richtig ist
    format(query,sizeof(query),"SELECT * FROM user WHERE username='%s' AND passwort=MD5('%s')",name,passwort);
    mysql_function_query(dbhandle,query,true,"OnPasswordResponse","i",playerid);
    }
    else
    {
    //keine Eingabe
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Das Angegebene Passwort war Falsch.\nBitte log dich jetzt mit dem richtigen Passwort ein:","Login","Abbrechen");
    }
    }
    else
    {
    SendClientMessage(playerid,Rot,"Du hast auf Abrrechen gedrückt!");
    }
    return 1;
    }
    if(dialogid==DIALOG_REGISTER)
    {
    if(response)
    {
    new name[MAX_PLAYER_NAME],query[128],passwort[35];
    GetPlayerName(playerid,name,sizeof(name));
    if(strlen(inputtext)>=3)
    {
    //Registerfunktion
    mysql_escape_string(inputtext,passwort,dbhandle);
    format(query,sizeof(query),"INSERT INTO user (username,passwort) VALUES ('%s',MD5('%s')) ",name,passwort);
    mysql_function_query(dbhandle,query,false,"","");
    }
    else
    {
    //Kleiner als 4 Zeichen
    ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD,"Registrierung","Das angegebende Passwort war zu kurz! Bitte versuchs nochmal:","Register","Abbrechen");
    }


    }
    else
    {
    SendClientMessage(playerid,Rot,"Du hast auf Abrrechen gedrückt!");
    }
    return 1;
    }


    Was falsches?

    Moin Leute!


    Da ich ich derzeitg eine neue MySQL Version "upgrade" , bräuchte ich etwas hilfe :) Undzwar:


    -> Ich habe ein MySQL Login/register system ! Jedoch geht das nicht richtig, immer wenn ich auf Login drücke steht da "Du hast keine Account du musst dich registrierten..." stimmt ja auch , aber dann kommt der Dialog der nicht auftauchen sollte!
    Und es wird auch kein Account regestriert wenn ich fertig war mit Passwort eingebeben.. Hier die ganzen Codes: (MySQL Version : R39 Glaube ich! Und versucht habe ich es mit MrMonat TuT..)




    //hier das mit den Anklickbaren Textdraws:
    if(_:clickedid != INVALID_TEXT_DRAW) //Sagt das wenn der Player ein falsches TD anklickt nichts passieren soll.
    {
    if(clickedid == Textdraw2)
    {
    if(GetPVarInt(playerid,"eingeloggt") == 0)
    {
    if(OnUserCheck(playerid))//Wür überprüfen ob der Account Existiert, falls nicht Zeigen wir den Dialog zum Registrieren.
    {
    ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD,"Registrierung","Herzlichen Willkommen auf Incredible German Reallife!\nBitte gib nun dein Password ein, um auf dem Server Spielen zu können!","Register","Abbrechen");
    }
    else //Falls doch
    {
    SendClientMessage(playerid, Rot,"[FEHLER] {FFFFFF}Dieser Account ist bereits Regestriert!");
    }
    }
    return 1;
    }
    else if(clickedid == Textdraw3)
    {
    if(GetPVarInt(playerid,"eingeloggt") == 0)
    {
    if(OnUserCheck(playerid))
    {
    SendClientMessage(playerid, Rot,"[FEHLER] {FFFFFF}Dieser Account ist nicht Regestriert! Um hier spielen zu können, musst du dich Regestrieren!");
    }
    else//Falls doch
    {
    ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD,"Login Vorgang","Herzlichen Willkommen zurück auf Incredible German Reallife!\nBitte gib nun dein Password ein!","Login","Abbrechen");
    }
    }
    return 1;
    }


    //Hier das mit den Dialogs
    if(dialogid==DIALOG_LOGIN)
    {
    if(response)
    {
    new name[MAX_PLAYER_NAME],query[128],passwort[35];
    GetPlayerName(playerid,name,sizeof(name));
    if(strlen(inputtext)>0)
    {
    mysql_escape_string(inputtext,passwort,dbhandle);//Fragt ab ob das Passwort richtig ist
    format(query,sizeof(query),"SELECT * FROM user WHERE username='%s' AND passwort=MD5('%s')",name,passwort);
    mysql_function_query(dbhandle,query,true,"OnPasswordResponse","i",playerid);
    }
    else
    {
    //keine Eingabe
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Das Angegebene Passwort war Falsch.\nBitte log dich jetzt mit dem richtigen Passwort ein:","Login","Abbrechen");
    }
    }
    else
    {
    SendClientMessage(playerid,Rot,"Du hast auf Abrrechen gedrückt!");
    }
    return 1;
    }
    if(dialogid==DIALOG_REGISTER)
    {
    if(response)
    {
    new name[MAX_PLAYER_NAME],query[128],passwort[35];
    GetPlayerName(playerid,name,sizeof(name));
    if(strlen(inputtext)>=3)
    {
    //Registerfunktion
    mysql_escape_string(inputtext,passwort,dbhandle);
    format(query,sizeof(query),"INSERT INTO user (username,passwort) VALUES ('%s',MD5('%s')) ",name,passwort);
    mysql_function_query(dbhandle,query,false,"","");
    }
    else
    {
    //Kleiner als 4 Zeichen
    ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD,"Registrierung","Das angegebende Passwort war zu kurz! Bitte versuchs nochmal:","Register","Abbrechen");
    }


    }
    else
    {
    SendClientMessage(playerid,Rot,"Du hast auf Abrrechen gedrückt!");
    }
    return 1;
    }


    //Hier ist das "OnUserCheck"
    public OnUserCheck(playerid)
    {
    new num_rows,num_fields;
    cache_get_data(num_rows,num_fields,dbhandle);
    if(num_rows==0)
    {
    //Registrierung
    ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT,"Registrierung","Herzlichen Willkommen auf Incredible German Reallife!\nBitte gib nun dein Password ein, um auf dem Server Spielen zu können!","Register","Abbrechen");
    }
    else
    {
    //Login
    ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD,"Login Vorgang","Herzlichen Willkommen zurück auf Incredible German Reallife!\nBitte gib nun dein Password ein!","Login","Abbrechen");
    }
    return 1;

    Fals ihr noch was braucht, einfach schreiben :P , wäre sehr verbunden für eure Hilfe!

    Hallo Leute,


    mit welchen genauen Code , kann ich über den MySQL R34 System, abfragen , ob ein Spieler schon einen Account hat? (da ich was mit anklickbare Textdraws mache , und ich brauch halt diesen Code:) ) Wäre auch cool von euch wenn ihr eine kleine Beschreibung dazu schreiben könntet :)

    Hallo Leute,
    Da ich grad versuche ein Auto system zu machen(Alos privat cars etc...) und nicht weiter komme durch einiege errors , bitte ich euch mir zu helfen:)


    Errors:

    error 017: undefined symbol "mysql_function_query"
    error 017: undefined symbol "cache_get_data"
    error 017: undefined symbol "cache_get_field_content_int"
    error 017: undefined symbol "cache_get_field_content_int"
    error 017: undefined symbol "cache_get_field_content_float"
    error 017: undefined symbol "cache_get_field_content_float"
    error 017: undefined symbol "cache_get_field_content_float"
    error 017: undefined symbol "cache_get_field_content_float"
    error 017: undefined symbol "cache_get_field_content_int"
    error 017: undefined symbol "mysql_function_query"
    error 017: undefined symbol "cache_insert_id"



    Zeilen:

    mysql_function_query(dbhandle,query,false,"",""); //Error 1
    cache_get_data(num_rows,num_fields,dbhandle);//Error 2
    cInfo[id][carmodelid]=cache_get_field_content_int(i,"carmodelid",dbhandle);//Error 3
    cInfo[id][besitzer]=cache_get_field_content_int(i,"besitzer",dbhandle);//Error 4
    cInfo[id][c_x]=cache_get_field_content_float(i,"x",dbhandle);//Error 5
    cInfo[id][c_y]=cache_get_field_content_float(i,"y",dbhandle);//Error 6
    cInfo[id][c_z]=cache_get_field_content_float(i,"z",dbhandle);//Error 7
    cInfo[id][c_r]=cache_get_field_content_float(i,"r",dbhandle);//Error 8
    cInfo[id][db_id]=cache_get_field_content_int(i,"id",dbhandle);//Error 9
    mysql_function_query(dbhandle,query,true,"OnPlayerCarsLoad","i",playerid);//Errror 10
    cInfo[carid][db_id]=cache_insert_id(dbhandle);//Error 11


    wie oben erwähnt benutze ich dass MySQL plugin R5!


    Ich hoffe ihr könnt mir helfen!


    mFG



    danke dir :love:

    Halloooo :)


    Undzwar ich habe ein Problem mit den /Makeleader befehl.. der Befehl speichert etc. aber es wird immer erst beim 2 mal angezeigt. Also z.b.: /makeleader 0 1 (dann kommt halt bei mir als erstes LSPD) aber wenn ich dann z.b: /makeleader 0 5(dann kommt nochmal LSPD , nur wenn ich das gleiche also /makeleader 0 5 mache dann geht es erst ? Aber es soll sofort, wo ist das Problem?:



    ocmd:makeleader(playerid,params[])
    {
    if(SpielerInfo[playerid][pAlevel] >= 6)
    {
    new pID,string[144], aname[MAX_PLAYERS], frakid;
    GetPlayerName(playerid,aname,sizeof(aname));
    if(sscanf(params,"ui",pID,frakid))return SendClientMessage(playerid,Rot,"[FEHLER]{FFFFFF} Benutze: /makeleader [Name/ID] [0-10]");//ich vermute mal es liegt in dieser Zeile?
    {
    format(string,sizeof(string),"[INFO]{FFFFFF} %s %s hat dich zum Leader der Fraktion %s ernannt!",GetPlayerAdminRank(playerid),aname,GetPlayerFraktion(playerid));
    SendClientMessage(playerid,Rot,string);
    SpielerInfo[pID][pFraktion] = frakid;
    }
    }
    return 1;
    }


    danke aber warum params? Bzw. was bedeutet das?

    Hallo, ich bins wieder :D


    Ehm ich habe mir ein /a chat befehl gemacht , und wie mache ich es länger? Und wie mache ich dass wenn ich /A eingebe oder /a dass beides gleich ist.


    screen:
    http://www.fotos-hochladen.net/uploads/samp012uybgms578e.png


    CODE:



    ocmd:a(playerid,params[])
    {
    if(SpielerInfo[playerid][pAlevel] >= 1)
    {
    new name1[MAX_PLAYER_NAME], nachricht[1024],string[1024];
    GetPlayerName(playerid,name1,sizeof(name1));
    if(sscanf(params,"s",nachricht))return SendClientMessage(playerid, Rot,"[FEHLER]{FFFFFF} Benutze: /a [Text]'");
    format(string,sizeof(string),"[A-CHAT]{FFFFFF} %s: %s ",name1 ,nachricht);
    SendAdminMessage(Rot, string);
    }
    return 1;
    }