Beiträge von Derakar

    ok aber in welchen mysql_function_query muss dann das dann? oder kommt der Rest davon dann in den Callback vom auslesen?


    Also so funktioniert das auch nicht:


    new query[1024],query2[1024],passwort[35];
    if(strlen(inputtext) >= 6){
    mysql_escape_string(inputtext,passwort,mysql);
    format(query,sizeof(query),"INSERT INTO accounts (Name,Passwort) VALUES ('%s',MD5('%s')) ",SpielerName(playerid),passwort);
    mysql_function_query(mysql,query,false,"","");
    format(query2,sizeof(query2),"SELECT ID FROM accounts WHERE Name='%s'",SpielerName(playerid));
    mysql_function_query(mysql,query,true,"Registered","i",playerid);
    }


    public Registered(playerid)
    {
    sInfo[playerid][pEingeloggt] = 1;
    sInfo[playerid][pLevel] = 1;

    SetSpawnInfo( playerid, 0, 289, 1511.8359, -1713.5916, 14.0469, 222.1692, 0, 0, 0, 0, 0, 0 );
    SpawnPlayer(playerid);

    SetPlayerScore(playerid,sInfo[playerid][pLevel]);
    GivePlayerMoney(playerid,150);
    mysql_log(LOG_ALL);
    return 1;
    }

    Beim Connecten hole ich mir ja die ID siehe OnPlayerConnect:


    new query[128];
    format(query,sizeof(query),"SELECT ID FROM accounts WHERE Name='%s'",SpielerName(playerid));
    mysql_function_query(mysql,query,true,"CheckUser","i",playerid);

    Mhm vielleicht liegt es da dran. Hier mal ein Screen der ganzen DB:


    Wobei es aber beim Speichern von bereits vorhandenen Accounts funktioniert.
    Das liegt auf jedenfall beim Registrieren.

    So hier der Code:

    Code
    [21:36:09] [join] awdawd has joined the server (0:127.0.0.1)
    [21:36:16] SpielerSpeichern für 0
    [21:36:16] query: UPDATE accounts SET Level='1',Geld='150', Admin='0' WHERE ID='0'
    [21:36:16] [part] awdawd has left the server (0:1)


    Hier in der DB:

    Ein Anticheat habe ich nicht.


    Hier der Code:

    Code
    [21:21:53] [DEBUG] CMySQLQuery::Execute[] - starting query execution
    [21:21:53] [DEBUG] CMySQLQuery::Execute[] - query was successfully executed within 37.678 milliseconds
    [21:21:53] [DEBUG] CMySQLQuery::Execute[] - no callback specified, skipping result saving

    Folgendes Problem: Beim Registrieren eines neuen Spielers gibt er das Level aber kein Geld. Beim Speichern Speichert er das Level aber nicht.


    if(dialogid == DIALOG_REGISTER){
    if(response){
    new query[1024],passwort[35];
    if(strlen(inputtext) >= 6){
    mysql_escape_string(inputtext,passwort,mysql);
    format(query,sizeof(query),"INSERT INTO accounts (Name,Passwort) VALUES ('%s',MD5('%s')) ",SpielerName(playerid),passwort);
    mysql_function_query(mysql,query,false,"","");

    sInfo[playerid][pEingeloggt] = 1;
    sInfo[playerid][pLevel] = 1;

    SetSpawnInfo( playerid, 0, 289, 1511.8359, -1713.5916, 14.0469, 222.1692, 0, 0, 0, 0, 0, 0 );
    SpawnPlayer(playerid);

    SetPlayerScore(playerid,sInfo[playerid][pLevel]);
    SetPlayerMoney(playerid,150);
    } else {
    new input[200];
    format(input,sizeof(input),"{908B8E}Das Passwort ist nicht lang genug. (min. {FF9E00}6{908B8E} Zeichen)\nGebe hier dein gewünschtes Passwort ein, mit welchem du dich registrieren möchtest!");
    ShowPlayerDialog(playerid,DIALOG_REGISTER,3,"{FF9E00}Registrierung",input,"Absenden","Verlassen");
    }
    } else {
    Kick(playerid);
    }
    return 1;
    }


    stock SpielerSpeichern(playerid){


    if(sInfo[playerid][pEingeloggt] == 0) return 1;
    new query[1024];
    format(query,sizeof(query),"UPDATE accounts SET Level='%i',Geld='%i', Admin='%i' WHERE ID='%i'",sInfo[playerid][pLevel],GetPlayerMoney(playerid),sInfo[playerid][pAdmin],sInfo[playerid][pDBID]);
    mysql_function_query(mysql,query,false,"","");
    return 1;
    }


    stock SetPlayerMoney(playerid,money){
    ResetPlayerMoney(playerid);
    GivePlayerMoney(playerid,money);
    return 1;
    }

    Also so ganz bekomme ich das nicht hin. Wenn ich jetzt /supcar eingebe (sollte eigentlich Verwende: /supcar {FF9E00}[add/del] kommen) kommt der Dialog. Und wenn ich add/del eingebe dann kommt die Fehlermeldung.


    ocmd:supcar(playerid,params[])
    {
    new tag[128];
    if(sInfo[playerid][pEingeloggt] == 0) return SendClientMessage(playerid, GRAU, "Du bist nicht eingeloggt!");
    if(!sscanf(params, "s[128]",tag)) return SendClientMessage(playerid, GRAU, "Verwende: /supcar {FF9E00}[add/del]");
    if(!strcmp(tag, "add", true)){
    if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, GRAU, "Du befindest dich bereits in einem Fahrzeug!");
    ShowPlayerDialog(playerid,DIALOG_SUPCAR,2,"Supporter Autos","Sultan\nInfernus\nGolfcart\nMaverick","Spawn","Schliessen");
    return 1;
    } else if(!strcmp(tag, "del", true)){
    SendClientMessage(playerid, GRAU, "Car Entfernen!");
    } else return SendClientMessage(playerid, GRAU, "Verwende: /supcar {FF9E00}[add/del]");

    return 1;
    }

    Heyho ich hab da eine Frage denn ich finde die antwort darauf nicht (suche Falsch). Wie kann man mehrere Befehl parameter abfragen?


    Beispiel:
    /box nehmen <Ware> <Anzahl>
    /box verstauen <Ware> <Anzahl>


    Also das das /box entweder nehmen oder verstauen angegeben werden muss?

    Heyho,
    ich habe folgendes Problem.
    Der Server Connectet nicht mit der Datenbank. Die MySQL ist mit XAMPP und ist auch an. Passwort etc ist richtig geschrieben. Fehler sind auch keine da.


    Code
    [19:01:02] [ERROR] CMySQLConnection::Connect - (error #1045) Access denied for user 'script'@'localhost' (using password: YES)


    Im Script sieht das so aus:


    #define SQL_HOST "127.0.0.1"
    #define SQL_USER "script"
    #define SQL_PASS "*********"
    #define SQL_DATA "samp"


    new mysql;


    mysql = mysql_connect(SQL_HOST,SQL_USER,SQL_DATA,SQL_PASS);

    Ich habe mir das hier auch mal zu nutzen gemacht habe aber ein Problem.


    ocmd:godmode(playerid,params[])
    {
    switch(God)
    {
    case 0:
    {
    SetPlayerHealth(playerid, FLOAT_INFINITY);
    SendClientMessage(playerid, DGRUEN, "GodMode aktiviert. Nutze ihn nicht aus!");
    God = 1;
    printf("%i",God);
    }
    case 1:
    {
    SetPlayerHealth(playerid,100.0);
    SendClientMessage(playerid, DROT, "GodMode deaktiviert.");
    God = 0;
    printf("%i",God);
    }
    }
    return 1;
    }


    Der deaktiviert den Godmode nicht. (case 1 wird garnicht ausgeführt nur case 0 obwohl die Var 1 ist)

    Ich hab da ein GlobalenArray gemacht


    new ID[MAX_PLAYERS];


    und diese Variable will ich dann in diesen Befehl einbauen


    ID[playerid] = pID;


    ocmd:id(playerid,params[])
    {


    new string[128];


    new name[MAX_PLAYER_NAME];


    if(sscanf(params, "u", pID)) return SendClientMessage(playerid, GRAU, "Verwende: /id {C67700}<Spieler-ID>");


    if(!IsPlayerConnected(pID)) return SendClientMessage(playerid, GRAU, "Ungültige ID!");


    GetPlayerName(pID,name,sizeof(name));


    format(string,sizeof(string), "%s hat die ID %i.",name,pID);


    SendClientMessage(playerid, GELB, string);


    return 1;
    }


    Nur wo kommt das hin? Ich habe das Tutorial von Raven auf aber dort wird nur gesagt das kommt in den Befehl. Ich bekomme aber Errors.