OnEnterVehicle lässt spieler crashen

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Oh je ganz viele Probleme


    Ich hoffe diesmal kann mir auch jemand helfen und zwar wenn ich bei mir auf dem Server in ein Fahrzeug steige stürzt mein GTA ab :)


    hier onplayervehicle


    public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    TextDrawShowForPlayer(i, Tacho[i]);
    }
    return 1;
    }


    und hier das textdraw


    //~~ Tacho
    Tacho[playerid] = TextDrawCreate(498.000000, 123.000000, " "); // speedo
    TextDrawBackgroundColor(Tacho[playerid], 255);
    TextDrawFont(Tacho[playerid], 1);
    TextDrawLetterSize(Tacho[playerid], 0.389899, 1.299900);
    TextDrawColor(Tacho[playerid], 13107455);
    TextDrawSetOutline(Tacho[playerid], 1);
    TextDrawSetProportional(Tacho[playerid], 1);



    der timer
    SetTimer("TachoTimer",1000,1); //Tacho




    und hier tachotimer public


    public TachoTimer()
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i) && IsPlayerInAnyVehicle(i))
    {
    new Float:Entfernung, Float:Geschwindigkeit; // Die definierten Floats die mit den Werten gefüttert werden
    GetVehiclePos(GetPlayerVehicleID(i), X1[i], Y1[i], Z1[i]); //Erste Koordinate wird genommen
    Entfernung = floatsqroot(floatpower(floatabs(floatsub(X1[i], X2[i])), 2)+floatpower(floatabs(floatsub(Y1[i], Y2[i])), 2)+floatpower(floatabs(floatsub(Z1[i], Z2[i])), 2)); //Berechnung der Entfernung
    Geschwindigkeit = (Entfernung / (500/1000)) * 3.6; //Meter/Sekunde in Kilometer/Stunde
    new Tachostring[20]; // definiert den String
    if(floatround(Geschwindigkeit) >=0)
    {
    format(Tachostring, sizeof(Tachostring), "~w~Speed: ~g~~h~%d ~w~KM/h %d", floatround(Geschwindigkeit));
    }
    else if(floatround(Geschwindigkeit) >= 50)
    {
    format(Tachostring, sizeof(Tachostring), "~w~Speed: ~Y~~h~%d ~w~KM/h %d", floatround(Geschwindigkeit));
    }
    else if(floatround(Geschwindigkeit) >= 90)
    {
    format(Tachostring, sizeof(Tachostring), "~w~Speed: ~r~~h~%d ~w~KM/h %d", floatround(Geschwindigkeit));
    }
    TextDrawSetString(Tacho[i], Tachostring); //Setzt den String für das Textdraw für den Spieler mit der ID "i"
    GetVehiclePos(GetPlayerVehicleID(i), X2[i], Y2[i], Z2[i]); //Zweite Koordinate wird genommen
    TextDrawShowForPlayer(i, Tacho[i]);
    }
    else
    {
    TextDrawHideForPlayer(i, Tacho[i]);
    }
    }
    return 1;
    }



    Hoffe mir kann jemand helfen Danke im Vorraus

    ik bin der vito c:

  • if(newstate == PLAYER_STATE_DRIVER)
    {
    TextDrawShowForPlayer(playerid, Tacho[playerid]);
    }
    return 1;
    }
    if(oldstate == PLAYER_STATE_DRIVER)
    {
    TextDrawHideForPlayer(playerid, Tacho[playerid]);
    }
    return 1;
    }


    public TachoTimer(playerid) Mach das...brauchste keine Schleife machen


    Hauptsache ist Tacho[playerid]