Beiträge von Kaliber

    screen -d -m -S fxserver 'cd /home/fx-server-data && /home/fx-server/run.sh +set onesync on +set onesync_population false +exec server.cfg'

    Versuch mal:


    Code
    screen -d -m -S fxserver bash -c 'cd /home/fx-server-data && /home/fx-server/run.sh +set onesync on +set onesync_population false +exec server.cfg'

    if(sInfo[pID][fraktion] == 1 || 2 || 3)

    Der Fehler hier ist die Abfrage, so geht das nicht.


    So kannst du das z.B. machen:


    C
    new frak = sInfo[pID][fraktion];
    if(frak == 1 || frak == 2 || frak == 3)
    
    //Oder alternativ auch einfach:
    if(frak <= 3)


    jedoch wird mir in jeder Fraktion das gleiche angezeigt jemand eine Idee ?

    Das ist etwas zu unspezifisch, wie du es beschreibst.


    UpdateHealundArmourLabel(i);

    Das ist Zeile 7 in deinem Code. Da übergibst du ja keine playerid, sondern eine FraktionsBaseID.


    So verwirrst du dich glaube selbst beim Skripten.

    Wieso du in der Funktion selbst auch nochmal durch alle FraktionsBases loopst ist mir ein Rätsel.


    Theoretisch brauchst du ja nur die übergebene FraktionsBase aktualisieren.


    Quasi so schreiben:


    C
    stock UpdateHealundArmourLabel(fvr)
    {
        new string[128];
        format(string,sizeof(string),""#GELB_HEX"Equipment Lager"WEISS_HEX"\n %i von %i \n zum benutzen Taste 'Z'", fInfo[fvr][fArmour],MAX_ARMOURPAKETE);
        UpdateDynamic3DTextLabelText(FraktionsArmour3DText[fvr][0],WEISS,string);
        return 1;
    }

    Wenn du das speziell für einen Spieler aufrufen magst, dementsprechend dann einfach nur:


    C
    UpdateHealundArmourLabel(Spieler[playerid][Fraktion]);

    nutzen.

    Tatsächlich ist mir aufgefallen, dass solche Actor Bugs im Interior viel häufiger auffallen, warum auch immer ^^

    Weiiil, und das kann für einige vllt ganz interessant sein, die Actors sich im selben Interior befinden, wie der User.


    Deshalb sollte man sie auch immer noch in eine virtuelle Welt setzen. Sobald der Spieler nämlich im Interior 0 ist, ist das auch der Actor und da für den Actor quasi kein Interior mehr existiert fällt er durch die Welt :D Am 0 Punkt stehen dann oft die ganzen Actor für einen, wenn man da mal lang fährt xD


    Also immer, wenn ein Actor im Interior ist, in eine Virtuelle Welt setzen lassen, damit das nicht passiert und natürlich neu laden, weil er meist ewig weit weg ist sonst.

    Wie reloade ich ihn am besten wie sollte die funktion am schlausten aussehen?

    Schwierig, kann man pauschal nicht so sagen.


    Ist er denn in einem Interior?


    Wenn ja, wie gesagt, kannst ja einfach eine ReloadActor Funktion schreiben, die ihn reloaded, also die Animation setzt. Bei mir hat aber auch das manchmal nicht geholfen, da musste man ihn komplett löschen und neu erstellen...ist zwar doof, weil er dann für 0.5sek halt mal net da ist, aaaber joa, so ist das halt mit denen :D


    //Edit: Kannst es auch mit dem Callback von MyU versuchen. Dieser wurde bei mir allerdings oft nicht aufgerufen...

    Falls er in einem Interior ist, solltest du diesen reloaden, sobald man das Interior betritt.


    Wenn er draußen ist, solltest du ihn reloaden, sobald die Person in einen Radius von ihm kommt.


    Das Problem ist nämlich, dass sie clientseitig animiert werden und wenn er zu weit weg ist, schlägt das fehl und es passiert nix.

    Moin leude,

    eine frage ich habe einen wert von 532 wie kann ich es nun machen das er mir nur die vollen 100er stellen anzeigt also 5?

    Da gäbe es sehr viele Möglichkeiten, ich demonstriere dir mal zwei:


    1. Einfach durch 100 teilen

    C
    new x = 532;
    new front = floatround(x/100, floatround_floor); //<< = 5

    2. Einfach in einen String konvertieren

    C
    new x = 532;
    new string[11];
    valstr(string, x);
    new front = string[0]-48; //Die -48 für die ASCII 0

    Wie ist denn deine Tabelle aufgebaut, ich bin etwas verwirrt.


    Es folgt vermutlich ein Syntax-Fehler, weil die Syntax an vielen Stellen fehlerhaft ist.


    Es fehlt ein FROM bei months und ich verstehe nicht, wieso ein JOIN. Also wenn ein subquery, aber auch hier macht das wenig Sinn.


    Du kannst schließlich direkt das Subquery nur aufrufen, das liefert dir schließlich dein Resultat...


    Kannst ja einfach:


    SQL
    SELECT COUNT(*) as count FROM orders WHERE time BETWEEN '2022-01-01' AND '2022-01-31';

    Jahr und Monat kannst ja jeweils dynamisch einfach übergeben und dann erhältst du dein Ergebnis.


    Ich verstehe nicht, was du da noch "dynamischer" machen magst.


    Wenn du doch schon genau das machen kannst, was du magst?!