Avencast

Official 'Avencast - Rise of the Mage' discussion board
It is currently Thu Jan 18, 2018 1:08 pm

All times are UTC + 1 hour




Post new topic Reply to topic  [ 14 posts ] 
Author Message
 Post subject: Valve Hammer Editor vs. ADK und Avencast Reference Feedback
PostPosted: Fri Nov 19, 2010 11:48 am 
Offline
Adept

Joined: Wed Oct 27, 2010 3:53 pm
Posts: 12
Hammer wird ebenfalls wie eigentlich auch das ADK von Entwicklerteams und Usern verwendet um level zu erstellen. Mappen mit Hammer ist keine Seltenheit, wohingegen der Zulauf des ADK eher bescheiden ausfällt. Liegt es wirklich daran, dass das ADK komplexer ist als Hammer?
Wohl kaum :mrgreen:

Die ganzen Skripts wurden für Hammer in Form von etlichen Entitys und des Input/ Output Systems internalisiert. Für diese Vereinfachung werden Leistungseinbußen in Kauf genommen. Vorteilhaft ist allerdings, dass der User sich nicht unbedingt mit allen Entities beschäftigen muss.
Der math_counter zB kann nicht viel mehr als einfache Rechenoperationen ausführen und auf ein Maximum bzw. Minumum prüfen. Trotzdem ist es nur den wenigsten mappern bekannt. Doch jeder der halbwegs skripten kann, wird diese Funktionen im Handumdrehen nachbauen können.

Klarer Punkt für Hammer ist unumstritten die Übersichtlichkeit. Im ADK beschränkt sich die dritte Dimension auf das Terrain. Objekte sind daher nur von oben mit Symbolen gekennzeichnet. Man kann nicht sofort erkennen, um welches entity es sich handelt.

Dank unnötiger Kompilierung und dem schnellen Levelreload, werden die fehlenden Eigenschaften eines 2D Editors ganz gut kompensiert.

Die Hammerische Stärke liegt besonders in internen Hilfestellungen. Jede einzelne Eigenschaftseinstellung der Entities sind meist gut erläutert. Alle Triggermöglichkeiten (wie zB OnHitMaximum, OnMotionEnabled, OnBreak, OnAwakened, OnClose, OnFullyClosed etc.) sind vollständig aufgeführt. Zusätzlich werden alle inputs bei den Zielobjekten aufgelistet.
Im ADK muss man sich meist mit einer 2 wortbeschreibung für das gesamte Entity zufrieden geben und was es neben OnUse und OnActivate sonst noch gibt, muss ich noch in Erfahrung bringen.

Mein Fazit: Ich finde nicht, dass das ADK aufgrund des Entwicklertoolstatus von Vornherein nur für die wenigen (bis jetzt nicht existierenden) Programmierfreaks bestimmt sein sollte. Ohne zu scripten geht es tatsächlich nicht aber die Grundlagen sind meines Erachtens nicht schwer zu erlernen... sofern man den Usern die Möglichkeit dazu gibt. Am ADK selber braucht es keine großen Änderungen, denn die ganzen editorinternen Hilfestellungen im Hammer könnten z.B. auch gut in einer externen .chm Datei unterkommen ;)


...Womit wir dann schon beim Avencast Reference wären:


Auf den ersten Blick macht das ADK einen komplizierten Eindruck, doch wenn man sich ordentlich damit befasst und die vorhandenen Hilfestellungen im docs Ordner erschließt, ist es eher eine Frage der Kenntnis von Avencast spezifischen Funktionen. Unter Avenskript reference (Teil des Avencast Reference) werden mehr oder eher weniger alle Funktionen aufgelistet (SetCamObj() fehlt z.B.).

Ich wage mich jetzt nicht zu weit aus dem Fenster zu lehnen, aber basierend auf meinen bisherigen Programmierkenntnissen ist das Skripten für Avencast auch für Normalos machbar... eine ordentliche Einführung vorausgesetzt.
Zu einer soliden Basis gehört das Verständnis der "Keywords" (Keywords: int, float, string, if, else, do, switch,[...]) und der Operatoren ( + - / * % ++ -- ! && || < <= [...]).

Mit einer kleinen Einführung dieser Grundlagen beispielhaft an Avencast mit der Länge des vorhandenen "Tut 2 -Scripting" hätte man schon eine weitaus größere Bandbreite an Avencast Spielern für das ADK begeistern können.
Kleine Übungen erhöhen den Lerneffekt: z.B. ein skript in dem man die Operatoren nachtragen muss.

Im Nachhinein kann die Einführung von wichtigen internen Funktionen folgen, wie zB AddExperience(), PlayAniCycle(). Im Avenscript reference sind diese Befehle, wenn überhaupt, nur spärlich erklärt. Letztere Funktion habe ich z.B. nicht zum laufen bekommen (s.u.) :oops:

Im folgenden werde ich für jeden verbesserungswürdigen Bereich konkret 2 Beispiele nennen:


_______________________________
Offensichtlich fehlende Inhalte:

Geisterverweise á la:

Quote:
see section Writing Scripts: Event Reaction
see section: Writing scripts: Scripts called from another script


Unter "Script Concepts" (zu finden unter der Hauptüberschrift "Tutorials") gibt es den abschnitt "concept Introuction"
Dort steht eine liste mit Punkten, die abzuarbeiten sind, wenn man ein lvl erstellt. Dummerweise fehlen die ganzen Punkte, die mit "writing scripts" anfangen. Die da sind:

Quote:
6. Writing scripts: How a script should look like? When it is called. Recommended path architecture. Dialogs and messages.
7. Writing scripts: Internal variables, types and functions, the ominous return; statement, #include command ...
8. Writing scripts: Event Reaction (OnActivate, OnDamage ...)
9. Writing scripts: Scripts called from another script, called as strategy, inline script calles, stoping and pausing a script, dialogs.
10. Writing scripts: Manipulating objects: creation, deletion, setting of object properties


Sehr schade...


Mein Favorit:

Quote:
damPhys[],damMag[],damPoison[]: [...]
Their length depends on (MICHI FRAGEN)


:lol:


_______________________________

Rechtschreibfehler:

"Now, if the plaer presses E when standing in front of [...]"

"Tell a creature to got to a certain position?"


Naja, zu verkraften. Lässt aber erahnen, welchen Stellenwert das Avencast Reference für euch gehabt haben muss :cry:

_____________________________


wieder etwas ärgerlicher:

Skriptfehler

Quote:
This objID can then be used to interact with the corresponding object:
SetHealth(,john,GetHitPoints(john));


Ein Komma zu viel. Einem Anfänger fällt dieser Syntaxfehler nur schwer auf.


Quote:
Run the script commands:
int monster=GetObject("MyMonsterName");
int target=GetObject("MyTargetName");
SetAI(monster,"GOTO","",target);


Die letzte Zeile müsste "SetAI(monster,"GOTO",target);" heißen. Das fand ich schwer zu korrigieren, da unter Avencast reference folgendes steht: SetAI(int objID, string type, string name, string target="", [...])
Demnach kommt das Ziel eigentlich erst an 4. Stelle, weshalb die 3. stelle nicht besetzt werden dürfte, da kein string name erforderlich ist. Naja, ich verstehe davon nicht so viel...



Trotz angesprochener Unzulänglichkeiten konnte ich das Tutorial "Tut 2 - Scripting" mithilfe des Avencast Reference doch durcharbeiten. Die Kamerasequenzen richtig anzupassen braucht wohl einiges an Erfahrung. Nicht nur, dass das direkte Bild einer Kamera den richtigen Dreh, Höhe und Abstand braucht, sondern manchmal gibt es offenbar Aussetzer in der Kamerafahrt, wenn die Ausrichtungen und Position von einem Kamerapunkt zum nächsten zu unterschiedlich sind. In diesem Fall habe ich Zwischenkameras setzten müssen, die die extreme Umorientierung abschwächen mussten... etwas umständlich

Wie im tut beschrieben sollte der Held noch eine Animation in der Sequenz spielen:
"So we just add a little camera movement and play an animation onto the hero." Letzteres hat Jens offenbar vergessen^^

Wenn ich es selbst versuche, steht hinter dem Animationsnamen nur "File is not readable" :(
Der Befehl im Skript sieht folgendermaßen aus:
PlayAniCycle(mc_ID,"acStun");

und später ohne Besserung auch so:
PlayAniCycle(mc_ID,"acStun",1,-1,-1,1,0,1,0,0.3);

Also ich bitte euch zum Thema Skripts noch ein paar kleine Starthilfen zu geben ;)


Top
 Profile  
 
 Post subject: Re: Valve Hammer Editor vs. ADK und Avencast Reference Feedback
PostPosted: Tue Nov 23, 2010 5:38 pm 
Offline
Kyranian Master

Joined: Sat Oct 27, 2007 12:21 pm
Posts: 353
Hi Rantanplan,

Erstmal sorry für die lückenhafte Dokumentation. Da gab's auch im Team ab und zu mal Beschwerden während der Entwicklung :) Eine gute Doku zu schreiben kostet leider viel Zeit die wir damals nicht mehr hatten. Wie du sehen kannst waren die guten Absichten verhoanden und schon ein paar zusätzliche Kapitel geplant, die dann aber nie geschrieben wurden :(

Aber schon mal gratuliere dass du dich erfolgreich durch den Tutorial gearbeitet hast!

Wegen dem PlayAnicycle(): da musst du den Dateinamen eines cycles angeben (3sc oder rtx Datei). Ich denke aber, dass du diese Funktion nicht brauchen wirst (ohne dem 3ds max file vom Charakter kannst du ja auch keine eigenen anis erstellen)

Als Tipp wenn du bei einer Funktion nicht genau weisst wie man sie anwendet: Such einfach in den vorhandenen Script Dateien des richtigen Spiels nach einer Stelle wo die Funktion in Verwendung ist. Das macht oft vieles klarer.

Gib Bescheid, wenn du Hilfe brauchst,
Michael


Top
 Profile  
 
 Post subject: Re: Valve Hammer Editor vs. ADK und Avencast Reference Feedback
PostPosted: Fri Nov 26, 2010 6:38 pm 
Offline
Adept

Joined: Wed Oct 27, 2010 3:53 pm
Posts: 12
Klar, vorm release ist Zeit ein seltenes Gut...keine Frage!
Aber wie ist es 3 Jahre danach? Hat sich bis heute immer noch kein bisschen Zeit gefunden? :P Das muss ja ein wahnsinnig stressiger Job sein :lol: :P


Michael_Clockstone wrote:
Gib Bescheid, wenn du Hilfe brauchst

Na, wenn du mich schon so direkt aufforderst... ich hätte da in folgenden Punkten noch etwas Nachholbedarf:

Quote:
6. Writing scripts: How a script should look like? When it is called. Recommended path architecture. Dialogs and messages.
7. Writing scripts: Internal variables, types and functions, the ominous return; statement, #include command ...
8. Writing scripts: Event Reaction (OnActivate, OnDamage ...)
9. Writing scripts: Scripts called from another script, called as strategy, inline script calles, stoping and pausing a script, dialogs.
10. Writing scripts: Manipulating objects: creation, deletion, setting of object properties


:|

Anscheinend hat eure Teambesprechung im Bezug auf neue Tuts wenig positives ergeben... aus welchen Gründen auch immer

Da bleibt wohl wirklich nur übrig, das Spiel noch einmal durchzuspielen und dabei die Skripts und maps zu erschließen :cry:
Wow, da kann man nur hoffen, dass...
Michael_Clockstone wrote:
es doch ein ein paar Freaks gibt die bereits ein paar Vorkenntnisse und den Willen haben, sich einzulernen


Schade, dabei fehlt ja nicht mehr viel. Mit Punkt 6 bis 10 wäre das Avencast Reference schon übern Berg.

Avencast habe ich übrigens nur wegen des ADK gekauft, daher meine Hartnäckigkeit. Dachte es wäre ganz hilfreich meine verjährten Programmierkenntnisse aufzufrischen :shock:


Wegen PlayAnicycle(): Ich habe eigentlich garnicht vor eigene Animationen zu erstellen. Es geht einfach nur darum während einer Sequenz die Charaktere nicht einfach bewegungslos rumstehen zu lassen, so wie im tut von Jan auch angedacht.
Ich dachte es handelt sich bei acStun um einen Dateinamen eines Cycles, denn im Avencast Reference steht geschrieben:

valid cycles:
· acBored[128]
· acWalk
· acWalkWeapon[1]
· acWalkSlow
· acRun
· acLeft
· acRight
· acLeftFW
· acRightFW
· acBack
· acTurn
· acDie
[...]
acStun
usw.

Nagut, konkret hier ein Beispiel:

Im anicycles.cfg ist folgender Eintrag zu finden:

Quote:
;Nova
acAttack31="graphics\hero\hero_nova.3sc"
acAttackStart31=0
acAttackEnd31=110
acAttackPoint31=0.47


Um diese Animation zu spielen, habe ich folgendes anstelle des Platzhalters eingesetzt PlayAniCycle(mc_ID,[Platzhalter]); :


"Nova", "acAttack31", "graphics\hero\hero_nova.3sc", "hero_nova.3sc", "hero_nova"

Immer kam der Error "File is not readable"

Michael_Clockstone wrote:
Als Tipp wenn du bei einer Funktion nicht genau weisst wie man sie anwendet: Such einfach in den vorhandenen Script Dateien des richtigen Spiels nach einer Stelle wo die Funktion in Verwendung ist. Das macht oft vieles klarer
.

Gesagt getan,

PlayAniCycle(mc_ID,"graphics\\hero\\hero_nova.3sc");

hätte es heißen müssen :roll:

Naschön, die Funktionen müssen eigentlich nicht erklärt werden, aber wie gesagt, das Wissen aus Punkt 6-10 ist Voraussetzung.

Momentan suche ich nach einer Lösung ein Skript zu pausieren. Das sollte ja eigentlich Thema in „9. Writing scripts: Scripts called from another script, called as strategy, inline script calles, stoping and pausing a script, dialogs. „ aber ich wär dir dankbar, wenn du das mal kurz vorwegnehmen könntest^^


Edit: Oh schon gut, nach ewigen rumprobieren lautet die Lösung für 5 sekunden skriptleerlauf:
Wait(5);
return;

Woher sollte ich ahnen, dass das Wait großgeschrieben wird? Steht ja nirgendwo :cry:


Top
 Profile  
 
 Post subject: Re: Valve Hammer Editor vs. ADK und Avencast Reference Feedback
PostPosted: Sat Nov 27, 2010 6:14 pm 
Offline
Kyranian Master

Joined: Sat Oct 27, 2007 12:21 pm
Posts: 353
Es freut mich sehr zu hören, dass du trotz der "widrigen Umstände" mit dem Scripten vorankommst.

Hier noch eine Erklärung zu dem Wait(). (Das ist jetzt sozusagen das Kapitel "the ominous return; statement" aus dem unfertigen Abschnitt 6)
Es gibt sogenannte "reenter" Funktionen. Also Script Funktionen, die die Kontrolle erstmal an die Engine zurückgeben und im Hintergrund warten. Bis z.B. eine gewisse Zeit vergangen ist (wie bei Wait() ) oder bis der Anwender eine Aktion durchgeführt hat (z.B. eine Antwortmöglichkeit ausgewählt hat wie bei der Funktion Dialog() )
Diese Funktionen benötigen ein "return;" direkt nach dem entsprechenden Funktionsaufruf. Dieses Return übergibt die Kontrolle an die Engine zurück. Dananch wird der Code gleich hinter dem return weiter ausgeführt.

Gib Bescheid wenn du wieder Hilfe brauchst,

Michael


Top
 Profile  
 
 Post subject: Re: Valve Hammer Editor vs. ADK und Avencast Reference Feedback
PostPosted: Sun Nov 28, 2010 4:46 pm 
Offline
Adept

Joined: Wed Oct 27, 2010 3:53 pm
Posts: 12
Tja, bin schon wieder auf ein Problem gestoßen. Es geht um worldIDs. Wenn ich versuche bestimmten Objekten eine WorldID zu zuweisen (im entity fenster mit dem Eintrag: worldID="String"), dann wird ingame behaupten es gäbe so eine worldID überhaupt nicht! :x
Bei einigen Objekten wie Kreaturen geht es aber.

Hier konkret mein Beispiel:

Bei einem Massenkampf zwischen Kreaturen konnte ich nicht unterscheiden wer für und wer gegen mich kämpft. Daher wollte ich die Kreaturen, die den Eintrag "party=1" haben, irgendwie kennzeichnen.
Erst habe ich es mit Lichtern versucht, aber die meisten wurden im level garnicht angezeigt (EffektFeuerlichtquelle, starkes Flackerndes blaues Licht etc.). Weiß ich auch nicht warum :roll:

Naja, jedenfalls bin ich dann auf den Effekt "KrassesMagicFire" gestoßen. :lol:
Das sollte nun an meine verbündeten Monster drangehängt werden. Im entityfenster des Effekts habe ich den Eintrag worldID="Krass" ergänzt und dem Monster habe ich den Eintrag child1="Krass" gegeben.
Wenn das lvl geladen wird kommt aber der Error: WrldObject 'Krass' does not exist :cry:

Der Effekt ist allerdings sichtbar. Kann man nicht allen Objekten eine world ID zuweisen?


Edit: Konnte die Markierung jetzt eleganter lösen: SpecialMark = 1
Trotzdem verstehe ich nicht warum die worldID sich bei einigen Objekten nicht zuweisen lässt.


Top
 Profile  
 
 Post subject: Re: Valve Hammer Editor vs. ADK und Avencast Reference Feedback
PostPosted: Tue Nov 30, 2010 5:17 pm 
Offline
Kyranian Master

Joined: Sat Oct 27, 2007 12:21 pm
Posts: 353
SpecialMark haben wir für genau diese Zwecke gemacht. Du könntest den Kreaturen auch eine andere Farbe geben (mit ColAdd oder DiffCol )

Effekte können keine WorldID haben - die stellen eine Ausnahem da. Aber du könntest ein Dummy Event Objekt machen, dem die WorldID geben und daran einen Effekt hängen. Und dann das Event Objekt an die Kreatur hängen.


Top
 Profile  
 
 Post subject: Re: Valve Hammer Editor vs. ADK und Avencast Reference Feedback
PostPosted: Wed Dec 01, 2010 11:09 am 
Offline
Adept

Joined: Wed Oct 27, 2010 3:53 pm
Posts: 12
Aha also nur Effekte, gut zu wissen. Aber einfach etwas irgendwo dranhängen, wie du es formulierst, klappte ja eben nicht.
Daher habe ich mir einen neuen Befehl gesucht: AddObject()

AddObject("KrassesMagicFire",0,0,0, obj[0]);
Damit müsste es gehen! Also nix mit child1=...

Obwohl child1="KrassesMagicFire" den gleichen Effekt hat :oops:

Der Grund warum das erst nicht klappten wollte war, dass ich statt der ObjectID ("KrassesMagicFire") die WorldID ("Krass") benutzt hatte.
Bin halt den Hammer gewöhnt, wo man die Objekte erst erschafft und dann über den eindeutigen Namen den parent zuweist. Hier wird das child-objekt nur über den allgemeinen Namen in der .cfg ausgewählt und vorher nicht in die Welt gesetzt^^

Besten Dank, Thema abgehakt.


Weiter zum nächsten Problem:


1.
Der "DemonBlow" der Kreaturen "NK_DemonAdept_Combat" und "NK_DemonMage_Combat" ist buggy. Wenn man nicht direkt den Kampf betrachtet (dazu muss das obrige Monster ein anderes Ziel haben als den Spieler), erscheinen plötzlich lange Feuerrauchfahnen über den ganzen Bildschirm. Das führt bei häufigen Auftreten zu performance Problemen. Hier ein Screen:


Image

Code:
http://www.pic-upload.de/view-7957516/Avencast-bug.jpg.html


Kann man diesen Fehler umgehen?



2.
Einige Objekte, die man im Editor ganz normal platzieren kann, können nicht geladen werden und der mapload bricht einfach ab.

Beispiel:

Beim setzten eines "light_cone" wird beim mapload "GameCtrl: 3dObject 'light_cone' not found (worldobj:'light_cone')" angezeigt. Das Spiel schließt sich daraufhin.


Alle weiteren script probleme erspare ich dir jetzt zunächst mal. Das wäre zuviel des Guten. So schnell wird sich dieses Thema "Allgemeine ADK Probs" nicht erledigt haben. Sorry, aber wenn die Info nicht mitgeliefert wird, bleibt mir nichts anderes übrig als euch das alles einzeln aus der Nase zu ziehen. Bis die fehlenden Inhalte durch diesen Thread ersetzt sind, kann es allerdings noch einige Meter Posts dauern :|
Ob es da nicht einfacher wäre Punkt 6 bis 10 im Avencast Reference zu ergänzen? ;)


Top
 Profile  
 
 Post subject: Re: Valve Hammer Editor vs. ADK und Avencast Reference Feedback
PostPosted: Wed Dec 01, 2010 7:17 pm 
Offline
Kyranian Master

Joined: Sat Oct 27, 2007 12:21 pm
Posts: 353
Ich fürchte eben, dass auch die fehlenden Punkte 6)-10) nur an der Oberfläche kratzen würden... das ist eben alles nicht so einfach :)

Erstmal: Du verwendest den neuesten Editor oder? (hab mal in einem anderen Post einen Link gemacht: http://www.avencast.com/downloads/VSDEdit_v3_30.zip

Zu dem DemonBlow bug: Schwer zu sagen, was da abgeht, tut mir leid... kann ich dir jetzt leider nicht helfen.

Zum zweiten Problem: Wir haben beim Avencast nur Mesh Dateien mitgeliefert, die wirlich im Spiel in Verwendung sind (die 3sc oder RTX Dateien). Wir haben aber offenbar nicht alle CFG File Einträge rausgelöscht, die auf MEsh Dateien verweisen, die nicht im finalen SPiel gelandet sind. Daher das Problem, sorry...

Per Doppelclick auf ein Mesh Objekt in der Editor Liste (wenn du z.B. F7 drückst) sollte sich der RTXVIewer öffnen und die Datei anzeigen. TUt er das nicht, dann ist wahrscheinlich die Datei nicht dabei.


Top
 Profile  
 
 Post subject: Re: Valve Hammer Editor vs. ADK und Avencast Reference Feedback
PostPosted: Sat Dec 04, 2010 10:10 pm 
Offline
Adept

Joined: Wed Oct 27, 2010 3:53 pm
Posts: 12
Ah, nice. Der Trick mit dem Doppelklick ist ganz nützlich, wenn man mal garkeine Ahnung hat, was das eigentlich sein soll.

Trozdem: Keine Texturen und nur mit Pfeiltasten navigierbar? Na, ich will mich nicht beschweren, das wird bloß eine Umstellung vom gewohnt hohen Niveau einesValve Model Viewers^^ :twisted:

Bis jetzt hatte ich die alte Version des Editors benützt. Danke für das Update!


Quote:
Ich fürchte eben, dass auch die fehlenden Punkte 6)-10) nur an der Oberfläche kratzen würden... das ist eben alles nicht so einfach


Das hört sich so nach der "Friss oder stirb" Mentalität an

"Der Editor ist eh zu schwierig, da macht ein Tutorial mehr oder weniger keinen Unterschied." :roll:

Jetzt muss ich nicht noch extra mein Kontra dazu geben, oder?



Dann eben weiter wie bisher:

2 1/2 Fragen

Mich sprang das "MoveTargetEvent" an, als ich mir das lvl "main_vault" zur Brust genommen habe. Es hat womöglich mit der Kampfsequenz zw. Skeletten und Geistern zu tun. Folgende Zeilen sind eingetragen:
WorldID="JumpToGhostSkeletonFight"
EditName="JumpTo"

Was bewirkt es? :?:

und

Gibt es eine Möglichkeit die Texturen ingame zu ändern? Ich meine die Objekte und Wände kann man ein- und ausblenden aber lassen sich die Bodentexturen auch mit Skripten irgendwie steuern?

.
.
.

(btw was kann eigentlich die "Set active area" Funktion unter "Edit" im Editor?)


Möge deine Geduld die Fessel der Unkenntnis sprängen :mrgreen:


PS. das mit dem DemonBlow bleibt allerdings ärgerlich :cry:


Top
 Profile  
 
 Post subject: Re: Valve Hammer Editor vs. ADK und Avencast Reference Feedback
PostPosted: Wed Dec 08, 2010 9:20 pm 
Offline
Kyranian Master

Joined: Sat Oct 27, 2007 12:21 pm
Posts: 353
Klar kann der RTX Viewer auch Texturen darstellen. Du musst ihm nur das Standard Texture Verzeichnis richtig einstellen (der shared_tex Folder im Avencast)

Ich kann mich leider auch nicht mehr an alle Events erinnern die wir im Avencast gescriptet haben. Aber ich nehe an der angesprochene Event löst die In-game Sequenz mit dem Kampf zwischen den Skeletten und Geistern aus.

Bodentexturen kann man per script nicht ändern.

Das "set active area" ist dann praktisch, wenn die Welt sehr groß ist, und man nur einen Teil der Welt bearbeitet. Dann werden nur Objekte im active area geladen - was den workflow beschleunigt. Übrigens: Beim Leveleditieren einfach im Hintergrund die das Spiel (im Fenstermodus) laufen lassen, und nachdem man Änderungen an der Welt im Editor gemacht hat Shift+AltGr+L drücken, dann lädt das Level neu - das geht dann bedeutend schneller als alles nochmal starten. Das Herum-X-en mit dem Held kennst du ja schon, oder? (X drücken und dann mit der Maus den Held herumteleportieren)

Gib Bescheid sobald du deinen Mod hast - wenn er gut ist, dann können wir ihn ja auch veröffentlichen und groß ankündigen wenn du willst :)


Top
 Profile  
 
 Post subject: Re: Valve Hammer Editor vs. ADK und Avencast Reference Feedback
PostPosted: Sun Dec 12, 2010 12:48 pm 
Offline
Adept

Joined: Wed Oct 27, 2010 3:53 pm
Posts: 12
Oh pardon, natürlich gibs Texturen und auch erweiterte Bedienung... my bad.

Trotzdem sind doch noch ein paar Einschränkungen aufgefallen:
Abgesehen davon, dass für alle NPCs von Meganteolis bis Horatio die gleiche Standad-doll angezeigt wird, sind andere Einträge, aufgeführt unter "mesh objects", komplett nicht aufrufbar:
Beispielsweise bei "burned_spot", "waterplane_2", "SoulLiquid" etc. öffnet sich nur ein schwarzes Fenster, während sich "podest_aufgang", "Stone Coffin 01", "icicle" etc. überhaupt nich öffnen lassen. Muss man mit "set default base path..." noch etwas einstellen?




Quote:
Gib Bescheid sobald du deinen Mod hast


Wer sagt dass ich an einer Mod arbeite^^
Bis jetzt habe ich ausschließlich an mp Projekten gearbeitet. Singleplayer habe ich lange verschmäht, weil es meiner Meinung nach nur halb so spaßig ist, neue lvl nur alleine Spielen zu können.

Zudem ist die strenge lineare Welt in Avencast nicht sehr Mod-freundlich.
Bei Oblivion (Elder Scrolls) ging das Konzept einer freien Welt hervorragend auf. Modder konnten klein anfangen, zuerst ein paar einfache Objekte/ Quests hinzufügen bis schließlich die total conversions/-overhauls erscheinen konnten, denn es blieb ja so ziemlich jeder Ort in der Welt erreichbar.
Will man für Avencast mal keine komplett neue Welt erschaffen, könnte man zB ein Item hinzufügen, mit dem der Held, egal in welchem lvl er sich momentan befindet, in das neue lvl beamt. Allerdings habe ich (noch) keinen Schimmer, wie man Items mit solchen Funktionen erstellt.
Es gibt sicher noch mehr Möglichkeiten, aber ich finde es extrem einschränkend lvl für lvl abzuarbeiten.

Neben der mangelnden Unterstützung potentieller ADK- Anwärter sind die lineare Welt und die SP-only Spielvariante von Avencast meine Hauptkritikpunkte.

Zunächst muss mich der deutsche Staat erstmal aus der Zwangsarbeit entlassen, damit ich wenigstens mal die Möglichkeit habe mit einer Mod anzufangen :x
...und ob das dann was wird hängt von deinen Antworten ab :twisted:

Noch kurz zum "JumpToGhostSkeletonFight" Event:
Es sah mir jetzt nicht so aus, als wäre dieses Event nur auf dieses Skeleton- Ghost Szene gemünzt. Es hätte doch auch sein können, dass es allgemeiner verwendet wird.
Jedenfalls funktioniert die Szene auch dann einwandfrei, wenn man dieses Event aus dem lvl löscht. Ich konnte keine Veränderungen feststellen.
Unter desc steht MoveTargetEvent. Die Dinger werden doch nur als Zielposition für NPC benutzt, oder? Ist wohl nicht so wichtig...



So, jetzt zum Wesentlichen:

StartGlobalSettings() und StartAt() fehlen im Avencast Reference. Diese Funktionen werden im init.c des "main_vault" angewendet und scheinen die Position der Plattform nach dem Spielfortschritt zu korrigieren. Aber wie funktionieren das? Wie kommt man plötzlich auf die Zahl 13, 12 etc.?

Quote:
StartGlobalSettings()
if (StartAt(13))
{
[...]
}
else if (StartAt(12))
.
.
.



Nun zu einer anderen Funktion: SetObjectFloat(int objID, float value, int index=1)
Häufig benutzt aber nie richtig erklärt. Was bewirkt der "float value"? Ich werde aus den Anwendungen in den scripts nicht schlau...


Des Weiteren ist mir die (wieder nicht im Avencast Reference aufgeführte) Funktion NPCPath() aufgefallen. Mich interessiert daher, ob die folgenden Zeilen das gleiche bewirken:

NPCPath(objList[i], "GhostSkeletonFightGhost"+string(i+1)+"Goto1.", 2);
SetAI(objList[i],"GOTO","GhostSkeletonFightGhost"+string(i+1)+"Goto1.2",100);

Wenn dem so sein sollte, kann ich diese neue Funktion getrost vergessen, da SetAI() sowieso mehr Funktionen bietet.
Zumindest als ich die Zeile im Skript ausgetauscht hatte, ist mir kaum ein Unterschied aufgefallen (der NPC schien irgendwie etwas eiliger, denn die Kamerafahrt war leicht im Verzug).


Letzte Frage:

Diese avencast.stx Datei unter "Tools" habe ich mit EditPlus geladen aber nun werden einfache Befehle wie "while" nicht mehr erkannt. Sollte ich zusätzlich noch cpp.stx laden bzw. dessen Inhalt zum avencast.stx hinzufügen?



Das herum-x-en ist mir übrigens neu. Das game.cfg hatte ich mir noch nicht so genau angeguckt aber AllowXMove=1 schaltet ein nettes Gimmick frei. Die Kombi [AltGr]+[Shift]+[l] war mir hingegen bekannt, da in einen der tuts beschrieben. Sehr nützlich!



:mrgreen:


Top
 Profile  
 
 Post subject: Re: Valve Hammer Editor vs. ADK und Avencast Reference Feedback
PostPosted: Sun Dec 12, 2010 4:35 pm 
Offline
Kyranian Master

Joined: Sat Oct 27, 2007 12:21 pm
Posts: 353
wegen den StartGlobalSettings() bzw. StartAt() Funktionen: Das sind keine Engine Funktionen, sondern scripte, die einer unserer Scripter speziell für diesen Quest gemacht hat. Die Funktionen müssten irgendwo definiert sein. Was die genau machen, weiss ich auch nicht, das ist für dich eigentlich irrelevant (oder willst du den quest abändern?)

gleiches gilt für NPCPath - das ist ein Hilfsscript für in-game sequenzen vermute ich. Ist in der scripts/functions/npc_move.c definiert und verwendet Set/AddAI()

die avencast.stx Datei ist für die CFG Dateien gedacht. Für die Scripte kannst du einfach den C/C++ Syntax hernehmen (unterscheidet sich ja nur minimal)


Top
 Profile  
 
 Post subject: Re: Valve Hammer Editor vs. ADK und Avencast Reference Feedback
PostPosted: Tue Dec 21, 2010 3:20 pm 
Offline
Adept

Joined: Wed Oct 27, 2010 3:53 pm
Posts: 12
Das war wohl etwas viel auf einmal. Na dann etwas kürzer:

Die Engine Funktion (zumindest im Refrence aufgeführt) SetObjectFloat bzw. GetObjectFloat verstehe ich immer noch nicht. Wofür benutzt man die?

Um mit dem ADK werkeln zu können braucht es ein wenig Grundverständnis.
Echt schade, dass die meisten Funktionen im Avencast Reference nicht erklärt werden. Gut, zumindest weiß ich jetzt, dass es diese Script-funktionen gibt, die ich mir mal genauer anschauen werde.


Top
 Profile  
 
 Post subject: Re: Valve Hammer Editor vs. ADK und Avencast Reference Feedback
PostPosted: Tue Dec 21, 2010 5:13 pm 
Offline
Kyranian Master

Joined: Sat Oct 27, 2007 12:21 pm
Posts: 353
Jedes Objekt kann 8 float Zahlen speichern, die man mit Get/SetObjectFloat setzen bzw. auslesen kann bzw auch in den CFG mit ScriptFloat[8] = number einstellen kann.
Das kann in verschiedenen Situationen praktisch sein. Wenn du z.B: willst, dass man einen Hebel genau 3 mal drücken können soll, dann kannst du z.B. in ScriptFloat1 speichern, wie oft der Hebel schon betätigt wurde.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 14 posts ] 

All times are UTC + 1 hour


Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group