Suche Hilfe: BMA_Script via Scriptassembler 2.8.3 by Florian KO 12/2

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

  • Suche Hilfe: BMA_Script via Scriptassembler 2.8.3 by Florian KO 12/2

    Hallo zusammen,
    ich würde gerne das BMA_Script von Florian KO 12/2 in meine Modifikation integrieren. Da ich aber kein Scripter bin bitte ich einmal um Hilfe.

    Folgende Fragen sind bei mir offen:
    - Es wird ein Hinweis ausgegeben dass ein Eintrag im Start-Script erfordert ist. Um was für einen Eintrag handelt es sich, was muss ich wie einpflegen?

    - Was ist der Praefix der BMA-Objekte auf der Map, was soll ich am besten Eintragen und was muss ich zeitgleich an bzw. auf der Map machen?

    - Was sind die Rauchwarnmelder (Prototype soll ich angeben)? Und wo kommen diese dann (auf der Map?) hin?

    - Pfad für den Klang der BMA - Handelt es sich um ein akustischen Hinweis für den Spieler (ähnl. Supervisor) oder um einen 3D-Sound (Räumungsalarm o.ä.)?

    - Namen für BMA´s einfügen - Kann ich da ganze Namen rein setzen (z.B. Musterkrankenhaus, und dann den BMZ Prototype auf Map ebenso nennen? Praefix oder so benötigt?)

    - Was ist die Mindestdauer bis zum BMA-Alarm, nach Spielstart?


    Viele Fragen da ich mich leider nicht so gut auskenne. Aber ich denke wenn ich diese einmal beantwortet habe kann ich einfach BMA´s erstellen.
    Danke!

    LG Jan
    lieber Gruß
    Jan
  • Bitte verzeih die Verzögerung, das ist wohl bei mir durchgerutscht.
    Im Anhang findest du ein Startscript. Das solltest du in den Ordner Scripts/Game/Mission legen. Für den Herausforderungsmodus musst du das Script kopieren und in fp_challenge umbenennen.
    Das Script startet bei Spielbeginn die BMAs.

    Das Präfix ist die Zeichenkombination mit der jedes BMA-Objekt/-VO anfängt, damit es erkannt wird. Am gängigsten ist BMA_ => DIe erste BMA würdest du BMA_1 nennen müssen, die zweite BMA_2 usw.

    Rauchwarnmelder brauchst du nicht zwingend, das Feld kannst du also leer lassen. Da wäre der Prototyp für einen Rauchwarnmelder gefragt, der auch als BMA_x benannt werden müsste (x ist eine Zahl ;) )aber nicht zurückgestellt werden muss.

    Der Sound ist ein 3D-Sound an der BMA

    Die Namen folgen der Nummerierung. Wenn du die BMA am Krankenhaus hast und sie als BMA_1 nummeriert ist, dann gibst du in der ersten Zeile den Namen z.B. "Krankenhaus" ein, dann wird im Spiel "Brandmeldereinlauf: Krankenhaus" und nicht "Brandmeldereinlauf: BMA_1" angezeigt.

    Die Mindestdauer bedeutet nach welcher Zeit frühestens ein BMA-Einsatz kommt. Bei 10 käme frühestens nach 10 Sekunden ein BMA-Einsatz.
    Dateien
    • fp_freeplay.txt

      (260 Byte, 61 mal heruntergeladen, zuletzt: )
    Es ist noch kein Fallschirmjäger vom Himmel gefallen

  • Ich buddel mal dieses etwas ältere Thema wieder aus, um nicht zu diesem Script noch ein Fragenthema zu starten.
    Ich nutze das Freeplay-Startscript von a-rescue und habe vorher das BMA-Skript von Wingman genutzt, welches sich auch in das Startscript integrieren ließe. Bei diesem Script will mir das aber nicht so wirklich gelingen, weshalb ich frage, ob mir jemand veraten kann, an welcher Stelle ich den Scriptschnipsel einfügen muss, damit es problemlos läuft.

    Darüber hinaus habe ich das Script schon mehrere male getestet, in dem ich es einfach manuell gestartet habe. Dabei ist mir aufgefallen, dass kein Objektton zu vernehmen war. Daher auch hier die Frage, ob jemand eine Idee hat, woran es liegen könnte.

    Ich habe beide Scripts einfach mal angehangen, damit man nicht noch groß suchen muss.
    Ich hoffe, mir kann jemand bei diesen Problemen helfen :)

    Freeplay-Start
    Spoiler anzeigen

    Quellcode

    1. // Freeplay-Start (Grundgeruest + Einstellungs-Codeblock für Fahrzeuge und Personal)
    2. void Start()
    3. {
    4. GameObjectList l1;
    5. GameObject *o1;
    6. //// <BLOCK> ////////////////////////////////////////////////////////////////////////////////////////////
    7. l1 = Game::GetGameObjects("FAHRZEUGNAME"); // FAHRZEUGNAME muss einmalig sein auf der Map
    8. if(l1.GetNumObjects() == 0)
    9. {
    10. Mission::PlayHint("Fahrzeug befindet sich nicht auf der Karte!"); // *
    11. }
    12. else
    13. {
    14. o1 = *l1.GetObject(0);
    15. Vehicle v(o1);
    16. v.SetSpeed(14.0f); // Wert anpassen ...
    17. v.SetMaxPassengers(2); // Wert anpassen ...
    18. v.SetMaxTransports(0); // Wert anpassen ...
    19. v.AssignCommand("ParkAtBase"); // Park-Kommando zuweisen
    20. v.EnableBlueLights(false);
    21. Person p = Game::CreatePerson("mod:pfad/zum/prototyp", "fz1p1"); // person 1 fuer fahrzeug 1
    22. v.AddPassenger(&p);
    23. Person p = Game::CreatePerson("mod:pfad/zum/prototyp", "fz1p2"); // person 2 fuer fahrzeug 1
    24. v.AddPassenger(&p);
    25. // usw ...
    26. }
    27. //// </BLOCK> ///////////////////////////////////////////////////////////////////////////////////////////
    28. };
    29. bool OnLoad()
    30. {
    31. Start();
    32. Process::Kill();
    33. return true;
    34. }
    Alles anzeigen


    Steuerung Brandmeldeanlage
    Spoiler anzeigen

    Quellcode

    1. /* BMA-Script
    2. (c) by Florian KO 12/2
    3. Script zum Ueberwachen der BMAs
    4. Features:
    5. -Ueberwachen der BMAs
    6. -Erzeugen von Einsaetzen
    7. -Erzeugen von Fehlalarme
    8. -Melden fuer Freeplay
    9. -Melden fuer Missionen
    10. Erstellt von: Florian KO 12/2
    11. Script frei fuer alle mit Readme-Eintrag. Dieser Kommentarblock darf nicht
    12. entfernt werden. Kein Support gewaehrleistet. */
    13. char * bmaprae="BMA_";
    14. char * rwm_proto="mod:Prototypes/objects/eigene/BMA-licht.e4p";
    15. char * ton="mod:Audio/Fx/bmaBMA.wav";
    16. const int textl=1;//Menge der BMAs mit Name
    17. char * bma_nam[textl];
    18. bma_nam[0]="Softwarehandlung";
    19. //Alarmdaten
    20. int min=0,max=20;//Mindestabstand von BMA einsaetzen
    21. int fehl=15;//Prozentfehlalarme
    22. int dur=-1;
    23. class einsatz
    24. {
    25. private:
    26. char* objective;
    27. int eid;
    28. int reward;
    29. int sound;
    30. einsatz* naechster;
    31. public:
    32. char* bma;
    33. einsatz(char* ob,char*ba,int id,int rew=500,int sou=-1)
    34. {
    35. objective=ob;
    36. bma=ba;
    37. eid=id;
    38. reward=rew;
    39. naechster=0;
    40. sound=sou;
    41. }
    42. einsatz* einfuegen(einsatz* e){
    43. if(naechster==0)
    44. naechster=e;
    45. else
    46. naechster=naechster->einfuegen(e);
    47. return &this;
    48. }
    49. erledigt(){
    50. Game::SetEventFinished(eid,true,reward);
    51. Mission::RemoveObjective(objective);
    52. Audio::StopSample(sound);
    53. GameObjectList(bma).GetObject(0)->EnableSpecialLights(false);
    54. }
    55. einsatz* pruefen(){
    56. if(!naechster==0)
    57. naechster=naechster->pruefen();
    58. if(GameObjectList(bma).GetObject(0)->GetUserData()!=99||(StrCompare(rwm_proto,GameObjectList(bma).GetObject(0)->GetPrototypeFileName())==0&&bma_steuerung::burninginVO(bma))){
    59. erledigt();
    60. return naechster;
    61. }else{
    62. return &this;
    63. }
    64. }
    65. };
    66. class bma_steuerung{
    67. public:
    68. einsatz* erster;
    69. start(){
    70. erster=0;
    71. GameObjectList objs=Game::GetGameObjectsWithPrefix(bmaprae);
    72. for(int i=0;i<objs.GetNumObjects();i++){
    73. objs.GetObject(i)->EnableSpecialLights(false);
    74. }
    75. }
    76. bool burninginVO(const char* nam){
    77. GameObjectList objs;
    78. Game::CollectObstaclesOnVirtualObject(nam,objs,ACTOR_OBJECT|ACTOR_HOUSE|ACTOR_VEHICLE|ACTOR_PERSON|ACTOR_OPEN_HOUSE);
    79. System::Log("Suche: %s, hat %i",nam,objs.GetNumObjects());
    80. for(int i=0;i<objs.GetNumObjects();i++){
    81. if(objs.GetObject(i)->IsBurning())return true;
    82. }
    83. return false;
    84. }
    85. einfuegen(einsatz *e){
    86. if(erster==0)
    87. erster=e;
    88. else
    89. erster->einfuegen(e);
    90. }
    91. firecheck(){
    92. if(erster!=0)
    93. erster=erster->pruefen();
    94. }
    95. ausloesen(GameObject bma,int i){
    96. char ob[99];
    97. if(i<textl&&!StrCompare(bma_nam[i],"")==0)
    98. snprintf(ob,99,"Brandmeldereinlauf: %s",bma_nam[i]);
    99. else
    100. snprintf(ob,99,"Brandmeldereinlauf: %s",bma.GetName());
    101. int id=Game::ShowEvent(ob,bma.GetPosition());
    102. int sound=Audio::PlaySample3D(ton, bma.GetPosition(), true);
    103. einsatz* e=new einsatz(ob,bma.GetName(),id,100);
    104. bma.SetUserData(99);
    105. einfuegen(e);
    106. Mission::AddObjective(ob);
    107. bma.EnableSpecialLights(true);
    108. }
    109. };
    110. object bma_kontrolle : CommandScript
    111. {
    112. bma_kontrolle(){
    113. }
    114. bool CheckPossible(GameObject *Caller)
    115. {
    116. return true;
    117. }
    118. bool CheckTarget(GameObject *Caller, Actor *Target, int childID)
    119. {
    120. return true;
    121. }
    122. void PushActions(GameObject *Caller, Actor *target, int childID)
    123. {
    124. System::Log("BMA Start");
    125. if(GameObjectList("kon_bma").GetNumObjects()==0){
    126. System::Log("BMA start");
    127. Game::CreateObject("mod:Prototypes/Objects/Misc/empty.e4p","kon_bma").PushActionExecuteCommand(ACTION_NEWLIST,"bma_kontrolle",NULL,0);
    128. bma_steuerung::start();
    129. return;
    130. }
    131. GameObjectList objs=Game::GetGameObjectsWithPrefix(bmaprae);
    132. for(int i=0;i<objs.GetNumObjects();i++){
    133. System::Log("BMA-Pruefung: %s",objs.GetObject(i)->GetName());
    134. if(objs.GetObject(i)->GetUserData()!=99&&(Game::IsBurningObjectInVirtualObject(objs.GetObject(i)->GetName())||bma_steuerung::burninginVO(objs.GetObject(i)->GetName()))){
    135. bma_steuerung::ausloesen(GameObject(objs.GetObject(i)),i);
    136. }
    137. }
    138. //BMA-einsatz loeschen
    139. bma_steuerung::firecheck();
    140. //Alarme:
    141. if(dur==-1){
    142. //neues Intervall erzeugen
    143. dur=min+(Math::rand()%max);
    144. }
    145. if(dur==0){
    146. //einsatz erzeugen
    147. int choose=0;
    148. for(int i=0;i<objs.GetNumObjects();i++){
    149. if(objs.GetObject(i)->GetUserData()!=99)choose++;
    150. }
    151. if(choose>0){
    152. choose=Math::rand()%choose;
    153. for(int i=0;i<objs.GetNumObjects();i++){
    154. if(objs.GetObject(i)->GetUserData()!=99){
    155. if(choose==0){
    156. if(Math::rand()%100<fehl){
    157. bma_steuerung::ausloesen(GameObject(objs.GetObject(i)),i);
    158. }else{
    159. GameObjectList objs2;
    160. Game::CollectObstaclesOnVirtualObject(objs.GetObject(i)->GetName(),objs2,ACTOR_OBJECT|ACTOR_HOUSE|ACTOR_VEHICLE|ACTOR_PERSON|ACTOR_OPEN_HOUSE);
    161. objs2.GetObject(Math::rand()%objs2.GetNumObjects())->Burn();
    162. }
    163. }
    164. choose--;
    165. }
    166. }
    167. }//Ende If-Klausel von choose
    168. }
    169. dur--;
    170. //ENDE
    171. Caller->PushActionWait(ACTION_NEWLIST,1.0);
    172. Caller->PushActionExecuteCommand(ACTION_APPEND,"bma_kontrolle");
    173. }
    174. };
    175. object bma_zurueckstellen : CommandScript
    176. {
    177. bma_zurueckstellen{
    178. }
    179. bool CheckPossible(GameObject *Caller)
    180. {
    181. return true;
    182. }
    183. bool CheckTarget(GameObject *Caller, Actor *Target, int childID)
    184. {
    185. GameObject bma(Target);
    186. return bma.GetUserData()==99;//Es muss aktiv sein
    187. }
    188. void PushActions(GameObject *Caller, Actor *Target, int childID)
    189. {
    190. Person p(Caller);
    191. GameObject bma(Target);
    192. if(childID==0){
    193. p.PushActionMove(ACTION_NEWLIST,Target->GetPosition(),true);
    194. p.PushActionTurnTo(ACTION_APPEND,Target);
    195. p.PushActionSwitchAnim(ACTION_APPEND,"treatinjured2");
    196. p.PushActionExecuteCommand(ACTION_APPEND,"bma_zurueckstellen",Target,1);
    197. }else if(childID==1){
    198. p.SetCommandable(false);
    199. if(bma.HasAnimation("open")){
    200. bma.PushActionSwitchAnim(ACTION_NEWLIST,"open");
    201. p.PushActionExecuteCommand(ACTION_APPEND,"bma_zurueckstellen",Target,9);
    202. }
    203. p.PushActionExecuteCommand(ACTION_APPEND,"bma_zurueckstellen",Target,2);
    204. }else if(childID==2){
    205. if(!Game::IsBurningObjectInVirtualObject(bma.GetName())&&!bma_steuerung::burninginVO(bma.GetName())){
    206. bma.SetUserData(0);
    207. Mission::PlayHint("BMA erfolgreich zurueckgestellt");
    208. }else{
    209. Mission::PlayHint("nicht alle Braende geloescht");
    210. }
    211. if(bma.HasAnimation("close")){
    212. bma.PushActionSwitchAnim(ACTION_NEWLIST,"close");
    213. p.PushActionExecuteCommand(ACTION_APPEND,"bma_zurueckstellen",Target,9,false);
    214. }
    215. p.PushActionExecuteCommand(ACTION_APPEND,"bma_zurueckstellen",Target,3,false);
    216. }else if(childID==3){
    217. p.SetCommandable(true);
    218. p.PushActionSwitchAnim(ACTION_APPEND,"idle");
    219. }else if(childID==9){
    220. //Warten auf BMA
    221. if(!bma.IsAnimationFinished())
    222. p.PushActionExecuteCommand(ACTION_INSERT,"bma_zurueckstellen",Target,9,false);
    223. }
    224. }
    225. };
    Alles anzeigen
  • Ja, genau da liegt das Problem. Ich nehme mal an, dass das Script mit

    Quellcode

    1. Game::CreateObject("mod:Prototypes/Objects/Misc/empty.e4p","kon_bma").PushActionExecuteCommand(ACTION_APPEND,"bma_kontrolle",NULL);

    ausgeführt werden kann.

    Füge ich diesen Teil direkt zu Anfang - wie folgt - ein, bekomme ich eine Fehlermeldung.

    Quellcode

    1. void Start()
    2. {
    3. Game::CreateObject("mod:Prototypes/Objects/Misc/empty.e4p","kon_bma").PushActionExecuteCommand(ACTION_APPEND,"bma_kontrolle",NULL);
    4. GameObjectList l1;
    5. GameObject *o1;
    6. //// <BLOCK> ////////////////////////////////////////////////////////////////////////////////////////////


    Wenn ich es am Ende - wie unten dargestellt- gesondert einfüge, dann bekomme ich zwar keine Fehlermeldung, aber es wird auch nicht ausgeführt.

    Quellcode

    1. void start()
    2. {
    3. Game::CreateObject("mod:Prototypes/Objects/Misc/empty.e4p","kon_bma").PushActionExecuteCommand(ACTION_APPEND,"bma_kontrolle",NULL);
    4. };


    Sprich, mir ist schon klar, dass ich es ausführen muss, mir ist nur - aufgrund mangelnder Scriptingkenntnisse nicht klar, wie ich das genau machen muss.

    Ich hoffe, man kann nun genauer verstehen, wo mein Problem liegt?
    Vielen Dank schon einmal für deine Hilfe bis hier her :)
  • Ich hab es mittlerweile noch mal neu eingefügt, so wie hier dargestellt:
    Spoiler anzeigen

    Quellcode

    1. void Start()
    2. {
    3. Game::CreateObject("mod:Prototypes/Objects/Misc/empty.e4p","kon_bma").PushActionExecuteCommand(ACTION_APPEND,"bma_kontrolle",NULL);
    4. GameObjectList l1;
    5. GameObject *o1;
    6. //// <BLOCK> ////////////////////////////////////////////////////////////////////////////////////////////


    Jetzt bekomme ich zwar keine Fehlermeldung, dafür stürzt mir das ganze Spiel aber ab und ich lande wieder auf dem Desktop. Hier das entsprechende Logfilfe dazu:
    Spoiler anzeigen

    Quellcode

    1. Freeplay: car accident found
    2. Freeplay: car accident attachment found
    3. Freeplay: car accident attachment found
    4. |Loading Model mod:Models\Objects\Misc\empty.v3o
    5. |[VNUM=1.43]
    6. |Model contains 32 vertices, 12 polygons, 0 bones, 0 muscleanimframes
    7. !STARTSCRIPT: Disponenten Platz 1 wurde erfolgreich eingerichtet.
    8. !STARTSCRIPT - FEHLER: Disponenten Platz 2 wurde nicht gefunden ! ! ! !
    9. !STARTSCRIPT - FEHLER: Disponenten Platz 3 wurde nicht gefunden ! ! ! !
    10. !STARTSCRIPT - FEHLER: Disponenten Platz 4 wurde nicht gefunden ! ! ! !
    11. !BMA Start
    12. !BMA-Pruefung: BMA_1
    13. !Suche: BMA_1, hat 27
    14. !BMA-Pruefung: BMA_1
    15. !Suche: BMA_1, hat 27
    16. !WARNING: global listener object is still registered! Unregister listener before destroying object!
    Alles anzeigen
  • In den letzten Tagen habe ich noch mal ein wenig rumprobiert, weshalb ich mich noch mal melde.
    Das Script funktioniert, wenn ich es manuell über eine Person im Spiel starte, scheinbar problemlos. Möchte ich es aber über ein Startscript starten, habe ich immer wieder das Problem des Absturzes mit obigem Logfile. Dieser tritt auch auf, wenn ich als Startscript nur das oben zur Verfügung gestellte Startscript nutze.

    Hat noch jemand eine Idee, woran es liegen könnte?
  • Vielen Dank schon mal für deine Hilfe. Mit der Version bekomme ich diese Fehlermeldung:
    Fehlermeldung.png

    Das Logfile dazu sieht so aus:
    Spoiler anzeigen

    Quellcode

    1. ?(_fp_freeplayf616a3): Error: Symbol Caller is not defined in current scope
    2. ?(_fp_freeplayf616a3): FILE:mod:Scripts/Game/Mission/fp_freeplay.scriptf616a3 LINE:8
    3. ?(_fp_freeplayf616a3): !!!Dictionary position rewound...
    4. ?(_fp_freeplayf616a3): !!!Error recovered!!!
  • Und was ist jetzt?

    PHP-Quellcode

    1. void Start()
    2. {
    3. GameObjectList l1;
    4. GameObjectList l2 = Game::CreateObject("mod:Prototypes/Objects/Misc/empty.e4p","kon_bma");
    5. GameObject *o1;
    6. l2.GetObject(0)->PushActionExecuteCommand(ACTION_NEWLIST,"bma_kontrolle",NULL);
    7. //// <BLOCK> ////////////////////////////////////////////////////////////////////////////////////////////
  • Vielen Dank schon einmal für deine Mühen.

    Jetzt habe ich diese Fehlermeldung:
    Fehlermeldung 2.png

    Mit diesem Logfile:
    Spoiler anzeigen

    Quellcode

    1. ?(_fp_freeplayf61529): Error: Can't call GameObjectList::GameObjectList((class GameObject)959883880) in current scope
    2. ?(_fp_freeplayf61529): FILE:mod:Scripts/Game/Mission/fp_freeplay.scriptf61529 LINE:7
    3. ?(_fp_freeplayf61529): Possible candidates are...
    4. ?(_fp_freeplayf61529): filename line:size busy function type and name
    5. ?(_fp_freeplayf61529): (in GameObjectList)
    6. ?(_fp_freeplayf61529): (compiled) 0:0 0
    7. ?(_fp_freeplayf61529): public:
    8. ?(_fp_freeplayf61529): GameObjectList
    9. ?(_fp_freeplayf61529): GameObjectList(
    10. ?(_fp_freeplayf61529): void
    11. ?(_fp_freeplayf61529): )
    12. ?(_fp_freeplayf61529): ;
    13. ?(_fp_freeplayf61529):
    14. ?(_fp_freeplayf61529): (compiled) 0:0 0
    15. ?(_fp_freeplayf61529): public:
    16. ?(_fp_freeplayf61529): GameObjectList
    17. ?(_fp_freeplayf61529): GameObjectList(
    18. ?(_fp_freeplayf61529): const char*
    19. ?(_fp_freeplayf61529): Name_
    20. ?(_fp_freeplayf61529): )
    21. ?(_fp_freeplayf61529): ;
    22. ?(_fp_freeplayf61529):
    23. ?(_fp_freeplayf61529): (compiled) 0:0 0
    24. ?(_fp_freeplayf61529): public:
    25. ?(_fp_freeplayf61529): GameObjectList
    26. ?(_fp_freeplayf61529): GameObjectList(
    27. ?(_fp_freeplayf61529): const GameObjectList&
    28. ?(_fp_freeplayf61529): Copy_
    29. ?(_fp_freeplayf61529): )
    30. ?(_fp_freeplayf61529): ;
    31. ?(_fp_freeplayf61529):
    32. ?(_fp_freeplayf61529): !!!Dictionary position rewound...
    33. ?(_fp_freeplayf61529): !!!Error recovered!!!
    Alles anzeigen


    Edit:
    Mit Hilfe von EM4Modder konnte ich das Problem mitlerweile lösen, wodurch das Script jetzt problemlos läuft. Vielen Dank für die Hilfe auch noch mal an dieser Stelle :)

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von Fabil ()

  • Das Script läuft mittlerweile eigentlich problemlos. Wenn ich jetzt aber einen Rauchwarnmelder einbaue und ihn analog zur BMA (BMA_1) mit BMA_1 benenne, löst dieser ebenfalls aus, ich bekomme zwei Alarmmeldungen und muss auch beide wieder zurückstellen.
    Für den Prototypen des Rauchwarnmelder habe ich nun schon alle möglichen Kombinationen durch, die mir so eingefallen sind:
    • nur der Prototypenname
    • der Prototypenname mit der Endung.e4p
    • der Pfad zum Prototypen

    Habe ich bei der Bennenung einfach nur ein Denkproblem?
  • Da dieses Problem leider immernoch besteht, wollte ich mal ganz vorsichtig in die Runde fragen, ob mittlerweile noch jemand dieses Script nutzt, es mit einem zusätzlichen Rauchmelder umgesetzt hat und mir daher an dieser Stelle weiterhelfen kann, damit ich den Punkt "BMA-Einsatz" von meiner langen Liste der Probleme streichen kann.

    Vielen Dank schon mal im voraus für eure Hilfe
  • Florian Ko 12/2 schrieb:

    Rauchwarnmelder brauchst du nicht zwingend, das Feld kannst du also leer lassen. Da wäre der Prototyp für einen Rauchwarnmelder gefragt, der auch als BMA_x benannt werden müsste (x ist eine Zahl ;) )aber nicht zurückgestellt werden muss.


    Ich verstehe es so, dass der Rauchwarnmelder analog zur "BMA_1" auch "BMA_1" benannt wird, aber im Gegensatz zur BMA nicht zurück gestellt werden muss, wobei das Spiel über den Prototypen erkennt, dass es sich um den Rauchwarnmelder und nicht die BMA handelt.
    Sinn der ganzen Sache soll sein, dass ich die BMA gerne innerhalb von Häusern positionieren möchte, wodurch das Haus aber nicht unbedingt direkt erkannt werden kann. Dafür würde ich eine entsprechende rote Lampe an der Außenseite des Gebäudes anbringen.
    Ich hoffe, mein Vorhaben ist nun etwas klarer?

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