im Skript prüfen, ob das Skript gerade noch läuft....

  • Editor 3DEN
  • im Skript prüfen, ob das Skript gerade noch läuft....

    Hallo ArmaWorld und Skripter,

    mal wieder eine kleine Kniffelfrage, bei der ich leider nicht weiter komme. Ich bastel gerade ein Skript für eine "Pop-Up-Ziele" Trainingsbahn. Hier sollen die Einzelnen Klappscheiben hochklappen und wenn getroffen wieder runterklappen, reihe für reihe. Was bisher auch soweit ganz gut klappt.
    Nun viel beim Testen am Server auf, das wenn dass Skript gerade läuft, und es nochmal per Aktionmenü aufgerufen wird (quasi Doppelt aktiviert wurde) ist die Schießbahn im Arsch. Die Karte muss dann neu gestartet werden. Mein Ziel ist es dies zu verhindern. Wo bei ich nicht weiß wie ich am besten da rangehen kann / Soll. Zwei gedanken habe ich dazu im Kopf als Idee, jedoch bin ich nicht besonders Skripttalentiert. Vielleicht kann mir jemand da helfen.

    Idee 1:

    Ich nehme dem Laptop am Anfang des Skriptes den Aktionmenü Eintrag weg, und gebe ihn dieses wieder nach Ablauf des Skriptes. (hier ist das Problem, das dass Aktionmenü in der Init des Laptops steht)

    Idee 2:
    If then Else schleife nutzen (hier kenn ich mich leider zu wenig aus)

    hier das Eigentliche Skript, was über den Aktionmenüeintrag ausgeführt wird:

    Quellcode

    1. If (isServer) then {
    2. []execVM "skripte\sicherheit\sb1\set_red_flag.sqf";
    3. ["Übungsbeginn","hint",true,true] call BIS_fnc_MP;
    4. sleep 10;
    5. pop1 animate["terc",0];
    6. pop2 animate["terc",0];
    7. pop3 animate["terc",0];
    8. pop4 animate["terc",0];
    9. pop5 animate["terc",0];
    10. pop6 animate["terc",0];
    11. pop7 animate["terc",0];
    12. pop8 animate["terc",0];
    13. pop9 animate["terc",0];
    14. pop10 animate["terc",0];
    15. pop11 animate["terc",0];
    16. pop12 animate["terc",0];
    17. sleep 15;
    18. pop1 animate["terc",1];
    19. pop2 animate["terc",1];
    20. pop3 animate["terc",1];
    21. pop4 animate["terc",1];
    22. pop5 animate["terc",1];
    23. pop6 animate["terc",1];
    24. pop7 animate["terc",1];
    25. pop8 animate["terc",1];
    26. pop9 animate["terc",1];
    27. pop10 animate["terc",1];
    28. pop11 animate["terc",1];
    29. pop12 animate["terc",1];
    30. sleep 15;
    31. pop13 animate["terc",0];
    32. pop14 animate["terc",0];
    33. pop15 animate["terc",0];
    34. pop16 animate["terc",0];
    35. pop17 animate["terc",0];
    36. pop18 animate["terc",0];
    37. pop19 animate["terc",0];
    38. pop20 animate["terc",0];
    39. pop21 animate["terc",0];
    40. pop22 animate["terc",0];
    41. pop23 animate["terc",0];
    42. pop4 animate["terc",0];
    43. sleep 25;
    44. pop13 animate["terc",1];
    45. pop14 animate["terc",1];
    46. pop15 animate["terc",1];
    47. pop16 animate["terc",1];
    48. pop17 animate["terc",1];
    49. pop18 animate["terc",1];
    50. pop19 animate["terc",1];
    51. pop20 animate["terc",1];
    52. pop21 animate["terc",1];
    53. pop22 animate["terc",1];
    54. pop23 animate["terc",1];
    55. pop24 animate["terc",1];
    56. sleep 30;
    57. pop25 animate["terc",0];
    58. pop26 animate["terc",0];
    59. pop27 animate["terc",0];
    60. pop28 animate["terc",0];
    61. pop29 animate["terc",0];
    62. pop30 animate["terc",0];
    63. pop31 animate["terc",0];
    64. pop32 animate["terc",0];
    65. pop33 animate["terc",0];
    66. pop34 animate["terc",0];
    67. pop35 animate["terc",0];
    68. pop36 animate["terc",0];
    69. sleep 30;
    70. pop25 animate["terc",1];
    71. pop26 animate["terc",1];
    72. pop27 animate["terc",1];
    73. pop28 animate["terc",1];
    74. pop29 animate["terc",1];
    75. pop30 animate["terc",1];
    76. pop31 animate["terc",1];
    77. pop32 animate["terc",1];
    78. pop33 animate["terc",1];
    79. pop34 animate["terc",1];
    80. pop35 animate["terc",1];
    81. pop36 animate["terc",1];
    82. sleep 30;
    83. pop37 animate["terc",0];
    84. pop38 animate["terc",0];
    85. pop39 animate["terc",0];
    86. pop40 animate["terc",0];
    87. pop41 animate["terc",0];
    88. pop42 animate["terc",0];
    89. sleep 30;
    90. pop37 animate["terc",1];
    91. pop38 animate["terc",1];
    92. pop39 animate["terc",1];
    93. pop40 animate["terc",1];
    94. pop41 animate["terc",1];
    95. pop42 animate["terc",1];
    96. sleep 30;
    97. pop43 animate["terc",0];
    98. pop44 animate["terc",0];
    99. pop45 animate["terc",0];
    100. pop46 animate["terc",0];
    101. pop47 animate["terc",0];
    102. pop48 animate["terc",0];
    103. sleep 30;
    104. pop43 animate["terc",1];
    105. pop44 animate["terc",1];
    106. pop45 animate["terc",1];
    107. pop46 animate["terc",1];
    108. pop47 animate["terc",1];
    109. pop48 animate["terc",1];
    110. sleep 10;
    111. []execVM "skripte\sicherheit\sb1\set_green_flag.sqf";
    112. ["ÜBUNGSENDE","hint",true,true] call BIS_fnc_MP;
    113. };
    Alles anzeigen
    hier wird dann schon deutlich welch ein Anfänger in Sachen Skripting ich bin.... Es geht mit sicherheit auch Anders, jedoch weiß ich hier genau was passiert und das es Momentan läuft.
  • die einfachste lösung ist den 7 parameter von addAction nutzten und dann einfach ein simplen globalen bool setzen und wieder zurücksetzten. und das script das du da ausführst wird nie auf ausgeführt werden bis zum ende wenn du es nicht zum server sendetst denn in der ersten zeile fängst du schon gleich alle clients ab und actions werden nur auf dem client ausgelöst(ausgenommen local hosted MP sessions)
    community.bistudio.com/wiki/addAction
    SIGNATUR START
    Wer Rechtschreibfehler findet darf sie behalten
    ACE3 Core Developer
    CBA A3 Developer
    Developer of Dynasound, Enhance SoundScape, Immerse, Suppress and Align
    SIGNATUR ENDE