Beiträge von Kaliber

    [19:33:16] [debug] Run time error 4: "Array index out of bounds"
    [19:33:16] [debug] Attempted to read/write array element at index 1 in array of size 1

    Da, das ist dein Fehler :)


    Wie hast du denn Fraktion deklariert? ;)



    Ich komm auf den Fehler nicht ich änder das die ganze zeit und die fehler beleiben..

    Dann schreib es doch mal ordentlich ^^


    Oder lager es aus.


    C
    new veh = GetPlayerVehicleID(playerid);
    new trailer = GetVehicleTrailer(vehicleid);
    new model = GetVehicleModel(veh);
    
    
    if((model == 514 || model == 515) && GetVehicleModel(trailer) == 584)

    Hinzufüge kann der Compeiler den Code nicht compeilen warum? bzw reagiert er nicht mehr

    Vermutlich weil die Zeile zu lang ist.


    Aber lager das doch aus:


    Schreib es lieber so, das ist effizienter:



    1. Dieses @ ist quasi nur forward und public.


    2. Das ist nur eine Schleife, die durch alle Spieler iteriert und prüft, ob ein Spieler länger als 120 Sekunden inaktiv war :D

    Hier mal eine Möglichkeit:


    Das kann an vielem liegen.


    Bist du sicher, dass es kein Klammerfehler ist?


    Weder ein { noch ein (.


    Hast du OP-Code wie #emit in deinem Skript?


    Kann auch an ungültigen defines liegen...


    Ein trick wäre..erstmal ganz viel auszukommentieren und es empfiehlt sich generell immer ein Backup zu haben :D

    Wie kann ich das machen das ich den Rang in einer der 4 Veralter Spalten setze und wenn zb in der ersten Spalte er den Rang 4 schon hat dass ich diesen in keienr anderen vergeben kann?

    z.B. so:




    Ist das eventuell zu aufwaendig umzusetzen?

    Kannst es so machen:



    //edit2: Habe gerade mal eine andere strcpy Funktion direkt im Script implementiert, aber auch dann schmiert der Compiler ab. Wird vielleicht irgendwas aus den YSI Bibliotheken genutzt was ich nicht weiss?

    Check dein Skript evtl mal auf Klammerfehler.


    Ansonsten kann es gut sein, dass ysi Probleme macht, bin mir grad gar nicht sicher, ob du dafür inzwischen schon den Zeex Compiler verwenden musst...

    Du kannst das so schreiben:



    Weiß nicht, was du mit der value als Parameter vor hast.


    Es ist besser vor der Schleife einmal den String zu formatieren, ansonsten wird er bei jedem durchlauf formatiert, das ist ja ineffizient.


    TeamsAlive(true) gibt hoffentlich 0 als ersten Index zurück :)

    Ah.. okay, also wäre es dann im Prinzip egal welchen Wert ich aus dem Array zur Initialisierung wähle?

    Naja, theoretisch, aber der Wert aus dem 0ten Index bietet sich ja an, weil du dann die Schleife einfach ab 1 starten lassen kannst.


    Alle anderen Werte bieten sich nicht so an, könntest natürlich auch den letzten Wert nehmen und die Schleife rückwärts laufen lassen... :D

    Wieso nimmst du denn in der diff minus des ersten Wertes sprich

    Damit ich direkt einen sinnvollen Initialisierungswert habe.


    Sonst könnte mein Wert ja das Ergebnis verfälschen und so ist man sicher, dass der Median auch in dem Array ist und nicht der Startwert.

    Das klingt nach einer interessanten Aufgabe :)


    Also ich hätte eine Idee wie man es machen kann, ob das die Beste ist, sei mal dahin gestellt.


    Du kannst einfach alle Werte aus dem Array summieren.


    C
    double sum=0;
    for(int i = 0; i < zahlenwert.Length; i++)
    {
        sum += zahlenwert[i];
    }


    So danach berechnest du den Mittelwert:


    C
    double mid = sum/zahlenwert.Length;

    So und jetzt prüfst du einfach, welches Element am nähsten dran ist:



    C
    double diff=Math.abs(mid-zahlenwert[0]),erg=zahlenwert[0];
    for(int i = 1; i < zahlenwert.Length; i++)
    {
        if(Math.abs(zahlenwert[i]-mid) < diff) erg = zahlenwert[i];
    }  
    //In erg steht nun dein Zahlenwert der dem Median am nähsten kommt

    die ID 174. Beim erneuten Ausführen (weiteres Fahrzeug wird hinzugefügt) würde man ja wieder auf die 174 kommen.

    Das ist ja der Witz an seiner Tabelle, egal wie er da was hinzufügt, alle anderen Zahlen darunter müssen sich natürlich um 1 erhöhen.
    Dadurch wurde eben nicht 174 wieder rauskommen, sondern 175.



    Eigene Tabelle für jedes Land habe ich auch dem Entwickler gesagt jedoch findet er es zu viel arbeit und wäre zu aufwendig in C#, jedoch bin ich erst seit kurzem im Entwickler-Team und bin halt für die Website und Datenbank zuständig, somit auch für die neuen Fahrzeuge eintragen, also eigene Länder war auch mein Plan, jedoch wollte er es halt nicht.

    Dann frage ihn doch, wie er sich das vorstellt, mit dem hinzufügen von Autos :D


    Wie wurde es denn bisher gemacht, das kannst du doch dann einfach ermitteln ^^

    Du hast n Array mit den Namen. ("Schweiz", "Niederlande", ...)


    Und wenn du der Schweiz ein Auto hinzufügen willst, suchst du nach der Nummer von den Niederlanden und rechnest -1 und fügst da einfach das Auto ein.


    Wobei es natürlich wesentlich sinniger gewesen wäre, für jedes Land eine eigene Tabelle anzulegen ^^