Motorschaden System Script Crash

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 Breadfish


    Ich habe versucht ein Motorschaden System zu schreiben aber irgendwie crasht mein Script beim speichern.


    Wie habe ich es geschrieben?


    Funtion Motorschadensystem(playerid)
    {
    new Float:health;
    new veh = GetPlayerVehicleID(playerid);
    GetVehicleHealth(veh, health);
    if(health < 300) return SendClientMessage(playerid, COLOR_RED, "Du hast einen Motorschaden!");
    RemovePlayerFromVehicle(playerid);
    }
    }



    Was mache ich falsch? :hm:

  • Sorry so schrieb ich es @#>3;y




    public Motorschadensystem(playerid)
    {
    new Float:health;
    new veh = GetPlayerVehicleID(playerid);
    GetVehicleHealth(veh, health);
    if(health < 300) return SendClientMessage(playerid, COLOR_RED, "Du hast einen Motorschaden!");
    RemovePlayerFromVehicle(playerid);
    }



    trotzdem kommen 2 warnings irgendwie mache ich etwas falsch

  • Funktion so und folgendes oben ins Script.


    forward Motorschadensystem(playerid);



    [list=1][*]public Motorschadensystem(playerid)
    [*]{
    [*]new Float:health;
    [*]new veh = GetPlayerVehicleID(playerid);
    [*]GetVehicleHealth(veh, health);
    [*]if(health < 300) return SendClientMessage(playerid, COLOR_RED, "Du hast einen Motorschaden!");
    [*]RemovePlayerFromVehicle(playerid);
    [*]return 1;
    [*]}
    [/list]

  • Beitrag von Whice ()

    Dieser Beitrag wurde vom Autor aus folgendem Grund gelöscht: Tooo late ().
  • Habe den Standart system drin gelassen die Fahrzeug HP heißt speedo HP alles geht das Problem ist nur das die Nachricht ständig wiederholt wird.


    @shoxinat0r




    new Float:Speedo_X,Float:Speedo_Y,Float:Speedo_Z;
    new Float:Speedo_HP;
    for(new i=0; i<SLOTS; i++)
    {
    if(IsPlayerConnected(i) && IsPlayerInAnyVehicle(i) && !IsANoTachoVehicle(GetPlayerVehicleID(i)))
    {
    GetPlayerPos(i, Speedo_X, Speedo_Y, Speedo_Z);
    GetPlayerVehicleID(i);
    GetVehicleHealth(GetPlayerVehicleID(i), Speedo_HP);


    new /*str1[256],*/str2[256],str3[256],str4[256];////
    if(SpeedoON[i] == 0)
    {
    TextDrawShowForPlayer(i, kmh[i]); TextDrawShowForPlayer(i, Speedshower[i]);
    TextDrawShowForPlayer(i, tank[i]); TextDrawShowForPlayer(i, tFuelInfo[i]);
    TextDrawShowForPlayer(i, tFuelLogo[i]); TextDrawHideForPlayer(i, zustand[i]); TextDrawShowForPlayer(i, Kanister[i]);
    SpeedoON[i] = 1;
    }
    new Float:speed_x,Float:speed_y,Float:speed_z,Float:final_speed,final_speed_int;
    new veh = GetPlayerVehicleID(i);
    GetVehicleVelocity(veh, speed_x, speed_y, speed_z);
    final_speed = floatsqroot(((speed_x*speed_x)+(speed_y*speed_y))+(speed_z*speed_z))*136.666667; // 136.666667 = kmph // 85.4166672= mph
    final_speed_int = floatround(final_speed,floatround_round);
    new kmh_anzahl = final_speed_int;


    /*format(str1,sizeof(str1),"~w~%s",VehicleName[GetVehicleModel(GetPlayerVehicleID(i))-400]);
    TextDrawSetString(fahrzeug[i], str1);*/


    if(kmh_anzahl >= 210)
    {
    format(str2,sizeof(str2),"~w~%d",kmh_anzahl);
    TextDrawSetString(kmh[i], str2);
    }
    else if(kmh_anzahl >= 150)
    {
    format(str2,sizeof(str2),"~w~%d",kmh_anzahl);
    TextDrawSetString(kmh[i], str2);
    }
    else if(kmh_anzahl >= 90)
    {
    format(str2,sizeof(str2),"~w~%d",kmh_anzahl);
    TextDrawSetString(kmh[i], str2);
    }
    else if(kmh_anzahl >= 40)
    {
    format(str2,sizeof(str2),"~w~%d",kmh_anzahl);
    TextDrawSetString(kmh[i], str2);
    }
    else
    {
    format(str2,sizeof(str2),"~w~%d",kmh_anzahl);
    TextDrawSetString(kmh[i], str2);
    }
    new vehicleid = GetPlayerVehicleID(i);
    format(str3,sizeof(str3),"~w~%d", Gas[vehicleid]);
    TextDrawSetString(tank[i], str3);


    if(Speedo_HP >= 310)
    {
    format(str4,sizeof(str4),"~y~Zustand: ~w~%.2f", Speedo_HP);
    TextDrawSetString(zustand[i], str4);



    }
    else if(Speedo_HP >= 280)
    {
    new lights,alarm,doors,bonnet,boot,objective;
    new vid = GetPlayerVehicleID(i);
    format(str4,sizeof(str4),"~y~Zustand: ~w~%.2f", Speedo_HP);
    TextDrawSetString(zustand[i], str4);


    SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    TogglePlayerControllable(i,false);
    TogglePlayerControllable(i,true);
    SendClientMessage(i,weiß,"Mit Service mechaniker kannst du einen Mechaniker erreichen.");
    MotorschadenMSGSent[i] = 1;
    }
    else if(Speedo_HP >= 260)
    {
    new lights,alarm,doors,bonnet,boot,objective;
    new vid = GetPlayerVehicleID(i);
    format(str4,sizeof(str4),"~y~Zustand: ~w~%.2f", Speedo_HP);
    TextDrawSetString(zustand[i], str4);
    TogglePlayerControllable(i,false);
    TogglePlayerControllable(i,true);
    SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    MotorschadenMSGSent[i] = 1;
    }
    else
    {


    format(str4,sizeof(str4),"~y~Zustand: ~w~%.2f", Speedo_HP);
    TextDrawSetString(zustand[i], str4);
    }
    }
    SavePlayerPos[i][sX] = Speedo_X, SavePlayerPos[i][sY] = Speedo_Y, SavePlayerPos[i][sZ] = Speedo_Z;
    }
    for(new i=0; i<SLOTS; i++)
    {
    if(!IsPlayerInAnyVehicle(i))
    {
    TextDrawHideForPlayer(i, Speedshower[i]); TextDrawHideForPlayer(i, kmh[i]);
    TextDrawHideForPlayer(i, tank[i]); TextDrawHideForPlayer(i, zustand[i]); TextDrawHideForPlayer(i, tFuelInfo[i]);
    TextDrawHideForPlayer(i, tFuelLogo[i]); TextDrawHideForPlayer(i, Kanister[i]);
    SpeedoON[i] = 0;
    }
    }

  • Ich bin gerade nicht am Computers kann also mit dem Snippet nichts groß anfangen wenn wir auch nicht wissen wo und wann es abgefragt wird. Ich denke es liegt dabei daran das es im Timer läuft oder anders.


    Mach die abfrage für den Motorschaden in OnPlayerStateChange. Dann bist du dir sicher das der Spieler schon im Auto ist. Dann eine Variable zur abfrage in den Speedo

    Einmal editiert, zuletzt von Warren ()

  • Code
    public Motorschadensystem(playerid){
     new Float:health; new veh = GetPlayerVehicleID(playerid);
     GetVehicleHealth(veh, health);
     if(health < 300){
          SendClientMessage(playerid, COLOR_RED, "Du hast einen Motorschaden!");
          RemovePlayerFromVehicle(playerid);
       }
     return 1;
    }