Beiträge von Kaliber

    Das klappt beim Streamer aber nicht bzw. nur bedingt.

    Das soll auch gar nicht beim Streamer klappen, deshalb sagte ich, er soll ans Ende der Map gehen da dort alle Streamer Objekte zerstört wurden.


    Warum sollte man Objekte nur bei OnGameModeInit erstellen? Es gibt genügend Fälle, Objekte irgendwann zu erstellen und auch wieder zu löschen.

    Jo...aber ich denke diese Menge kann er einkalkulieren, ich denke es ging ihm um seine Map. Die man unter OnGameModeInit normalerweise erstellt


    Wie dem auch sei...du musst nicht sagen, dass das schlechte Methoden sind...denn diese funktionieren genauso gut wie deine...und die eine sogar ohne zusätzlichen Code...

    Das ist eine schlechte Lösung, vor allem dann, wenn man ein Objekt löscht, dann klappt das nämlich nicht.

    Ja natürlich unter OnGameModeInit löscht man direkt ein Objekt...


    und das unter F5 zeigt die aktuellen Objekte an.


    GetObjectCount()

    Wenn man ein Objekt löscht..wird es hier auch nicht angezeigt.


    Zudem sollte noch erwähnt werden, dass diese Funktion aufgerufen werden sollte, nachdem die Objekte erstellt wurden...

    Huch, hatte einen Fehler in der Funktion getPlayerSpeed, schreib sie so:


    C
    stock getPlayerSpeed(playerid)
    {
        new Float:x,Float:y,Float:z,v=GetPlayerVehicleID(playerid);
        if(!v) GetPlayerVelocity(playerid,x,y,z);
        else GetVehicleVelocity(v,x,y,z);
        return floatround(VectorSize(x,y,z) * 161.0);
    }

    Wie meinst du das genau? Mit Filterscripts oder ohne?


    Wenn du alle CreateObjects an einem Fleck hast, dann sieht das ja so aus:



    C
    CreateObject(...);
    CreateObject(...);
    CreateObject(...);
    CreateObject(...);
    //Und bei dem letzten CreateObject
    new objects = CreateObject(...);
    printf("Anzahl der Objekte: %d",objects);

    Allerdings solltest du CreateDynamicObject verwenden. (Also einen Streamer)


    Ingame kannst du dir das eig auch ganz schnell anzeigen lassen...fliege ans Ende der Map wo keine Objekte mehr sind und dann drück F5.
    Dort siehst du dann ObjectSlotsUsed und das sind auch die Anzahl deiner CreateObjects (da CreateDynamicObjects gelöscht werden würden).

    Da sollte wohl noch jemand gründlicher ins Wiki schauen und sich das in Ruhe durchlesen.


    wie soll ich bitte einen Timer erstellen der sich alle 250ms aktualisiert

    Ich würde fast sagen mit [wiki]SetTimer[/wiki] oder [wiki]SetTimerEx[/wiki], je nachdem wie du es nutzen willst.


    Willst du von mir, dass ich dir den ganzen Code auf einem Silber-Tablett serviere oder wie? :D


    Dann hier ein Beispiel:


    aber wie

    ...da gibt es bestimmt tausende von Tutorials etc zu.


    Grobe Richtung...du brauchst einen Timer...der sich ca alle 250ms aktualisiert, je nachdem wie flüssig du es haben willst.


    Anschließend prüfst du ob der Spieler sich in einem Fahrzeug befindet.


    Wenn ja, verwendest du format & getPlayerSpeed und zeigst es dem Spieler mit: [wiki]PlayerTextDrawSetString[/wiki] an.


    und fertig :)


    //Edit auf dein Edit:
    Dann aktualisierst du den String nicht :)

    Deine Fehler waren, dass du die Funktionen falsch geschrieben hattest & du rtn nicht deklariert hattest.


    Dennoch empfehle ich es dir, das so zu machen:


    C
    stock getPlayerSpeed(playerid)
    {
        new Float:x,Float:y,Float:z,v=GetPlayerVehicleID(playerid);
        if(!v) GetVehicleVelocity(v,x,y,z);
        else GetPlayerVelocity(playerid,x,y,z);
        return floatround(VectorSize(x,y,z) * 161.0);
    }

    Wenn du eine TextSize von 0 angibst kann das ja auch nicht funktionieren, weil das bedeuten würde, dass dein TextDraw eine Höhe von 0 hat..
    Also ist es nicht existent...


    Versuch mal:


    PlayerTextDrawTextSize(playerid,LoginLabel[playerid], 280.0, 210.0);

    Sehr geehrte Herrschaften,


    wenn ich Sie bitten dürfte doch die Konversation Funktion hier im Forum zu verwenden.


    Sie ziehen das Smalltalk Niveau zu sehr in die Höhe.


    Verbittlichsten Dank die Herren.
    Ihr Kaliber von und zu Brotfisch

    ...du nutzt immer noch 2 MySQL Versionen..



    Du brauchst nur eine...


    und wenn du crashdetect lädst, brauchst kein nativechecker mehr ^^

    Brauchst da keine Schleife und keine globale Variable.


    Mach dir am einfachsten eine kurze Funktion für die Übersicht:

    C
    stock hasEngine(vID)
    {
        switch(GetVehicleModel(vID))
        {
    	case 509,510,481: return 0;
        }
        return 1;
    }


    Und dann kannst du es so schreiben:


    //Edit:
    Ja das lag an dieser Zeile:


    Zitat

    if(AutosOhneMotor[ i ]==vModel)continue;

    Richtig wäre:


    if(AutosOhneMotor[i]!=vModel)continue;


    Dennoch würde ich dir meine Version empfehlen ^^