Motorsystem - Beim einsteigen Motor aus! Wie?

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
  • Hey Community,


    ich habe mir ins Script ein Motorsystem eingebaut. Es funktioniert auch fast, aber nicht so wie es soll.
    Und zwar ist mein Wunsch. Das das Auto beim einsteigen aus ist und man erst den motor starten muss. Weil im echten Leben kann man ja auch nicht einfach so einsteigen und drauf losfahren. ;)


    Habe hier mal alles zusammen gesucht um euch hier das ganze System zu posten.


    new motor[MAX_VEHICLES] = 0;


    public OnVehicleSpawn(vehicleid)
    {
    motor[vehicleid] = 0;
    return 1;
    }


    public OnPlayerEnterVehicle(playerid,vehicleid)
    {
    if(motor[vehicleid] == 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);
    }
    else
    {
    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;
    }


    public OnPlayerCommandText(playerid,cmdtext[])
    {
    if(strcmp(cmdtext,"/motor",true)==0)
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    if(GetPlayerVehicleSeat(playerid) == 0)
    {
    new veh = GetPlayerVehicleID(playerid);
    if(motor[veh] == 0)
    {
    new engine,lights,alarm,doors,bonnet,boot,objective;
    GetVehicleParamsEx(veh,engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(veh,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
    SendClientMessage(playerid,0xFF0000FF,"Du hast den Motor angeschalten.");
    motor[veh] = 1;
    return 1;
    }
    else
    {
    new engine,lights,alarm,doors,bonnet,boot,objective;
    GetVehicleParamsEx(veh,engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(veh,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    SendClientMessage(playerid,0xFF0000FF,"Du hast den Motor ausgeschalten.");
    motor[veh] = 0;
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid,0xFF0000FF,"Du bist nicht der Fahrer.");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid,0xFF0000FF,"Du bist in keinem Fahrzeug.");
    return 1;
    }
    }
    return 0;
    }


    public OnPlayerKeyStateChange(playerid,newkeys,oldkeys)
    {
    if(newkeys == KEY_SUBMISSION)
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    if(GetPlayerVehicleSeat(playerid) == 0)
    {
    new veh = GetPlayerVehicleID(playerid);
    if(motor[veh] == 0)
    {
    new engine,lights,alarm,doors,bonnet,boot,objective;
    GetVehicleParamsEx(veh,engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(veh,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
    motor[veh] = 1;
    }
    else
    {
    new engine,lights,alarm,doors,bonnet,boot,objective;
    GetVehicleParamsEx(veh,engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(veh,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    motor[veh] = 0;
    }
    }
    }
    }
    return 1;
    }


    Wie mache ich das jetzt, sodass der Motor beim einsteigen aus ist?!


    //Edit: Einen Rechtschreibfehler verbessert ;p Wer welsche findet darf sie behalten ;D


    Registrieren, Bestellen, Produkt kostenlos bekommen!

    Einmal editiert, zuletzt von [MR]Chicko aka. Eazyline ()

  • public OnPlayerEnterVehicle(playerid,vehicleid)
    {
    motor[vehicleid] = 0;
    if(motor[vehicleid] == 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);
    }
    else
    {
    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;
    }


    So ist es, wie du es haben willst. Ist aber recht unnötig mit der Abfrage danach, da ja dann immer else ausgelöst wird. Mach einfach bei OnVehicleSpawn das motor[vehicleid] = 0; rein. Dann ist der Motor aus, wenn das Auto spawnt - Und du musst den Motor eben beim Einsteigen einschalten.

    Ich bin
    .. seit etwa 2007 in der Webentwicklung tätig, seit 2013 professionell
    .. Erfahrener Entwickler in PHP, Swift, Javascript, Typescript und Ruby. Zusätzlich habe ich Erfahrung in Python, Java, C#, C++, Prolog und einigen esoterischen Programmiersprachen
    .. Luftfahrtenthusiast und Segelflieger

  • Soweit ich weiß muss man manchmal tauschen.


    Versucht mal abzufragen ob er aus ist, und dann erst mit else an machen

  • Das hab ich nun geradewegs aus meinem Script gezogen
    Füg es einfach mal unter:


    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)


    ein.



    Gruss: Sonic

    I didn't hit you. I high fived your face.

  • Ist doch Reallife oder ? Dann sollte er am Besten ansein wenn er nicht nochmal /motor sagt :D

  • Hör bitte auf son Müll zu posten das hilft ihm 0 weiter.
    Klar das Script das ich ihm poste hat ne ganz interessante Eigenschaft manchmal geht der Motor aus und manchmal nicht frag mich nicht an was das liegt ich vermute an den keyabfragen



    Gruss: Sonic

    I didn't hit you. I high fived your face.

  • So, bin sein "Little Helper" ;D


    Also ich versuchs ihm grad zu machen..



    Wenns geht, meld ich mich, dann ist hier mal zu ^^

    Unkompetent. Das neue dynamisch.



    ihr seit schon lustig postet erros aber nicht die zeilen wo sie sind dann können wir euch auch nicht helfen^^


    Lernt Scripten, Leute, und macht eure Augen auf!


    _______________________________________
    50 Beiträge: [x] 300 Beiträge: [x]
    100 Beiträge: [x] 500 Beiträge: [x]
    150 Beiträge: [x] 1000 Beiträge: [x]
    200 Beiträge: [x]
    2000 Beiträge: []
    250 Beiträge: [X] Boardaktivitäten: Profil


    [size=36]_______________________________________

    /Edit: Schmerzt es dir eigentlich nicht so ein Müll zu schreiben 8|