Geschwindigkeit messen problem

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
  • Hallo,


    ich versuche momentan ein Fahrschul system. Man darf nicht schneller als 80 KM/H fahren nur wenn ich mehr als 80 KM7H fahren kommt keine nachricht code.
    forward Wegenzuschnell(playerid);
    public Wegenzuschnell(playerid)
    {
    new Float:xg,Float:yg,Float:zg;
    new Float:distance,value;
    new Float:carhealth;
    GetPlayerPos(playerid, xg, yg, zg);
    GetVehicleHealth(GetPlayerVehicleID(playerid), carhealth);
    distance = floatsqroot(floatpower(floatabs(floatsub(xg,SavedPOSx[playerid])),2)+floatpower(floatabs(floatsub(yg,SavedPOSy[playerid])),2)+floatpower(floatabs(floatsub(zg,SavedPOSz[playerid])),2));
    value = floatround(distance * 800);
    if(floatround(value/3200) < 500)
    {
    new cspeed = floatround(value/3200);
    new maxspeed = 83;
    if(cspeed > maxspeed)
    {
    fahrschulfehler[playerid] += 1;
    SendClientMessage(playerid, COLOR_RED, "Achtung! Du fährst zu schnell!");
    SendClientMessage(playerid, COLOR_RED, "Maximale Geschwindkeit: 80 Km/h");
    }
    }
    SavedPOSx[playerid] = xg;
    SavedPOSy[playerid] = yg;
    SavedPOSz[playerid] = zg;
    return 1;
    }

  • forward Wegenzuschnell(playerid);
    public Wegenzuschnell(playerid)
    {
    new Float:xg,Float:yg,Float:zg;
    new Float:distance,value;
    new Float:carhealth;
    GetPlayerPos(playerid, xg, yg, zg);
    GetVehicleHealth(GetPlayerVehicleID(playerid), carhealth);
    distance = floatsqroot(floatpower(floatabs(floatsub(xg,SavedPOSx[playerid])),2)+floatpower(floatabs(floatsub(yg,SavedPOSy[playerid])),2)+floatpower(floatabs(floatsub(zg,SavedPOSz[playerid])),2));
    value = floatround(distance * 800);
    if(floatround(value/3200) < 500)
    {
    new cspeed = floatround(value/3200);
    new maxspeed = 83;
    if(cspeed > maxspeed)
    {
    fahrschulfehler[playerid] += 1;
    SendClientMessage(playerid, COLOR_RED, "Achtung! Du fährst zu schnell!");
    SendClientMessage(playerid, COLOR_RED, "Maximale Geschwindkeit: 80 Km/h");
    return 1;
    }
    }
    SavedPOSx[playerid] = xg;
    SavedPOSy[playerid] = yg;
    SavedPOSz[playerid] = zg;
    return 1;
    }


    Vielleicht so?

  • Ansonsten einfach mal ausprinten lassen was er denn anzeigt.




    forward Wegenzuschnell(playerid);
    public Wegenzuschnell(playerid)
    {
    new Float:xg,Float:yg,Float:zg;
    new Float:distance,value;
    new Float:carhealth;
    GetPlayerPos(playerid, xg, yg, zg);
    GetVehicleHealth(GetPlayerVehicleID(playerid), carhealth);
    distance = floatsqroot(floatpower(floatabs(floatsub(xg,SavedPOSx[playerid])),2)+floatpower(floatabs(floatsub(yg,SavedPOSy[playerid])),2)+floatpower(floatabs(floatsub(zg,SavedPOSz[playerid])),2));
    value = floatround(distance * 800);
    printf("floatround(distance * 800) = %d", value);
    if(floatround(value/3200) < 500)
    {
    new cspeed = floatround(value/3200);
    new maxspeed = 83;
    if(cspeed > maxspeed)
    {
    fahrschulfehler[playerid] += 1;
    SendClientMessage(playerid, COLOR_RED, "Achtung! Du fährst zu schnell!");
    SendClientMessage(playerid, COLOR_RED, "Maximale Geschwindkeit: 80 Km/h");
    return 1;
    }
    }
    SavedPOSx[playerid] = xg;
    SavedPOSy[playerid] = yg;
    SavedPOSz[playerid] = zg;
    return 1;
    }