Beiträge von Sry4pwn

    Jo danke, bin grad ned daheim, werde das später aber mal testen.
    Habe mir die atan2 Funktion auch schon angeschaut. Was ist denn der grundlegende Unterschied? dass man durch die zwei Parameter die Vorzeichen verwenden kann?

    Und zwar versuche ich grade eine Funktion zu schreiben, die mir einen Winkel zurückgibt, zu dem ein Spieler zu einem Fahrzeug steht.
    Das heißt.... wenn ein Fahrzeug irgendwie gedreht in der Map steht will ich wissen in welchem Winkel man vom Fahrzeug aus weggehen muss um zum Spieler zu kommen.


    Wenn das Fahrzeug A irgendwo steht will ich den Winkel zu S wissen (In dem Fall 315°)


    -------(0)----- S
    --------|--------
    (90) - A - (270)
    -------|---------
    -----(180)-------


    Bis jetzt läuft das auch ganz gut. Mein Problem ist nur, dass die Funktion eben nicht Werte von 0°-360° sondern nur von 0°-180°-0° zurückgibt.
    Sieht dann so aus:


    -------(0)----- S
    --------|--------
    (90) - A - (90)
    -------|---------
    -----(180)-------


    Hat einer ne Ahnung wie ich das umschreiben könnte, dass das funktioniert?
    Hier mein bisheriger Code:


    Danke schonmal ;)

    dann crasht wohl irgendwo dein Befehl.
    Wenn es immer noch nicht funktioniert geht es wohl am schnellsten, wenn du in die darauffolgenden Zeilen jeweils etwas in der Konsole ausgeben lässt. Somit kannst du überprüfen ab wo der Befehl crasht und weißt welche Zeile daran schuld ist.


    Also in etwa so:


    Code
    SetPlayerSkin(playerid,285);
    print("Debug1");
    GivePlayerWeapon(playerid,31,800);
    print("Debug2");
    GivePlayerWeapon(playerid,20,34);
    print("Debug3");
    GivePlayerWeapon(playerid,46,1);
    print("Debug4");
    format(string,sizeof(string),"HQ: %s hat den SWAT-Dienst begonnen.",MeinName(playerid));
    print("Debug5");

    einfach gesagt:
    Am anfang vom rennen setzt du mit SetPlayerRaceCheckpoint den ersten Checkpoint.


    Bei OnPlayerEnterRaceCheckpoint erhöhst du jedes mal eine Spielervariable um 1. Daraus kannst du dann ablesen, bei welchem Checkpoint der Spieler ist. Je nachdem setzt du im selben callback wieder mit SetPlayerRaceCheckpoint den nächsten Checkpoint fürs Rennen.
    Aus dieser Variable kannst du letztendlich dann auch auslesen, wann das Rennen beendet wurde.


    Ist zwar ned ausführlich erklärt. Aber die Grundsätze sollten dir jetzt klar sein.

    was für eine verschwendung...

    Code
    new text[400];
    if(sscanf(params,"s",text))return SendClientMessage(playerid,GRAU,"INFO: /a [Text]");


    würde um einiges ressourcensparender so funktionieren: (statt text einfach params verwenden)

    Code
    if(!strlen(params))return SendClientMessage(playerid,GRAU,"INFO: /a [Text]");

    Is in diesen Forum denn niemand in der Lage die fehlercodes nur annähernd zu lesen. Zwei Wörter aus dem ganzen Code zeigen dir schon, dass er die cameralookat Funktion nicht kennt. Als erstes schaut man dann nach ob man die Funktion richtig geschrieben hat.

    Weil er vielleicht ein zuverlässiges bussystem haben will und nicht einen Job wie jeder andere gf Server, den eh fast niemand nutzt. Außerdem.besteht dann wenigstens die chance, dass tatsächlich mal jemand mitm Bus fährt.


    Naja b2t:
    Zeig mal den zugehörigen npcmode her.

    Ähm sorry huggy?
    Willst du mich eigentlich verarschen?
    Das ist doch genau das, was ich die ganze Zeit sage. Dass man das Geld in ner variable speichern sollte und nicht in MySQL, weils einfach zu viele Ressourcen verbraucht.
    Aber Nein, du kamst natürlich nichtmal lesen und sagst, dass meine Methode, gleich deiner Methode firm arsch is?

    Naja, es gibt eben mods, die das möglich machen. Allerdings kannst du mit Fahrzeugen nicht auf anderen Fahrzeugen surfen. Das heißt du könntest höchstens scripten, dass man in das interior geportet wird. Wie oben schon gesagt.

    Ehrlich gesagt is es totaler Schwachsinn, das Geld nach jeder Transaktion auf ne Datenbank zu schreiben. Dafür sind Variablen nunmal da.
    In meinem System, dass ich oben beschrieben habe, wird das geld einfach in die Obst gespeichert. Mit einem globalen Update Timer kannst du die beiden werte vergleichen und bei Ungleichheit das geld resetten, bzw den spieler kicken.

    Ich versteh nicht wirklich was du jetzt genau haben willst?
    Verstehst du nicht wie du das Geld aus der db ausließt, oder willst du das Geld einfach nochmal in ne variable speichern um eventuellen "Hacks" vorzubeugen.


    Wenn das so ist, ist es bei einem bestehenden Script am einfachsten einfach GivePlayerMoney neu zu definieren. Natürlich kannst du auch ein neues "#define" machen.


    Wäre dann sowas in der Art, wenn du ganz einfach weiterhin giveplayermoney benutzen willst:

    Code
    native __GivePlayerMoney(playerid, money) = GivePlayerMoney;
    #define GivePlayerMoney(%0,%1) (SetPVarInt(%0, "geld", GetPVarInt(%0, "geld")+%1), __GivePlayerMoney(%0,%1))


    Natürlich musst du das dann für ResetPlayerMoney ergänzen, aber das sollte ja jetzt funktionieren ;)

    naja, es gehen trotzdem nur 1000 objekte auf einmal gestreamt.
    Der Streamer streamt die objekte aus, die außerhalb der Reichweite eines Spielers sind.
    Deswegen kann man eigentlich mehrere zig tausend objekte haben, allerdings immer nur maximal 1000 auf einem Fleck.


    Du könntest aber die Stream-distance von bestimmten Objekten runter setzen, die man wirklich erst aus nächster nähe sehen muss.

    getvehiclemodelinfo sollte da schon ausreichen.
    Die stoßstangen sollten ja ungefähr an der Position der Kennzeichen sein.
    Für die Lichter kannst du im normalfall die maße des Fahrzeugs nehmen. Bei den meisten Fahrzeugen sind die Lichter nunmal an den Ecken und auf der Höhe der Stoßstange.