Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
31.03.2011, 20:59
Crowbar



Hallo an alle!

Ich suche jemanden, der mir bei der Codierung der Monster meiner Mod Half-Life: Gold helfen könnte. Mein Ziel ist es, die Monster agiler und ein wenig schneller zu machen.
Zumindest möchte ich Zombies, Bullsquids, Vortigaunts und vielleicht auch Houndeyes bearbeiten. Der Rest scheint meiner Meinung nach ganz in Ordnung zu sein.

Mehr zu meiner Mod gibt es hier: http://www.moddb.com/mods/half-life-gold

Mein Steamacc.: http://steamcommunity.com/id/Crowbar91

--

http://www.xen-raiders.com/news/


Dieser Beitrag wurde am 31.03.2011 um 20:59 von Crowbar bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
001
01.04.2011, 00:07
Xardas



Also da kann ich dir spontan 2 Dinge vorschlagen:

1. In den Monster::Think Funktionen die Zeitintervalle, bis die Fkt. erneut durchlaufen wird senken.

2. Konkrete Geschwindigkeiten werden entweder per Timer geregelt oder über konstanten. Könntest die entsprechenden Dateien ja mal danach durchforsten.

Ansonsten, wenn ich die Tage mal Zeit hab, kümmer ich mich mal drum, kann dir aber noch nicht sagen wann, hab momentan ne 7 Tage Woche.

Edit, hab ja grad sonst nichts zu tun ;)

Für den Zombie z.b könntest du folgendes machen.

In der Zombie.cpp :

void CZombie :: SetYawSpeed ( void )
{
int ys;

ys = 120;

(...)

Ändere den Wert "120" mal auf etwas höheres. Das sollte die Geschwindigkeit angeben, mit der der Zombie sich dreht.

Dann fügst du in der CZombie :: Spawn Methode ganz unten
"pev->maxspeed = 500.0f; " ein. Wichtig ist, dass es nach dem "MonsterInit();" kommt, da dies, wenn ich mich recht erinnere, dem Zombie die Geschwindigkeit per Konstante zuweist. Könnte man jetzt also auch eleganter lösen, sollte zur Demonstration aber reichen.

Den Wert von 500.0f kannst bzw. solltest du ändern, ich weiß jetzt nicht in welcher Einheit die Geschwindigkeit angegeben wird, kannst da ja einfach mal ein wenig rumprobieren.

In der selben Funktion gibt es auch die Zeile "m_flFieldOfView = 0.5;", diese gibt das Sichtfeld des Zombies an.

Dem Kommentar nach zu urteilen entsprechen die 0.5 gut 180°.
Kannst den Wert möglicherweise auch etwas erhöhen ( aber nicht über 1.0 )
um das Sichtfeld zu erhöhen, defakto würde er mit höherem Wert auch Gegner hinter ihm warnehmen.

Das ganze kannst du parallel auch für andere Monster machen.
Falls es bei den anderen Monstern keine SetYawSpeed Methode gibt, kannst du in der jeweiligen Spawn Methode es auch mit "pev->yaw_speed = 80.0f"
(Wert natürlich wieder variabel) lösen.

Falls du daran interessiert bist die Lebenspunkte der Gegner zu modifizieren kannst du das auch in der Spawn Methode mit "pev->health = 200.0f" lösen.

Alles was komplexer ist und jetzt darüber hinaus gehen würde, kann ich nicht mal eben in ein paar Sätzen erklären ;)

Ansonsten geh ich jetzt erstmal schlafen, waren ein paar Ansätze.

--

Music Artist / 2D Artist / Mapper


Dieser Beitrag wurde am 01.04.2011 um 01:47 von Xardas bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
002
01.04.2011, 01:45
Crowbar



Danke vielmals. Ich werde mich diesbezüglich noch ein bisschen einlesen und rumprobieren. Ich hoffe man hört sich noch ;)
Gute Nacht

--

http://www.xen-raiders.com/news/


Dieser Beitrag wurde am 01.04.2011 um 01:46 von Crowbar bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
003
01.04.2011, 14:25
Crowbar



Also, ich hab die ccp-files in der sdk gefunden. Aber wie bau ich die nun in meine mod ein? Muss ich die files in eine .dll importieren?

--

http://www.xen-raiders.com/news/

zum Seitenanfang zum Seitenende Profil || Suche
004
01.04.2011, 14:59
Xardas



Im SDK gibt es in der Regel ( Ich hoffe du hast das SDK für VisualStudio 2008, Link ist im Thread darunter in diesem Codingforum ) eine Projektdatei für VisualStudio, die Dateiendung ist afaik .sln .
Diese öffnest du, und kannst dann deine DLLs damit erstellen ( Hl.dll und Client.dll )

Die kompilierten Dateien sind dann im cl_dll/Debug bzw. dlls/Debug Ordner des SDKs zu finden.
Die DLLs in deinem Mod Ordner dann mit den erstellen ersetzen.

Das ganze machst du, indem du in der Leiste oben in VisualStudio auf "Erstellen" gehst und dann entweder "Projektmappe erstellen", welches sowohl Client.dll als auch HL.dll erstellt, oder CL_DLL bzw. HL erstellen auswählst. Je nachdem welche Datei aus welchem der beiden Projekte du gerade geöffnet hast, erscheint dort eine der beiden Optionen. Gibt aber auch andere Möglichkeiten dazu ( Rechtsklick auf die Projekte links in der Projektmappe etc.)

Hier ist der Thread wo ich u.a den Link für das richtige SDK gepostet hab:
http://www.thewall.de/forum/thread/einstieg-ins-hl1-coding-modding/65411.1.html

--

Music Artist / 2D Artist / Mapper


Dieser Beitrag wurde am 01.04.2011 um 15:15 von Xardas bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
005
03.04.2011, 22:52
Crowbar



Danke vielmals. Funktioniert alles top.

Habe aber noch Probleme bei den Einstellungen des walkspeeds. Hab mal pev->maxspeed = 900.0f; in die zombie.cpp eingefügt, aber der zombie hat ingame noch immer default speed.

--

http://www.xen-raiders.com/news/


Dieser Beitrag wurde am 03.04.2011 um 23:15 von Crowbar bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
006
04.04.2011, 00:29
Xardas



Oh, hab was übersehen.

Versuchs mal mit pev->speed ;)
Natürlich darf maxspeed nicht kleiner als der Speedwert sein, also am besten beides deklarieren.

--

Music Artist / 2D Artist / Mapper


Dieser Beitrag wurde am 04.04.2011 um 00:29 von Xardas bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
007
04.04.2011, 00:57
Crowbar



Zitat:
Xardas postete
Oh, hab was übersehen.

Versuchs mal mit pev->speed ;)
Natürlich darf maxspeed nicht kleiner als der Speedwert sein, also am besten beides deklarieren.

hmmm tut sich irgendwie noch immer nix

MonsterInit();
pev->maxspeed = 900.0f;
pev->speed = 900.0f;
}

Is das soweit richtig?

--

http://www.xen-raiders.com/news/

zum Seitenanfang zum Seitenende Profil || Suche
008
04.04.2011, 10:59
Xardas



Hm, dann muss ich nochmal drüber schauen... geht das Drehtempo denn wenigstens soweit?

--

Music Artist / 2D Artist / Mapper


Dieser Beitrag wurde am 04.04.2011 um 11:08 von Xardas bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
009
04.04.2011, 14:43
Crowbar



Jop, Drehtempo funktioniert einwandfrei ;)

--

http://www.xen-raiders.com/news/

zum Seitenanfang zum Seitenende Profil || Suche
010
04.04.2011, 17:17
Xardas



Ah, ich glaub ich hab die Mechanik raus.

Versuchs mal mit pev->framerate=0.1f

Versuch verschiedene Werte zwischen 0.1f und 10.0f, das sollte in etwa in dem Intervall sein, das deine gewünschte Geschwindigkeit beinhaltet ;)

--

Music Artist / 2D Artist / Mapper

zum Seitenanfang zum Seitenende Profil || Suche
011
04.04.2011, 18:04
Crowbar



MonsterInit();
pev->framerate=9.0f;

Hab verschiedene Werte ausprobiert. Aber bei mir ändert sich nichts :(

--

http://www.xen-raiders.com/news/

zum Seitenanfang zum Seitenende Profil || Suche
012
04.04.2011, 18:22
Xardas



Hmpf, hasts auch ZUSAMMEN mit pev->speed und pev->maxspeed versucht?

--

Music Artist / 2D Artist / Mapper

zum Seitenanfang zum Seitenende Profil || Suche
013
04.04.2011, 22:55
Crowbar



jop ,..hmpf^^

--

http://www.xen-raiders.com/news/

zum Seitenanfang zum Seitenende Profil || Suche
014
05.04.2011, 00:47
Xardas



Uff, dann bin ich erstmal ratlos.
Hab den gesamten Weg zurückverfolgt bis zur konkreten,abstrakten Movementmethode.

Ich schau die tage mal in Ruhe drüber und teste es bei mir selber.

Ansonsten, wenn jemand anderes die Monstergeschwindigkeit schonmal angepasst hat, könnte derjenige sich ja mal melden, falls hier vorhanden ; )

EDIT::

Füg mal "this->m_flGroundSpeed = 500.0f; " ( Wert wieder variieren ) in die Spawn Methode ein. Habs allerdings noch nicht getestet.

Ansonsten hab ich noch eine Idee :

Füg in der Zombie.cpp um zeile 14 rum ( in der Klassendefinition )
folgende Zeile ein :

void MonsterThink ( void );

Dann fügst du an beliebiger Stelle außerhalb von Funktionen/Klassen folgendes ein :

void CZombie :: MonsterThink ( void )
{
pev->velocity[0] *= 2;
pev->velocity[1] *= 2;
pev->velocity[2] *= 2;
CBaseMonster::MonsterThink();
}

--

Music Artist / 2D Artist / Mapper


Dieser Beitrag wurde am 05.04.2011 um 01:25 von Xardas bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
015
05.04.2011, 12:27
Crowbar



Ich hab nun ne andere Lösung gefunden den speed zu ändern: model decompilen --> walk fps ändern --> compilen --> fertig. Funktioniert auch ganz gut.

Aber danke für deine Tipps. Vielleicht fallen dir noch ein paar nützliche commands ein ;)

--

http://www.xen-raiders.com/news/

zum Seitenanfang zum Seitenende Profil || Suche
016
05.04.2011, 18:55
Xardas



Ah, hab mir schon gedacht dass es irgendwie mit dem Model zusammenhängen muss, da es nirgendwo einen direkten Parameter für die Geschwindigkeiten der verschiedenen Monster gibt.

Andere Sachen?
Dann schlag Sachen vor, die du brauchst^^

--

Music Artist / 2D Artist / Mapper

zum Seitenanfang zum Seitenende Profil || Suche
017
05.04.2011, 19:32
the-middleman



Wie verändert man die Feuerrate der Gegner? Auch im model? Bin zwar noch noob im coden, habe aber nichts zur Feurrate gefunden...

--

Spielen: Prison, Ispatel 4: Classic, Heart of evil
Anschauen: Spirit of Half-Life: Legion

The Trap ist mit abstand die fantastischste Mod die ich seit langem gespielt habe!

zum Seitenanfang zum Seitenende Profil || Suche
018
05.04.2011, 20:47
Bluthund



Obwohl es hier eigentlich nicht reinpasst (warum kein eigener Thread middleman?):
Die Feuerrate ist ueber die m_flNext{Primary,Secondary}Attack-Member der Waffen limitiert.

edit: "Gegner" ueberlesen.
Ja, das scheint genau so der Fall zu sein, da die eigentlichen Schuesse serverseitig im Code in Reaktion auf das Abspielen einer Animation abgegeben werden (siehe bspw.: CHGrunt::HandleAnimEvent).

--

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 05.04.2011 um 20:58 von Bluthund bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
019
05.04.2011, 22:48
Xardas



Wenn du die Feuerrate zu sehr hochschraubst ,könnte die Animation dann allerdings (möglicherweise) merkwürdig aussehen, je nach Monster.

Dann könntest du in der FireBullets Methode die Anzahl der abzufeuernden Schüsse hochschrauben, um das ein wenig zu kompensieren.

--

Music Artist / 2D Artist / Mapper

zum Seitenanfang zum Seitenende Profil || Suche
020
06.04.2011, 01:57
Crowbar



Zitat:
Xardas postete
Ah, hab mir schon gedacht dass es irgendwie mit dem Model zusammenhängen muss, da es nirgendwo einen direkten Parameter für die Geschwindigkeiten der verschiedenen Monster gibt.

Andere Sachen?
Dann schlag Sachen vor, die du brauchst^^

Hmm,...andere sachen wie Aggressivität der hgrunts z.b. Meiner Meinung nach laufen die zu oft davon^^

--

http://www.xen-raiders.com/news/

zum Seitenanfang zum Seitenende Profil || Suche
021
06.04.2011, 15:48
Xardas



So, alles spielt sich in der hgrunt.cpp ab.

In Zeile 2098 ersetzt du "SCHED_GRUNT_COVER_AND_RELOAD" durch "SCHED_RELOAD".
Somit laden die Grunts ihre Waffen sofort nach und gehen zu diesem Zweck nicht mehr in Deckung.

2102 - 2126 löschst du komplett. ( Kommentier es zur Sicherheit einfach mal aus)
Das sorgt dafür, dass die Grunts unter Beschuss nicht mehr möglicherweise in Deckung gehen.

2001 - 2033 kannst du löschen, wenn du nicht willst, dass die Hgrunts vor Granaten in Deckung laufen.

Alles noch nicht getestet, sollte aber funktionieren.

--

Music Artist / 2D Artist / Mapper


Dieser Beitrag wurde am 06.04.2011 um 15:49 von Xardas bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
022
07.04.2011, 04:07
Crowbar



Danke, scheint zu funktionieren :)

--

http://www.xen-raiders.com/news/

zum Seitenanfang zum Seitenende Profil || Suche
023
07.04.2011, 08:07
Xardas



Gut, wenns noch was gibt, lass es mich wissen.
Ansonsten würde ich auch schauen, dass die Balance erhalten bleibt und durch die Hgrunts Änderungen einige Stellen nicht zu heftig werden^^

--

Music Artist / 2D Artist / Mapper

zum Seitenanfang zum Seitenende Profil || Suche