Beiträge von Dreat

    Hallo SA:MP Comm,


    ich hab da ne Frage, ich weiß nicht ob sich schonmal jemand damit ausseinander gesetzt hat aber mich würde es interessieren. Also zu meiner Frage.
    Was ist den jetzt wenn man anstatt ein Filterscript die ganzen Funktionen in eine .inc(include) Datei packt und diese einfach oben per
    #include <deine_inc_datei>
    einbindet. Ich weiß jetzt nicht genau ob das mit nem Filterscript genauso Funktioniert, aber wenn man dann mal eben eine Funktion aus einer anderen .inc braucht includiert man einfach die Datei mit der gesuchten Funktion.
    Man muss natürlich die Datei aus dem Haupt-Gamemode wieder rausnehmen wegen doppelt include....oder man baut eben einen Schutz ein ala
    #ifndef BLAH_H
    #define BLAH_H
    oder eben anderstrum.


    Das war eig mein ganzes anliegen...in C++ würde man das ganze Objektorientierung nennen wobei da noch die Klassen fehlen.
    Bin mal gespannt was ihr so antwortet
    MfG Dreat

    Hallo Breadfish Community,


    ich möchte aus einer ini Datei den Besitzer eines Autos auslesen
    besitzer=autohaus


    so sieht es in der ini aus nur wenn ich den String auslesen möchte funktioniert es nicht


    format(datei,sizeof(datei),"/Autos/Auto_%d",GetPlayerVehicleID(playerid));

    new name[256];
    new besitzer[256];
    GetPlayerName(playerid,name,sizeof(name));
    format(besitzer,sizeof(besitzer),"%s",name);
    new string[512];
    string = dini_Get(datei, "besitzer");


    new string2[256];
    format(string2,sizeof(string2),"%s",string);

    SendClientMessage(playerid,0xFF0000AA,string2);
    }


    So aber als Message kommt nur eine leere Zeile.
    Ich hoffe mir kann irgendwer hier helfen wäre sehr nett danke ^^

    Hallo


    ich habe folgendes Problem ich bin dabei ein Autosystem zu scripten. So in einer für jedes Auto extra erstellten dini datei wird der besitzer gespeichert undzwar so (besitzer="string") so ich möchte jetzt wenn jemand in ein Auto einsteigt überprüfen ob
    das Auto dem Autohaus gehört oder jemand anderes und das sieht bis jetzt so aus ...was jetzt das Problem ist das immer angezeigt wird das das Auto dem autohaus gehört nur ab und zu funktioniert es richtig und dann wieder nicht undi ch weiß nicht woran es liegt =/ ich hoffe mir kann jemand helfen.


    if(GetPlayerState(playerid) != ispassenger)
    {
    new datei2[50];
    new string2[256];


    format(datei2,sizeof(datei2),"/Autos/Auto_%d.ini",GetPlayerVehicleID(playerid));
    string2 = dini_Get(datei2, "besitzer");


    new name2[256];
    new besitzer[256];
    GetPlayerName(playerid,name2,sizeof(name2));
    format(besitzer,sizeof(besitzer),"%s",name2);
    if(strcmp(string2, "autohaus", false)== 0)
    {
    SendClientMessage(playerid,0xFF0000AA,"Das Auto gehoert dem Autohaus und steht zum verkauf.Benutze /kaufen um es zu kaufen.");
    }
    else
    {
    if(strcmp(string2,besitzer,false)==0)
    {
    SendClientMessage(playerid,0xFF0000AA,"Das Auto gehoert dir.");
    }
    else
    {
    SendClientMessage(playerid,0xFF0000AA,"Das Auto gehoert nicht dir.");
    RemovePlayerFromVehicle(playerid);
    TogglePlayerControllable(playerid,1);
    }
    }
    }

    Oke also es speichert alle Werte wunderbar, ausser es geht um die Kommawerte
    und ich benutze dieses Plugin MySQL Plugin R5
    In der mysql_log stande Successfully executed. ich hab sie letztens gelöscht weil sie zu groß wurde


    Edit ich hab vllt den Fehler gefunden kann es daran liegen das beim Kompilieren dieses warning kommt
    warning 202: number of arguments does not match definition
    Es bezieht isch auf diese Zeile
    mysql_SetFloat("accounts", "Health", GetPlayerHealth(playerid), "Dreat", SpielerInfo[playerid][pName]);


    und möglicherweiße auf diese Funktion
    stock mysql_SetFloat(Table[], Field[], Float:To, Where[], Where2[])
    {
    new query[128];
    mysql_real_escape_string(Table, Table);
    mysql_real_escape_string(Field, Field);
    mysql_real_escape_string(Where, Where);
    mysql_real_escape_string(Where2, Where2);
    format(query, 128, "UPDATE %s SET %s = '%.1f' WHERE %s = '%s'", Table, Field, To, Where, Where2);
    mysql_query(query);
    return true;
    }

    Naja also mit der Funktion von Maddins Tutorial


    stock mysql_SetFloat(Table[], Field[], Float:To, Where[], Where2[])
    {
    new query[128];
    mysql_real_escape_string(Table, Table);
    mysql_real_escape_string(Field, Field);
    mysql_real_escape_string(Where, Where);
    mysql_real_escape_string(Where2, Where2);
    format(query, 128, "UPDATE %s SET %s = '%.1f' WHERE %s = '%s'", Table, Field, To, Where, Where2);
    mysql_query(query);
    return true;
    }


    kann man mit dem Code alle Float werte speichern funktioniert mit den Healthpoints wunderbar, aber auch nur solange keine Kommawerte entstehen.


    stock SavePlayer(playerid)
    {

    if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid)) //wir überprüfen ob der Spieler überhaupt noch Connected ist und ob er nicht ein NPC ist.
    {
    if(GetPVarInt(playerid,"Eingeloggt") == 1) //Und hier ob er noch eingeloggt ist.
    {

    //Nun speichern wir die Daten in der Datenbank
    mysql_SetInt("accounts", "Geld", GetPlayerMoney(playerid), "Name", SpielerInfo[playerid][pName]);
    mysql_SetFloat("accounts", "Health", GetPlayerHealth(playerid), "Name", SpielerInfo[playerid][pName]);
    mysql_SetFloat("accounts", "posX", lastX, "Name", SpielerInfo[playerid][pName]);

    }
    }
    return 1;
    }


    und bei OnPlayerDisconnect


    public OnPlayerDisconnect(playerid, reason)
    {
    new float:lastX,float:lastY,float:lastZ;
    GetPlayerPos(playerid,lastX,lastY,lastZ);

    SavePlayer(playerid);
    DeletePVar(playerid,"Eingeloggt");



    return 1;
    }


    wäre echt genial wenn das mal funktionieren würde :D

    Hallo erstmal,


    ich hätte da mal ne frage bezüglich der Mysql Datenbank, also wenn ich die Position speichern will muss ich ja zum bsp. 1958.3783 so einen wert hier speichern mit einem Punkt.
    Die Mysql Datenbank nimmt aber leider keine Werte mit Punkten an. Als Fehlermeldung kommt nur "1958.3783 is not a valid floatin point value for field posX."
    Wäre echt nett wenn mir jmd helfen könnte.

    Ja ,der Server läuft auf Windows ,schreibgeschützt ist raus und die register.php kann auch drauf zugreifen


    Edit: Achso und als die regstrierung noch über das Skript lief konnte es auch drauf zugreifen, aber nur Name und Pw wurde verändert

    Hallo alle zusammen ich hätte da ein Problem ^^


    Naja also ich hab versucht ein Gamemode zu erstellen der erstmal nur Name,Pw Geld und Healthpoints speichert


    Name und Pw werden über eine register.html und register.php erstellt <- hat auch super funktioniert.


    Aber das Skript speichert noch keine Healthpoints oder geld, ich hab alles nach dem Tutorial von Maddin MySQL (Installation, Zugriff, Einstellungen, Login & Register Beispiel) gemacht.
    Die datenbank connection steht aber sie nimmt nichts auf.
    Naja hier mal die Code ausschnitte.


    Danke hat sich erledigt
    //------------Player Laden-----------------//


    stock LoadPlayer(playerid)
    {
    if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))//Wir fragen ab ob der angegebene Spieler auch Online ist, und kein NPC ist (nur zur sicherhheit)
    {
    GetPlayerName(playerid, SpielerInfo[playerid][pName], MAX_PLAYER_NAME); //Wir Speichern den Namen des Spielers in der Variable [i]SpielerInfo[playerid][pName][/i]
    SpielerInfo[playerid][pGeld] = mysql_GetInt("accounts", "Geld", "Name", SpielerInfo[playerid][pName]); //Wir holen uns den wert der unter "Geld" eingetragen ist und Speichern ihn in unserer Variable.
    }
    return 1;
    }


    //---------------Dateien aus der datenbank holen------------------//


    stock mysql_GetInt(Table[], Field[], Where[], Is[])
    {
    new query[128];
    mysql_real_escape_string(Table, Table);
    mysql_real_escape_string(Field, Field);
    mysql_real_escape_string(Where, Where);
    mysql_real_escape_string(Is, Is);
    format(query, 128, "SELECT %s FROM %s WHERE %s = '%s'", Field, Table, Where, Is);
    mysql_query(query);
    mysql_store_result();
    new sqlint = mysql_fetch_int();
    mysql_free_result();
    return sqlint;
    }


    //-----------------------------------------------------------------//


    stock mysql_GetString(Table[], Field[], Where[], Is[])
    {
    new query[128], Get[128];
    mysql_real_escape_string(Table, Table);
    mysql_real_escape_string(Field, Field);
    mysql_real_escape_string(Where, Where);
    mysql_real_escape_string(Is, Is);
    format(query, 128, "SELECT %s FROM %s WHERE %s = '%s'", Field, Table, Where, Is);
    mysql_query(query);
    mysql_store_result();
    mysql_fetch_row(Get);
    return Get;
    }


    //------------------------------------------------------------------//


    stock Float:mysql_GetFloat(Table[], Field[], Where[], Is[])
    {
    new query[128], Float:sqlfloat;
    mysql_real_escape_string(Table, Table);
    mysql_real_escape_string(Field, Field);
    mysql_real_escape_string(Where, Where);
    mysql_real_escape_string(Is, Is);
    format(query, 128, "SELECT %s FROM %s WHERE %s = '%s'", Field, Table, Where, Is);
    mysql_query(query);
    mysql_store_result();
    mysql_fetch_float(sqlfloat);
    mysql_free_result();
    return sqlfloat;
    }


    //-----------SavePlayer funktion------------------------------//


    stock SavePlayer(playerid)
    {
    if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid)) //wir überprüfen ob der Spieler überhaupt noch Connected ist und ob er nicht ein NPC ist.
    {
    if(GetPVarInt(playerid,"Eingeloggt") == 1) //Und hier ob er noch eingeloggt ist.
    {
    //Nun speichern wir die Daten in der Datenbank
    mysql_SetInt("accounts", "Geld", SpielerInfo[playerid][pGeld], "Name", SpielerInfo[playerid][pName]);
    mysql_SetFloat("accounts", "Health", SpielerInfo[playerid][pHealth], "Name", SpielerInfo[playerid][pName]);
    }
    }
    return 1;
    }


    //-------------------------Funktionen zum speichern-------------------------//


    stock mysql_SetInt(Table[], Field[], To, Where[], Where2[])
    {
    new query[128];
    mysql_real_escape_string(Table, Table);
    mysql_real_escape_string(Field, Field);
    mysql_real_escape_string(Where, Where);
    mysql_real_escape_string(Where2, Where2);
    format(query, 128, "UPDATE %s SET %s = '%d' WHERE %s = '%s'", Table, Field, To, Where, Where2);
    mysql_query(query);
    return true;
    }
    stock mysql_SetString(Table[], Field[], To[], Where[], Where2[])
    {
    new query[128];
    mysql_real_escape_string(Table, Table);
    mysql_real_escape_string(Field, Field);
    mysql_real_escape_string(To, To);
    mysql_real_escape_string(Where, Where);
    mysql_real_escape_string(Where2, Where2);
    format(query, 128, "UPDATE %s SET %s = '%s' WHERE %s = '%s'", Table, Field, To, Where, Where2);
    mysql_query(query);
    return true;
    }
    stock mysql_SetFloat(Table[], Field[], Float:To, Where[], Where2[])
    {
    new query[128];
    mysql_real_escape_string(Table, Table);
    mysql_real_escape_string(Field, Field);
    mysql_real_escape_string(Where, Where);
    mysql_real_escape_string(Where2, Where2);
    format(query, 128, "UPDATE %s SET %s = '%.1f' WHERE %s = '%s'", Table, Field, To, Where, Where2);
    mysql_query(query);
    return true;
    }




    Ich kenne mich nicht sonderlich mit Mysql aus,aber es ist auch eigentlich nicht meine Art in eineem Forum nach Hilfe zu fragen da ich gerne immer selbst viel teste bevor ich frage aber diesmal bekomme ich es nicht hin.


    Danke schonmal für die Hilfe ^^