Beiträge von Jeffry

    Dann habe ich das normale MySQL.so und 5.5 Plugin herausgenommen und nur mit dem Static gestartet hat auch alles funktioniert .

    Das ist auch korrekt, nur eins davon muss gestartet werden.
    Das mysql_static.so hat die Libraries bereits eingebaut, die die anderen beiden nicht haben, daher ist das in deinem Fall das richtige.




    Jetzt benötige ich hilfe das ich hinbekomme das Plugin zum laufen zu bekommen aber natürlich auch ohne diese mysql_tquery Fehler

    Sieht so aus als lässt du mysql_tquery ausführen, bevor du eine Verbindung zur Datenbank (mysql_connect) hergestellt hast.

    Ist die von der str_lib

    Versuche es hiermit:
    stock str_replace2(const search[],const replace[], source[], size=sizeof source)
    {
    new i=strfind(source,search),tmp=strlen(search),len=strlen(replace);
    if(i==-1) return 0;
    for( ; i!=-1; i=strfind(source,search,false,i+len))
    {
    strdel(source,i,i+tmp);
    strins(source,replace,i,size);
    }
    return 1;
    }



    new number[20];
    format(number, sizeof number, inputtext);
    str_replace2(" ", "", number);

    Du benötigst das MySQL R39 Plugin für diesen Code.
    Ich bin leider noch nicht dazu gekommen, das Tutorial auf R40+ zu aktualisieren.


    Tutorial: [jTuT] Fraktions-Fahrzeug-System mit MySQL R39-5
    Plugin: https://github.com/pBlueG/SA-MP-MySQL/releases/tag/R39-6


    Danach hast du noch 3 Warnungen.
    Um die zu entfernen musst du in Zeile 175 das entfernen:
    return 1;


    und dann noch
    #if defined FILTERSCRIPT
    public OnFilterScriptInit()
    {
    mysql_log(LOG_ERROR | LOG_WARNING);
    sqlverbindung = mysql_connect("127.0.0.1", "ni1113669_1_DB", "password", "ni1113669_1_DB");
    LoadFracVehicles();
    SetTimer("SaveAllFracVehs", 60000, true); //Timer wird alle 60 Sekunden ausgeführt
    return 1;
    }
    public OnFilterScriptExit()
    {
    SaveAllFracVehs();
    mysql_close(sqlverbindung);
    return 1;
    }
    #else
    main()
    {
    print("Dieses Script ist erstellt worden von GamerJewels");
    }
    #endif
    zu:
    public OnFilterScriptInit()
    {
    mysql_log(LOG_ERROR | LOG_WARNING);
    sqlverbindung = mysql_connect(db_host, db_user, db_pass, db_db);
    LoadFracVehicles();
    SetTimer("SaveAllFracVehs", 60000, true); //Timer wird alle 60 Sekunden ausgeführt
    return 1;
    }
    public OnFilterScriptExit()
    {
    SaveAllFracVehs();
    mysql_close(sqlverbindung);
    return 1;
    }
    ändern.
    Bzw zu dem hier, falls es ein Gamemode ist, in dem der Code ist:
    main() { }
    public OnGameModeInit)
    {
    mysql_log(LOG_ERROR | LOG_WARNING);
    sqlverbindung = mysql_connect(db_host, db_user, db_pass, db_db);
    LoadFracVehicles();
    SetTimer("SaveAllFracVehs", 60000, true); //Timer wird alle 60 Sekunden ausgeführt
    return 1;
    }
    public OnGameModeExit)
    {
    SaveAllFracVehs();
    mysql_close(sqlverbindung);
    return 1;
    }


    Danach kompiliert der Code ohne Probleme.

    Nutze dafür diese Funktion:
    stock IsAnyPlayerInVehicle(vehicleid)
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(GetPlayerVehicleID(i) == vehicleid) return 1;
    }
    return 0;
    }


    Und dann so:
    for(new i=0; i < sizeof(yakuzacar); i++) if(!IsAnyPlayerInVehicle(yakuzacar[i])) DestroyVehicle(yakuzacar[i]);

    Ah, dann hat also immer nur eines gefehlt.


    Ja, das liegt dann daran, dass du irgendwo Labels löscht, die noch nicht zugewiesen sind. Dann hat die Variable ja den Wert 0, somit wird das Label 0 gelöscht.

    JobTimer[playerid] = SetTimerEx("JobExit",10000,false,"i",playerid);
    Zu
    JobTimer[playerid] = SetTimerEx("JobExit",10000,false,"ii",playerid, vehicleid);
    Dazu dann eben noch das public und forward zum JobExit um die vehicleid erweitern, und bei GetBusIndex in der Zeile vor dem Print die vehicleid nehmen, anstatt GetPlayerVehicleID.

    Das heißt dann, dass der Spieler in keinem der Busse aus dem Busse Array drin ist.


    Da müsstest du dem Timer noch die vehicleid mitgeben, wenn der Spieler aussteigt. Sprich zusätzlich zur playerid noch die vehicleid und dann damit dem Index auslesen, anstatt mit GetPlayerVehicleID.

    Das spielt keine Rolle.


    Generell empfiehlt es sich aber, alles was mit Spielern direkt in Verbindung steht (z. B. Befehl zum Öffnen von Toren) im Gamemode zu haben, falls sich Abfragen im Befehl auf die Statistiken des Spielers beziehen.

    Hmm, bei 10 ist das Limit natürlich nicht erreicht. Was wird dir denn ausgegeben, wenn du den print für ein Label machst, das du nicht siehst? Wird da dann 11 ausgegeben (oder ähnliches)?
    Wenn ja, dann wird das Label erstellt, aber vielleicht irgendwo danach gelöscht?
    Oder du bist nicht an der richtig Position in der richtigen virtuellen Welt?