Beiträge von Douq

    Zum einen scheint es so, dass deine Include nicht zu deinem Server-Plugin passt - da er bei CreateDynamicObject() lediglich 11 Parameter erwartet, du ihm aber 14 übergibst. Lösung: streamer PlugIn neurunterladen und die ServerFile als auch die Include ersetzen.


    Zum anderen fehlen dir scheinbar Funktionen. Du musst in deine MySQL Include schauen, welche MySQL Version du benutzt und dementsprechend diese ServerFile / PlugIn verwenden. Es scheint mir, als würdest du das PlugIn von strickenkid benutzen aber die Include von BlueG. Lade dir das mysql Plugin von BlueG runter und ersetze es mit der mysql_static.so

    Am besten du klammerst den Großteil deines Scripts aus und fängst nach und nach an, das auskommentierte wieder einzufügen.
    Wenn es crashen sollte, ist der Fehler direkt vor deinen Augen. :P


    Eine andere Wahl hast du vermutlich nicht. :P

    Wenn ich mal solche Komplikationen hatte und keine Backup Datei, bin ich auch nach dem Verfahren gegangen. Ich habe dann immer die Hälfte auskommentiert und compilt und dann wieder davon die Hälfte auskommentiert. Habe das dann so lange gemacht, bis ich den Fehler auf wenige Zeilen reduzieren konnte. Klappte bis soweit ganz gut

    @JustMe.77
    Danke, das geht, leider bekomme ich jetzt über "CrashDetect" folgende Fehler angezeigt:


    [03:37:47] [debug] Run time error 4: "Array index out of bounds"[03:37:47] [debug] Attempted to read/write array element at index 3 in array of size 3[03:37:47] [debug] AMX backtrace:[03:37:47] [debug] #0 00069be0 in public OnActorStreamIn (0, 0) from BlvckDown-RL.amxpublic OnActorStreamIn(actorid, forplayerid){ for(new i = 0; i < sizeof(AcEnum[]); i++) { ApplyActorAnimation(AcEnum[i][acID], AcEnum[i][acLib], AcEnum[i][acAnim], AcEnum[i][acSpeed], AcEnum[i][acLoop], AcEnum[i][acLockX], AcEnum[i][acLockY], AcEnum[i][acFreeze], AcEnum[i][acTime]); } return 1;}


    Kannst mir dabei vielleicht dabei auch noch Helfen? :D

    Du sprengst deinen Array, weil du die Größe der zweiten Dimension als Schleifenbedingung benutzt, statt die erste Dimension. Die zweite ist nämlich die Anzahl deiner Variablen innerhalb deines Array-Enums. Entferne einfach die eckigen Klammern innerhalb von sizeof(), dann sollte das gehen.

    Danke das klappt nochwas :/

    Code
    C:\Users\ASUS\Desktop\---\gamemodes\GRR.pwn(25494) : warning 213: tag mismatch
    
    
    C:\Users\ASUS\Desktop\---\gamemodes\GRR.pwn(27516) : warning 213: tag mismatch

    PrivateVehicle[playerid][slot][vehDestroyed] = cache_get_field_content_float(0, "vehDestroyed"); //25494Vehicle[vehicleid][vehDestroyed] = 0; //27516

    Also erst einmal möchte deine Variable nur einen boolean zugewiesen bekommen haben und keinen anderen Datentyp. Wenn ich mir deinen Array so anschaue scheint folgendes dein Problem zu lösen:


    Zeile 25494: PrivateVehicle[playerid][slot][vehDestroyed] =!! cache_get_field_content_int(0, "vehDestroyed");
    Zeile 27516: Vehicle[vehicleid][vehDestroyed] = false;


    Wobei ich mir nicht vorstellen kann, dass du den gleichen enum-Bezeichner hast und für deinen Array scheinbar unterschiedliche Namen vergeben hast.

    Also ein Freund von mir ist aufgrund von Rückenproblemen durch den Fitnessteil durchgefallen (könnte bei dir auch zu einem K.O. Kriterium werden)

    Punkte die man bei der BW beachten sollte:

    • Lange bleiben wollen nicht viele
    • In der Zivilwelt hat die BW keinen guten Ruf
    • Du hast, wenn du also nachher wechseln willst, oftmals Probleme, gute Anschlussjobs zu finden

    Quelle: Vater war Offizier


    Wenns dir um Sicherheit und geringe Qualifikationen geht, würd e ich eine normale Beamtenlaufbahn empfehlen.
    Anstatt dort zu studieren nimm ein duales Studium - geht schneller und bringt mehr.

    Duales Studium ist auch bei der Behörde möglich (wollte ich nur erwähnt haben, klang jetzt nicht danach). Die Bundeswehr ist, zu mindestens in Hamburg, oft auf Messen vertreten - vielleicht wäre das ja noch eine Anlaufstelle um dich zu informieren

    Er haut mir beim Fahrzeugkauf 10 Autos raus, trägt diese in die DB obwohl er nur 1 Spawnen soll. Das gleiche würde er auch mit meiner SendClientMessage machen wenn ich sie nicht außerhalb der Schleife abschicke. Wie mache ich das am besten bzw wie umgehe ich das?

    Du musst auch aus der Schleife springen, ansonsten durchläuft sie bis zur Erfüllung deiner Bedingung (i < MAX_AUTOS). In deinem Fall wäre die Verwendung von break sinnvoll. Das kannst du einfach unter Zeile 16 und Zeile 35 (bzw. 36) setzen.


    break spricht die Schleife ab in welcher sie verwendet wird bzw. springt aus dieser raus. Vorteil ist, dass der Code unter der Schleife trotzdem ausgeführt wird, was bei einem return nicht der Fall wäre.


    Dein Code würde bezogen auf einem Beispiel folgendes bewirken:
    Stell dir vor du stehst bei StarBucks, hast 30 Euro und möchtest Kaffee bestellen. Dir würde so lange Kaffee gegeben werden, solange dein Geld was du bei dir trägst, größer oder gleich dem Kaffeepreis von StarBucks ist - das möchtest du ja aber sicherlich nicht. Dafür hast du dein break -> solltest du einmal einen Kaffee erhalten haben, wird dir kein Kaffee mehr zubereitet und du behältst dein Geld.

    Wie meinst du das? Manuell per PhP my Admin ausführen lassen, könntest du mir das mal erklären :)?

    Dir wird im server_log.txt ein Query ausgegeben, das dein Skript an den SQL Server sendet, welcher das widerrum ausführt. Du sollst nun den Query, der dir ausgegeben wird, selber ausführen. Das kann man beispielsweise per phpMyAdmin oder Navicat machen. Mietest du einen Gameserver / Server oder lässt du es bei dir lokal laufen?

    Sehr wahrscheinlich werden plugIns nicht richtig geladen, weil dir eben die nötigen Frameworks / Libraries fehlen. Lade dir mal das plugIn nativechecker und schaue, was der serverlog ausgibt. Ggf. die jeweiligen Frameworks runterladen, weil das runterladen von fremden *.dll Datein ist nicht wirklich zu empfehlen

    Du hast in Zeile 10 ein printf(), schau dir den Query an und führe ihn manuell über phpMyAdmin aus. Je nach Antwort des Servers, lässt sich drei Möglichkeiten erschließen:

    • Der Query erfüllt nicht die Rahmenbedingungen für einen SQL Befehl (zu kurz, falsche Formatierung, ...).
    • SaveVehicles() / SaveVehicle() wird nicht ordnungsgemäß oder gar nicht aufgerufen.
    • Es wird kein Datensatz verändert, da der Index nicht der DatenbankID entspricht.

    MAX_VEHICLES ist eine Konstante und beinhaltet immer ein festen Wert. Angenommen du modifizierst den Wert nicht, beträgt er 2000. Solltest du nun 200 Fahrzeuge erstellen, loopt er trotzdem bis 2000 (oder 1999, je nach Gestaltung des Schleifenkopfs). Das Problem: GetVehicleModel() gibt 0 zurück, wenn das Fahrzeug nicht existiert -> 0 - 400 ergibt -400 -> du zersprengst deinen Array. Entweder du überprüfst, ob GetVehicleModel() nicht gleich 0 ist, oder du modifizierst deinen Schleifenkopf.