Warnblinker-Script (EM4)

Wir verwenden Cookies, um Inhalte und Anzeigen zu personalisieren, Dienste bereitzustellen und die Zugriffe auf unsere Website zu analysieren. Außerdem werden durch unsere Partner Informationen zu Ihrer Nutzung für soziale Medien, Werbung und Analysen erfasst. Weitere Informationen

  • Beispiel-Script zur Erstellung von Warnblinkern in EMERGENCY 4.

    Warnblinker-Script

    Das Warnblinker-Script aktiviert die in EMERGENCY 4 von Anfang an, an jedem Zivil- und Einsatzfahrzeug existierenden, Blinker. Dank Patch 1.05 ist es möglich, die Blinker einzeln via Command-Script zu aktivieren.

    Dieses Command-Script funktioniert nur mit EMERGENCY 4 Version 1.05 oder höher!

    Funktionsweise

    Das Warnblinker-Script hat den Namen „VCmdWarningLights“. VCmd ist meine persönliche Ausführung der Script-Namensgebung, damit man später noch den Überblick behält welches Commando für welchen Typ gedacht ist. "VCmd" - "VehicleCommando".

    Zur einwandfreien Funktion benötigt das Fahrzeug im Editor nur das „VCmdWarningLights“. Wie einem Fahrzeug ein Command-Script zugewiesen wird, wird in der Editor-Anleitung erklärt.

    Script

    Da Script wird sowohl als Download, als auch als Code direkt auf dieser Seite angeboten. (warninglights.rar)

    Quellcode

    1. const char DUMMY_HASWARNINGLIGHTS[] = "DUMMYHasWarningLights";
    2. // Hier muss der Name(!) des Bildes aus dem UI-Ordner stehen.
    3. const char IMG[] = "warninglight";
    4. const char DUMMY_HASWARNINGLIGHTS[] = "DUMMYHasWarningLights";
    5. int DummyGroup = 20;
    6. // 1.0
    7. object VCmdWarningLights : CommandScript
    8. {
    9. VCmdWarningLights()
    10. {
    11. SetIcon(IMG);
    12. SetCursor(IMG);
    13. SetGroupID(DummyGroup);
    14. SetGroupLeader(true);
    15. SetRestrictions(RESTRICT_SELFEXECUTE);
    16. }
    17. bool CheckPossible(GameObject *Caller)
    18. {
    19. if (!Caller->IsValid())
    20. return false;
    21. if (Caller->GetType() == ACTOR_VEHICLE)
    22. {
    23. return true;
    24. }
    25. return false;
    26. }
    27. bool CheckTarget(GameObject *Caller, Actor *Target, int childID)
    28. {
    29. if (!Caller->IsValid() || !Target->IsValid() || Target->GetID() != Caller->GetID())
    30. return false;
    31. if (Caller->GetType() == ACTOR_VEHICLE)
    32. {
    33. return true;
    34. }
    35. return true;
    36. }
    37. void PushActions(GameObject *Caller, Actor *Target, int childID)
    38. {
    39. Vehicle v(Caller);
    40. if (v.HasCommand(DUMMY_HASWARNINGLIGHTS))
    41. {
    42. v.EnableBlinker(BLT_NONE);
    43. v.RemoveCommand(DUMMY_HASWARNINGLIGHTS);
    44. return;
    45. }
    46. if (!v.HasCommand(DUMMY_HASWARNINGLIGHTS))
    47. {
    48. v.EnableBlinker(BLT_BOTH);
    49. v.AssignCommand(DUMMY_HASWARNINGLIGHTS);
    50. return;
    51. }
    52. }
    53. };
    54. // 1.1
    55. object DUMMYHasWarningLights : CommandScript
    56. {
    57. DUMMYHasWarningLights()
    58. {
    59. SetGroupID(DummyGroup);
    60. }
    61. bool CheckGroupVisibility(GameObject *Caller)
    62. {
    63. return false;
    64. }
    65. bool CheckPossible(GameObject *Caller)
    66. {
    67. return false;
    68. }
    69. bool CheckTarget(GameObject *Caller, Actor *Target, int childID)
    70. {
    71. return false;
    72. }
    73. void PushActions(GameObject *Caller, Actor *Target, int childID)
    74. {
    75. }
    76. };
    Alles anzeigen

    Problemlösung

    Bei Fehlermeldungen und Problemen kann der Autor des Scripts kontaktiert werden. Hierzu ist eine möglichst detailierte Beschreibung des Fehlers und optimalerweise eine Logfile anzufügen.

    Autor: Bass-ti
    Kontakt: Bass-ti@ddr-mod.de
    Scriptname: WarningLights.script
    ScriptVersion: V.1.1 Datum: 18.04.2006
    Bemerkungen: Siehe unten

    Dieses Warnblinker-Script dient nicht nur dazu Warnblinker zu deaktivieren, es ist auch der Gruppenführer aller DUMMY-Scripts die ich schreibe. Da man in EMERGENCY 4 jedes Command-Script im Menü sieht musst ich mir etwas einfallen lassen, damit man dies nichtmehr sieht. Ich brauchte also ein Commando was jedes Fahrzeug besitzt, was eine sinnvolle Funktion hat und gleichzeitig der Gruppenführer für alle DUMMYs wird. Wenn eine Gruppe mehrere Commandos hat, dann sieht EMERGENCY 4 immer nach, welches der Commandos der Gruppenführer ist und zeigt keines der anderen (es sei denn der Gruppenführer ist nicht ausführbar).

    278 mal gelesen