VehicleParams | Einfach setzen, herausfinden & verwalten

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 Community,
    heute stelle ich euch meine neuste "kreation" vor.


    [tabmenu]


    [tab=Was ist das?]
    Es handelt sich hierbei um eine Vereinfachung von GetVehicleParamsEx & SetVehicleParamsEx
    [tab=Pointer]
    Pointer,
    was ist das eigentlich?


    Als einen Pointer (engl. für Zeiger) bezeichnet man einen Verweis auf eine Speicheradresse.
    Hier verweise ich auf einen Enum, in dem alles gespeichert ist ;)


    Die verschiedenen Pointer sind
    MOTOR
    LICHT
    ALARM
    TUREN
    MOTORHAUBE
    KOFFERRAUM
    OBJEKTIVE
    [tab=SetVehicleParam]
    SetVehicleParam(vehicleid,pointer,set);
    Der angebene Pointer(Motor oder Licht oder Alarm etc) setzt sich nun auf den gewünschten Wert und startet oder stoppt beispielsweise den Motor
    SetVehicleParam(vehicleid,MOTOR,VEHICLE_PARAMS_ON); // startet den Motor
    [tab=GetVehicleParam]
    GetVehicleParam(vehicleid,pointer);
    GetVehicleParam gibt den aktuellen Status des Pointers(Motor oder Licht oder Alarm etc) zurück
    new motor = GetVehicleParam(vehicleid,MOTOR); // gibt den aktuellen status des Motors zurück und schreibt ihn in die Variable Motor
    [tab=GetVehicleParamEx]
    GetVehicleParamEx(vehicleid,&var,pointer);
    GetVehicleParamEx gibt den aktuellen Status des Pointers(Motor oder Licht oder Alarm etc) zurück und schreibt ihn in die gewünschte Variable
    GetVehicleParamEx(vehicleid,motor,MOTOR); // gibt den aktuellen status des Motors zurück und schreibt ihn in die Variable Motor
    [tab=SetVehicleParams]
    SetVehicleParams(vehicleid,...);
    Setzt die gewünschten Pointer auf den gewünschten Wert
    SetVehicleParams(vehicleid,MOTOR,VEHICLE_PARAMS_ON,LICHT,VEHICLE_PARAMS_OFF); // startet den Motor und macht das Licht aus
    [tab=GetVehicleParams]
    GetVehicleParams(vehicleid,...);
    Holt die gewünschten Pointer und schreibt sie in die gewünschte Var
    new m,l;
    GetVehicleParams(vehicleid,m,MOTOR,l,LICHT);// schreibt in m den Status des Motors und in l den Status des Lichts
    [tab=Wichtig]
    SetVehicleParams und GetVehicleParams haben "unendlich" Parameter und müssen nicht vollständig ausgefüllt werden ;)
    Dabei ist zu beachten, das ihr immer hinter der Variable angebt was hier dort hinein schreiben lassen möchtet :)
    [tab=Download]
    Download/Pastebin
    [/tabmenu]


    //edit 1: Pointervergessen
    //edit 2: kleiner fail von mir^^
    //edit 3: Tabmenü von Deadmau5 eingebaut :)
    Danke dafür :)

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

    3 Mal editiert, zuletzt von Akino Kiritani ()

  • Bei /motor ist einfach
    SetVehicleParam(vehicleid,MOTOR,VEHICLE_PARAMS_ON); // startet den Motor
    verwenden,
    anstatt dem lästigem
    GetVehicleParamsEx(vehicleid,...);
    SetVehicleParamsEx(vehicleid,MOTOR,VEHICLE_PARAMS_ON,...);


    SetVehicleParamsEx, kann außerdem immer noch verwendet werden ;)


    Hier ein Beispielcmd
    if(!strcmp(cmdtext,"/motor",true))
    {
    SetVehicleParam(GetPlayerVehicleID(playerid),MOTOR,VEHICLE_PARAMS_ON); // startet den Motor
    return SendClientMessage(playerid,-,"Motor erfolgreich gestartet");
    }

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • @BlackAce: Zitier meins einfach, dann haste den Code für Tabmenu :P


    [tabmenu]


    [tab=Was ist das?]
    Es handelt sich hierbei um eine Vereinfachung von GetVehicleParamsEx & SetVehicleParamsEx
    [tab=Pointer]
    Pointer,
    was ist das eigentlich?


    Als einen Pointer (engl. für Zeiger) bezeichnet man einen Verweis auf eine Speicheradresse.
    Hier verweise ich auf einen Enum, in dem alles gespeichert ist ;)


    Die verschiedenen Pointer sind
    MOTOR
    LICHT
    ALARM
    TUREN
    MOTORHAUBE
    KOFFERRAUM
    OBJEKTIVE
    [tab=Funktionen]
    [table=4][*]Funktion[*]Parameter[*]Erklärung[*]Nutzung
    [*]SetVehicleParam
    [*]vehicleid, pointer, set
    [*]Setzt einen einzigen Pointer (z.B. MOTOR) des Fahrzeuges (vehicleid) auf eine Variable (set)
    [*]SetVehicleParam(vehicleid,MOTOR,VEHICLE_PARAMS_ON); // startet den Motor


    [*]GetVehicleParam
    [*]vehicleid, pointer
    [*]Gibt den aktuellen Status eines Pointers (z.B. MOTOR) des Fahrzeuges (vehicleid) an
    [*]new motor = GetVehicleParam(vehicleid,MOTOR); // fragt den Status des Motors ab


    [*]GetVehicleParamEx
    [*]vehicleid, &var, pointer
    [*]Gibt den aktuellen Status eines Pointers (z.B. MOTOR) des Fahrzeuges (vehicleid) an und speichert diesen auf eine Variable (var)
    [*]new m;
    GetVehicleParamEx(vehicleid,m,MOTOR); //gibt den Status des Motors an und speichert diesen in eine Variable


    [*]SetVehicleParams
    [*]vehicleid, ...
    [*]Setzt die Pointer (z.B. MOTOR und LICHT) des Fahrzeuges (vehicleid) auf eine Variable (z.B. VEHICLE_PARAMS_ON und VEHICLE_PARAMS_OFF)
    [*]SetVehicleParams(vehicleid,MOTOR,VEHICLE_PARAMS_ON,LICHT,VEHICLE_PARAMS_OFF); // startet den Motor und macht das Licht aus


    [*]GetVehicleParams
    [*]vehicleid, ...
    [*]Gibt die Statuse der Pointer (z.B. MOTOR und LICHT) des Fahrzeuges (vehicleid) wieder und speichert diese in Variablen (z.B. m und l)
    [*]new m,l;
    GetVehicleParams(vehicleid,m,MOTOR,l,LICHT); // schreibt in m den Status des Motors und in l den Status des Lichts
    [/table]
    [tab=Wichtig]
    SetVehicleParams und GetVehicleParams haben "unendlich" Parameter und müssen nicht vollständig ausgefüllt werden ;)
    Dabei ist zu beachten, das ihr immer hinter der Variable angebt was hier dort hinein schreiben lassen möchtet :)
    [tab=Download]
    Download/Pastebin
    [/tabmenu]

    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|

    Einmal editiert, zuletzt von Deadmau5 ()

  • Hier nochmal das ganze als Tabelle :P (zumindest die Funktionen)

    Tabelle
    [table=4][*]Funktion[*]Parameter[*]Erklärung[*]Nutzung
    [*]SetVehicleParam
    [*]vehicleid, pointer, set
    [*]Setzt einen einzigen Pointer (z.B. MOTOR) des Fahrzeuges (vehicleid) auf eine Variable (set)
    [*]SetVehicleParam(vehicleid,MOTOR,VEHICLE_PARAMS_ON); // startet den Motor

    Tabelle
    [*]GetVehicleParam
    [*]vehicleid, pointer
    [*]Gibt den aktuellen Status eines Pointers (z.B. MOTOR) des Fahrzeuges (vehicleid) an
    [*]new motor = GetVehicleParam(vehicleid,MOTOR); // fragt den Status des Motors ab

    Tabelle
    [*]GetVehicleParamEx
    [*]vehicleid, &var, pointer
    [*]Gibt den aktuellen Status eines Pointers (z.B. MOTOR) des Fahrzeuges (vehicleid) an und speichert diesen auf eine Variable (var)
    [*]new m;
    GetVehicleParamEx(vehicleid,m,MOTOR); //gibt den Status des Motors an und speichert diesen in eine Variable

    Tabelle
    [*]SetVehicleParams
    [*]vehicleid, ...
    [*]Setzt die Pointer (z.B. MOTOR und LICHT) des Fahrzeuges (vehicleid) auf eine Variable (z.B. VEHICLE_PARAMS_ON und VEHICLE_PARAMS_OFF)
    [*]SetVehicleParams(vehicleid,MOTOR,VEHICLE_PARAMS_ON,LICHT,VEHICLE_PARAMS_OFF); // startet den Motor und macht das Licht aus

    Tabelle
    [*]GetVehicleParams
    [*]vehicleid, ...
    [*]Gibt die Statuse der Pointer (z.B. MOTOR und LICHT) des Fahrzeuges (vehicleid) wieder und speichert diese in Variablen (z.B. m und l)
    [*]new m,l;
    GetVehicleParams(vehicleid,m,MOTOR,l,LICHT); // schreibt in m den Status des Motors und in l den Status des Lichts
    [/table]

    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|

  • _v[MAX_VEHICLES][ 0 ] ;
    Index 0 wird nie belegt, liegt an der Vergabe deiner Zahlem hier:
    #define MOTOR 1
    #define LICHT 2
    #define ALARM 3
    #define TUREN 4
    #define MOTORHAUBE 5
    #define KOFFERRAUM 6
    #define OBJEKTIVE 7
    Fang lieber bei 0 an, dann ist die Größe des Arrays auch 7 ( so wie du es wohl sicherlich möchtest bzw dachtest ) und nicht 8.


    #define MOTOR 1
    #define LICHT 2
    #define ALARM 3
    #define TUREN 4
    #define MOTORHAUBE 5
    #define KOFFERRAUM 6
    #define OBJEKTIVE 50
    Kannst es ja mal so kompilieren und gucken ob sich was an der Größe der *.AMX verändert,dadurch dass aus OBJEKTIVE 7 -> OBJEKTIVE 50 wird.

  • Fang lieber bei 0 an, dann ist die Größe des Arrays auch 7 ( so wie du es wohl sicherlich möchtest bzw dachtest ) und nicht 8.


    Ich wollte eigentlich schon bei 1-7 anfangen, der Einfachkeithalber für Anfänger etc,
    aber wenn du meinst das wäre unsinnvoll änder ich das gerne ;)


    Außerdem spreche ich auch nirgendwo 0 an ;)

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • Was ist daran denn bitte falsch? ?(


    dcmd_engine(playerid,params[])
    {
    #pragma unused params
    new motor = GetVehicleParam(GetPlayerVehicleID(playerid),MOTOR);
    if(motor == 0)
    {
    SetVehicleParam(GetPlayerVehicleID(playerid),MOTOR,VEHICLE_PARAMS_ON); // startet den Motor
    SetVehicleParam(GetPlayerVehicleID(playerid),LICHT,VEHICLE_PARAMS_ON);
    SendClientMessage(playerid,cRed,"Motor erfolgreich gestartet");
    motor = 1;
    }
    else
    {
    SetVehicleParam(GetPlayerVehicleID(playerid),MOTOR,VEHICLE_PARAMS_OFF); // stoppt den Motor
    SetVehicleParam(GetPlayerVehicleID(playerid),LICHT,VEHICLE_PARAMS_OFF);
    SendClientMessage(playerid,cRed,"Motor abgeschaltet");
    motor = 0;
    }
    return 1;
    }

  • Mach bei bei der ersten Möglichkeit der Abfrage auf jeden fall zum Schluss return 1;
    Somit wird sicher gestellt, dass die darauf folgende "Else" abfrage nicht mehr durchgeführt wird

  • dcmd_engine(playerid,params[]){
    #pragma unused params
    new motor = GetVehicleParam(GetPlayerVehicleID(playerid),MOTOR);
    if(motor == 0)
    {
    SetVehicleParam(GetPlayerVehicleID(playerid),MOTOR,VEHICLE_PARAMS_ON); // startet den Motor
    SetVehicleParam(GetPlayerVehicleID(playerid),LICHT,VEHICLE_PARAMS_ON);
    SendClientMessage(playerid,cRed,"Motor erfolgreich gestartet");
    motor = 1;
    return 1;
    }
    else
    {
    SetVehicleParam(GetPlayerVehicleID(playerid),MOTOR,VEHICLE_PARAMS_OFF); // stoppt den Motor
    SetVehicleParam(GetPlayerVehicleID(playerid),LICHT,VEHICLE_PARAMS_OFF);
    SendClientMessage(playerid,cRed,"Motor abgeschaltet");
    motor = 0;
    }
    return 1; }

  • Wie kann man denn abfragen ob der Motor an oder aus ist?