Armed-Assault.de Twitter
 
 
Themen-Optionen Ansicht
Alt 06.11.2013, 00:47   #21 (permalink)
JSR
500 Beiträge1000 Beiträge
 
Registriert seit: 29.10.2008
Beiträge: 1.192
Standard

Super, danke für die Hilfe!

Übrigens, statt Hint "Text" füge ich Playsound "Name der Sounddatei" ein und fertig.

Kannst du mir vllt. erklären, wo bzw. wie genau du die "unendliche" Wiederholung gescriptet hast?

PS: While {true} - also während "aktiv" oder "wahr" ist also ein großer Unterschied zu "While {speed _vehicle <50};" ?

Geändert von JSR (06.11.2013 um 00:50 Uhr).
JSR ist offline  
Alt 06.11.2013, 00:58   #22 (permalink)
50 Beiträge
 
Benutzerbild von JeeperCreeper
 
Registriert seit: 18.10.2013
Alter: 41
Beiträge: 64
Standard

Ah cool, jetzt hab ich auch wieder nen neuen Befehl gelernt thx

Die wiederholung erzeugst du mit der while-Schleife. Alles an Code was du in der Scheife reinschreibst, wiederholt sich halt. Hmm... wie soll man das erklären, ist eigentlich selbsterklärend

Ein Beispiel mal mit nem anderen Code:

Code:
if (!isServer) exitWith {};
 
private ["_auto"];
 
_auto = _this select 0;
 
while {true} do
{
  player moveInCargo _auto
};
Hiermit ist es jetzt dem Spieler nicht mehr möglich aus dem Auto auszusteigen. Weil er halt immer wieder durch das Script reingesetzt wird.
Wenn du da jetzt noch z.B. nen sleep Befehl reinsetzt von ein paar Sek. dann hast du die Zeit kurz auszusteigen und wirst nachdem sleep wieder reingesetzt.
Code:
if (!isServer) exitWith {};
 
private ["_auto"];
 
_auto = _this select 0;
 
while {true} do
{
  player moveInCargo _auto; sleep 20
};
Damit hast du 20 Sek. Zeit irgendwas zu machen bis du wieder reingesetzt wirst.

Also immer wenn die Bedingung (While {condition}) true ist, dann wird die Schleife fortgesetzt. Sobalt false kommt dann nicht mehr. Man kann halt anstatt dem "true" irgendeine Bedingung reinschreiben und solange die "true" wiedergibt, läuft die Schleife.
Und {speed _vehicle <50} gibt ja nur "true" zurück, wenn man unter 50 ist. Sobalt man einmal über 50 kommt, wird die Schleife verlassen. Eine einfache Schleife erzeugst du halt immer, wenn du "true" reinschreibst und nach dem "do" dein Code der wiederholt werden soll. Weil dann ist ja immer "true".

Geändert von JeeperCreeper (06.11.2013 um 01:09 Uhr).
JeeperCreeper ist offline  
Alt 06.11.2013, 01:10   #23 (permalink)
JSR
500 Beiträge1000 Beiträge
 
Registriert seit: 29.10.2008
Beiträge: 1.192
Standard

Okay. Also greife ich mit While {true} auf den unten Block, der mit einer IF und THEN bestückt ist zu und gebe mit "true" an, dass er immer wenn der Wert im IF und THEN Block zutrifft auch genau das erfüllt. So habe ich es jetzt verstanden.
JSR ist offline  
Alt 06.11.2013, 01:20   #24 (permalink)
50 Beiträge
 
Benutzerbild von JeeperCreeper
 
Registriert seit: 18.10.2013
Alter: 41
Beiträge: 64
Standard

Nein nicht ganz hehe, ich sag ja ich kann nix erklären. Der untere Block hat mit dem {true} nix am hut. Der untere Block (egal welcher muss nicht if then else sein) wird halt nur dann immer wieder ausgeführt, solange die Bedingung nach dem While, also in den {Klammern} true wiedergibt. Wenn du da jetzt selber einfach nur {true} reinschreibst, dann ist die Bedingung halt schon true und somit läuft die Schleife ewig, weil ja nicht mehr {false} kommen kann.
Würde man jetzt als Beispiel in die While Bedingung folgendes reinschreiben:
Code:
While {1>2} do {irgendwas}
Dann würde irgendwas nie passieren, weil 1 nie größer werden kann wie 2. Ich hoffe jetzt war es klar genug

Geändert von JeeperCreeper (06.11.2013 um 01:25 Uhr).
JeeperCreeper ist offline  
Alt 06.11.2013, 01:34   #25 (permalink)
JSR
500 Beiträge1000 Beiträge
 
Registriert seit: 29.10.2008
Beiträge: 1.192
Standard

Zitat von JeeperCreeper Beitrag anzeigen

Nein nicht ganz hehe, ich sag ja ich kann nix erklären. Der untere Block hat mit dem {true} nix am hut. Der untere Block (egal welcher muss nicht if then else sein) wird halt nur dann immer wieder ausgeführt, solange die Bedingung nach dem While, also in den {Klammern} true wiedergibt. Wenn du da jetzt selber einfach nur {true} reinschreibst, dann ist die Bedingung halt schon true und somit läuft die Schleife ewig, weil ja nicht mehr {false} kommen kann.
Würde man jetzt als Beispiel in die While Bedingung folgendes reinschreiben:

Code:
While {1>2} do {irgendwas}
Dann würde irgendwas nie passieren, weil 1 nie größer werden kann wie 2. Ich hoffe jetzt war es klar genug
Ich glaub das liegt mehr an mir als an dir.

Stelle mich bei sowas irgendwie immer sehr blöd an, brauche dafür immer ein wenig.

Was ich halt nicht so ganz verstanden habe ist, warum der vorherige Eintrag, den wir gestern behandelt haben sich dann nicht auch wiederholt.
Weil
"
While {speed _vehicle > 50} Do {playsound "Sound"};

Bedeutet ja, dass während man im _vehicle die Geschwindigkeit 50Kmh überschritten hat, der sound "Sound" abgespielt wird.

Und das andere mit While {true} do und dann der IF Block aus deinem Tempo script sagt ja im Endeffekt das gleiche aus, nur das {speed _vehicle > 50} halt nicht bei While sondern im unteren Block stehen.

Deswegen habe ich es jetzt so verstanden wie ich es schon beschrieben habe, was aber wahrscheinlich falsch ist, wie du es grad sagst. Deswegen werde ich mir jetzt noch 200 mal deinen Beitrag durchlesen, bis ich es verstanden habe.

Mache für heute jetzt erstmal eine Pause und fang morgen wieder frisch an. Bin heute zu kaputt um noch weiter dadran zu lernen. Werde so nichts kapieren.

Aber wie gesagt, liegt definitiv NICHT an dir! Du erklärst das ganz gut!
JSR ist offline  
Alt 06.11.2013, 10:04   #26 (permalink)
50 Beiträge
 
Benutzerbild von JeeperCreeper
 
Registriert seit: 18.10.2013
Alter: 41
Beiträge: 64
Standard

Du denkst da schon in die richtige Richtung. Das mit der Bedingung hast du jetzt verstanden. Aber bei
While {speed _vehicle > 50} Do {playsound "Sound"};
wird der Sound deshalb nicht abgespielt, weil du ja nicht über 50km/h startest. Und sobalt du ja unter 50km/h kommst, in dem Fall bist du ja schon am Anfang unter 50, dann wird die Schleife ja verlassen.
JeeperCreeper ist offline  
Alt 06.11.2013, 12:01   #27 (permalink)
50 Beiträge100 Beiträge
 
Registriert seit: 02.11.2010
Beiträge: 113
Standard

While {true} bedeutet ja nichts anderes als "Solange es wahr ist".
Und da es sozusagen ohne Bedingung immer "wahr", also "true" ist läuft das Ganze während der ganzen Mission über ...

"true" findest du beispielsweise ja auch standardmäßig als Wegpunktbedingung. Solange statt "true" nicht eine Bedingung rein kommt, laufen diese auch einfach durch.

Wie JeeperCreeper schon erklärt hatte läuft bei "while {true} ..." das Script sozusagen ewig in der Schleife, weil die alleinige Bedingung "true" immer zutrifft. Es wird die Schleife nie verlassen. Aus dem Grunde kommt die Meldung mehrmals, auch wenn zwischendurch die Geschwindigkeit unterschritten wurde.
Es handelt sich in dem Script ja auch praktisch um zwei Bedingungen. Die 2. mit der Geschwindigkeit gibt die Meldung aus und wird aufgrund der ersten Bedingung, die immer zutrifft immer wieder gestartet.
Es ist sozusagen eine doppelt verschachtelte Bedingung, die nie beendet werden kann weil das "while {true} ..." immer zutrifft.

Bei der gestrigen Version läuft die Schleife so lange, bis die Geschwindigkeit höher ist. Dann kommt die Hint-Meldung. Danach ist für das Script sozusagen die Arbeit getan und es wird beendet weil die Bedingung ja erfüllt worden ist.

Vielleicht ist dir der Knopf ja jetzt aufgegangen ...

Greetz
Jan

Geändert von JanIs (06.11.2013 um 12:22 Uhr).
JanIs ist offline  
Alt 06.11.2013, 20:03   #28 (permalink)
JSR
500 Beiträge1000 Beiträge
 
Registriert seit: 29.10.2008
Beiträge: 1.192
Standard

Okay, ich habs nun endlich verstanden.
Danke für die Geduld ihr beiden!

Ich habe gestern (oder vorgestern?) angefangen das Tutorial zu lesen, bin aber noch nicht an der Stelle gewesen, wo beschrieben wird, wo der Unterschied mit "Null []" und "Gogo []" ist oder was zum Beispiel Private bedeutet oder
was es mit "if (!isServer) exitWith {};" aufsich hat.
JSR ist offline  
Alt 07.11.2013, 20:07   #29 (permalink)
500 Beiträge1000 Beiträge
 
Benutzerbild von Drunken Officer
 
Registriert seit: 15.05.2011
Beiträge: 1.109
Standard

Ist die bedingungen in einer schleife nicht gegeben, wird diese übergangen
Arbeite mit Waituntil
Warnung = [this, 60] execvm "....sqf"
Code:
Private ["_rd", "_ge"];
_rd = _this select 0;
While {alive _rd} do
{
_rd = _this select 0;
_ge = _this select 1;
Waituntil {speed _rd > _ge};
Hint "you are to fast";
Sleep 3;
};
Gogo oder was auch immer ist eine variable, welche als Wert die ausführung des scriptes beinhaltet

Geändert von Drunken Officer (07.11.2013 um 20:12 Uhr).
Drunken Officer ist offline  
Alt 07.11.2013, 20:26   #30 (permalink)
JSR
500 Beiträge1000 Beiträge
 
Registriert seit: 29.10.2008
Beiträge: 1.192
Standard

Danke! Soweit komme ich aber mit der Version von Jeeper gut zurecht!
Sie erfüllt soweit Sinn und Zweck.


Zur Zeit habe ich ein anderes Problem. Sobald ich das Script über die Config starte, was soweit funktioniert, kommt eine Fehlermeldung, sobald ich über die angegebene Geschwindigkeit komme.

"Radio Message "TSound" not found".

In der config.cpp bzw. .bin ist der Sound per

class CfgRadio {

class TSound {
name = "";
sound[] = {"Ah6\T_Low", 1, 1};
title = "";
};
};
angegeben. Ist halt nur der Ausschnitt CfgRadio aus der cpp.

Wie genau gebe ich den Pfad in der .cpp denn sonst durch? Habe es schon mit CfgSounds probiert, klappt aber soweit auch nicht.

Oder muss ich das mit den Veerbungen der classen beachten?
Falls ja, ich habe keine CfgRadio gefunden... was ja auch eigentlich dafür spricht, dass das anders funktioniert. Habe als Abguckbeispiel eine andere Config genommen, wo diese Sounds per CfgRadio definiert wurden... jedoch aus Arma 2.

In der Testmission, wo alles ohne config abgerufen wurde, habe ich den VehicleRadioSound Pfad in der description.ext mit CfgRadio angegeben und es hat funktioniert.


EDIT:

Fehler gefunden!

Für alle die, die das vllt interessiert:
Ich habe CfgRadio unter dem CfgVehicle Block definiert. Denke mal ein typischer Anfängerfehler. :P

CfgVehicle muss natürlich per }; geschlossen werden und dann kommt CfgRadio dran. Funktioniert jetzt alles erstmal super. Danke für die Hilfe, die mir die Basis für meine Ideen gegeben hat!

Geändert von JSR (07.11.2013 um 21:52 Uhr).
JSR ist offline  
 


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
World of Tanks Snevsied Sonstige Genres & Themen 2402 10.03.2017 15:05
Arma 3 Beta Xeno Community 1083 11.09.2013 16:42
F-22 Raptor Tunen 8-) Clawhammer Mods & Addons 5 26.02.2013 15:59
RPM und Speed Faktor JSR Editing & Scripting 4 19.12.2012 23:33


Kontakt - HX3.de - Archiv - Nach oben

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