Armed-Assault.de Twitter


Editing The world is a Script - write it!

Antwort
 
Themen-Optionen Ansicht
Alt 09.06.2008, 09:45   #1 (permalink)
10 Jahre hx3
5000 Beiträge
 
Benutzerbild von Duke49th
 
Registriert seit: 06.10.2006
Ort: Manila
Alter: 43
Beiträge: 8.433
Standard Fahrzeug Warnmeldung

Kann mir jemand verraten, wo mein Fehler liegt?

(Script reagiert nicht)
Habs auch schon mit:
Code:
_plane = vehicle _this
Am Anfang probiert. Dann gibts aber ne Fehlermeldung.

Script(.sqs ... oder sollte ich lieber .sqf nehmen?):
Code:
_plane = vehicle _player


#checkEngine

?!(alive _plane): goto "exit"
? (isEngineOn _plane) : goto "Dammage"
~0.2
goto "checkEngine"

#Dammage
? (getdammage _plane > 0.7) : goto "Loop"
~0.2
goto "Dammage"


#Loop
?!(alive _plane): goto "exit"
?! (isEngineOn _plane) : goto "sleep"
?! (getdammage _plane > 0.6) : goto "Dammage"
_plane vehicleRadio "F16_Caution";
~6

goto "Loop"

#sleep
?!(alive _plane): goto "exit"
? (isEngineOn _plane) : goto "Dammage"
~0.2
goto "sleep"



#exit
exit
edit: Wo wir dabei sind.

Bei dem Script stimmt auch was nicht: (Dürfte aber wahrscheinlich auch in der zweiten Zeile ein Fehler sein...?)
Code:
_F16 = vehicle _this 
_alarm = "zsu"
_kv = 1.0

#checkEngine

?!(alive _F16): goto "exit"
? (isEngineOn _F16) : goto "scan"
~0.2
goto "checkEngine"

#scan
_kv = _alarm knowsabout _F16 : goto "Loop"
goto "scan"

#Loop
?!(alive _F16): goto "exit"
?! (isEngineOn _F16) : goto "sleep"
_F16 vehicleRadio "F16_gundish";
~0.980

goto "Loop"

#sleep
?!(alive _F16): goto "exit"
? (isEngineOn _F16) : goto "Loop"
~0.2
goto "sleep"



#exit
exit
__________________
MSI B450 Gaming Plus Pro | AMD Ryzen 7 5700X3D | Nvidia RTX 3060 TI | Teamgroup 32GB DDR-4 3200 | Track NP 5 | Linux Mint |Seasonic 750W

Geändert von Duke49th (09.06.2008 um 10:01 Uhr).
Duke49th ist offline   Mit Zitat antworten
Alt 09.06.2008, 10:39   #2 (permalink)
10 Jahre hx3
500 Beiträge1000 Beiträge
 
Benutzerbild von Buliwyf
 
Registriert seit: 11.03.2005
Ort: HH
Alter: 52
Beiträge: 1.930
Standard

Nuuuunnnn... also ich persönlich würde SQF benutzen, aber das bleibt in 99% dem Scripter selbst überlassen. Da eine plausible Erklärung warum SQS oder SQF zu finden ist mir bis heute noch nicht gelungen...

Weiterhin würde ich das erste Script grundsätzlich anders aufrufen. Und zwar würde ich dem Flugzeug eine EventHandler Engine verpassen, der sobald das Flugzeug den Motor startet, das Script aufruft. Ich finde es jedenfalls unnötig ein Script in einem Loop laufen zu lassen, bis der Motor an ist...

Ansonsten solltest Du im ersten Script _plane = _this select 0; einfügen. Begriffen habe es auch nie, aber manchmal hilfts...


Zum zweiten Script, das übrigens noch mehr Fehler als nur die zweite enthält...

_alarm = "zsu" wird nicht funktionieren, weil zsu ein Variablenname ist und sowas nicht in Hochkommata gestellt wird.
Also: _alarm = zsu wäre die richtige Variante.

Die knowsAbout-Zeile solltest Du auch nochmal überdenken...
Buliwyf ist offline   Mit Zitat antworten
Alt 09.06.2008, 10:49   #3 (permalink)
10 Jahre hx3
5000 Beiträge
 
Benutzerbild von Duke49th
 
Registriert seit: 06.10.2006
Ort: Manila
Alter: 43
Beiträge: 8.433
Standard

Danke soweit!

Zitat von Buliwyf Beitrag anzeigen

Weiterhin würde ich das erste Script grundsätzlich anders aufrufen. Und zwar würde ich dem Flugzeug eine EventHandler Engine verpassen, der sobald das Flugzeug den Motor startet, das Script aufruft. Ich finde es jedenfalls unnötig ein Script in einem Loop laufen zu lassen, bis der Motor an ist...

Und wie das?

Ich bin ja schon froh, überhaupt herausgefunden zu haben, daß man über die config ein Script aufrufen kann. Da mir in 4 verschiedenen Foren nicht einer verraten konnte oder wollte wie das geht. (Wen modemMaik mir nicht den Tipp gegeben hätte mal ins Scud Addon zu schauen, hätt ichs auch aufgegeben...)


Das mit dem knowsabout war nur ne Idee. Da es ja sowas wie eine Aufschaltung durch die KI scheinbar nicht gibt bzw. es wohl scheinbar nicht abgefragt werden kann.
__________________
MSI B450 Gaming Plus Pro | AMD Ryzen 7 5700X3D | Nvidia RTX 3060 TI | Teamgroup 32GB DDR-4 3200 | Track NP 5 | Linux Mint |Seasonic 750W
Duke49th ist offline   Mit Zitat antworten
Alt 09.06.2008, 11:02   #4 (permalink)
10 Jahre hx3
500 Beiträge1000 Beiträge
 
Benutzerbild von Buliwyf
 
Registriert seit: 11.03.2005
Ort: HH
Alter: 52
Beiträge: 1.930
Standard

Hast Du schonmal was vom Wiki gehört? Dort findest Du eigentlich immer gute Erklärungen zum jeweiligen Befehl. Manchmal auch Beispiele. Villeicht auch im aktuellen Editing Guide von MrMurray, den ich allerdings nicht gelesen habe.

Buliwyf ist offline   Mit Zitat antworten
Alt 09.06.2008, 11:29   #5 (permalink)
50 Beiträge100 Beiträge250 Beiträge
 
Benutzerbild von pspsps91
 
Registriert seit: 22.12.2005
Beiträge: 323
Icon12

Ich hab das erste Script mal in SQF geschrieben und jede Zeile mit einem Kommentar erklärt. Was das zweite Script genau machen soll ist mir aber ein Rätsel?!
Code:
_plane = vehicle _this;									//Aktivierung über >>>nul=PLANE execVM "script.sqf";<<< keine []!!!!

while {alive _plane} do {								//Das Script wiederholt sich, solange das Flugzeug noch lebt
	waitUntil{((IsEngineOn _plane) && (getDammage _plane > .7) || !(alive _plane)};	//Solange warten bis der Motor an ist UND die Beschädigung größer als 0.7 ist ODER das Flugzeug nicht mehr lebt
	if (alive _plane) then {							//Wenn das Flugzeug noch lebt die folgenden Zeile ausführen, ansonsten gehts gleich wieder in die Schleife, die aber beendet wird, da das Flugzeug nicht mehr lebt
		_plane vehicleRadio "F16_Caution";					//Der Funkspruch
		waitUntil{(getDammage _plane) < .7};					//Warten, bis der Schaden wieder kleiner ist und dann die Schleife durchlaufen
	};
};
__________________
SP Mission, coming soon...
pspsps91 ist offline   Mit Zitat antworten
Alt 09.06.2008, 17:39   #6 (permalink)
10 Jahre hx3
5000 Beiträge
 
Benutzerbild von Duke49th
 
Registriert seit: 06.10.2006
Ort: Manila
Alter: 43
Beiträge: 8.433
Standard

Zitat von pspsps91 Beitrag anzeigen

Ich hab das erste Script mal in SQF geschrieben und jede Zeile mit einem Kommentar erklärt. Was das zweite Script genau machen soll ist mir aber ein Rätsel?!

Danke, werds probieren.

Das zweite Script soll etwas in Richtung RWR werden. Also ein Radarfrühwarngerät. Weiß halt nicht wie es rüberkommen werden wird mit knowsabout....obs überhaupt so klappt.


@Bulliwyf: Nein, wiki? Was ist das?

Was soll denn an den Erklärungen bitte gut sein? Vieles im Wiki ist undokumentiert oder schlecht dokumentiert.
Für Dich vielleicht ausreichend, für nen script-noob wie mich ist es absolut unbefriedigend.

Mr-Murray's Editing Guide ist zwar nicht schlecht, aber wenn Du ihn noch nicht gelesen hast, dann wunderts mich auch nicht warum Du öfters auf diesen verweist.

Da stehen einige script Basics drinnen...mehr nicht. Da gehts ums Missionsediting, nicht um Addonerstellung.
__________________
MSI B450 Gaming Plus Pro | AMD Ryzen 7 5700X3D | Nvidia RTX 3060 TI | Teamgroup 32GB DDR-4 3200 | Track NP 5 | Linux Mint |Seasonic 750W
Duke49th ist offline   Mit Zitat antworten
Alt 09.06.2008, 18:26   #7 (permalink)
10 Jahre hx3
500 Beiträge1000 Beiträge
 
Benutzerbild von Buliwyf
 
Registriert seit: 11.03.2005
Ort: HH
Alter: 52
Beiträge: 1.930
Standard

Im Wiki steht, das mit dem knowsAbout-Befehl einen Wert zwischen 0-4 zurückgegeben wird. Das ist in den Notizen von Hardrock sogar noch explizit beschrieben. Dort ist zwar alles auf Englisch geschrieben, aber wenn man sich in die Computerwelt begibt, dann muss man sich zwangsläufig mit Englisch auseinandersetzen. Wie auch immer...

Du schreibst in Deinem Script _kv = _alarm knowsabout _F16 : goto "Loop", bekommst aber von knowsAbout eine Zahl geliefert... was glaubst Du, passiert mit Deinem Script?

Buliwyf ist offline   Mit Zitat antworten
Alt 09.06.2008, 20:26   #8 (permalink)
10 Jahre hx3
5000 Beiträge
 
Benutzerbild von Duke49th
 
Registriert seit: 06.10.2006
Ort: Manila
Alter: 43
Beiträge: 8.433
Standard

@pspsps91: Funktioniert auch nicht. Gibt keine Fehlermeldung, aber passiert auch nichts.

Danke trotzdem für die Mühe.
__________________
MSI B450 Gaming Plus Pro | AMD Ryzen 7 5700X3D | Nvidia RTX 3060 TI | Teamgroup 32GB DDR-4 3200 | Track NP 5 | Linux Mint |Seasonic 750W
Duke49th ist offline   Mit Zitat antworten
Alt 09.06.2008, 20:52   #9 (permalink)
50 Beiträge100 Beiträge250 Beiträge
 
Benutzerbild von pspsps91
 
Registriert seit: 22.12.2005
Beiträge: 323
Standard

Zitat:

@pspsps91: Funktioniert auch nicht. Gibt keine Fehlermeldung, aber passiert auch nichts.

ok sry,... ich habs nicht getestet...

nearTargets - Bohemia Interactive Community
Aber das könnte deinen knowsAbout Befehl ersetzten...

irgendwie mit einer ForEach Schleife alle erkannten Feinde abfragen und prüfen obs ein Shilka, oder was auch immer ist.
__________________
SP Mission, coming soon...
pspsps91 ist offline   Mit Zitat antworten
Alt 09.06.2008, 20:57   #10 (permalink)
50 Beiträge100 Beiträge
 
Registriert seit: 06.06.2008
Beiträge: 209
Standard

Zitat von Alexduke Beitrag anzeigen

Ich bin ja schon froh, überhaupt herausgefunden zu haben, daß man über die config ein Script aufrufen kann. Da mir in 4 verschiedenen Foren nicht einer verraten konnte oder wollte wie das geht.

Schau dir doch einfach die Beispiele bei Extendend_Eventhandlers an. Ansonsten zerschiesst du dir andere Mods.

Code:
_kv = _alarm knowsabout _F16 : goto &quot;Loop&quot;
Kommt er an der Stelle nicht in eine Endlosschleife? Denn es müsst ein '?' am Anfang stehen damit die Abfrage stimmt. Ansonsten wird in _kv nur der Wert von knowsabout gespeichert.
Desweiteren benötigt knowsAbout laut Biki eine lokale Einheit. Und im MP sollte sie selten lokal sein.
i0n0s ist offline   Mit Zitat antworten
Alt 09.06.2008, 21:56   #11 (permalink)
10 Jahre hx3
5000 Beiträge
 
Benutzerbild von Duke49th
 
Registriert seit: 06.10.2006
Ort: Manila
Alter: 43
Beiträge: 8.433
Standard

Zitat von i0n0s Beitrag anzeigen

Schau dir doch einfach die Beispiele bei Extendend_Eventhandlers an. Ansonsten zerschiesst du dir andere Mods.

Ohne es genau zu wissen, denke ich nicht. Sind ja nur ein paar kleine scripts, die Sounds abspielen.

Zitat von i0n0s Beitrag anzeigen

Code:
_kv = _alarm knowsabout _F16 : goto &quot;Loop&quot;
Kommt er an der Stelle nicht in eine Endlosschleife? Denn es müsst ein '?' am Anfang stehen damit die Abfrage stimmt. Ansonsten wird in _kv nur der Wert von knowsabout gespeichert.
Desweiteren benötigt knowsAbout laut Biki eine lokale Einheit. Und im MP sollte sie selten lokal sein.
Ich hab das Prinzip des knowsabout ja scheinbar eh falsch verstanden.

Aber die schleife ist ja gewollt...nur das rauskommen ausm loop hab ich vergessen...

Ist ja auch egal...solange ich es eh nicht schaffe mehr als ein Script aufzurufen, isses alles wurscht.
Noch schlimmer ist das ich die Texturen nur im Buldozer und nicht im Spiel angezigt bekomme.
__________________
MSI B450 Gaming Plus Pro | AMD Ryzen 7 5700X3D | Nvidia RTX 3060 TI | Teamgroup 32GB DDR-4 3200 | Track NP 5 | Linux Mint |Seasonic 750W
Duke49th ist offline   Mit Zitat antworten
Antwort


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
2. Fahrzeug??? PsychoSam Editing 8 17.04.2005 08:17
fahrzeug in Fahrzeug Towei Editing 2 04.12.2004 18:50
Fahrzeug respawn FLoH Editing 1 15.07.2004 13:53
Fahrzeug Respawn KalleFreshman Editing 17 25.06.2004 13:23


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