Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
15.11.2009, 09:14
Toxic-Mktwo



Guten Morgen liebe community.

Ich habe nichts mit Coding, wenn man es denn in diesem Fall so nennen kann, am Hut. Ich schätze jedenfalls das Thema gehört hier rein.

Ich habe Mal wieder mit dem Hammer rumgespielt und traf auf das bekannte Problem, dass in CS:S kein func_monitor und point_camera in der standard fgd enthalten sind. Auf der Suche nach dem fehlenden Code-Stück fand ich eine Reihe ( von Usern ) verbesserter fgd's, die neben den fehlenden Entities nun auch weitere Möglichkeiten, wie z.B. das festlegen der Munition in platzierten Waffen bietet. Es wurde sinngemäß erklärt, dass die Engine die Informationen in den neuen Eintragungen in der fgd zwar verarbeiten kann, aber eben ursprünglich nie implementiert wurde.

Jetzt wundere ich mich bis zu welchem Grad man so eine fgd bearbeiten kann und die erstellte Map trotzdem noch funktioniert. Wäre es z.B. möglich einfach jedem Entity den Eintrag "parent" zu verpassen, in dem man die nötigen Textzeilen einfach einkopiert ? Oder ist es gar möglich vollkommen neue Entities zusammen zu basteln ?

--

zum Seitenanfang zum Seitenende Profil || Suche
001
15.11.2009, 09:49
Sir_Killalot



Die fgd stellt im grunde nur eine Verbindung zwischen Hammer und Code her. Wenn im Code etwas steht, was keine verbindung zum Hammer hat, ist das kein Problem. Genau das wurde gemacht: Die Fehlende Verbindung wurde hinzugefügt.
Willst du nun aber eine Verbindung herstellen, mit einer Stelle die es im Code nicht gibt, dann wird das nicht funktionieren und das Spiel im schlimmstenfall abstürzen.

Also finger weg und die leute ranlassen die den Code kennen ;)

--

zum Seitenanfang zum Seitenende Profil || Suche
002
15.11.2009, 10:11
Adrian_Broher
Admin


tl:dr; Die fgd beschreibt nur wie die "Object Properties" im aktivierten "SmartEdit" Modus aussehen.

Zitat:
Toxic-Mktwo postete
Jetzt wundere ich mich bis zu welchem Grad man so eine fgd bearbeiten kann und die erstellte Map trotzdem noch funktioniert.
Die Map wird, angenommen sie durchlaeuft den Compileprozess fehlerfrei, immer funktionieren, denn fgd und bsp haben nichts miteinander zu tun.

Zitat:
Toxic-Mktwo postete
Wäre es z.B. möglich einfach jedem Entity den Eintrag "parent" zu verpassen, in dem man die nötigen Textzeilen einfach einkopiert?
Moeglich waere es Attribute in der fgs hin und her zu kopieren, nur wuerde dies keinen funktionalen Unterschied machen, wenn das Entity das 'parent' Attribut nicht unterstuetzt, wenn wir jetzt bei deinem konkreten Beispiel bleiben.

Zitat:
Toxic-Mktwo postete
Oder ist es gar möglich vollkommen neue Entities zusammen zu basteln ?
Nein, das ist definitiv nicht moeglich, da fgd und entity weniger miteinander zu tun haben als du dir erhoffst.

Die fgd beschreibt fuer den Editor nur welche Entities die Engine bereitstellt, welche Attribute diese Entities haben und von welchem Typ diese Attribute sind. Man koennte genau so gut die Map ohne eine geladene fgd erstellen, wenn man die engineinterne Bezeichnung der Entities, der Attribute und den Syntax der Attributtypen kennt. Man kann auch neue Attribut oder Entitydefinitionen zu fgd hinzufuegen, nur wenn in der Engine kein Gegenstueck existiert werden diese Definitionen stillschweigend ignoriert.

Zitat:
Also finger weg und die leute ranlassen die den Code kennen ;)
...

--

There is nothing wrong with high standards. It's your problem that you don't meet them.
If you think it's simple, then you have misunderstood the problem.
When a customer says "nothing has changed", assume they're lying.


Dieser Beitrag wurde am 15.11.2009 um 10:29 von Adrian_Broher bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
003
15.11.2009, 10:59
Toxic-Mktwo



Nun bin ich aufgeklärt. Danke für die Antworten.

--

zum Seitenanfang zum Seitenende Profil || Suche
004
15.11.2009, 17:29
Don_Creek



Da alle Entitys von CBaseEntiy abgeleitet sind, besitzen sie auch alle eine Parent Eigenschaft.
D.h. man kann einem Entity per Eigenschaft und/oder Input Funktion SetParent ein Parent setzen.

Es kommt natürlich auch darauf an ob das entsprechende Entity den Parent im Code auch bearbeitet, sonst ist das ganze wohl nutzlos...

Amsonsten den Parent Eintrag in die FGD zum entsprechenden Entity Eintrag hinzufügen, et voilà.

--

Wer zu spät kommt, den bestraft das Leben.

zum Seitenanfang zum Seitenende Profil || Suche
005
31.12.2009, 07:51
Wiskyjim



Zitat:
Adrian_Broher postete
Nein, das ist definitiv nicht moeglich, da fgd und entity weniger miteinander zu tun haben als du dir erhoffst.
Nun da habe ich auch noch eine Frage zu:

Ich habe mich in der letzten Zeit auch mal näher mit dem bsp Format auseinander gesetzt und weis dass in der bsp-Datei beim Compilieren der Map verschiedene Ordner und Dateien erstellt werden.
Hierbei gibt es in der *.bsp eine so genannte ent-Datei in der bestimmte Entities gespeichert werden. (Nicht alle)

Kürzlich habe ich in einem anderen Forum gelesen, dass es die Möglich keit gibt eigene fgd-Dateien zu schreiben, um bestimmte Entities im Editor zu modifizieren. (Allerdings nur soweit wie es der Engine Syntax zulässt)

Jetzt würde mich gerne mal interessieren, ob man bestimmte Befehle aus den vmt-Dateien in die fgd-Datei, zu den richtigen Entities schreiben kann, um diese zu erweitern ?

--

zum Seitenanfang zum Seitenende Profil || Suche
006
31.12.2009, 11:18
Adrian_Broher
Admin


Deine Frage macht keinen Sinn.

VMF und BSP sind Dateiformate, welche Level in ihrer Form und Funktion beschreiben, wobei VMF für die Ansprüche des Editors ausgelegt ist und das BSP Format eine vor verarbeitete Darstellung der Map beinhaltet, welcher der Engine die Umsetzung der Sichtbarkeitsberechnung erleichtert.
FGD ist ein Dateiformat, welches für den Editor beschreibt wie das "Object Properties" Fenster für ein bestimmtes Entity im "SmartEdit" Modus auszusehen hat.
Die Implementierung des Spiels lässt von der Engine die BSP Datei laden und erhält die einzelnen in der BSP beschriebenen Entityeinstellungen. Ist der Implementierung des Spiels der Entityname unbekannt verwirft sie die dazugehörigen Einstellungen und (wahrscheinlich im -dev Modus der Engine) eine Fehlermeldung in der Art "No such entity <name des Entities>" ausgeben. Das gleiche passiert auch für die unbekannte Entityeinstellungen.

Was soll der vmf -> fgd Vorgang also bringen?

--

There is nothing wrong with high standards. It's your problem that you don't meet them.
If you think it's simple, then you have misunderstood the problem.
When a customer says "nothing has changed", assume they're lying.

zum Seitenanfang zum Seitenende Profil || Suche
007
31.12.2009, 19:02
Wiskyjim



@ Adrian_Broher

Also wenn ich recht verstehe, kann man mit gewissen Befehlen in der vmt wie z.B. die toolsinvisibleladder-Textur bestimmte Eigenschaften schreiben die, die Textur haben soll:

"LightmappedGeneric"
{
// Original shader: BaseTimesLightmap
"$basetexture" "Tools/toolsinvisibleladder"
"%compilenodraw" 1
"%compilepassbullets" 1
"%compileladder" 1
"%keywords" "airexchange,borealis,c17downtown,c17industrial,c17sewers,c17skyscraper,c17trainstation,combine,kraken,wasteland"
}

Die fett geschriebene Zeile gibt der Textur die Eigenschaft an ihr auf und ab zu klettern.
Was man in eine Textur reinschreiben kann, sollte man doch auch in SmartEdit schreiben können, oder ? (Andere Schreibform)

--

zum Seitenanfang zum Seitenende Profil || Suche