Armed-Assault.de Twitter
 
 
Themen-Optionen Ansicht
Alt 28.08.2009, 14:14   #21 (permalink)
500 Beiträge1000 Beiträge2.500 Beiträge
 
Benutzerbild von Cyborg11
 
Registriert seit: 26.03.2008
Beiträge: 2.822
Standard

Zitat von [HSP] NoFu Beitrag anzeigen

Habe hier mal was bei BIS zum Thema SQF gefunden.


SQS to SQF conversion

Irgendwie ist diese SQF-Sache total an mir vorbei gegangen. Wurde das schon zusammen mit ArmA I eingeführt ?

SQF gibt es schon seit ArmA 1
Cyborg11 ist offline  
Alt 28.08.2009, 17:00   #22 (permalink)
10 Jahre hx3
500 Beiträge
 
Registriert seit: 13.04.2003
Beiträge: 761
Standard

Zitat von Cyborg11 Beitrag anzeigen

SQF gibt es schon seit ArmA 1

Das ist ja das Schlimme. Aber sqs muß dann wohl immer meinen Wünschen und Ideen ausgereicht haben. Ansonsten wäre ich sicher schon früher auf sqf gestoßen.

Männers, kann man sich irgendwo in das Thema einlesen ?
[HSP] NoFu ist offline  
Alt 31.08.2009, 19:01   #23 (permalink)
50 Beiträge100 Beiträge
 
Registriert seit: 01.06.2009
Beiträge: 103
Standard

Zitat von [HSP] NoFu Beitrag anzeigen

@ Asso-Loki:

Kannst Du einem altem Scripter mal helfen und mir sagen, wo ich nachlesen kann, was die Änderungen im sqf sind und warum ich am Besten umsteigen sollte ?

Wenn ich mein Buch (Editing Guide) richtig durchblättere, ist das hier alles sqs oder ?

Du hast ja bereits Links erhalten, die Dir weiterhelfen sollten. Generell ist das BIS-Wiki immer eine gute Quelle zum Nachgucken. Du findest dort zu jedem Thema Infos, wenn sie auch meist nicht so ausführlich sind.

Die Unterschiede zwischen sqs und sqf sind mir gar nicht mehr so präsent, da ich schon zulange nur mit sqf arbeite.
In sqf hast Du mehr verschiedene Schlaufen/Abfragen zur Verfügung. Es gibt die "if-then-else" und die "switch-do-case" Abfrage. Es gibt die "for-do" Schlaufe in verschiedenen Varianten und die "while-do" so wie die "forEach"- Schlaufe. Das einzige auf was Du bei sqf verzichten musst, ist das "goto", was aber durch die verschiedene Schlaufen mehr als aufgewogen wird.

Statt "~" muss man "sleep", statt "@" "waituntil" verwenden und man muss jede Anweisung mit Strichpunkt abschliessen.

Die meisten aktuellen Infos bezüglich scripten beziehen sich inzwischen auf den sqf-Syntax, was sicher ein weiterer Grund für das Umsteigen sein dürfte.

Ein weiterer Vorteil von sqf ist die Möglichkeit damit Funktionen zu erstellen. Funktionen können mit "call" aufgerufen werden, werden von der CPU prioritär ausgeführt und können einen Rückgabewert liefern. Man sollte allerdings beachten, dass man keine Funktionen erstellt die permanent laufen oder lange Wartezeiten in sich bergen (z.B. sleep mit hohen Werten, waituntil auf welches lange gewartet werde muss, usw.). Ein Funktion sollte kurz und bündig sein, damit sie schnell abgearbeitet ist und die CPU-Ressource wieder freigibt. Der Aufrufende Code (Trigger, Script) wartet auf das Ergebnis der Funktion. Soll eine Funktion einen Wert zurückgeben, so wird dieser am Ende des Funktioncodes angegeben und nicht mit Strichpunkt abgeschlossen. Eine Funktion unterscheidet sich (abgesehen vom Rückgabewert) ansonsten nicht von einem normalen script.
Man kann eine Funktion innerhalb eines normalen sqf-scripts schreiben, wenn sie dann auch innerhalb dieses Scripts aufgerufen wird. Im Normalfall lädt man aber Funktionen beim Start einer Mission vor, indem man innerhalb eines Scripts folgenden Syntax schreibt:
Code:
FunktionsName= compile preprocessFile "NamedesFunktionsscripts.sqf";
Nachdem eine Funktion so vorgeladen wurde, kann sie beliebig innerhalb der Mission durch Trigger und Scripts mit
Code:
[] call FunktionsName;
(wenn die Funktion keinen Rückgabewert liefern muss) oder
Code:
Funktionsergebnis= [] call FunktionsName;
(wenn man den Rückgabewert der Funktion weiter verwenden will) aufgerufen werden. Es können natürlich Übergabeparameter mitgegeben werden, was die eckigen Klammern (=Array) ja schon nahelegen.

So, das war es jetzt aber ;-). Es gäbe bestimmt noch mehr dazu zu sagen, aber vielleicht nützen Dir die Infos doch schon etwas.

Oh, fast hätte ich es vergessen. Ich kenn den Editing Guide (den von Murray nehme ich an) nur vom "hörensagen". Ich weiss also nicht ob er tatsächlich nur sqs- Beispiele drin hat. Da es sqf ja schon seit ArmA gibt, wäre es aber wirklich sehr Schaden, wenn die da nicht abghandelt/benutzt werden. Verwendest Du den auch die neuste version dieses Guides, oder "gurkst" Du etwa noch mit der OFP-version davon rum? :-)

Oder Deine Frage hat sich nicht auf Code- Beispiele des Guides bezogen, sondern auf den hier in den Beiträgen vorgestellten Code für den Vehikel-Respawn. Dann lautet die Antwort: Ja, das ist bisher alles sqs.

Geändert von Asso-Loki (31.08.2009 um 19:13 Uhr).
Asso-Loki ist offline  
Alt 04.09.2009, 02:51   #24 (permalink)
Newbie
 
Benutzerbild von recoil
 
Registriert seit: 30.08.2009
Ort: Hamburg
Alter: 36
Beiträge: 10
Standard

Nofu,

wie muss das script von dir aussehen wenn die höhe der position geändert werden soll

ich hab mal was ausprobiert hat aber nicht geklappt.
Code:
? !(local server) : exit


_vehicle = vehicle _this
_startpos = getpos _vehicle
_direction = getdir _vehicle
_typ = typeOf _this


#loop
~10
? (getdammage _vehicle > 0.98) : goto "checkdamage"
? !(canMove _vehicle) : goto "checkmove"
? (fuel _vehicle == 0) : goto "checkfuel"
goto "loop"


#checkdamage
~10
? (getdammage _vehicle > 0.98) : goto "destruct"
goto "loop"


#checkmove
~10
? (getdammage _vehicle == 1) : goto "destruct"
~120
? (canMove _vehicle) : goto "loop"
goto "destruct"


#checkfuel
~10
? (getdammage _vehicle == 1) : goto "destruct"
~120
? (fuel _vehicle > 0) : goto "loop"
goto "destruct"


#destruct
? (getdammage _vehicle < 1) : _vehicle setdammage 1
~30
deletevehicle _vehicle
goto "createnew"


#createnew
~10
_new = _typ createVehicle [_startpos select 0, _startpos select 1,0]
_new setPos [(getPos this select 0), (getPos this select 1),16] <----- Hier Blind Drauf Los
_new setdir _direction
_new exec "respawn_vehicle.sqs"

exit
Gruß recoil
recoil ist offline  
Alt 04.09.2009, 20:51   #25 (permalink)
Newbie
 
Benutzerbild von recoil
 
Registriert seit: 30.08.2009
Ort: Hamburg
Alter: 36
Beiträge: 10
Standard

Kennt keiner eine Lösung für das respawnen in einer Bestimmten höhe, denn ich hab jetzt schon soviel ausprobiert und nichts klappt.
recoil ist offline  
Alt 04.09.2009, 22:20   #26 (permalink)
Newbie
 
Registriert seit: 26.11.2008
Ort: Würzburg
Beiträge: 32
Standard

Code:
? !(local server) : exit


_vehicle = vehicle _this
_startpos = getpos _vehicle
_direction = getdir _vehicle
_typ = typeOf _this
_height = _this select 0


#loop
~10
? (getdammage _vehicle > 0.98) : goto "checkdamage"
? !(canMove _vehicle) : goto "checkmove"
? (fuel _vehicle == 0) : goto "checkfuel"
goto "loop"


#checkdamage
~10
? (getdammage _vehicle > 0.98) : goto "destruct"
goto "loop"


#checkmove
~10
? (getdammage _vehicle == 1) : goto "destruct"
~120
? (canMove _vehicle) : goto "loop"
goto "destruct"


#checkfuel
~10
? (getdammage _vehicle == 1) : goto "destruct"
~120
? (fuel _vehicle > 0) : goto "loop"
goto "destruct"


#destruct
? (getdammage _vehicle < 1) : _vehicle setdammage 1
~30
deletevehicle _vehicle
goto "createnew"


#createnew
~10
_new = _typ createVehicle [_startpos select 0, _startpos select 1,0]
_new setPos [(getPos _new select 0), (getPos _new select 1), _height] 
_new setdir _direction
_new exec "respawn_vehicle.sqs"

exit
kein wunder das des nich geht, kannst ja nich einach "this" machen sondern
muss schon des neue object "_new" sein.
schätze mal so dürfte des funzen, musst halt die höhe gewünschte höhe in den
array schreiben
nooblike ist offline  
Alt 09.09.2009, 15:46   #27 (permalink)
50 Beiträge
 
Registriert seit: 08.06.2009
Beiträge: 66
Standard

Zitat von Asso-Loki Beitrag anzeigen

In sqf hast Du mehr verschiedene Schlaufen/Abfragen zur Verfügung. Es gibt die "if-then-else" und die "switch-do-case" Abfrage. Es gibt die "for-do" Schlaufe in verschiedenen Varianten und die "while-do" so wie die "forEach"- Schlaufe. Das einzige auf was Du bei sqf verzichten musst, ist das "goto", was aber durch die verschiedene Schlaufen mehr als aufgewogen wird.

Statt "~" muss man "sleep", statt "@" "waituntil" verwenden und man muss jede Anweisung mit Strichpunkt abschliessen.

Die meisten aktuellen Infos bezüglich scripten beziehen sich inzwischen auf den sqf-Syntax, was sicher ein weiterer Grund für das Umsteigen sein dürfte.


DAS ist krass. Verstehe nur Bahnhof ^^ Gut das ich erst jetzt mit Editing anfange zu experimentiern und zu lernen. und fast alle Beispiele die ich gesehen habe sqf sind (vermutlich xD) Da kann ich gleich das "aktuelle" lernen :-D
NoxX1 ist offline  
Alt 09.09.2009, 23:46   #28 (permalink)
500 Beiträge1000 Beiträge2.500 Beiträge
 
Benutzerbild von Cyborg11
 
Registriert seit: 26.03.2008
Beiträge: 2.822
Standard

Zitat von Asso-Loki Beitrag anzeigen

Die Unterschiede zwischen sqs und sqf sind mir gar nicht mehr so präsent, da ich schon zulange nur mit sqf arbeite.
In sqf hast Du mehr verschiedene Schlaufen/Abfragen zur Verfügung. Es gibt die "if-then-else" und die "switch-do-case" Abfrage. Es gibt die "for-do" Schlaufe in verschiedenen Varianten und die "while-do" so wie die "forEach"- Schlaufe. Das einzige auf was Du bei sqf verzichten musst, ist das "goto", was aber durch die verschiedene Schlaufen mehr als aufgewogen wird.

Auf goto muss man trotzdem nicht ganz verzichten. Es gibt bei den Funktionen breakTo

Aber ich sagte ja schon mal, dass .sqf die Zukunft ist hehe Nur viele Neulinge fangen lieber mit .sqs an :/
Cyborg11 ist offline  
Alt 14.09.2009, 22:36   #29 (permalink)
Newbie
 
Benutzerbild von GA Sgt.Bulli
 
Registriert seit: 16.02.2008
Ort: Marburg
Beiträge: 4
GA Sgt.Bulli eine Nachricht über ICQ schicken
Standard

moin leute,

ich hab folgendes Problem:
Der Respawn klappt schon ganz gut, eigentlich sogar genau so wie ich es will,
ABER das Fahrzeug was neu gespawnt wird hat einen festen Namen der für die Mission wichtig ist, aber wenn das Fahrzeug gespawnt wird klappt ein anderes Skript nicht mehr da das neue Fahrzeug nicht mehr den selben Namen hat, wie kann ich dem neu gespawnten Fahrzeug wieder den selben Namen geben ?
GA Sgt.Bulli ist offline  
Alt 14.09.2009, 22:53   #30 (permalink)
50 Beiträge100 Beiträge
 
Registriert seit: 24.06.2009
Beiträge: 168
Standard

Mit setVehicleVarName wirste dem Teil einen Namen geben können.

__________________
"dass manche auch übertreiben oder gar schwachsinn schreiben ist denk ich mal normal...wir sind im Internet"
Beowulf ist offline  
Alt 14.09.2009, 23:32   #31 (permalink)
Newbie
 
Benutzerbild von GA Sgt.Bulli
 
Registriert seit: 16.02.2008
Ort: Marburg
Beiträge: 4
GA Sgt.Bulli eine Nachricht über ICQ schicken
Standard

danke schon mal aber irgendwie klappt’s nicht, wahrscheinlich hab ich einen Fehler gemacht aber ich bin auch nicht so mit Scripting vertraut, vielleicht könnt ihr mir helfen
Code:
#createnew
~5
_new = _typ createVehicle [_startpos select 0, _startpos select 1,0]
_new setdir _direction
_new SetVehicleVarName _TruckW1;
_new exec "skripte\respawn_vehicle.sqs"

exit
GA Sgt.Bulli ist offline  
Alt 15.09.2009, 22:40   #32 (permalink)
Newbie
 
Benutzerbild von GA Sgt.Bulli
 
Registriert seit: 16.02.2008
Ort: Marburg
Beiträge: 4
GA Sgt.Bulli eine Nachricht über ICQ schicken
Standard

Hier mal die genaue Erklärung:

Ich hab eine Mission mit einem MHQ gebastelt, nun soweit sogut, in der Basis hab ich einen Punkt gemacht von dem ich mich zum MHQ Telepotieren kann. Aber wenn das MHQ zerstört wird und neu gespawnt wird und telepotieren will dann komm ich zu dem Punkt an dem das MHQ zerstört wird, in manchen fällen ist das ja nicht schlecht aber nicht immer ^^. Also irgendwie klappt das nicht das das neue MHQ den neuen Namen bekommt.
Code:
#createnew
~5
_new = _typ createVehicle [_startpos select 0, _startpos select 1,0]
_new setdir _direction
_VarName="TruckW1";
_new SetVehicleVarName _VarName;
_new exec "skripte\respawn_vehicle.sqs"

exit
Code:
    _dir = random 359


    player SetPos [(getMarkerPos "markerlkwwest" select 0)-5*sin(_dir),(getMarkerPos "markerlkwwest" select 1)-5*cos(_dir)]

    exit
PS: Ich weiss dadurch werde ich zu dem Marker telepotiert aber der wird automatisch an den Truck angeheftet aber nach dem Respawn passiert das nicht mehr. Ich gehe NUR davon aus das das nicht geht weil der Truck nicht mehr den Namen hat.
GA Sgt.Bulli ist offline  
Alt 16.09.2009, 15:47   #33 (permalink)
Newbie
 
Registriert seit: 26.11.2008
Ort: Würzburg
Beiträge: 32
Standard

Code:
_VarName = vehiclevarname _new //gehört ganz oben in den block rein
...
...
...
_new = _typ createVehicle _startpos
_new setdir _startdir
_new setpos [(getpos _startpos select 0), (getpos _startpos select 1), 0]
_new SetVehicleVarName _VarName;
_new Call Compile Format ["%1=_This ; PublicVariable ""%1""",_VarName];
jetzt müsste es eigentlich klappen mit der namensvergebung
nooblike ist offline  
Alt 16.09.2009, 20:21   #34 (permalink)
Newbie
 
Benutzerbild von GA Sgt.Bulli
 
Registriert seit: 16.02.2008
Ort: Marburg
Beiträge: 4
GA Sgt.Bulli eine Nachricht über ICQ schicken
Standard

Danke Danke Danke, vielen Dank ^^ es klappt jetzt alles
GA Sgt.Bulli ist offline  
Alt 22.09.2009, 16:36   #35 (permalink)
Newbie
 
Benutzerbild von recoil
 
Registriert seit: 30.08.2009
Ort: Hamburg
Alter: 36
Beiträge: 10
Standard

Ich hab leider noch immer ein kleines problem.
Undzwar wenn die vehicle neu respawn, springen sie wie verückt rum.
Ich hab schon alle höhen ausprobiert ich hab es sogar mit 10.5 oder 11.5 ...
Gab es da nicht mal ein consolen menu mit dem man die höhe rausfinden kann, oder hat es was mit dem spawn script zu tuhen, was ich mir aber nicht vorstellen kann sonnst würde er auf der höhe null auch springen.
recoil 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
Vehicle Respawn Schradder Editing 0 07.02.2009 17:46
Problem bei Vehicle Respawn!! Jois[GER] Editing 6 04.03.2008 14:34
Vehicle Respawn ryboth Editing 10 28.12.2006 22:25
Vehicle Respawn -BGS-Tyr Editing 1 07.12.2006 08:32
Aufheben von Befehlen? (Editing Frage) Lonely Editing 2 10.07.2005 13:51


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