SPeedometer problem im GF

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
  • Habe mal folgendes problem und zwart geht es um die meldung welche ich gleich kommentiere



    public Speedometer(playerid)
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    new vehicleid,Float:speed_x,Float:speed_y,Float:speed_z,Float:final_speed,speed_string[256],final_speed_int, Float:chealth;
    vehicleid = GetPlayerVehicleID(playerid);
    GetVehicleVelocity(vehicleid,speed_x,speed_y,speed_z);
    final_speed = floatsqroot(((speed_x*speed_x)+(speed_y*speed_y))+(speed_z*speed_z))*144; // 136.666667 = kmph // 85.4166672= mph
    final_speed_int = floatround(final_speed,floatround_round);
    GetVehicleHealth(vehicleid, chealth);
    new LocationZone[MAX_ZONE_NAME];
    GetPlayer2DZone(playerid, LocationZone, MAX_ZONE_NAME);
    format(speed_string,200,"~B~Fahrzeug: ~W~%s~n~~B~Km/h: ~W~%d km/h~n~~B~Zustand: ~W~%d%%~n~~B~Benzin: ~W~%d%%~n~~B~GPS: ~W~%s",VehicleName[GetVehicleModel(vehicleid)-400], final_speed_int, floatround(chealth, floatround_round)/10, Gas[vehicleid], LocationZone);
    TextDrawSetString(Speedo[playerid], speed_string);
    //format(string, 256, "~n~~n~~n~~n~~n~~n~~g~Auto Schaden : ~w~%.0f",health);//
    new VID, Float:h_vid;
    if(IsPlayerConnected(playerid) && IsPlayerInAnyVehicle(playerid))
    {
    VID = GetPlayerVehicleID(playerid);
    GetVehicleHealth(VID, h_vid);
    if(h_vid <= 500)
    {
    TogglePlayerControllable(playerid, 0);
    SendClientMessage(playerid, 0xFF6900AA, "Dieses Fahrzeug hat nun einen Motorschaden. Rufe die Feuerwehr"); // <--- DIese meldung soll nur einmalkommen..
    //PlayerMessageMotorschaden[playerid] = true;
    SetVehicleHealth(vehicleid, 210.0);
    SetPlayerHealth(playerid,100);
    return 0;
    }
    }
    }
    return 1;
    }


    Der speedometer wird mit einem timer abgefragt dieser soll aber nicht gestoppt werden.. nur die meldung soll 1x kommen sie spammt den ganzen bildschirm zu..
    Nur wie ?

  • Schick mal bitte den Timer, ich glaube daran liegt das Problem.


    Gruß Andy

  • Hier einmal der speedo bei


    //OnPlayerStateCHange



    if(newstate == PLAYER_STATE_DRIVER)
    {
    TextDrawShowForPlayer(playerid,Speedo[playerid]);
    if(!IsANoTachoVehicle(GetPlayerVehicleID(playerid)))
    {
    SetTimerEx("Speedometer", 500, 1, "d", playerid);
    }
    }


    Und hier nochmal der Speedometer



    public Speedometer(playerid)
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    new vehicleid,Float:speed_x,Float:speed_y,Float:speed_z,Float:final_speed,speed_string[256],final_speed_int, Float:chealth;
    vehicleid = GetPlayerVehicleID(playerid);
    GetVehicleVelocity(vehicleid,speed_x,speed_y,speed_z);
    final_speed = floatsqroot(((speed_x*speed_x)+(speed_y*speed_y))+(speed_z*speed_z))*144; // 136.666667 = kmph // 85.4166672= mph
    final_speed_int = floatround(final_speed,floatround_round);
    GetVehicleHealth(vehicleid, chealth);
    new LocationZone[MAX_ZONE_NAME];
    GetPlayer2DZone(playerid, LocationZone, MAX_ZONE_NAME);
    format(speed_string,200,"~B~Fahrzeug: ~W~%s~n~~B~Km/h: ~W~%d km/h~n~~B~Zustand: ~W~%d%%~n~~B~Benzin: ~W~%d%%~n~~B~GPS: ~W~%s",VehicleName[GetVehicleModel(vehicleid)-400], final_speed_int, floatround(chealth, floatround_round)/10, Gas[vehicleid], LocationZone);
    TextDrawSetString(Speedo[playerid], speed_string);
    //format(string, 256, "~n~~n~~n~~n~~n~~n~~g~Auto Schaden : ~w~%.0f",health);//
    new VID, Float:h_vid;
    if(IsPlayerConnected(playerid) && IsPlayerInAnyVehicle(playerid))
    {
    VID = GetPlayerVehicleID(playerid);
    GetVehicleHealth(VID, h_vid);
    if(h_vid <= 500)
    {
    TogglePlayerControllable(playerid, 0);
    SendClientMessage(playerid, 0xFF6900AA, "Dieses Fahrzeug hat nun einen Motorschaden. Rufe die Feuerwehr");
    //PlayerMessageMotorschaden[playerid] = true;
    SetVehicleHealth(vehicleid, 210.0);
    SetPlayerHealth(playerid,100);
    return 0;
    }
    }
    }
    return 1;
    }


    Bittefein :D?

    5 Mal editiert, zuletzt von ScyFox () aus folgendem Grund: ... Was verändert ......

  • Versuche mal


    SetTimerEx("Speedometer", 500, 1, "d", playerid);



    zu



    SetTimerEx("Speedometer", 500, 1, "i", playerid);