HX3 Foren

HX3 Foren (https://hx3.de/)
-   Editing & Scripting (https://hx3.de/editing-scripting-167/)
-   -   ingame Balkenanzeige ? (https://hx3.de/editing-scripting-167/ingame-balkenanzeige-18479/)

[GNC]Lord-MDB 13.01.2010 23:38

ingame Balkenanzeige ?
 
Weis einer wie man diese Balkenanzeige hinbekomme die es im Map wie Warfare,Domio gibt wenn man ein Camp einnimmt.

i0n0s 14.01.2010 01:34

Ein einfacher Dialog mit Hilfe von cutRsc dargestellt.
Denk dran, dass der Dialog dann auch von einer Ressource abgeleitet werden muss.

Muhmilk 14.07.2011 17:36

Tolle Antwort
 
Ich bin neu hier und scripte zur Zeit etwas herum, um ein paar Kenntnisse zu gewinnen!

Ich habe nämlich genau das selbe Problem wie [GNC]Lord-MDB eine Balkenanzeige zu erstellen!

Meine Vorstellung ist es, mehrere Scuds mit einen Balken zu versehen!
Ich bin momentan soweit, das wenn der Spieler in die Nähe der Scud kommt (Trigger-Auslösung) sich die Scud aufstellt! Nun soll aber bis zum Abschuss der Scud ein Balken angezeigt werden, der die verbleibende Zeit sichtbar macht!

Wie bekommt man so etwas hin!
Sorry i0n0s, aber deine Beschreibung ist nicht ausreichend und leider überhaupt nicht hilfreich!

Vielen Dank im voraus!

Buliwyf 14.07.2011 19:19

Zitat:

Zitat von Muhmilk (Beitrag 379360)
Sorry i0n0s, aber deine Beschreibung ist nicht ausreichend und leider überhaupt nicht hilfreich!

Sie trifft aber den Nagel auf den Kopf! Was erwartest Du jetzt? Eine vorgekaute Lösung die Du nur noch kopieren und einfügen musst? ...viel Erfolg dabei, jemanden zu finden der Dir das serviert...

:stupid:

Muhmilk 14.07.2011 19:55

Ich erwarte keine Lösung, sondern hätte gern einfach nur Hilfe!

Anscheinend ist es einfach nur zuviel verlangt, daß jemand mal einem Neuling einen Ansatz zeigt!
Für die Lösung bin ich alleine verantwortlich!

Die Frage an dich Buliwyf ist dann nämlich folgende: Kannst du einen Balken erstellen?

Ich habe schon oft, Hochmut behaftete superschlaue Kommentare von Autoren gelesen, die trotzalledem kein deut besser waren!

Mir liegt es fern mich hier rumzuärgern oder jemanden Nahe zu treten, sondern einfach nur Hilfe bei einem Problem zu bekommen und KEINE Lösung!

....wenigstens einen Ansatz!

Aber wenn das schon zu viel ist, dann wundert mich es nicht, weshalb die Arma-Community auseinanderfällt und der Fehler bei BIS gesucht wird!

Danke für die Hilfe:confused:

Pfandgiraffe 14.07.2011 20:42

tja, da hat Muhmilk wohl auch den nagel auf den kopf getrofen.


@Muhmilk:
mit dem lösungsansatz von ionis kannst du deshalb nix anfangen, weil die antwort von ionis eben nicht für einen vollanfänger ausgelegt ist, sondern für jemanden bestimmt war der ein gewisses grundwissen hat.

daher eben auch kein grund zu sagen das seine Beschreibung "nicht hilfreich" ist.




...aber dir wird bestimmt noch jemand weiter helfen. (ich bin es nicht, da ich es selber nicht weis)
aber hier zwei ansätze:
dialoge
cutRsc



mfg

burns 14.07.2011 20:46

Statt nem unheimlich schwer umzusetzenden Balken, würde sich bei einer Scud als Zeit-Veranschaulichung auch ein Count-Down über Lautsprecher anbieten.

..sobald die Dinger sich aufrichten, ists eh zu spät und man sollte das Weite suchen.

Hab am Ende von meiner [co15]Playa Party für Lingor Island sowas ähnliches drin, kann man sich evtl das ein oder andere von abgucken.

Muhmilk 14.07.2011 21:26

@burns
Zitat:

Zitat von burns (Beitrag 379389)
Hab am Ende von meiner [co15]Playa Party für Lingor Island sowas ähnliches drin, kann man sich evtl das ein oder andere von abgucken.

Ich hab mal geschaut, habe sie aber hier nicht gefunden, oder meinst du die Co12 Playa Party??? Die Frage ist auch ob es eine MP Mission ist?

@Psychobastard

die Links die du mir gesendet hast sind schon mal ein guter Anfang!
Hoffe allerdings, daß da noch etwas dazu kommt, wärend ich mich da durchkämpfe und das Hirn das rauchen anfängt!
Aller Anfang ist halt schwer...:rolleyes:

Aber ich danke Euch beiden ganz sehr für die schnelle Antwort!:daumen:

Buliwyf 14.07.2011 21:26

Wissen ist eine Holschuld...

Mein erster Tipp: Weniger ist mehr!

Mein zweiter Tipp:
Setze Dich zunächst mit den grundlegenden Dingen in Sachen Scripting auseinander.
Gut geeignet dazu:
ARMA Editing Guide
ARMA 2 Scripting Commands

Desweiteren solltest Du Missionen, in denen Du Funktionen entdeckt hast, die Du gern hättest, entpacken und anschauen wie es umgesetzt wurde.
Und dann fang an zu experimentieren... und vor allem, zeig was Du bislang auf die Beine gestellt hast! Ich bin dann jedenfalls eher bereit zu helfen, weil ich sehe, dass Du wirklich ein Ziel hast und ich keine Perlen vor die Säue werfe...

Mein dritter Tipp, der sich stark an den ersten anlehnt, allerdings komplett von meinem zweiten Tipp abweicht... hier ein simples Beispiel eines Statusbalkens... hat vielleicht max. 5 Minuten Zeit gekostet...

Code:

_maxTime = 50;
_hint = [];
for "_i" from 1 to _maxTime do {
_hint = _hint + [124];
hintSilent format["Estimated time to launch:\n\n%1", toString _hint];
sleep 1;
};

-= Download Demo=-

:schlau:

burns 14.07.2011 23:05

Zitat:

Zitat von Muhmilk (Beitrag 379393)
@burns


Ich hab mal geschaut, habe sie aber hier nicht gefunden, oder meinst du die Co12 Playa Party??? Die Frage ist auch ob es eine MP Mission ist?

Hopperla, dann ist sie wohl nur co12 gewesen..
Und ja ist MP, leitet sich bereits aus dem Namen ab :D

Muhmilk 15.07.2011 10:26

@burns
Zitat:

Zitat von burns (Beitrag 379397)
Hopperla, dann ist sie wohl nur co12 gewesen..
Und ja ist MP, leitet sich bereits aus dem Namen ab :D

sorry das mit dem co12 habe ich auch vollkommen ausgeblendet!
Danke dir nochmal!

Ich habe dieses Problem auch etwas anders gelöst, aber der Hinweis von dir (Buliwyf) hat mir sehr weitergeholfen, obwohl ich mir immer noch nicht erklären kann, weshalb du einen Array für den Timer verwendest?

weil ich denke, daß wenn du einen zbsp.:
Code:

_hint = [];
_hint = _hint + [124];

// das daraus wird,  wenn man es dann mit der for-do Schleife addiert:
_hint = [124,124,124,124];

daher stelle ich mal mein script hier rein, wie es mir dann wie schuppen von den Augen gefallen ist:

Code:

if(alive _vec_scud) then {
                         
[_vec_scud] spawn
                                     
{ if(!isServer) exitWith {};
  private ["_vec_scud", "_scud_object_trigger"];

  _vec_scud = _this select 0;
                                                                                   
 // Hier wird der Trigger erstellt der für das Aufrichten der Scud verantwortlich ist                                                                                   

  _scud_object_trigger = createTrigger["EmptyDetector",getPos _vec_scud];
  _scud_object_trigger setTriggerArea[50,50,0,false];
  _scud_object_trigger setTriggerActivation["WEST","PRESENT",false];
  _scud_object_trigger setTriggerStatements["this", "", ""];
  sleep 0.5;

  waitUntil {triggerActivated _scud_object_trigger};
                                                                                               
  // publicVariable Funktion zum löschen des Triggers auf allen Clients

  [0, _scud_object_trigger, 0.05] call fnc_send_to_delete;
                                                     
  _vec_scud action["scudLaunch",_vec_scud];
 
  // hier wird das Aufrichten und Beginn des Countdowns angezeigt
                                                                                                   
  hint composeText[parseText("<t color='#f0ff0000' size='2'>" + "ATTENTION:" + "</t>"), lineBreak,
  parseText("<t size='1'>" + "The Countdown to Start the Rocket has been initialized!" + "</t>")];
  sleep 10;
                                                                                                   
  [_vec_scud] spawn { If(!isServer) exitWith {};
                     
                      private ["_scud_obj", "_time", "_timer", "_time_control"];

                      _scud_obj = _this select 0;
                    _timer = 50;
                      _time = 50;

                      for "_time_control" from 1 to _timer do
                      {
                                                                                                                         
                        //Solange die Scud lebt wird der Countdown heruntergezählt und man kann mitlesen (8

                        If(alive _scud_obj) then { _time = _time - 1;

                                                  hintSilent composeText[parseText("<t color='#f0ff0000' size='2'>" + "ATTENTION:" + "</t>"), lineBreak,
                                                  parseText("<t size='1'>" + "Seconds before the launch of the rocket" + "</t>"),
                                                  lineBreak, lineBreak, parseText("<t size='2'>" + format ["%1",_time] + "</t>")];
                                                  sleep 1;
                                               
                                                // Wenn die Scud zestört wurde wird der for-do Zähler auf 0 gesetzt

                                                } else {_timer = 0;};
                      };
                       
                      // Wenn der Countdown heruntergezählt ist startet die Scud, oder wenns sie das zeitliche gesegnet hat wird man mit einem "GOOD JOB" belohnt (8
                                                                                               
                      If(alive _scud_obj && _time == 0) then {
                                                              _scud_obj action["scudStart",_scud_obj];
                                                              sleep 4;
                                                              hint composeText[parseText("<t color='#f0ff0000' size='2'>" + "FAILED:" + "</t>"), lineBreak, parseText("<t size='1'>" + "The Scud missile was launched!" + "</t>")];
                                                            } else {
                                                                      hint composeText[parseText("<t color='#f00000ff' size='2'>" + "GOOD JOB:" + "</t>"), lineBreak, parseText("<t size='1'>" + "The Scud is destroyed!" + "</t>")];
                                                                    };

                      if(true) exitWith {};
                    };
If(true)exitWith {};
};

Das funktioniert so 1A! Ich war gestern nur auf dem Schlauch gestanden, weil ich das mit einer while-do schleife machen wollte und ich mir nicht erklären konnte wie!

Ein großes Dankenschön nochmal an alle :daumen:!

Buliwyf 15.07.2011 17:24

Naja, ich hab halt einen Balken statt einer Zahl in der Anzeige... ;)

Vienna 15.07.2011 21:01

In deinem Skript mit spawn "Nebenprogramme" zu bilden ist so nicht angebracht, weil überflüssig.

Wo habt ihr das nur her: if (true) und am Ende eines Skripts oder eines Programmteils exitWith ? Totaler Unsinn!

Ein Programmablauf soll logisch sein und nichts Überflüssiges enthalten.

Muhmilk 15.07.2011 22:20

Zitat:

Zitat von Vienna (Beitrag 379506)
In deinem Skript mit spawn "Nebenprogramme" zu bilden ist so nicht angebracht, weil überflüssig.

Dann bin ich ja mal gespannt, wie du lokale Variablen in den TriggerStatements zur Auslösung bringen willst??
Da mit einer for-do schleife mehrere Scuds gespannt werden, wo an jeder so ein Trigger hängt...so wird auch nach meiner Einschätzung für jede gespannte Scud ein eigenes Script angehängt!
Das sieht man an diesem Beispiel nur nicht

zBsp:
_vec_scud action["scudLaunch",_vec_scud];

Und vom Prinzip ist es wurscht, ob ich exitWith {}; reinschreibe! So geh ich für mich auf jedenfall sicher, daß wenn die Funktion zu ende ist, diese auch beendet wird und nicht weiterläuft wenn irgendwas bugged...daß ist meine Meinung....auch wenn sie nicht zutreffen muss... aber mir gefällts und es funktioniert! :lol:

Vienna 16.07.2011 00:43

Zitat:

Zitat von Muhmilk (Beitrag 379360)
Ich bin neu hier und scripte zur Zeit etwas herum, um ein paar Kenntnisse zu gewinnen!
...

Da hast du aber einen falschen Eindruck erweckt. Du bist in Wirklichkeit ein Profi.

Muhmilk 16.07.2011 08:07

Zitat:

Zitat von Vienna (Beitrag 379514)
Da hast du aber einen falschen Eindruck erweckt. Du bist in Wirklichkeit ein Profi.


nee nee, ich bin nur ein kleines Würstchen..., nochmal zur Bestätigung für Dich!

Das "Ich bin neu hier...." bezog sich eher auf meinen Aufenthaltszeitraum in diesem Forum....

Bin manchmal etwas forsch mit meiner Schreibweise... aber wie schon geschrieben, möchte ich niemanden damit zu Nahe treten! ;)

Vienna 16.07.2011 09:16

Wenn schon ein Würstchen, dann eines mit Beratungsresistenz!

Muhmilk 16.07.2011 10:53

Zitat:

Vienna: Wenn schon ein Würstchen, dann eines mit Beratungsresistenz!
Ach Vienna, so Beratungsresistent bin ich gar nicht, ich laß mir gerne was sagen!

Wenn man jedoch eine Feststellung festgestellt hat :naughty: ==>


Zitat:

Zitat von Vienna (Beitrag 379506)
In deinem Skript mit spawn "Nebenprogramme" zu bilden ist so nicht angebracht, weil überflüssig.

Dann sollte man auch ein guter "Lehrer" sein, und seine festgestellte Feststellung :p untermauern! Mit einem Beispiel zBsp!
Gerade deshalb, weil man ja gelesen hat, daß man "NEU" ist, macht das immer einen besseren Eindruck!

Ebenso, leidet die Qualität dieses Forums enorm darunter, wenn man soetwas macht...

Es mag richtig sein, daß Du schon jahrelang hier angemeldet bist und dich selber, aufgrund deines Wissens und Erfahrungen, zum "Profi" machst!
Aber deshalb sollte man nie vergessen, woher man gekommen ist, wie man angefangen hat und daß man selber nicht Fehlerfrei ist!

Viele Wege führen nach Rom! Wenn mich auf diesem Weg jemand begleitet und mir Tips gibt, dann gehen 2 den selben Weg, aber die Erfahrungen sind gänzlich unterschiedlich!

:angel:

Vienna 16.07.2011 13:15

Zitat:

Zitat von Muhmilk (Beitrag 379381)
Ich erwarte keine Lösung, sondern hätte gern einfach nur Hilfe!

Anscheinend ist es einfach nur zuviel verlangt, daß jemand mal einem Neuling einen Ansatz zeigt!

...

Meine Zeilen waren doch ein Ansatz? Jetzt soll es plötzlich ein Beispiel sein?

Weiß zwar nicht was man wem noch sagen sollte, der ein Ende vom Ende programmieren will. Aber trotzdem noch einen Ansatz:

Da du (meiner Meinung nach zu oft, weil man Überflüssiges oder Mehrfaches vermeiden muss) if(!isServer) exitWith {} verwendest, soll das Skript vermutlich Mehrspieler tauglich sein. Das wird aber so nicht funktionieren, weil es in Arma lokale und globale Befehle gibt.

Pfandgiraffe 16.07.2011 20:01

*offtopic:*
sagmal muhmilk,

warum stellst du hier elementarfragen und stellst dich als neuling hin um dann bei jedem anflug von hilfe und hinweisen etwas besseres wissen zu müßen und den klugscheißer raushängen zu lassen?

benötigst du selbstbestätigung in irgendeiner form die dir fehlt oder warum führst du hier gern alle ad absurdum? damit machst du dir ganz sicher keine freunde als "neuling" - viel spass in der zukunft.



mfg


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:17 Uhr.

Angetrieben durch vBulletin, Entwicklung von Philipp Dörner & Tobias


SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119