Fehler bei Motor an/aus?

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
  • Guten Tag,
    ich habe folgendes Problem, dass manchmal bei /motor der Gamemode abstürzt. Könnt ihr hier Fehler finden?


    ocmd:motor(playerid,params[])
    {
    #pragma unused params
    if(!IsPlayerInAnyVehicle(playerid))return 1;
    if(GetPlayerVehicleSeat(playerid)!=0)return 1;
    format(string,sizeof(string),"/motor automodel war: %i",GetVehicleModel(GetPlayerVehicleID(playerid)));
    commandLog(string);
    if(GetVehicleModel(GetPlayerVehicleID(playerid))==481||GetVehicleModel(GetPlayerVehicleID(playerid))==509||GetVehicleModel(GetPlayerVehicleID(playerid))==510)
    {
    return 1;
    }
    if(isEngineOn(GetPlayerVehicleID(playerid)))
    {
    engineOff(GetPlayerVehicleID(playerid));
    GameTextForPlayer(playerid,"~w~Motor ~r~ausgeschaltet",1500,3);
    }
    else
    {
    if(tank[GetPlayerVehicleID(playerid)]>0)
    {
    if(istkaputt[GetPlayerVehicleID(playerid)]==0)
    {
    engineOn(GetPlayerVehicleID(playerid));
    GameTextForPlayer(playerid,"~w~Motor ~g~angeschaltet",1500,3);
    }
    else
    {
    SendClientMessage(playerid,COLOR_GRAD2,"Der Motor ist kaputt.");
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_GRAD2,"ACHTUNG: Kein Benzin!");
    }
    }
    return 1;
    }


    stock isEngineOn(vehicleid)
    {
    if(vehicleid==INVALID_VEHICLE_ID)return 0;
    new engine,lights,alarm,doors,bonnet,boot,objective;
    GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
    if(engine==1)return 1;
    return 0;
    }


    stock engineOn(vehicleid)
    {
    if(vehicleid==INVALID_VEHICLE_ID)return 1;
    new engine,lights,alarm,doors,bonnet,boot,objective;
    GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(vehicleid,1,lights,alarm,doors,bonnet,boot,objective);
    return 1;
    }


    stock engineOff(vehicleid)
    {
    if(vehicleid==INVALID_VEHICLE_ID)return 1;
    new engine,lights,alarm,doors,bonnet,boot,objective;
    GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(vehicleid,0,lights,alarm,doors,bonnet,boot,objective);
    return 1;
    }

    //edit: Text ausgebessert
    //edit2: Habs bei vielen Modellen jetzt probiert. Es liegt nicht an einem bestimmten model. es buggt auch nur manchmal, aber man weiß nicht wann.

    Einmal editiert, zuletzt von mrmonat ()

  • hmm speichere mal GetPlayerVehicleID gleich ab beovor du jedes mal den wert holst
    ps: trotzdem solltest du über ein Wechsel nachdenken und es kann trotzdem an ocmd liegen


    edit: was ich mir auch vorstellen könnte , das die 0.3c funktionen buggen , aber sonst würde das schon im offiziellen thread stehen

  • GetPlayerVehicleID einer variable zuweisen (ressourcenschonender als den Wert jedes mal zu holen ) ;) , probieren schadet nicht wenn es zur Problemlösung hilft , sonst sehe ich keine Fehler die den server zum absturz bringen


    edit: verbessert