Beiträge von Kaliber

    Die ersten 3 Koordinaten, 0.0, 0.0, 1.0, sind die jeweiligen Koordinaten Achsen x, y und z.


    Wie du in dieser Abbildung sehen kannst:


    Vehicle_coordinate_system.jpg


    Wenn du die erste Koordinate größer oder kleiner machst, bewegt sich das Schild nach links oder rechts.

    Machst du die zweite Koordinate größer oder kleiner, bewegt es sich nach vorne oder hinten.

    Veränderst du die dritte Koordinate, bewegt es sich nach oben oder unten.


    Jetzt heißt es ein bisschen ausprobieren und herumspielen, bis du die richtige Koordinate gefunden hast.


    Theoretisch kannst du den Code auch in ein Filterskript auslagern und dann die Koordinate anpassen und das Filterscript neu laden.

    Oder du schreibst einen Befehl, der neue Positionen setzt.

    oooder natürlich du setzt die Koordinaten und wenn es nicht passt, änderst sie und startest den Server neu xD


    Da muss man etwas kreativ werden :)

    Für alle Objekte solltest du grundsätzlich einen Streamer nutzen.


    Ergo würde der Code so aussehen:


    C
    Taxis[0]=CreateVehicleEx(560,2374.9124,-1750.4507,13.1638,269.2184,6,6,-1,false); // yellocap 9
    
    new tObj = CreateDynamicObject(19308, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); 
    AttachDynamicObjectToVehicle(tObj, Taxis[0], 0.0, 0.0, 1.0, 0.0, 0.0, 0.0);

    Die Position von dem Objekt musst du in der Funktion AttachDynamicObjectToVehicle noch positionieren.

    Fehler ohne den Code zu sehen...ist immer bissl schwierig...


    Eventuell den immer zeigen und auch Informationen wie, in welchem Callback (public Methode) der Code gerade steht sind immer hilfreich.


    Auch noch einmal erläutern, was genau du zu erreichen versuchst...etc

    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.