Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
12.09.2009, 19:58
Hunterinhunt



Moin Leute.

Ich weis diese Frage wurde schon oft gestellt und selbstverständlich habe ich auch die Suche im Vorfeld genutzt um mögliche Antworten zu erhalten. Leider waren diese aber nicht wirklich Zielgerecht auf meine Situation ausgelegt.

Folgende Situation habe ich:

Ich besitze neue Custom NPCs. Zum Beispiel einen Blackop Zombie. Dieser ist ähnlich dem Security u. Soldier Zombie lediglich eine Neuheit fürs Auge um den Spielern etwas Abwechslung zu gönnen. Doch wie binde ich diesen nun in meinem Hammer Editor version 3.5 ein?

In meine Game FDG file habe ich folgende strings hinzugefügt:

@PointClass base(Monster) size(-16 -16 0, 16 16 72) =
monster_zombie_blackop : "Blackop Zombie" []

Damit erhalte ich nun meinen Blackop Zombie auswählbar in der Hammer Entity Liste. Jedoch ist zum Model selbst irgendwie noch nicht verlinkt durch die FGD. Das heißt mein Model welches sich in Half-Life\gearbox\models Ordner befindet wird nicht angesprochen nachdem ich meine map kompiliere.

Es ist mir zwar möglich das model via Monster_generic zu setzen allerdings handelt es sich dabei dann lediglich um eine leere Hülle ohne K.I elemente.

Sounds funktionieren logischerweiße auch noch nicht, aber das ist momentan meine geringste sorge. Falls jemand eine Ahnung hat wie das funktioniert wäre ich sehr dankbar für eine Antwort.

Falls dies massive Coding eingriffe erfodert mit einer dll. wäre es unter umständen möglich mein neues Model als Model replacement zu nutzen ohne aber die anderen Original models löschen zu müssen?

mfg HunterInHunt

--

Half-Life - Opposing Force Firestorm:

http://www.moddb.com/mods/hl-opposing-force-firestorm


Dieser Beitrag wurde am 12.09.2009 um 20:00 von Hunterinhunt bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
001
12.09.2009, 20:33
Bluthund



Du brauchst ne neue NPC-Klasse, die dein neues Model lädt und die du dann per LINK_ENTITY_TO_CLASS-Makro an den Entitynamen bindest oder du erweiterst die Standardzombieklasse um ne Auswahlmöglichkeit des Aussehens...

... im Sourcecode.

Zitat:
wäre es unter umständen möglich mein neues Model als Model replacement zu nutzen ohne aber die anderen Original models löschen zu müssen?
Afaik, nein.

--

The C language combines all the power of assembly language with all the ease-of-use of assembly language.
"humorig is n blödwort :>" by -CarniGGeLjumpR-


Dieser Beitrag wurde am 12.09.2009 um 20:34 von Bluthund bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
002
13.09.2009, 05:35
Hunterinhunt



Morgen..

Danke für deine Antwort.

Könntest du das mit dem LINK_ENTITY_TO_CLASS-Makro bitte genauer erläutern. Es scheint genau das fehlende Puzzle Teil zu sein auf dessen Suche ich mich befinde.

Falls möglich - Hast du links zu einem entsprechenden Tutorial oder könntest dies eventuell selbst noob gerecht erklären. In dem Sektor kenne ich mich bis weilen leider noch garnicht aus.

mfg HunterInHunt

--

Half-Life - Opposing Force Firestorm:

http://www.moddb.com/mods/hl-opposing-force-firestorm

zum Seitenanfang zum Seitenende Profil || Suche
003
13.09.2009, 09:57
Bluthund



1. HLSDK öffnen
2. Suchen in allen Dateien "LINK_ENTITY_TO_CLASS"
3. ...
4. Profit!

Aber weil ich schon so früh auf bin:
Quellcode:LINK_ENTITY_TO_CLASS(entity, class)
--
    entity - Entityname, der für die Nutzung von außen gebunden wird
    class - C++-Klasse die an den Entitynamen gebunden wird
Allerdings wird dir die Info wahrscheinlich wenig weiterhelfen, da du anscheinend keine Ahnung hast was Coding betrifft (entnehme ich einfach mal ganz dreist der Fragestellung).
Solltest du allerdings in der Lage sein das HLSDK zu kompilieren (dann und nur dann!), wäre die Anleitung für Dummies folgende:

Zitat:
- zombie.cpp als zombie_blackop.cpp kopieren und in Projekt einbinden
- zombie_blackop.cpp öffnen
- #defines anpassen oder gegen Doppeldefinierung abschirmen
- CZombie umbenennen
- Im LINK_ENTITY_TO_CLASS-Makro anpassen
- Modelpfad in Spawn() und Precache() ändern
Für faule (und weil ichs jetz eh schon gemacht hab):
http://pastebin.com/m43394992

--

The C language combines all the power of assembly language with all the ease-of-use of assembly language.
"humorig is n blödwort :>" by -CarniGGeLjumpR-

zum Seitenanfang zum Seitenende Profil || Suche
004
14.09.2009, 23:34
Hunterinhunt



Hey!

1000 fachen dank das ist mehr als ich erwartet habe.

Was das coding bzw. scripting anversich angeht scheint es nicht viel anders zu sein als die scriptsprache von Operation Flashpoint bzw. Armed Assault falls dir das was sagt. Damit sollte ich also klar kommen.

Allerdings fehlt mir noch einiges Basis wissen wie du schon richtig festgestellt hast.

Welche tools bräuchte ich um
A. die SDK zu kompilieren.
B. Wohin müsste ich das kompilierte file denn eigentlich packen
zugreifen? Es wird ja sicherlich eines geben.
C. Sicher das es nicht irgendwo ein Tutorial gibt welches die basics zu all meinen Fragen abdeckt? Falls nicht wäre dies doch mal sicherlich eine interessante sache für die "The Wall Tutorial Sektion".

Ich werde mich jetzt aufjeden Fall erstmal daran machen die ganzen files gemäß deinen Anweisungen abzuändern und dann sehen wir weiter. Falls du mich dort weiterhin durch geleiten könntest bin ich mir absolut sicher das es auch klappen wird. :) An Motivation meinerseits wirds jedenfalls nicht mangeln.

Dank dir nochmal.

EDIT: Mist! An eine sache dachte ich nicht. Ich bastel an einem Opposing Force mod. In dem entsprechenden code befinden sich jedoch natürlich nur die Standart Hl1 Monster. Ich habe auch schon mehrere dll decompiler gezogen in der Hoffnung so an den Code zu kommen, leider ohne erfolg. Desweiteren kann ich auch nicht zu Hl1 wechseln da mir dort dann wiederrum die Op4 Monster fehlen. Ist dir bekannt ob der Op4 code von irgendwem irgendwo veröffentlicht wurde damit ich die Op4 Monster in meine dll einfügen kann?

Bzw. Ist es möglich 2 dlls im modfolder simultan laufen zu haben. Beide quasi identisch bis halt eben auf die paar extra Monster. Ich könnte mir vorstellen das dies Probleme hervorrüfen könnte. Ich schätze im nach hinein wird mein Team wohl einen echten coder benötigen.

Hättest du eventuell Interesse auszuhelfen ? Wir sind ein Team aus 3 mappern und 1 skinner.

Ich werde hier im Forum mal eine offizielle Anfrage stellen.

Mfg HunterInHunt

--

Half-Life - Opposing Force Firestorm:

http://www.moddb.com/mods/hl-opposing-force-firestorm


Dieser Beitrag wurde am 15.09.2009 um 00:43 von Hunterinhunt bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
005
15.09.2009, 00:52
Bluthund



Ich wage zu bezweifeln, dass die Scriptsprachen von OFP und ArmA auch nur halb so komplex sind wie C++ (auch wenn ich sie nicht kenne).

a) Zum Kompilieren benötigst du Microsoft Visual C++ 6 (schon über 10 Jahre alt aber kostet trotzdem noch ordentlich Asche, falls du keine Schüler-/Studentenlizenz auftreiben kannst). Alternativ kannst du den Code auch mit nem gcc kompilieren, dafür benötigt es aber einiger Veränderungen, da Valve leider viele der Unarten von Microsofts Visual-C++ genutzt hat. Noch dazu ist das HLSDK 2.3 aktuell und botmans Patch bezieht sich auf die Version 2.2, wodurch noch einige zusätzliche undokumentierte Änderungen nötig sein könnten (was für jemanden ohne C++-Kenntnisse so gut wie unmöglich ist, da dieser jemand dann die Fehlermeldungen nicht zu deuten vermag).
b) Wenn du das Projekt kompiliert hast, erhältst du eine neue Gamecode-dll (bzw so für Linux). Die kommt dann ins dlls-Verzeichnis im jeweiligen Modverzeichnis. Wenn du Änderungen am Clientcode machst, kommt entsprechend ne Client-dll als Kompilat heraus, die dann ins cl_dlls-Verzeichnis gehört.
c) Das Problem ist, dass die Fragen nicht wirklich HL-zentrisch sind. Im Prinzip kann jeder halbwegs vernünftige Codemonkey den Workspace des HLSDKs laden und kompilieren. Wenn es um Tutorials zum HL-Code geht stehen in der MOD FAQ von botman noch einige Links (auch wenn viele davon lange tot sind) oder auch hier im Wiki. Allgemein schwinden nach über 10 Jahren Half-Life so langsam die Resourcen.

Die Arbeit des eigenhändigen Abänderns kannst du dir sparen, ich hab dir den fertigen Code in den pastebin kopiert, da ich die Anleitung auf Vollständigkeit prüfen wollte. Ich habe allerdings nur eine Woche Haltbarkeit eingestellt danach verschwindet der Code unter der o.g. URL (war ja eh nur Kopierpastete vom originalen Zombiecode).

Ein gut gemeinter Rat: Such dir einen Coder, der willens ist mit dir an deiner Modifikation zu arbeiten. Nicht nur deine Haare werden es dir danken ;)
Denn nur Motivation wird dir leider nicht helfen. C++ lernt man nicht so nebenbei und vor allem nicht schnell und ohne die Kenntnisse bist du in nem SDK dieses Ausmaßes schnell verloren.
Jemand der den Linker vom Compiler unterscheiden kann, sollte im Allgemeinen ausreichen.

--

The C language combines all the power of assembly language with all the ease-of-use of assembly language.
"humorig is n blödwort :>" by -CarniGGeLjumpR-

zum Seitenanfang zum Seitenende Profil || Suche
006
15.09.2009, 02:19
Hunterinhunt



Alles klar ich schätze ich werde deinen rat beherzigen und auch ausführen. :)

Gegenwärtig habe ich einem coder geschrieben der in Frage käme und erst kürzlich einen Hl mod released hat. (Irgend so ein remake von hl1 mit op4 Monstern darin.)

Also prinzipiell genau der richtige Mann. Wünsch mir glück das er annimmt.
Ich danke dir nochmals für deine hilfe bisher bist du mir hier stehts sehr behilflich gewesen das weis ich zu schätzen. :)

Mfg HunterInHunt

--

Half-Life - Opposing Force Firestorm:

http://www.moddb.com/mods/hl-opposing-force-firestorm

zum Seitenanfang zum Seitenende Profil || Suche
007
15.09.2009, 23:23
Hanfling



Ich weiß nicht was alle immer haben. Ich habe auch mit dem HL SDK mit C++ angefangen. Für eine Waffe/Monster kopieren und leicht zu verändern, reicht ja eigentlich schon gesunder Menschenverstand. Selbst billigste C++ Tutorials unterster Sorte (C++ in 21 Tagen oder ähnliches), sollten dann einen befähigen sonstige gerinigfügigen Änderungen vornehmen. Das HL SDK benutzt als einziges C++ Feature Klassen, die allerdings auch nur als einen ekligen Wrapper um die Quake entity Typen. Weiteren C++ Kram sucht man vergebens. Selbst von Memory Managment muss man keine Ahnung für den Großteil des Krames haben. Wenns dann trotzdem nicht klappt, haperts wohl an den Vorraussetzungen.

--

Nun ist deine Zeit gekommen sprach der Tod, stolperte und brach sich das Genick. :o

zum Seitenanfang zum Seitenende Profil || Suche