Beiträge von Kaliber

    Du nutzt überall if...und nicht else if oder ein return.


    Das bedeutet egal was du tust, es wird immer alles geprüft. Das ist zwar schlecht, sollte aber noch nicht deinen Fehler verursachen.


    Eventuell gibt es einen Runtime Fehler, lad mal crashdetect und schau mal, ob er dir einen Fehler anzeigt.


    Wichtig ist noch, dass du in deinen TextDraws auch überall eine TextSize gesetzt hast :)

    goto ist zum 3.x jetzt oder so dreck ^^


    Schreib dir doch einfach eine Funktion die dir die IDs von 2 random Spielern wiedergibt und Kapsel das alles ein wenig.


    Wenn du das Auto erstellt, dann sitzt niemand im Fahrzeug. Das bedeutet die Funktion GetPlayerVehicleID macht hier keinen Sinn. Zumal i noch nicht einmal einen Spieler repräsentiert.


    Insofern musst du das so schreiben:


    C
    for(new i; i<sizeof(ahCars); i++)
    {
        ahCars[i][id_x] = AddStaticVehicle(ahCars[i][model],ahCars[i][c_x],ahCars[i][c_y],ahCars[i][c_z],ahCars[i][c_r],-1,-1);
        format(string,sizeof(string),"***[%s]***\nSteht für %i€ zum Verkauf",CarName[ahCars[i][model]-400],ahCars[i][ah_preis]);
        Create3DTextLabel(string,0x008080FF,ahCars[i][c_x],ahCars[i][c_y],ahCars[i][c_z],10,0,0);
    }

    Muss ich das Symbol selber nachbauen? :o

    Natürlich nicht.


    Wie schon erwähnt, gibt es dies als Sprite.


    Da schreibst du dann einfach folgendes rein:


    new Text:x = TextDrawCreate(265.000, 263.500, "LD_DRV:silver");
    TextDrawFont(x, 4);
    TextDrawTextSize(x, 100.000, 100.000);
    TextDrawColor(x, -1);


    und schon wird dir das Sprite angezeigt :)

    Wahrscheinlich ist das einfach nur draufgeschrieben mit: SetObjectMaterialText


    Dort einfach richtige font & size & color auswählen und fertig :)


    Man könnte natürlich auch ein richtiges M machen, indem man bestimmte Objekte aneinanderreiht und diese färbt mit SetObjectMaterial :)

    Mach lieber so etwas:



    C
    #define IsNoAdmin(%0,%1) (sI[%0][pAdmin] < (%1))
    #define NO_ADMIN SendClientMessage(playerid, COLOR_FEHLER, SERVER_KEINADMIN)
    
    
    //Und dann im Skript:
    if(IsNoAdmin(playerid, 3)) return NO_ADMIN;

    Wenn du es lieber auf deine Art machen willst, dann musst du unterschiedliche Werte returnen :)

    Kommt eine andere Fehlermeldung?


    Evtl einfach mal paar Updates Commands laufen lassen, das kann nie schaden ^^


    Code
    sudo apt-get update
    sudo apt-get upgrade
    sudo apt-get dist-upgrade

    Also ich bin mal so frei und zeige dir einige Fehler von dir auf:

    • Die Funktion in deinem Timer heißt anders, als deine Funktion im Skript.
    • In deiner public Funktion ist der Speed (die 5) an der falschen Position.
    • Du veränderst Positions-Koordinaten, du willst aber Rotations-Achsen verändern.
    • Du schreibst einfach so eine if-Abfrage in deinen Befehl, allerdings verwendest du weder Klammern, noch schreibst du dahinter etwas. Das wird zwar vom Compiler interpretiert...ist aber eine scheußliche Darstellung.

    So, ich bin mal freundlich und gebe dir sowohl die richtigen Koordinaten, als auch die richtige Struktur:


    mfg. :thumbup: