Beiträge von script /Vincent/dev/null
-
-
-
-
Einen schönen Sonntag Nachmittag,
vor ein paar Minuten wurde das Forendesign von NN verändert. Ich dachte mir diesbezüglich, dass wir vielleicht ein Forenspiel zur Einweihung machen.
Und zwar soll es in diesem Forenspiel um das scripten gehen.
Ich möchte mal schauen, wie lange wir diesen Thread fortführen können, um am Ende ein vollständiges Script durch alle Beiträge zu erhalten.
Ziel des Spiels soll eine möglich langes Script sein, mit vielen verschiedenen Ideen, etc.
Weiter unten stehen Regeln und Nebeninformationen.
Formales:
Damit wir im eifer des Gefechts nicht durcheinander zwischen Kommentaren und Beiträgen zum Forenspiel kommen, müssen die einzelnen Codeschnipsel in Inline-Code angezeigt werden.
Im WBB-Editor gibt es eine schöne Taste:
Damit kann schöner Inline Code erzeugt werden.
ich möchte euch bitten, keine Quellcode-Boxen in diesem Thread zu verwenden, da sonst eine (un-)Übersicht entsteht (da diese Boxen viel zu groß sind...):
Weiter zu den Regeln:
Regeln:
- Es dürfen keine Codeschnipsel vom selben Benutzer hintereinander gepostet werden. Sollte es jedoch passieren, wird nur der erste von den folgenden genutzt.
Beispiel:
Nutzer A postet einen Schnipsel.
Nutzer B postet einen Schnipsel.Nutzer B postet einen weiteren Schnipsel.Nutzer A postet einen Schnipsel. - Kommentare sind ausdrücklich erwünscht! Nur bitte verwendet bei der Abgabe von einem Codeschnipsel die Inline-Codes. Außerdem bitte keinen anderen Text außer den Inline-Code im Kommentar hinzufügen - denn dazu könnt ihr ja normal kommentieren.
- Es gelten bestimmte Regeln für den Inhalt, der Abgegeben werden kann (mehr dazu unten).
Sollte es am Ende Fehler im Script geben, werden diese natürlich korrigiert. Es wird alles repariert, bis der Code wieder funktioniert. Das heißt, dass Folgefehler in der Korrektur mit einbezogen sind.
Als Fehler definiere ich einen Fehler, welcher von Arma 3 selbst im Script entsteht.
Wichtig ist nun noch, dass ich eine Umgebung schaffe, in der wir das Forenspiel bearbeiten können - das heißt zum Beispiel irgendeine Umgebung, wie zum Beispiel ob es Dialoge gibt, oder eben nicht.
Hier sind die Einschränkungen zu jeder Inline-Code-Zeile:
Jeder einzelne Eintrag ist als einzelner Inline-Code-Eintrag zu betrachten. Kommentare, sowie Zeilenumbrüche können ohne Wertung platziert werden. Kommentare werden am Ende entfernt, bzw. nicht beachtet.
if (...) then { Die if-Anweisung. Es darf nur das if-Statement mit der Anweisung gepostet werden. Das if-Statement wird ohne ; gepostet, da das ; ein einzelner Eintrag ist. } else { } else { wird als einzelner Schlüsselbausatz betrachtet. }; Die Schlussklammer wird als einzelnes gewertet (kann auch für andere Zwecke außer der if-Anweisung genutzt werden). try { Der Anfangsteil des try-Ausdrucks.
} catch { Das catch wird als einzelner Eintrag gewertet. ; Das Semikolon wird als einzelner Eintrag bewertet. private _variable = <any>
_variable = <any>
variable = <any>Variablen Deklarationen werden als einzelnes betrachtet. Diese Anweisung darf keine anderen Anweisung, welche in dieser List aufgelistet sind, enthalten. Das ; ist (innerhalb) erlaubt. Am Ende darf jedoch kein Semikolon stehen. <any> <ein Bohemia Kommando> <any>
<ein Bohemia Kommando> <any>
<any> <ein Bohemia Kommando>
<ein Bohemia Kommando>
Die Kommandos von Bohemia Interactive, bzw. SQF werden als separate Anweisung angesehen. Mehrere Kommandos hintereinander wie z.B. call compile preProcessFileLineNumbers <string> ist erlaubt. Semikolons sind nicht erlaubt. with <namespace> do { Die with-Anweisung darf verwendet werden. Es darf nur ein <namespace> angegeben werden und wird ansonsten wie z.B. das if angewandt. for [{}, { ... }, { ... }] do { Diese Anweisung darf an sich so genutzt werden. Innerhalb der {} Klammern darf jeweils nur eine einzige Anweisung beinhalten. Semikolons erlaubt. Geschlossen wird die Anweisung separat. for <string> from <number> to <number> (step <number>) do { Die zweite for Anweisung kann ohne Probleme erzeugt werden. Geschlossen wird separat. while { true } do { ... }; Ist verboten. Darf nicht verwendet werden. while {
Warum das "andere" while? Weil das true in der vorherigen Zeile für einen unendlich-loop sorgt. Könnte problematisch werden. Geschlossen wird separat. { Die eröffnende Klammer der forEach-Schleife ist separat. } forEach <array> Wird als einzelnes betrachtet. switch (<any>) do { " Geschlossen wird separat. case <any>: { ... }; Wird als einzelnes betrachtet.
Ich hoffe ich habe alles Grundlegendes aufgefasst. Sollten noch Verbesserungsvorschläge aufkommen, verbessere ich natürlich gegebenes.
Zur Umgebung:
Ich gehe bei diesem Forenspiel davon aus, dass es sich um eine Mission handelt, welcher einen Dialog und ein Display in der RscTitles Konfig besitzt.
Die description.ext hat folgende Eigenschaften:C: description.ext
Alles anzeigenclass dieserEineDialog { idd = 1025; name = "dieseEineControl"; movingEnable = false; enableSimulation = true; class controlsBackground {}; class controls {}; }; class RscTitles { class diesesEineDisplay { idd = 1025; name = "dieseEineControl"; movingEnable = false; enableSimulation = true; objects[] = {}; fadeout = 0; fadein = 0; duration = 999999999999999999999999999; onLoad = "uiNamespace setVariable ['diesesEineDisplay', (_this select 0)];"; class controlsBackground {}; class controls {}; }; };
Das wäre es eigentlich soweit. Zu sagen gilt nur noch, dass es keine extra Dateien gibt und der gesamte Start innerhalb der "init.sqf" stattfindet.
Dann bleibt nur noch zu sagen: Happy Coding!
Mit freundlichen Grüßen
Vincent
Edits:
- Sollten Abgaben nicht ganz dem entsprechen, was hier formal aufgeführt ist, dann kann das gerne auch für andere Nutzen verwendet werden.
- Sollte durch die Forenverzögerung etwas z.B. doppelt sein, dann darf die letzte Person mit dem doppelten Eintrag selbigen korrigieren.
- Es können auch Konfig Anfragen gemacht werden, aber nur bedingt. Von jedem Typ Konfig nur einen Eintrag.
- Inkludierungen (#include <path>;) können nicht verwendet werden, da wie schon gesagt keine extra Dateien erstellt werden dürfen.
Konfig-Edits:
- Es dürfen keine Codeschnipsel vom selben Benutzer hintereinander gepostet werden. Sollte es jedoch passieren, wird nur der erste von den folgenden genutzt.
-
AustrianNoob pro Selbstverliebtheit!
-
-
kann ich die auch im Mod definieren oder nur in der Mission?
skyracer2012 Du kannst sie in der Mod innerhalb des Raumes der config.cpp definieren. Schau dir dazu einfach die Konfig CfgFunctions
-
Einen schönen Sonntag Mittag, werte NN-Gemeinde...
Ich habe mich also auch dazu entschlossen eine Personenvorstellung zu mir zu schreiben.
Wo soll ich anfangen? Ach ja, die Einzelheiten:
Ich bin Vincent H., gehe in die 11. Klasse und mag Informatik.
Erstaunlicherweise hatte ich in meinem gesamten Schulverlauf noch nie Informatik - bis auf diese Ausnahme des EDV-Unterrichts. Vermutlich kennt jeder dieses Fach...
Ich bin ein Kellerkind, welches ironischer Weise im 1. Stock eines Hauses wohnt, welches auf einem Grundstück wohnt. Wir haben nicht einmal einen Keller.
Meine bisherige Geschichte auf Native-Network:
Irgendwann wurde ich dann mal geboren. Dann dachte sich Vincent, er registriere sich mal in einem Arma 3 Forum...
Nein. Meine Geschichte hat ja gefühlt schon einen sehr langen Faden. Wie man sehen kann bin ich schon seit dem 3. Mai 2016 hier in diesem Forum registriert.
Jetzt fragt man sich natürlich, was ich denn die gesamte Zeit gemacht habe - nichts.
Wie sollte ich denn etwas anstellen, wenn ich vor mehr als einem Jahr gesperrt wurde. Warum ich gesperrt wurde?
Nun ja, es gab ein paar Missverständnisse zwischen mir und einem damaligen Moderator.
Ich bin wieder da!
Was ich in der Freizeit denn nun wirklich tue
Ich scripte, entwickle, programmiere in meiner Freizeit - dies nun schon seit (ich glaube) 5 Jahren.
Dabei mache ich meistens nichts anderes als den lieben, langen Tag hinter 3 Mattscheiben zu sitzen und in Arma 3 mein eigenes RPG-Framework (ich will zum Teufel nicht so nennen - es ist unpassend!) zu entwickeln. Diese Mod (ja 'Kinners', eine Mod) soll später Open Source verwendbar sein und den RPG-Gedanken verändern - pro Rollenspiel!
Und noch so? Naja ich verwalte nebenbei Linux Server und solche "Geschichten". "By the way" gibt es nichts besseres als einen Linux Server als Server zu besitzen.
Designe (blöder, platt getretener Begriff) noch Sachen...
Und natürlich noch alle anderen Sachen, die mit Arma 3 zu tun haben: spielen, mapping; und leider bin ich zu den letzten zwei Punkten noch nicht gekommen; modelling und terrain building (nennt man das so? Ich glaube es war Mapping - nur ist Mapping als Begriff in Arma 3 das stumpfe platzieren von Objekten...)
Wie ich so druff bin
Wie ist man schon druff als Entwickler?
Ich für meinen Teil bin bei Angelegenheiten meiner selbst sehr enthusiastisch und ehrgeizig. Ich hasse es, wenn man mich bei laufender Arbeit unterbricht, bzw. mich aus meinem "flow" reißt.
Trotzdem bin ich für jeden Spaß zu haben - sei es in Spielen irgendeinen Blödsinn bauen oder irgendwas bescheuertes entwickeln - immer zu haben
.
Ich begrüße mich also nach einem Jahr Pause wieder selbst und ebenfalls alle anderen hier bei N-N (lol - ein Stickstoff-Molekül).
Mit freundlichen (Wiederbeitritts-)Grüßen
Vincent
Sollte mir noch etwas einfallen, werde ich es mit einem weiteren Kommentar ergänzen.
Achso AustrianNoob ich kann mit deinen Arma 3 Stunden auch mithalten:
-
skyracer2012 Du musst natürlich erstmal die Funktion, bzw. die Datei "\Client\event.sqf" als Funktion definieren.
Dann kannst du die Funktion dann mithilfe von z.B. [player] remoteExec ["client_fnc_event", _selected] abschicken.
Die Funktion wäre wie folgt definiert:
-
Stooooooopp script /Vincent/dev/null Timestampformat ist nur, wie die Zeit im RPT geloggt wird
setTimeMultiplier ist was du suchst. in der life_server\iunit.sqf findest du folgende Zeile (die hier ist etwas abgeändert):
[8,true,24] execFSM "\life_server\FSM\timeModule.fsm";
Damit kannst du die Zyklen festlegen.
[<Multiplier Tag>,<anderer Multiplier in der Nacht?>,>Multiplier Nacht>] execFSM "\life_server\FSM\timeModule.fsm";
Im Beispiel würde es bedeuten:
Tags entspricht 1s in Reallife 8s ingame
Nachts entspricht 1s Reallife 24s Ingame
Hoffe das ist verständlich erklärt gewesen
blackfisch Sehr schön. Das letzte mal, als ich mich mit der Einstellung auseinander gesetzt habe, war vor ein paar Jahren. Aber sehr gut - Irgendwas war da ja noch mit dem Zeitmanagement vom Life Framework.
-
joacheim Gibt dein Arma 3 auf deinem eigenen Computer, sowie auf dem Server einen/mehrere Fehler aus? Siehe Arma 3 Logs.
-
riesensika Es geht wohl vielmehr darum, dass dein Beitrag besser beschrieben sein sollte. Darunter würde zum Beispiel fallen, die Arma 3 Server Logs mit anzuheften.
-
aNtIchRiSt Auf jeden Fall gibt es in der server.cfg eine Einstellung Namens timeStampFormat.
Man könnte den Zyklus zwar auch anders deaktivieren, jedoch ist dies die einfachste Variante. Kann auch, dass diese Variante veraltet ist - aber probieren geht über studieren.
Mit freundlichen Grüßen
Vincent
-
joacheim Wo steht der "Tresor" denn? Außerhalb von dem 'Rescue'-Gebäude?
Wenn ja, muss trotzdem zuerst das 'Rescue'-Gebäude geöffnet werden...
-
Shadow l Eagle Herr Moderator; einstimmig zugestimmt.
-
riesensika Für eine Hilfe bräuchte man die schönen Arma 3 Logs. Das wäre hilfreich.
-
Ja, sollten eigentlich. Nur Lampen nicht, weil diese ja per Funktion an/aus gemacht werden
blackfisch Aber nur solange enableSimulation an ist. Und das ist meines Wissens nach bei 'Simple Objects' nicht gegeben.
-
blackfisch Nur hat es noch niemand außer Maverick getestet, richtig?
-
skyracer2012 Fast richtig! remoteExec führt jedoch nur definierte Funktionen aus.
Edit:
blackfisch ist mir zuvorgekommen!
-
joacheim Das was ich nach kurzem überfliegen gefunden habe ist vielleicht schlüssig:
Du musst in der Datei https://github.com/AsYetUntitled/…stingCharge.sqf die angegeben Positionen bei Zeile 21-22 ändern.
Mit freundlichen Grüßen
Vincent