Vehicle Command /Lock

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

Es gibt Neuigkeiten! Ab sofort könnt ihr dem Donators Club auf Lebenszeit beitreten.
Weitere Infos im Thema Donator's Club ab heute wieder verfügbar!

  • Vehicle Command /Lock

    hey Breadfish community,

    Ich bräuchte bitte mal eure hilfe


    Ich habe anhand eines Tut. ein [Command("Lock")] erstellt
    dieser wie man sieht abfragt ob ich in der nähe eines Autos bin oder nicht mit 7 einheiten gesetzt.

    er schließt auch sauber ab mit dem command und beim wiederholen öffnet er das auto wieder
    dennoch würde ich gerne an meinen client eine msg schicken das er einmal das Fahrzeug gespeert hat und einmal geöffnet hat

    ich bekomme das nicht wirklich hin . weil eine Abfrage mit vehicle.Open finde ich nicht

    CSS-Quellcode

    1. [Command ("lock")]
    2. public void CMD_LockVehicle(Client client)
    3. {
    4. bool was_vehicle_found = false;
    5. foreach(Vehicle vehicle in NAPI.Pools.GetAllVehicles())
    6. {
    7. if (vehicle.Position.DistanceTo2D(client.Position) <= 7)
    8. {
    9. vehicle.Locked = !vehicle.Locked;
    10. was_vehicle_found = true;
    11. client.SendChatMessage(" **Du hast das Auto zugesperrt !** ");
    12. break;
    13. }
    14. }
    15. if (was_vehicle_found)
    16. return;
    17. client.SendChatMessage("~r~Es ist kein Auto in deiner Nähe.");
    18. }
    Alles anzeigen
  • CSS-Quellcode

    1. [Command ("lock")]
    2. public void CMD_LockVehicle(Client client)
    3. {
    4. bool was_vehicle_found = false;
    5. foreach(Vehicle vehicle in NAPI.Pools.GetAllVehicles())
    6. {
    7. if (vehicle.Position.DistanceTo2D(client.Position) <= 7)
    8. {
    9. if (vehicle.Locked = !vehicle.Locked)
    10. {
    11. was_vehicle_found = true;
    12. client.SendChatMessage(" **Du hast das Auto geschlossen !** ");
    13. }
    14. else
    15. {
    16. was_vehicle_found = true;
    17. client.SendChatMessage(" **Du hast das Auto geöffnet !** ");
    18. }
    19. }
    20. break;
    21. }
    22. if (was_vehicle_found)
    23. return;
    24. client.SendChatMessage("~r~Es ist kein Auto in deiner Nähe.");
    25. }
    Alles anzeigen
    Danke dir :D
  • Das break ist falsch gesetzt.

    Das solltest du so schreiben:

    C-Quellcode

    1. foreach(Vehicle vehicle in NAPI.Pools.GetAllVehicles())
    2. {
    3. if (vehicle.Position.DistanceTo2D(client.Position) <= 7)
    4. {
    5. if (vehicle.Locked = !vehicle.Locked)
    6. {
    7. was_vehicle_found = true;
    8. client.SendChatMessage(" **Du hast das Auto geschlossen !** ");
    9. }
    10. else
    11. {
    12. was_vehicle_found = true;
    13. client.SendChatMessage(" **Du hast das Auto geöffnet !** ");
    14. }
    15. break;
    16. }
    17. }
    Alles anzeigen


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. X/
  • C-Quellcode

    1. using System.Linq; // Falls nicht schon getan
    2. [Command ("lock")]
    3. public void CMD_LockVehicle(Client client)
    4. {
    5. var vehicle = NAPI.Pools.GetAllVehicles().FirstOrDefault(x => x.Position.DistanceTo(client.Position) <= 7);
    6. if(vehicle == null)
    7. {
    8. client.SendChatMessage("~r~Es ist kein Auto in deiner Nähe.");
    9. return;
    10. }
    11. vehicle.Locked = !vehicle.Locked;
    12. client.SendChatMessage(" **Du hast das Auto " + (vehicle.Locked ? "zugesperrt" : "aufgesperrt") + " !** ");
    13. }
    Alles anzeigen
    Mach es mit Linq und bisschen aufgeräumter, weiß nicht ob der Code so direkt funktioniert - ist einige Monate her das ich auf Rage was gemacht habe.

    Gruß

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Max Jackson ()

  • Max Jackson schrieb:

    C-Quellcode

    1. using System.Linq; // Falls nicht schon getan
    2. [Command ("lock")]
    3. public void CMD_LockVehicle(Client client)
    4. {
    5. var vehicle = NAPI.Pools.GetAllVehicles().FirstOrDefault(x => x.Position.DistanceTo(client.Position) <= 7);
    6. if(vehicle == null)
    7. {
    8. client.SendChatMessage("~r~Es ist kein Auto in deiner Nähe.");
    9. return;
    10. }
    11. vehicle.Locked = !vehicle.Locked;
    12. client.SendChatMessage(" **Du hast das Auto " + (vehicle.Locked ? "zugesperrt" : "aufgesperrt") + " !** ");
    13. }
    Alles anzeigen
    Mach es mit Linq und bisschen aufgeräumter, weiß nicht ob der Code so direkt funktioniert - ist einige Monate her das ich auf Rage was gemacht habe.

    Gruß

    Aufgeräumt?


    Quellcode

    1. using System.Linq; // Falls nicht schon getan
    2. [Command ("lock")]
    3. public void CMD_LockVehicle(Client client)
    4. {
    5. var vehicle = NAPI.Pools.GetAllVehicles().FirstOrDefault(x => x.Position.DistanceTo(client.Position) <= 7);
    6. if(!vehicle)
    7. return client.SendChatMessage("~r~Es ist kein Auto in deiner Nähe.");
    8. vehicle.Locked = !vehicle.Locked;
    9. client.SendChatMessage(" **Du hast das Auto " + (vehicle.Locked ? "zugesperrt" : "aufgesperrt") + " !** ");
    10. }
    Alles anzeigen
  • Warren schrieb:

    Max Jackson schrieb:

    C-Quellcode

    1. using System.Linq; // Falls nicht schon getan
    2. [Command ("lock")]
    3. public void CMD_LockVehicle(Client client)
    4. {
    5. var vehicle = NAPI.Pools.GetAllVehicles().FirstOrDefault(x => x.Position.DistanceTo(client.Position) <= 7);
    6. if(vehicle == null)
    7. {
    8. client.SendChatMessage("~r~Es ist kein Auto in deiner Nähe.");
    9. return;
    10. }
    11. vehicle.Locked = !vehicle.Locked;
    12. client.SendChatMessage(" **Du hast das Auto " + (vehicle.Locked ? "zugesperrt" : "aufgesperrt") + " !** ");
    13. }
    Alles anzeigen
    Mach es mit Linq und bisschen aufgeräumter, weiß nicht ob der Code so direkt funktioniert - ist einige Monate her das ich auf Rage was gemacht habe.

    Gruß
    Aufgeräumt?


    Quellcode

    1. using System.Linq; // Falls nicht schon getan
    2. [Command ("lock")]
    3. public void CMD_LockVehicle(Client client)
    4. {
    5. var vehicle = NAPI.Pools.GetAllVehicles().FirstOrDefault(x => x.Position.DistanceTo(client.Position) <= 7);
    6. if(!vehicle)
    7. return client.SendChatMessage("~r~Es ist kein Auto in deiner Nähe.");
    8. vehicle.Locked = !vehicle.Locked;
    9. client.SendChatMessage(" **Du hast das Auto " + (vehicle.Locked ? "zugesperrt" : "aufgesperrt") + " !** ");
    10. }
    Alles anzeigen

    Aufgeräumt und einfach Zeilen weglassen ist ein gewaltiger Unterschied. Oftmals ist es viel aufgeräumter die geschweiften Klammern zu setzen, als ohne. (Thema Übersicht)
    Den Zweck von deinem Post habe ich aber trotzdem nicht verstanden, zum einen trägt er nicht zum Thema bei und zum anderen scheint es so als hättest du noch nie wirklich für RAGE programmiert.

    In PAWN kannst du ein "SendCientMessage" einfach nach einem return schreiben, das geht bei C#/ RAGE nicht, bleib bei PAWN wenn du bisschen Klugscheißen willst. :D