Ten4Rius´s Blog

  • Hallo zusammen,


    in diesem Thread möchte ich euch darüber informieren an was ich zur Zeit arbeite und wie meine Fortschritte aussehen. So habt Ihr einen Überblick über den aktuellen Status meiner neusten Scripts und ich kann meinen Schreibdurst stillen. Natürlich sollen Screenshots nicht fehlen.


    Für alle die mich noch nicht kennen, ich bin Tenarius (oder Ten4Rius) und Entwickler im Live your Life - Team. Ich bin verantwortlich für innovative Scripts und ein Teil der Ideenschmiede von Live your Life. Ich habe das GDS, Postbox- und Postfach-System, die neuen Item-Converter, die HUD, das Z-Menü, sowie das Achievment-System und die Routen- und Lizenz-Übersicht gescriptet.


    Neben mir sind Steve Hunter, CrackHead und Tass fleißig am tüfteln und kümmern sich um Mission-Operations, Performance, existingScripts, Wartung, BUGfixes und allerlei Kleinkram.



    Was mache ich im Moment?


    Ich befinde mich in der Entwicklung des Ausweis-Scripts und habe dieses zu 80% abgeschlossen.


    Civs, Cops und Feuerwehr werden jeweils unterschiedliche Ausweise bekommen. Es gibt einen "Ausweis erstellen" - Dialog in dem eine Live-Vorschau des Ausweises angezeigt wird, den man im Moment erstellt.
    Außerdem wird es natürlich möglich sein seinen Ausweis zu löschen und neu zu erstellen, sich seinen eigenen Ausweis anzeigen zu lassen und anderen Mitspielern seinen Ausweis zu zeigen.


    20160320213942_1.jpg


    Die Datenbank wurde bereits konfiguriert und verknüpft und auch alle Dialoge sind vollendet. Das Erstellen, Löschen und das "Fetchen" (also die Datenbankabfrage beim Starten des Spiels) des Ausweises funktioniert auch Tadelos. Hinzu sind alle Hints (Mitteilungen oben rechts) an das Design-Schema angepasst.


    Es ist noch vieles in Planung und mit diesem "Blog" werde ich Euch in unregelmäßigen Zeitabschnitten meine persönlichen Fortschritte mitteilen.


    Viel Spaß auf Altis!


    Euer Ten4Rius

  • Aloha Freunde,


    ich habe das Personenausweis-Script gestern vollendet. Jetzt gehen die Tetsts und Debugs los sowie allerlei Feinheiten wie Error-Checks, Hints, optische Verschönerungen.


    Die ersten Tests haben gezeigt dass die primäre Funktionalität des Script gegeben ist. Es dürfte also nicht mehr all zu lange dauern. Tass arbeitet im Moment auch an einem sehr interessanten Script, aber da könnt ihr ihn ja selbst fragen.


    In naher Zukunft wird die Konzept-Reihe um die Scripts Schließfach und Postbox erweitert und es wird weitere neue Möglichkeiten geben diese Features zu nutzen. Dies wird sich auch auf den Item-Pool auswirken, zu dem Items hinzugefügt werden die Ingame nur schwierig zu erhalten sind. Möglicherweise fügen wir testweise einige dieser Items in den nächsten Updates ein. Falls ihr also ein seltenes oder unbekanntes Item zufällig beim farmen o.Ä. findet, nicht wegwerfen!


    Viele Grüße
    euer Ten4Rius

  • Schön´ guten Abend,


    die Tests um das Ausweis-Script sind beendet und waren erfolgreich.


    Wir haben noch ein paar extra Stunden in die Usability investiert, denn nicht nur die intuitive und angenehme Bedienung des Ausweises muss gegeben sein, sondern auch eine Funktionalität die es Trollern schwer macht zu trollen.


    Deshalb wird der Ausweis nur über das Z-Inventar zu benutzen sein. Dies hat den Vorteil, dass ihr Zeit zum weggehen habt, falls ein Troller euch den Ausweis spammen will und es fördert das RP - denn einen Ausweis muss man ersteinmal herausholen, bevor man ihn zeigen kann. Z-Menü - Sonstiges - Ausweis zeigen.


    Damit ihr mehreren Leuten gleichzeitig euren Ausweis zeigen könnt, haben wir ein extra Menü eingebaut, welches euch die Spieler in eurer Umgebung anzeigt. So könnt ihr einfach jeden Spieler anklicken und euren Ausweis zeigen.


    Hinzu wurde die Vorschau des Ausweises erweitert und funktioniert nun in jeder Hinsicht.


    Es ist für mich nun wieder Zeit in die Zukunft zu blicken. Dort erwartet euch ein Crafting System. Dies wird in Einklang mit bereits implementierten Scripts funktionieren und weitab von bekannten Altis-Life-Craftig-Systemen arbeiten.


    Außerdem überlege ich im Moment noch, wie der Einstieg in Welt von Live Your Life für Neuankömmlinge intuitiver zu gestalten wäre. Mal sehen was mir da noch so einfällt.


    Tass und Steve Hunter haben ebenfalls sehr beeidruckende Scripts am Start die wunderbar in das Live your Live - System einfliessen werden.


    Streamer sind auch am Start! Hammer!


    Viele Spaß und Grüße


    Euer Ten4Rius :thumbsup:

  • Mahlzeit,


    next project is in progress.


    Ich habe mir gedacht, dass ich euch mal mitnehme in den Entwicklungsprozess eines neuen Scripts. Ein Script entsteht schließlich nicht aus dem Nichts, sondern braucht Planung. Mit den nächsten Posts möchte ich euch zeigen was so dahinter steckt.


    Gemeinsam erschaffen wir ein neues Crafting-System.
    Unser Anspruch ist natürlich in erster Linie die Innovation, wir wollen schließlich kein Script klauen oder einem Tutorial folgen, sondern ganz individuell selbst bestimmen wie das Ganze aussehen und funktionieren soll. Außerdem steht für uns die intuitive Bedienung des Crafting-Systems und eine umfangreiche Funktionsvielfalt mit vielen Ausgabewerten im Fordergrund.



    Funktionsumfang:

    Deshalb benötigen wir erstmal ein grobes Konzept über die Funktionalität unseres Scripts. Das heißt unser Script beginnt in einer simplen WORD-Datei (ich persönlich nutze lieber eine .hpp mit NP++), in der wir erstmal unseren Wünschen freien lauf lassen dürfen.

    Unser Funktionsumfang soll vorerst beinhalten:

    • Items im Austausch gegen andere Items herstellen (crafting)
    • Unterteilung der herstellbaren Items in sogenannte "subclasses", also Untergruppen (Kleidung, Waffen, etc.)
    • Ausgabe der subclasses in für den Spieler in einer Listbox*
    • Auswahl verschiedener subclasses über eine RscCombo**
    • Skill-System abhängig der subclasses bis Level x
    • Skill-System mit Levelerweiterungsgeschwindigkeit abhängig des ausgewählten Items
    • Skill-System mit Herstellungsmöglichkeiten abhängig des Levels (innerhalb eines bestimmten Levelbereichs)
    • Ausgabe der subclasses, des levelprogress, des ausgewählten Items, von Bildern und Anzahl der benötigten Items in einer INFO AREA (Dialog)
    • Ausgabe der Anzahl der verfügbaren Herstellungsmöglichkeiten der Items
    • farbliche Ausgabe der Skillmöglichkteit abhängig vom Level
    • Item aus dem Schließfach anzeigen und verarbeiten, falls Items nicht im Inventar zu verfügung stehen


    Aus Erfahrung wird dieser List noch einiges hinzukommen, weil ich häufig während des Scriptens auf Ideen stoße.


    Der Dialog


    Nun benötigen wir eine grobe Darstellung unseres Dialogs. In der anfänglichen Entwicklungsphase sollte man einen Dialog etwas großer als nötig entwerfen, da weitere Funktionsinhalte und Buttons möglicherweise hinzukommen könnten an die man vorher nicht gedacht hatte.


    Grobe Dialogdarstellung:


    CraftingSystemV0.png



    Der Itempool


    Um die Herstellung mächtiger Items zu regulieren und aus vielen vielen weiteren Gründen, benötigen wir nicht nur neue Items, sondern auch Gegenstandsarten, die seltener Vorkommen.


    Hierzu möchte ich allerdings nicht viele Worte verlieren, denn hauptsächlich kümmern wir uns hier um unser Crafting-Script.


    Dann mal los!
    Ich bemesse eine Entwicklungszeit von 2 bis 3 Wochen, abhängig von der Zeit die ich aufbringen kann, ich scripte nicht hauptberuflich. Dann werd ich mich mal aufmachen und zuerst den Dialog gemäß unserer ersten Darstellung schreiben.


    Ich halte euch auf dem laufenden! Viele Grüße,


    Euer Ten4Rius


    * Eine Listbox ist ein Dialog-Element (Im Z-Inventar z.B. die Auflistung deiner Items, die sich in deinem Inventar befinden)
    ** Eine RscCombo ist ein Dialog-Element ähnlich wie im Schlüssel-Menü die Spielerauswahl

  • Hallo Gemeinde,


    ersteinmal haben wir uns aufgemacht und unsere simple Darstellung des Dialoges grundlegend umgesetzt.


    1.jpg


    Ihr seht schon, dass ein weiteres Element hinzugekommen ist, welches wir nicht eingeplant hatten. Nämlich die Anzahl der Items die wir herstellen wollen. Im laufe dieses Events werden sich möglicherweise noch viele Details im Dialog verändern.


    Als nächstes fügen wir ein Item-Bild ein um zu sehen ob sich das RscPicture-Element anpasst. Zuerst versuchen wir die Icons normaler Z-Items zu nehmen.


    2.jpg


    Sieht ja schonmal okay aus, jedoch haben wir für das Bild auf dem das Item zu sehen ist ein quadratförmigen Layer benutzt, der in seiner Weite und Höhe fest definiert ist. Dies könnte problematisch werden, wenn wir Arma interne Bilder verwenden, da diese, insbesondere bei Waffen einen individuellen Layer benutzen (meist breiter als höher).


    Also testen wir erstmal die Arma-Pictures.


    3.jpg


    Wie erwartet, werden die Arma-Pictures verzogen dargestellt. In diesem Bild habe ich die Weite und Höhe bereits entfernt, damit das Custom-Bild zu sehen ist. Unsere Aufgabe wird nun sein, abhängig von dem Bild die optimale Auflösung und Größe zu generieren. Aufgrund der unterschiedlichen Maße der Bilder muss das Script dementsprechend angepasst werden.


    Um nun erstmal alle Bilder zu checken, lassen wir uns erstmal eine Übersicht aller V-Items zeigen. Das hilft uns zu sehen wie alle Bilder dargestellt werden. Z-Items werden anders dargestellt als Backpack-Items. Außerdem werden Waffen anders dargestellt als die Kleidung. Das müssen wir berücksichtigen, wenn wir alle Bilder anständig angezeigt bekommen wollen. No Problem - switch (_type) do!


    4.jpg


    Mit diesem Bild verabschiede ich mich erstmal wieder und wir sehen uns die Tage.


    Viele Oster-Grüße


    Euer Ten4Rius

  • Einen wunderschönen!


    Dann mal los, ist viel zu tun.


    Wir wollten uns der Aufgabe widmen die Bilder aller Items im Dialog anständig anzeigen zu lassen. Das ist relativ einfach, wenn man erkennt wie sich spezielle Item-Bilder zueinander verhalten. Im groben kann ich sagen, dass - bis auf Waffen und V-Items - alle Item-Bilder um ca. 10 % in der Vertikalen dezimiert werden müssen. Das sollte kein Problem sein.


    1.jpg


    In diesem Bild kann man erkennen, dass das Bild ziemlich groß und fast über den Rand angezeigt wird. Ich hatte erst überlegt es kleiner zu machen, allerdings hats mir so gefallen. Kann man gut sehen und fügt sich symetrisch in das Ganzbild ein.


    Außerdem sieht man, dass ich etwas mit der Text-Anzeige des Bildes herumexperimentiert habe. Da die Bild-Größe von V-Items (virtuellen Items, wie die Wasserflasche oder Goldbarren) in einem anderen Pixel-Verhältnis als I-Items (Arma interne Items) dargestellt werden, habe ich mich dazu entschieden 2 völlig unabhängige Anzeigen zu erstellen. Dies sieht man später noch.


    Weil ich es für benutzerfreundlich halte, habe ich für jeden Item noch die Legalität hinzugefügt.


    Im folgendem Bild kann man nochmal die Text- und Bildanzeige von V-Items sehen:


    2.jpg


    Nebenbei erkennt man die ersten Tests der RscCombo (unterhalb der ganzen Items) die es dem Spieler möglich machen soll, die Items in verschiedenen Subclasses (Unterklassen) auswählen zu können.


    • Alles
    • Waffen
    • Magazine
    • Attachments
    • Westen
    • Kopf
    • Kleidung
    • Rucksack
    • Brillen
    • Zubehör
    • Items

    Dies stellte mich vor die Herausforderung die einzelnen Items genau zu bestimmen um sie den einzelnen subclasses zuordnen zu können. ARMA3 gibt einem bei diesem Vorhaben eine gewisse Hilfestellung in Form von sogenannten Cfg´s (Configs), die jedoch häufig recht wirr angeordnet sind. ARMA3 zählt z.B. zu Magazinen auch Chemlights, was ich lieber bei Zubehör sehen möchte.


    Ich habe da einen ziemlich eigenen Willen und deshalb tut dat so sein müssen wie dat sein müssen tut (Grüße an Mulle).


    3.jpg


    Mein Wille konnte sich durchsetzen und so werden nun alle Items in den subclasses angezeigt wie es für den Benutzer am intuitivsten ist.


    Die nächsten Tage werde ich dann erstmal an den craftbaren Items arbeiten. Außerdem überlege ich mir noch, wie ich dem User am besten Kennzeichnen kann welche Magazine zu welcher Waffe gehören. Das wirs sicherlich hilfreich sein, denn auch ich tu mich manchmal sehr schwer damit.


    Bis dahin, viel Spaß auf Live your Life!


    Viele Grüße Ten4Rius

    Einmal editiert, zuletzt von Tenarius ()

  • Hallo Freunde der Nacht,


    wie ich es schon eingangs erwähnte, wird sich im Verlauf unseres Scripts noch einiges an unserem Dialog verändern. So auch heute.


    Ich habe mich heute rangemacht und alle möglichen Baupläne von I-Items in meinem Test-Item-Pool hinzugefügt. Nervige Angelegenheit, da sich über 200 I-Items in unserem Pool befinden und jedes sein eigenen Bauplan braucht. Hat wenig mit scripten zu tun, eher mit Copy+Paste und Tabs. gamer


    Als ich das abgeschlossen hatte, widmete ich mich erstmal wieder unserem Dialog zu, denn dort müssen noch die Dialog-Positionen der "benötigten Materialen" angepasst werden.


    Wie auf dem letzten Bild im obrigen Post zu sehen ist, befinden sich die Positionen des Item-Textfeldes (Item_1 usw) über dem Textfeld, der später anzeigen soll, wieviele Items für die Herstellung gebraucht werden. Dies ist allerdings problematisch, da für langzeilige Itemnamen kaum Platz ist. Also war eine Umstrukturierung der Textfelder nötig.


    1.jpg


    Ich habe also mit einem Zeilenumbruch gearbeitet der mit Hilfe einer speziallen Rsc-Formatierung möglich ist. Ist jetzt nicht nötig das zu verstehen. Auf jeden Fall musste dadurch die Anzeige weichen, die darstellt wieviele Items wir zum Herstellen benötigen. Diese befinden sich nun im Item-Bild selbst.


    Im Anschluss habe ich einfach nur alle anderen Text-Elemente dem entsprechend angeglichen und zum testen variable Itemnamen- und Bilder hinzugefügt.


    2.jpg


    Wenn genügend Items vorhanden sind, soll sich das Textfeld grün färben. Dies habe ich zum Testen schonmal implementiert. Sieht alles mächtig bunt aus, oder? Na mal schauen.


    Viele DEV-Grüße
    Tena

  • Halli Hallo,


    heute habe ich eine neue config für die Items geschrieben, die gecraftet werden können. Ziemlich nervige Arbeit da über 300 Items gecraftet werden können. Riesige config.


    Kleinere Dialog-Veränderungen habe ich vollzogen, die jedoch nur optischer Natur sind.


    Nun bin ich grad an dem Display für die Items, die zum craften benötigt werden, dran. Komme gut voran.


    Tena

  • Gudde meine Freunde,


    mit diesem "Hallo" begrüßt der Scripter "Hoegnison" seine Zuschauer auf dem YouTube-Kanal "Smart Tactis". Smart Tactics hat den besten deutschsprachigen Scripting-Guide für Arma 3 mit dem ich selbst die Grundlagen des Scriptings erlernt habe. Wer also wissen möchte wie das ganze Scripting-Gedöns funktioniert kann sich die Zeit nehmen und die Tutorials durcharbeiten.


    Der Grund meiner Werbung ist einfach: Das Forum von Smart Tactics ist zwar wenig besucht, jedoch bekommt man tolle Hilfestellungen von den Mitgliedern von Smart Tactics und ich möchte mich auf diese Weise bedanken. Außerdem ist mein weiteres Vorgehen in unserem Crafting-Script nur zu verstehen, wenn man die Grundlagen des Programmierens per .sqf beherrscht.


    Nun weiter mit unserem Script:


    Die Grundlagen haben wir geschaffen. Wir haben unseren Dialog und es geht jetzt um viele viele Kleinigkeiten.


    Wir haben die Configs eingefügt. Configs sind Datenansammlungen in denen Daten per bestimmten Werten (Variablen) konfiguriert werden.


    Z.B. wollen wir Bestimmten, welches craftbare Item welche crafting-Items benötigt. Sowas legen wir dort fest.


    Außerdem haben wir (habe ich, haben wir, das macht mich wuschig :D ) brandneue Items in die Item-Config implementiert die zum Herstellen bestimmter Items notwenig sind (lasst euch überraschen).


    Die Testbasis, auf der uns in unserem Dialog Items angezeigt wurden habe ich komplett entfernt und durch sogenannte Arrays ersetzt, die später sehr wichtig für das Speichern der Crafting-Bauplänen werden. Nun werden uns nur noch Items im Dialog angezeigt die auch später dem Spieler zu Verfügung stehen werden.


    Außerdem habe ich viele Veränderungen in sämtlichen Dateien vorgenommen, um die Performance zu verbessern. Schwer zu erklären... ein Code ist dann am effektivsten wenn er mit dem geringsten Widerstand zum Ziel gerät. Also lasst uns dem Code keine Steine in den Weg legen!


    Nun bin gerade dabei die ersten Tests mit dem "HERSTELLEN" Button zu machen. Ich lasse mir erstmal alle relevanten Daten in eine LOG schreiben um zu überprüfen ob dem Script alle Items anständig übergeben werden. Das ist wichtig um später dafür zu sorgen dass verwendete Items aus dem Inventar entfernt werden und das hergstellte Item dem Inventar hinzugefügt wird.


    Weiter gehts!


    Bis dahin erstmal Ahoi!


    Euer Tena

  • Man das hat gerockt,


    war am Wochenende mit meiner Band in einem sau-noblem Hotel unterwegs und wie gewöhnlich haben wir ne Menge Spaß gehabt. Man muss ja auch mal rauskommen, aber jetzt widme ich mich wieder unserem Script.


    Nachdem ich heute ein paar Stunden mit Tass ein Group-Script für die Cops geschrieben habe, fügte ich eine neue ProgressBar in unser Script ein, damit das Craften von Items dem Spieler auch anständig angezeigt wird. Das Aussuchen der Farbe für die neue Bar hat bestimmt ne Stunde gebraucht :D . Außerdem habe ich viel Zeit damit verbracht mögliche Fehler per Error-Scripts präventiv zu beheben.


    Gerade wenn es um das Vergeben und Entziehen von Items geht, muss man sehr genau scripten, damit keine Exploits entstehen. Die besten Tester sind immer noch die Spieler und die behalten gefundene Lücken gerne für sich. Zum Glück loggen wir alles mit... .


    Auf jeden Fall ist unser Script soweit Live getestet zu werden, weshalb ich momentan noch dabei bin die Scriptdaten anzupassen. Wir brauchen neue IDC´s für unseren Dialog und unsere virtuellen Arrays müssen an die Live-Arrays angepasst werden.


    Dann werden wir uns wahrscheinlich erstmal mit zahlreichen Scripterrors befassen dürfen. Haben wir diese Überwunden gehts weiter mit dem Crafting-internen Skill-System und ich möchte dass dem Spieler im Dialog vor den Items per Zahl direkt angezeigt wird, ob und wieviel er craften kann.


    Es kam eine Frage:
    "Was ist eigentlich ein Array?"


    Ein Array kann man sich wie eine Art Zwischenspeicher vorstellen in dem man Informationen lagern kann.


    []


    In diesen eckigen Klammern kann man seine Informationen lagern. Z.B. möchten wir dort ein Item reinschreiben.


    ["apple"]


    Und schon haben wir ein Array mit dem Inhalt "apple". Aber wir müssen definieren wem das Array eigentlich gehört und wie wir es später wiederfinden können. Dazu nutzen wir Variablen.


    meineVariable


    Und dieser Variable sagen wir: "Du bist jetzt unser Array ["apple"]"!


    meineVariable = ["apple"]


    So wissen wir nun immer das "meineVaribale" den Inhalt ["apple"] trägt.


    Soweit so gut,


    wir sehen uns,


    Tena

  • Complicated makes a lot of fun,



    eieiei, heute am Script gesessen, welchens Items herstellt. ProgressBar funktioniert ultra-nice, jedoch hat sich ein interessantes Problem bei der Item-Abfrage ergeben.



    ForEach-Funktionen haben es manchmal in sich. Krieg ich schon hin, aber nicht mehr heute.


    Grüße Tena

  • Peace!


    Itemabfrage ist fertig. Bin jedoch immer noch bei dem Script, welches ausgeführt wird, wenn man auf den HERSTELLEN-Button klickt.


    Es muss einfach perfekt sein und der Fehler der momentan noch auftritt könnte kleiner nicht sein. Ich fixe ihn dann morgen. Nun erstmal ins Bett, muss morgen arbeiten.


    Viel geschafft heute - ihr müsstet den Code sehen... *sabber*.


    Oh, ihr könnt ihn sehen (also den Code für den Herstellen-Button)!



    Achso - danke an Tex aus dem Forum von Smart-Tactics, er hatte eine gute Idee für die Item-Abfrage!


    Grüße & g8


    Tena

  • Einen angenehmen guten Abend,


    ich habe einige Anfragen zwecks des Codes bekommen. Ich möchte dazu sagen, dass so ein Code sehr komplex aussieht, wenn man ihn so vor die Nase geworfen bekommt. In Wahrheit ist dies aber nichts anderes, als eine andere Sprache zu erlernen, Vokabeln, Syntax, Dialektik. Also halb so schwer, wenn man weiß wie die Chieffre funktioniert.


    Nun aber erstmal weiter zu unserem Crafting-Script.


    Die Funktion des HERSTELLEN-Buttons habe ich nun fertig gestellt, jedoch wird diese später im Zuge des Skill-Scripts noch erweitert, weil ich möchte, dass einige Items nur dann hergstellt werden können, wenn man ein gewissen Level ereicht hat.


    Apropos-Skill Script. Ich habe mir heute ein virtuelles Array erstellt, indem ich die gewollten SKILL-Informationen gespeichert habe:


    SKILL = [23,50,1];


    Die 23 zeigt uns den momentanen SKILL an.
    Die 50 zeigt den maximalen SKILL an.
    Die 1 zeigt uns das SKILL-LEVEL an.


    Wir haben die globale Varibale SKILL verwendet und können diese überall abrufen, weil sie ja global ist.


    Global bedeutet dabei dass eine Varibale überall verwendbar ist,
    Lokal würde bedeuten, dass eine Varibale nur im Script selbst verwendbar wäre.


    (Dabei ist gerade im Multiplayer-Script noch zwischen global-lokal und global-global zu unterscheiden, aber das tut hier erstmal nichts zur Sache)


    Unser SKILL Array brauchen wir um dem Spieler seinen derzeitigen SKILL-Stand ausgeben zu lassen. Dies wird später über die Datenbank geregelt, aber erstmal testen wir das Ganze virtuell.


    20160407220632_1.jpg


    Hier sieht man unten in der ProgressBar wie der Skill-Level ausgegeben wird. An dieser Stelle machen wir morgen weiter.


    Hinzu kann man in dem Screenshot erkennen, dass in der Info-Area im Itemsbereich angezeigt wird, wieviele Items wir benötigen und wieviele Items wir haben. Haben wir genügend Items (oder mehr) im Schliessfach, wird die Item-Value grün angezeigt.


    Für Insider: Items, die im Inventar getragen werden, sind in der Info-Area zwar nicht angezeigt, können aber trotzdem verarbeitet werden. Jedoch hat das normale Inventar einfach nicht genügend Kapazität um große Mengen an Items zu tragen. Aus diesem Grund habe ich das Schliessfach-System gescriptet, BEVOR ich das Crafting-Script geschrieben habe. Langfristige Planung!


    Damit das auch alle Spieler checken, habe ich noch einen Tooltip eingefügt. Wenn man also über die benötigten Items mit dem Mauszeiger fährt, wird einem angezeigt dass nur die Items aus dem Schließfach verwendet werden.


    Ihr seht schon dass es hier um viele Kleinigkeiten geht, die das Script in die Länge ziehen, jedoch sind es auch die kleinen Dinge die dem User eine angenehme Bedienung der Anwendung ermöglichen. Code ist nicht alles, Design ist entscheidend.


    Mit diesen Worten verabschiede ich mich für heute und wünsche


    eine gute Nacht
    Ten4Rius

  • Ich habe Mathe in der Schule gahasst...


    ...heute liebe ich es. Ist wohl eine Frage der Motivation (wenn das meine ehemalige Lehrerin ließt). ;)


    Ich hab mich heute rangemacht und hinter den zu verarbeitenen Items eine Zahl eingefügt, die anzeigt wieviele Items ich maximal verarbeiten kann.


    Machen wir mal ne Matheaufgabe.


    Hannes hat 5 Äpfel, 8 Birnen und 5 Trauben.
    Er möchte einen Obstsalat für mehrere Klassen in seiner Schule herstellen.
    Für jede Klasse braucht er 2 Äpfel, 2 Birnen und 2 Trauben.


    Für wieviele Klassen kann er einen Obstsalat zubereiten?


    Bitte die vollständige Berechnung vorlegen.


    Anders gesagt:


    Der Spieler hat 5 Seide, 8 Baumwolle und 5 Leinen.
    Er möchte mehrere Kleidungsstücke herstellen.
    Für jedes Kleidnungsstück braucht er 2 Seide, 2 Baumwolle und 2 Leinen.


    Wieviel Kleidungsstücke kann er herstellen?


    Das Script braucht ne klare Ansage. Also berechnen!


    Lösung:
    Im Script müssen wir erstmal in einem Array definieren, welche Items (und die jeweilige Anzahl) das ausgewählte Item benötigt. Danach lassen wir uns unsere verfügbaren Items ebenfalls in einem Array ausgeben.


    Nun haben wir 2 Arrays. Jetzt geht es erstmal darum zu überprüfen ob die Items die wir haben mit den Items die wir brauchen übereinstimmen. [Code].
    Stimmen sie überein, nehmen wir ganz einfach den "geringsten Widerstand". Wir erstellen uns also ein neues Array in dem wir alle zu Verfügung stehenden Item-Zahlen hinzufügen. Dass diese Zahlen zum Herstellen des Items genügen, haben wir ja schon zu vor berechnet.


    Nun suchen wir - wie gesagt - den geringsten Widerstand, also die kleinste Zahl. Und diese sagt uns aus wieviele Items wir herstellen können.


    Nunja, das klingt eventuell schwierig, aber das ist es nicht. Es ist eher wie ne Sport-Denk-Aufgabe. Muss man sich mit befassen.


    So sieht das Ganze dann aus:


    20160408225805_1.jpg


    In dem Bild kann man eine weitere Veränderung erkennen. Ich habe die Items nun in der cConfig mit Itemleveln versehen. Jedes Item hat jetzt ein Itemlevel von 1 bis 6 welches definiert welche Erfahrungsstufe man benötigt um ein Item herzustellen.


    Schwere Waffen haben also ein hohes Itemlevel (auch TIER genannt), welche nur hergestellt werden können, wenn man ein equivalentes Crafting-Level (oder höher) ereicht hat.


    Ich würde ganz gerne die Listboxeinträge für die Itemanzahl farblich anders gestalten, aber da sind mir aus ARMA-technischen Gründen Grenzen gesetzt. Ich mach mich da nochmal schlau.


    Ansonsten befinden wir uns nun langsam in der End-Phase unseres Scripts.


    Gruß Tena

    Einmal editiert, zuletzt von Tenarius ()

  • Guten Abend zusammen,


    heute habe ich mich vorrangig der Perfomance unseres Crafting-Scripts gewidmet. Da musste ich viel herumprobieren und viele Tests machen.


    Da wir uns zu Beginn des Scriptes gesagt haben, dass wir dem Spieler eine große Funktionsvielfalt mit vielen Ausgabewerten bieten möchten, werden natürlich nun sehr viele Informationen abgefragt, wenn ein Spieler eine Aktion tätigt.


    Allein beim drücken des HERSTELLEN-Buttons werden von der CPU nicht nur kalkulationen des Items-Austausches berechnet sondern auch so einige Hintergrundberechnungen für die Ausgabe der Listbox (wieviel hab ich, wieviel kann ich noch), des Itemlevels, des Spieler-Skills, der Itemanzahl (von 6 verschiedenen Items), das Schließfach, das Inventar, verschiedene Farben für Items (je nach Itemlevel), usw..


    Wenn ich ein Item auswähle werden mir ebenfalls zahlreiche Informationen ausgegeben, die die CPU berechnen muss, deshalb ist es notwendig das Script so zu schreiben, dass diese Informationen den geringsten Widerstand zur Ausgabe an den Spieler gehen.


    Nun sollte das Script einigermaßen Performant funktionieren. Allerdings bin ich mir sicher dass es noch performanter ginge, jedoch bin ich nur Hobby-Scripter, weswegen mir meine Erfahrung natürlich !noch Grenzen gesetzt sind.


    Letztlich habe ich noch einige BUGS behoben die mir unterwegs begegnet sind und ich habe der Listbox noch eine farbliche Anzeige hinzugefügt, die dem Spieler anzeigt, welches Item aufgrund seines Crafting-Levels noch nicht hergestellt werden kann und welches Item nicht mehr so viel XP bringt. Achso, ich habe die Background-Color der Listbox etwas erhöht, damit die neuen Farben besser zur Geltung kommen.


    20160409230820_1.jpg


    Rot bedeutet, dass dieses Item noch nicht hergestellt werden kann, da das Crafting-Level des Spielers zu niedrig ist.
    Weiß bedeutet, dass die Herstellung mit maximalen XP funktioniert.
    Grau bedeutet, dass der Spieler das Item zwar herstellen kann, es aber nicht so viele XP dafür gibt.


    Die Spezifikationen werden wir im Skill-Script verfestigen.


    Die Funktion, dass der CurrentSelect des Items wieder auf die richtige Position springt, nachdem ich gecraftet habe war übrigens eine Herausforderung, weil es u.A. keinen Arma-Command dafür gibt.


    Heute haben wir viele Kleinigkeiten bearbeitet, die ganz schön aufgehalten haben. 11 Stunden habe ich gescriptet.


    Ich geh penn,


    Tena

  • Ein fröhlichen guten Abend,


    der Tag neigt sich seinem Ende und wir haben heute einiges geschafft. Aber heute war auch einer dieser Tage an dem ich mich an vielen Kleinigekeiten aufgehalten habe. Da bekommt man schnell das Gefühl als würde es einfach nicht vorangehen. Das Gegenteil ist jedoch der Fall.


    Heute nur ein kurzer Statusreport.

    • Anbindung zur Datenbank wurde etabliert, funktionier perfekt
    • Datenbankanfragen des Clienten wurden performanter gestaltet (das wird einige BUGS beheben)
    • Skill-System wurde geschrieben, funktioniert tadellos
    • Random-Script für das sammeln zufälliger Items wurde geschrieben, funktioniert einwandfrei
    • eine Vielzahl BUGS im Crafting-System wurden behoben (viele BUGS geben sich erst spät zu erkennen)
    • Farming-Funktion für Baumwolle und Flachs wurden eingefügt

    ToDo:

    • das zufällige Finden von Bauplänen in das Spiel integrieren
    • Datenbankinput des Skill-Systems etablieren
    • Datenbankinput der Baupläne bei Benutzung etablieren
    • Hints erweitern
    • cItems konfigurieren und balancen (das wird noch ne Arbeit)
    • Random-Script balancen


    Mein Plan ist die Fertigstellung des Scripts zum nächsten Wochenende. BUGS werden aber auftreten, ist also nur eine etwaige Angabe.


    Viele Grüße
    Tena

  • Unglaublich!


    Da bin ich doch tatsächlich meinem eigenem Script verfallen! Looten macht Spaß - ohne Frage!


    Ich habe heut die neue Config für die Baupläne fertiggestellt und hab grade so richtig Spaß am Testen!
    Die Baupläne sind in 3 Klassen unterteilt. Normal, Selten und Episch. Je epischer die Baupläne sind, desso seltener findet man sie.


    Heute möchte ich euch einen Einblick in unser Bauplan-Script verschaffen. Eigentlich ist dieses Script unabhängig vom Crafting-Script, jedoch kommen beide nicht ohne einander aus.


    Baupläne die gefunden wurden, können erlernt oder an andere Mitspieler verkauft werden. Wenn man sie erlernt hat, bleiben sie für immer im Crafting-Inventar gespeichert und können jederzeit gecraftet werden. Je seltener ein Bauplan ist, desso höher ist sein finanzieller Wert. Dabei ist nicht zu vernachlässigen dass Items die aus Bauplänen erschaffen wurden, ebenso teuer bei anderen Spielern verkauft werden können.


    Dieses System setzt allerdings voraus, dass sich seltene Items wie die MK20 nicht für Lau beim Mafia-Händler gekauft werden können. Das würde bedeuten, dass Waffenshops entweder komplett entfernt werden, oder die Preise angeglichen werden müssten. Aber keine Angst!


    Für mich ist Altis Life keine Schießsimulation in der es darum geht, möglichst schnell an Waffen zu kommen um Geiseln zu nehmen. Für mich geht es um das Kommunizieren mit dem Spieler per Roleplay. Das Handeln und feilschen von Waren würde dem Spielprinzip von Altis Life aus meiner Sicht einen revolutionären Fortschritt bringen.


    20160412222204_1.jpg


    Aber nun erstmal kurz und bündig zu den Changelogs:


    Geschafft:

    • das Crafting System ist fertig (muss natürlich noch final getestet werden)
    • das Crafting-Skill-System ist fertig
    • die Baupläne wurden in eine neue Config integriert
    • alle Baupläne wurden in den Itempool eingetragen
    • Zufalls-Script für das spawnen von Bauplänen wurde geschrieben und erfolgreich angetestet (2/6)
    • Hints wurden angepasst


    ToDo:

    • Baupläne benutzbar machen
    • Datenbankinput des Skill-Systems etablieren
    • cItems konfigurieren und balancen
    • Zufalls-Script für das spawnen von Bauplänen erweitern (2/6)
    • Bauplan-Arrays etablieren
    • BALANCING DES GESAMTEN SYSTEMS ( hail )


    Ich wünsche allen eine angenehme gute Nacht


    Euer Tena

  • Geschafft:

    • Baupläne wurden benutzbar gemacht
    • Datenbankinput des Skill-Systems wurden etabliert und funktionieren einwandfrei
    • Zufalls-Script für das spawnen von Bauplänen wurde abgeschlossen
    • Bauplan-Arrays wurden etabliert und funktionieren perfekt
    • Zufalls-Script für das spawnen von Bauplänen wurde verbessert

    ToDo:

    • Balancing


    Gegrüßt seid ihr,


    von demjenigen der stets drauf achtet dass seine Begrüßungen sich immer von einander unterscheiden (hats wer gemerkt?).


    Wir haben fertig. Und mit fertig meine ich, dass das komplette System extrahiert, gebalanced und getestet werden muss. Erfahrungsweise kann ich sagen dass in einem Test häufig noch Fehler auftreten die behoben werden müssen. Es ist also schwer zu sagen wie lange das dauern wird.


    Das Balancing umfasst:

    • Itemlevel
    • Items zum Herstellen
    • Bauplan Dropchance
    • Bauplan Drop-Ort
    • ständig verfügbare Items und Baupläne (zum Einstieg)
    • Bauplan Stufen (normal, selten, episch)

    Glücklicherweise haben wir unser Script so geschrieben, dass diese Einstellungen ganz einfach in der Config vorgenommen werden können. Usability, quasi. Nice to change.


    Spezielle Baupläne werden nur an speziellen Orten gefunden werden können. Z.B. beim Schiffswrack oder beim Gathern aber auch an vielen anderen Orten. Dies bleibt vorerst verborgen, da die Anzeige dessen ein komplett neues Script beinhaltet. Ist aber geplant.


    Tatsächlich haben wir nicht nur das Crafting-Script geschrieben, sondern auch das Bauplan-Script. Beide unterscheiden sich elementar, wobei das Bauplan-Script keine eigenen Dateien benötigt, sondern sich in vorhandene Dateien implementiert.


    Ich mach mich auf ins Bett und werde die Tage wacker weiter arbeiten! Übrigens sind unsere anderen Scripter auch an hammermäßigen Sachen dran, die mich echt beeindrucken! Ihr könnt gespannt sein!


    Viele Grüße
    Tena



    Ps.: In der Shoutbox wurde das neue System diskutiert und kritisiert dass das Entfernen von Waffenshops zu Ungleichmäßigkeiten führen könnte.


    Da kann ich euch entspannen, denn wir haben vor die Gleichmäßigkeit und Balance aufrecht zu erhalten und niemanden zu benachteiligen. Dass Langzeitspieler einen Vorteil haben ist natürlich klar, da sie Items, Baupläne und Geld besitzen die neue Spieler erst erarbeiten müssen. Aber der Sinn des Ganzen ist das Roleplay und das Interagieren mit anderen Spielern.


    Das Handeln von Bauplänen und Items wird in den Vordergrund gerückt und somit gleichermaßen das Roleplay. Lasst euch drauf ein!

  • hi


    Ein kurzes Update:


    Das Balancing zieht sich aufgrund der enormen Datenmenge von fast 400 Items etwas hin. Wir haben heute ein Token eingefügt, welches bei Benutzung zu einer 100%igen Wahrscheinlichkeit einen zufälligen Bauplan generiert. Dies ermöglicht uns einen erweiterten Funktionsumfang beim Vergeben von Bauplänen und findet z.B. im Schiffswrack Anwendung.


    Wir haben bereits unzählige Bauplan-Test-Durchläufe auf den Testservern durchgeführt und die Dropchancen und Dropplaces der gesamten Configs optimiert.


    Das Crafting-System funktionierte bei unseren Tests ausgezeichnet. Die High-End Inhalte sind noch in der Prüfungs-Phase.


    Während wir so umhertesten, dürfen wir natürlich nicht die anderen Spielinhalte und Community-Anregungen vernachlässigen, deshalb arbeiten wir parallel an vielen anderen Dingen. In den nächsten Wochen sollten wir dann aber das Crafting-System ausreichend konfiguriert und getestet haben, damit es endlich online geht.


    Ich bin super gespannt auf euer Feedback und kann es kaum erwarten!


    Euer Tena :rolleyes: