Motor - System | kleiner Fehler

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
  • Abend leute, ich hab ein kleines Problem mit meinem "Motor System" seitdem ich nicht mehr nur den Tank von Fahrzeugen der Fraktion 'SAPD' überprüfen lasse, sondern auch von normalen Fahrzeugen, und natürlich das Administrativ erstelle Fahrzeuge unbegrenzt Tank haben. Aber seit dem ich das versucht habe so umzusetzen, kommt bei mir z.B wenn ich im Fahrzeug (PoliceCar) drinne sitze, der Wagen 23 Liter Tank hat, und ich /motor eingebe .. einfach unknown command.
    Wenn der Tank vom Fahrzeug aber leer ist, tut er die jeweilige Nachricht auch ausgeben. -> "Der Tank ist leer.." <-
    Was ich auch wieder nicht verstehen kann, er erkennt ja im Tacho auch, dass es sich um ein Fahrzeug-Modul handelt, was berechtigt ist, keinen Tank zu verlieren.


    -> Erkennung auf dem Tacho <-


    -> Pwn Quellcode von /motor <-

  • Ich denke du sprengst das Array, durch das MAX_VEHICLES in der Schleife.
    Versuche es so:
    ocmd:motor(playerid)
    {
    print("0");
    if(!PlayerInfo[playerid][pEingeloggt])return SendClientMessage(playerid, COLOR_RED, "Du bist nicht eingeloggt.");
    if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER)return SendClientMessage(playerid, COLOR_RED, "Du bist nicht Fahrer eines Fahrzeuges!");
    new string[128];
    print("1");
    switch(vState[myvID][vEngine])
    {
    case false:
    {
    for(new i;i<sizeof(policeCars);i++)
    {
    if(!i)print("2");
    if(myvID == policeCars[i][c_id])
    {
    print("3");
    if(policeCars[i][c_tank] < 0.1)
    {
    print("4");
    SendClientMessage(playerid, COLOR_RED, "Dein Tank ist leer!");
    return 1;
    }
    }
    }
    for(new i;i<sizeof(vState);i++)
    {
    if(myvID == vState[i][vCID] && vState[i][vACL] == false)
    {
    print("5");
    if(vState[i][vTank] < 0.1)
    {
    print("6");
    SendClientMessage(playerid, COLOR_RED, "Dein Tank ist leer!");
    return 1;
    }
    }
    }
    print("7");
    SetVehicleState(myvID, STATE_ENGINE, true), format(string, sizeof string, "** %s hat den Motor gestartet **", getPlayerName(playerid)),
    SendLocalChat(playerid, 20.0, COLOR_PURPLE, string), SetPlayerChatBubble(playerid, string, COLOR_PURPLE, 40.0, 2500);
    }
    case true:
    {
    SetVehicleState(myvID, STATE_ENGINE, false), format(string, sizeof string, "** %s hat den Motor gestoppt **", getPlayerName(playerid)),
    SendLocalChat(playerid, 20.0, COLOR_PURPLE, string), SetPlayerChatBubble(playerid, string, COLOR_PURPLE, 40.0, 2500);
    }
    }
    string[0] = '\0';
    return 1;
    }