Beiträge von Jeffry

    Stimmen die Positionen? Bewegt sich das Objekt in diese Richtung?
    Verfolge bitte mal ein Objekt, bis wo es sich hin bewegt. Wo endet es?


    Laut Code und Print scheint nämlich alles soweit zu passen. Die Koordinaten kann ich nicht beurteilen, das musst du im Spiel prüfen, ob die passen.

    Ich würde es dir so empfehlen, das ist etwas strukturierter und ohne die nicht notwendigen Rundungen:
    new time = gettime();
    if(time > razziaStatusBS)
    {
    razziaStatusBS = time + 3600;
    return 1;
    }
    time = razziaStatusBS - time;
    format(string,sizeof(string),"Eine Razzia an diesen Schwarzmarkt kann erst wieder in %i:%02d Minuten gemacht werden.",time/60,time%60);
    ErrorMsg(playerid,string);
    return 1;

    Ah, noch eins hab ich übersehen:
    new fInfo[][fraktEnum];
    zu:
    new fInfo[MAX_FRAC][fraktEnum];



    Auf Grund des Bildes:
    Das mit der Farbe dann wieder zu:
    cache_get_value_name(i, "Color", fInfo[i][f_color], 64);


    Und dann im enum:
    f_color
    zu:
    f_color[16]

    cache_get_value_name(i, "Color", fInfo[i][f_color], 64);
    zu:
    cache_get_value_name_int(i, "Color", fInfo[i][f_color]);


    Und
    f_shortname[256],
    zu:
    f_shortname[64],


    Wenn es weiterhin nicht geht, poste bitte einen Screenshot deiner SQL-Tabellenstruktur.

    Es hat sich aufjedenfall etwas getan. jetzt wechselt sich es immer so: Ganz kurz kommt das richtige textdraw, dann so: 100 dann 98 102 99 usw..

    Es funktioniert jetzt^^, habe es einfach 2mal hinzugefügt und es funktioniert einfach

    Interessant! Normalerweise sollte es keine Variablen geben, die mit 1 vorbelegt sind, außer das ist irgendwo im Code so gemacht worden.
    Prinzipiell würde ich dir aber trotzdem empfehlen, danach zu suchen, wodurch die Zahlen verursacht werden, das ist ja nicht normal. Dort greift der Code auf Textdraw-Variablen zu, die unbelegt sind, sprich auf Textdraws, die nicht existieren.
    Aber gut, dass du es soweit mit zwei Textdraws umgehen kannst.

    Jemand ne Ahnung, warum bei meinen Textdraws immer eine 100 kommt anstatt die Textdraws? Sprich ich habe ein Textdraw wegen No-DM zone, anstatt das "Ruhezone" kommt, kommt eine 100 warum ?

    Könnte ein fehlerhafter Zugriff auf ein nicht erstelltes Textdraw sein, somit wird das Textdraw mit der ID 0 verändert. Das kann man mit einem kleinen Trick umgehen, indem man die ID 0 vorbelegt, aber nie anzeiegt:


    Direkt unter OnGameModeInit, als erstes:
    TextDrawCreate(0.0, 0.0," "); //Dummy


    Dann dürfte der Fehler nicht mehr auftreten.

    Versuche es bitte mal so:
    MoveDynamicObject(hbi[i][h][hb_ID],hbi[i][h][h_x]-1.325,hbi[i][h][h_y],hbi[i][h][h_z]+0.275,8.5,0.0, 0.0,hbi[i][h][h_r]);
    zu:
    printf("Bewege Objekt %d zu %f/%f/%f", hbi[i][h][hb_ID],hbi[i][h][h_x]-1.325,hbi[i][h][h_y],hbi[i][h][h_z]+0.275);
    MoveDynamicObject(hbi[i][h][hb_ID],hbi[i][h][h_x]-1.325,hbi[i][h][h_y],hbi[i][h][h_z]+0.275,8.5);


    Wenn es sich weiterhin zur Mitte hin bewegt, poste bitte, was im Server Log ausgegeben wird.

    cache_get_value_name(i, "Name", fInfo[i][f_name]);
    zu:
    cache_get_value_name(i, "Name", fInfo[i][f_name], 32);


    Die 32 steht für die maximale Länge des Namens. Das muss in diesem Fall mit angegeben werden.

    bei mir kommt in der Konsole der ERROR ModelID 1 nicht gefunden (ID: 1) 6-7 mal.

    Dann scheinst du beim Speichern in das Feld "ModelID" nicht die tatsächliche modelid des Fahrzeugs (400-611) zu schreiben, sondern etwas anderes. Prüfe das (Query per print ausgeben), bzw. poste den Code + Log bitte.


    EDIT:
    Jetzt am PC fällt mir der Fehler gleich auf:
    fracVehicle[id][e_modelID] = cache_get_value_name_int(i, "ModelID", fracVehicle[i][e_modelID]);
    zu:
    cache_get_value_name_int(i, "ModelID", fracVehicle[i][e_modelID]);


    Gleiches für alle anderen.
    Das hast du ja auch selbst schon herausgefunden, ich wollte es nur nochmal klarstellen, falls jemand einen ähnlichen Fehler hat.

    Nimm den root Benutzer ohne Passwort:
    #define db_host "localhost" //bzw. 127.0.0.1
    #define db_user "root"
    #define db_pass ""
    #define db_db "samp" //samp = Datenbankname, eventuell anpassen


    Das ist in 99% aller Fälle standardmäßig so eingestellt.
    Dein user "samp" wird nicht die richtigen Berechtigungen haben, das ist auf localhost (dein Rechner) so eingestellt, standardmäßig zumindest.
    Deshalb benutze, wie ich oben geschrieben habe, den root-User ohne Passwort, der hat ALLE Berechtigungen. Dem kannst du später auch, je nach Client, ein Passwort geben.

    man spart doch sicher Ressourcen

    Nein, im Gegenteil, da ständig die Position und Distanz aller Fahrzeuge zu allen Spielern berechnet werden muss.


    Übrigens sind die Fahrzeuge in SA-MP seit einiger Zeit (seit der Erhöhung von 700 auf 2000) vom Server her bereits automatisch gestreamt, daher folgende Callbacks:
    http://wiki.sa-mp.com/wiki/OnVehicleStreamIn
    http://wiki.sa-mp.com/wiki/OnVehicleStreamOut


    Einen weiteren Streamer zu nutzen hätte daher keinen Effekt, solange du unter 2000 Fahrzeugen bleibst. Es würde nur Sinn machen, wenn du dies überschreiten möchtest.

    [23:56:22] CMySQLHandler::Query(SELECT `Password` FROM `users` WHERE `Name` = 'Pyce' AND `Password` = 'abc' LIMIT 1;) - Successfully executed.

    Das sieht so aus als kommt das vom Login, da das Passwort angegeben ist.
    Du musst die Registration ausführen und davon den Log posten.
    Am besten dann auch den Code dazu.

    iif(newkeys == KEY_NO)
    {
    if(IsPlayerConnected(playerid))
    {
    if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
    OnPlayerCommandText(playerid, "/motor");
    }
    else if(/*Andere Bedingung hier, z.B. IsPlayerInRangeOfPoint*/)
    {
    OnPlayerCommandText(playerid, "/gangwaffen");
    }
    //...
    }
    }


    PS:
    Wenn du z.B. ocmd nutzt, kannst du anstatt dem OnPlayerCommandText auch:
    ocmd_gangwaffen(playerid, "");
    machen.