Beiträge von Jeffry

In 10 Minuten startet der nächtliche Backupvorgang! Es kann währenddessen (ca. 10 Minuten) zu Einschränkungen bei der Nutzung des Forums kommen
Weitere Infos findet ihr im Thema Backup des Forums

    Hiermit kannst du es abfragen:
    http://wiki.sa-mp.com/wiki/GetPlayerVelocity


    Damit fragst du ab, ob z negativ ist, mit GetPlayerState fragst du ab, ob der Spieler auch On Foot ist und mit GetPlayerAnimationIndex musst du noch abfragen, ob die "am Fallschirm hängen" Animation ausgeführt wird, dann darf es sich ja nicht ändern.


    Wenn alles zutrifft:
    http://wiki.sa-mp.com/wiki/SetPlayerVelocity
    Zu x, y (hast du ja zuvor abgefragt) und z setzt du zu -0.1 oder so, musst du eben anpassen, wie schnell du es haben willst.



    Das ganze steht bei OnPlayerUpdate.

    Das liegt daran, dass du den nächsten Checkpoint auch angeben musst, damit die Richtung passt:
    public OnPlayerEnterRaceCheckpoint(playerid)
    {
    printf("Prüfung: %d", Prufung[playerid]);
    if(Prufung[playerid] == 1)
    {
    new cID = GetPVarInt(playerid, "fCP");
    printf("cID: %d /Range: %d", cID, IsPlayerInRangeOfPoint(playerid, 10, fsCP[cID][fx], fsCP[cID][fy], fsCP[cID][fz]));
    if(IsPlayerInRangeOfPoint(playerid, 10, fsCP[cID][fx], fsCP[cID][fy], fsCP[cID][fz]))
    {
    cID++;
    if(cID > sizeof(fsCP))
    {
    printf("Ende");
    SetPVarInt(playerid, "fCP", 0);
    new string[128];
    format(string,128,"{C8C8C8}Du hast den Flugschein erfolgreich {41FF00}bestanden.");
    DestroyVehicle(GetPVarInt(playerid,"Flugzeug"));
    SetPlayerPos(playerid,415.1635,2535.5076,19.1484);
    SetPlayerVirtualWorld(playerid,0);
    Prufung[playerid] = 0;
    Flugschein[playerid] = 1;
    }
    else
    {
    printf("Nächster: %d", cID);
    SetPVarInt(playerid, "fCP", cID);
    if(cID < sizeof(fsCP)-1) SetPlayerRaceCheckpoint(playerid, 3, fsCP[cID][fx], fsCP[cID][fy],fsCP[cID][fz], fsCP[cID+1][fx], fsCP[cID+1][fy],fsCP[cID+1][fz], 10);
    else SetPlayerRaceCheckpoint(playerid, 4, fsCP[cID][fx], fsCP[cID][fy],fsCP[cID][fz], fsCP[cID][fx], fsCP[cID][fy],fsCP[cID][fz], 10);
    }
    }
    return 1;
    }
    DisablePlayerRaceCheckpoint(playerid);
    return 1;
    }


    Das mit dem letzten Checkpoint war wegen dem >=, das musste nur > sein.

    Debugge es mal so:
    public OnPlayerEnterRaceCheckpoint(playerid)
    {
    printf("Prüfung: %d", Prufung[playerid]);
    if(Prufung[playerid] == 1)
    {
    new cID = GetPVarInt(playerid, "fCP");
    printf("cID: %d /Range: %d", cID, IsPlayerInRangeOfPoint(playerid, 5, fsCP[cID][fx], fsCP[cID][fy], fsCP[cID][fz]));
    if(IsPlayerInRangeOfPoint(playerid, 5, fsCP[cID][fx], fsCP[cID][fy], fsCP[cID][fz]))
    {
    cID++;
    if(cID >= sizeof(fsCP))
    {
    printf("Ende");
    SetPVarInt(playerid, "fCP", 0);
    new string[128];
    format(string,128,"{C8C8C8}Du hast den Flugschein erfolgreich {41FF00}bestanden.");
    DestroyVehicle(GetPVarInt(playerid,"Flugzeug"));
    SetPlayerPos(playerid,415.1635,2535.5076,19.1484);
    SetPlayerVirtualWorld(playerid,0);
    Prufung[playerid] = 0;
    Flugschein[playerid] = 1;
    }
    else
    {
    printf("Nächster: %d", cID);
    SetPVarInt(playerid, "fCP", cID);
    SetPlayerRaceCheckpoint(playerid, 3, fsCP[cID][fx], fsCP[cID][fy],fsCP[cID][fz], fsCP[cID][fx], fsCP[cID][fy],fsCP[cID][fz], 10);
    }
    }
    return 1;
    }
    DisablePlayerRaceCheckpoint(playerid);
    return 1;
    }


    Falls Range 0 ist, dann erhöhe mal die 5 beim Umkreis von IsPlayerInRangeOfPoint.

    Das machst du mit der Schleife, würde so aussehen:


    new string[20] = "Test";
    new pixels;
    for(new i=0; i<strlen(string); i++)
    {
    switch(string[i])
    {
    case 'a': pixels += 4;
    case 'b': pixels += 4;
    //...
    }
    }
    if(pixels < 40) //drei Tabs
    else if(pixels < 80) //zwei Tabs
    else //ein Tab


    Je nach dem wie viele Tabs du haben willst natürlich, und wie lang der String sein kann, werden das mehr if-Verknüpfungen.

    Es ist eigentlich nur die ein Include, streamer.inc und das Plugin. Von beidem kannst du dir ja ein Backup vorher machen.
    Wenn du Fehler im Code hast kannst du die ja posten.


    Aber du verwendest wahrscheinlich eine alte Plugin Version und alte Includes, zusammen mit einem alten Code. Dadurch funktioniert es wahrscheinlich nicht richtig.
    Ich kann dir auch nur diese Vorschläge geben, da das bei mir so funktioniert.


    Mach dir eine Kopie von deinem Server Ordner (komplett), dann kannst du nichts kaputt machen. So teste ich immer irgendwelchen Kram aus. ;)

    Du kannst die Pixel der Buchstaben zählen und aufaddieren. Für jede 40 Pixel fällt 1 Tabulator weg.
    Allerdings sind die Buchstaben-Größen auf Full-HD Auflösung anders als bei den anderen Auflösungen, von daher wird es nie bei allen Spielern passen, das ist aber die beste Methode es zu machen.


    Über eine Schleife kannst du dann durch die Buchstaben des Strings gehen und aufaddieren.

    Das Limit von 1000 Objekten kannst du nicht erhöhen, das ist in SA-MP so festgelegt, daran lässt sich auch nichts machen.
    Ein Streamer macht nichts anderes als die Objekte die nicht in deiner Nähe sind zu löschen, sprich er zeigt dir nur die Objekte an, die du auch siehst, bzw. sehen kannst, zum Beispiel Objekte in LV sind gar nicht geladen, wenn dort niemand ist.


    Einen anderen Streamer musst du da nicht verwenden, das Streamer Plugin ist der beste Streamer.


    Bei dir ist es möglicherweise so, dass du in dem Bereich schon mehr als 1000 Objekte hast und dir deshalb nicht alle angezeigt werden (viele kleine Objekte an einem Ort?).
    Deshalb der Vorschlag mal die ganzen Objekte zu entfernen, bis auf die, die nicht angezeigt werden. Werden sie dann angezeigt? Wenn ja, dann liegt es am Limit.
    Wenn nein, dann liegt es an etwas anderem.

    Aber das musst du auf jeden Fall so lassen, sollte klar sein.
    Da es jetzt ja immer noch so wenig ist, tippe ich mal, dass deine vtankverbrauch's ziemlich klein sind, und wenn du die auch noch durch 100 teilst dauert es ewig.


    Mach mal das "/100" am Ende der Rechnung weg und teste es dann. Wenn es auch dann nicht geht, poste mal dein Array welches die Wert für vtankverbrauch beinhaltet.