Auto an/aus - licht an/aus (knopfdruck)

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 Brotfische,


    Ich habe ne Frage ..
    Undzwar:


    Wie mache ich es so , das ein Auto aus ist bis ich zum beispiel "R" drücke , dass es dann erst an geht..
    Genauso mit dem Licht. Wie mache ich es das es durch Knopfdruck angeht, wenn ich im Auto sitze..



    Hoffe auf Hilfe :S



    MfG HellFire

  • Unter


    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)


    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
    new vehicleid = GetPlayerVehicleID(playerid);
    if(newkeys & KEY_ACTION)
    {
    new engine,lights,alarm,doors,bonnet,boot,objective;
    GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
    if(engine == 1)
    {
    SetVehicleParamsEx(vehicleid,0,lights,alarm,doors,bonnet,boot,objective);
    new pname[MAX_PLAYER_NAME];
    GetPlayerName(playerid, pname, sizeof(pname));
    strreplace(pname, '_', ' ');


    new string[126];
    new vehiclename[50];
    GetVehicleName(vehicleid, vehiclename, sizeof(vehiclename));


    format(string, sizeof(string), "* %s turns the engine of their %s OFF.", pname, vehiclename);
    ProxDetector(20.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
    return 1;
    }
    if(VehicleFuel[vehicleid] > 0)
    {
    SetVehicleParamsEx(vehicleid,1,lights,alarm,doors,bonnet,boot,objective);
    new pname[MAX_PLAYER_NAME];
    GetPlayerName(playerid, pname, sizeof(pname));
    strreplace(pname, '_', ' ');


    new string[126];
    new vehiclename[50];
    GetVehicleName(vehicleid, vehiclename, sizeof(vehiclename));


    format(string, sizeof(string), "* %s turns the engine of their %s on.", pname, vehiclename);
    ProxDetector(20.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
    return 1;
    }
    else return SendClientMessage(playerid, -1, "There's no fuel in the vehicle.");
    }
    if(newkeys & KEY_CROUCH)
    {
    new engine,lights,alarm,doors,bonnet,boot,objective;
    GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
    if(lights == 1) SetVehicleParamsEx(vehicleid,engine,0,alarm,doors,bonnet,boot,objective);
    else SetVehicleParamsEx(vehicleid,engine,1,alarm,doors,bonnet,boot,objective);
    }
    }
    return 1;
    }



    //Edit. Das ist jetzt für die Linke maustaste, für ein anderes musste mal Googlen :)

    Die Kritik an anderen hat noch keinem die eigene Leistung erspart.

    – Noël Coward

  • Wichtig, damit das Licht auch bei Tag funktioniert:
    public OnGameModeInit()
    {
    ManualVehicleEngineAndLights();
    }


    Hiermit kannst du bestimmen, dass erst beim loslassen der Taste die Aktion ausgeführt wird:
    (oldkeys & KEY_SUBMISSION) && !(newkeys & KEY_SUBMISSION)
    Und so beim Drücken:
    !(oldkeys & KEY_SUBMISSION) && (newkeys & KEY_SUBMISSION)


    EDIT// Du kannst nur Tasten verwenden, die von GTA SA benutzt werden. Besipiel: KEY_FIRE ist standardmäßig L-Strg, wenn jemand allerdings die Tastenbelegung ändert, Bsp.: KEY_FIRE auf [O] setzt, muss er diese Taste benutzen.


    Hoffe ich konnte helfen.


    MfG

    Selfmade Reallife Script:
    Gesamtfortschritt: 32%

    >||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||<
    Momentan: Erstellung des Haussystems (85%)

    2 Mal editiert, zuletzt von Pseudynom ()


  • Um den Post von Pseudynom zu ergänzen die definitionen findest du im Wiki


    http://wiki.sa-mp.com/wiki/GetPlayerKeys